diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt index c06e0a4e7..6f76f803e 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt @@ -277,6 +277,8 @@ open class ActorWithBody : Actor { */ var forceDormant = false + var isPickedUp = false + /** * Gravitational Constant G. Load from gameworld. * [m / s^2] diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt index 19cd897f0..3fbae4e45 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt @@ -188,7 +188,9 @@ open class ActorHumanoid : ActorWithBody, Controllable, Pocketed, Factionable, L // don't put this into keyPressed; execution order is important! updateGamerControlBox() - processInput(delta) + if (!isPickedUp) { + processInput(delta) + } updateSprite(delta) diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt index 164ac913d..57b432414 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt @@ -4,12 +4,15 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.CommonResourcePool import net.torvald.terrarum.Point2i import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE +import net.torvald.terrarum.WireCodex import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gameitem.GameItem import net.torvald.terrarum.gameitem.ItemID import net.torvald.terrarum.gameitem.inInteractableRange import net.torvald.terrarum.itemproperties.Material import net.torvald.terrarum.modulebasegame.TerrarumIngame +import net.torvald.terrarum.modulebasegame.gameactors.DroppedItem /** * TEST ITEM; this item cuts every wire on a cell, and has no durability drop @@ -41,6 +44,7 @@ class WireCutterAll(originalID: ItemID) : GameItem(originalID) { wires?.forEach { ingame.world.removeTileWire(mouseTile.x, mouseTile.y, it, false) + ingame.addNewActor(DroppedItem(it, mouseTile.x * TILE_SIZE, mouseTile.y * TILE_SIZE)) } ?: return@inInteractableRange false true