vinesweeper restore original hole

This commit is contained in:
Player Name 2026-07-14 13:10:31 +02:00
parent 9daaeb780c
commit b8b8475954

View file

@ -388,7 +388,7 @@ class Vinesweeper : InteractionListener, InterfaceListener, MapArea {
}
}
for (scenery in wipedHoles) {
SceneryBuilder.replace(scenery, scenery.transform(HOLES[0]))
restoreOriginalHole(scenery)
}
}
@ -652,6 +652,7 @@ class VinesweeperNPC : AbstractNPC {
scheduleNPCs(dest.player, dest.loc, alive = true, rabbit = false)
}
}
fun handleFarmerSeed(scenery: Scenery, dest: Vinesweeper.SeedDestination) {
lock()
var i = 0
@ -665,14 +666,7 @@ class VinesweeperNPC : AbstractNPC {
1 -> {
animate(Animation(Animations.GNOME_FARMER_SPADE_SMACK_8732))
sendChat(FARMER_FLAG_LINES.DEAD_PLANT.line)
var originalHoleId = HOLES[0]
for (obj in scenery.location.chunk.getStatObjects(scenery.location.chunkOffsetX, scenery.location.chunkOffsetY)) {
if (obj?.id != null) {
originalHoleId = obj.id
break
}
}
SceneryBuilder.replace(scenery, scenery.transform(originalHoleId))
restoreOriginalHole(scenery)
}
2 -> {
animate(Animation(Animations.GNOME_FARMER_CLEAR_HOLES_8724))
@ -699,7 +693,7 @@ class VinesweeperNPC : AbstractNPC {
sendChat(FARMER_FLAG_LINES.FIND_FLAG.line)
}
1 -> {
SceneryBuilder.replace(scenery, scenery.transform(HOLES[0]))
restoreOriginalHole(scenery)
if (SEED_LOCS.contains(dest.loc)) {
sendChat(FARMER_FLAG_LINES.FIND_SEED.line)
animate(Animation(Animations.GNOME_FARMER_HOORAY_8731))
@ -733,7 +727,7 @@ class VinesweeperNPC : AbstractNPC {
for (dy in -FARMER_CLEAR_RADIUS..FARMER_CLEAR_RADIUS) {
val toClear = getScenery(dest.loc.transform(dx, dy, 0))
if (toClear != null && intArrayOf(Sceneries.DEAD_PLANT_29456, *NUMBERS).contains(toClear.id)) {
SceneryBuilder.replace(toClear, toClear.transform(HOLES[0]))
restoreOriginalHole(toClear)
}
}
}
@ -742,6 +736,16 @@ class VinesweeperNPC : AbstractNPC {
}
}
fun restoreOriginalHole(scenery: Scenery) {
var originalHoleId = HOLES[0]
for (obj in scenery.location.chunk.getStatObjects(scenery.location.chunkOffsetX, scenery.location.chunkOffsetY)) {
if (obj?.id != null) {
originalHoleId = obj.id
break
}
}
SceneryBuilder.replace(scenery, scenery.transform(originalHoleId))
}
/*