diff --git a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt index 3071f5d18..be5af85fe 100644 --- a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt +++ b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt @@ -1264,9 +1264,9 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) { val fixturesUnderHand = ArrayList() val mobsUnderHand = ArrayList() actorsUnderMouse.forEach { - if (it is FixtureBase && it.mainUI == null) + if (it is FixtureBase) // && it.mainUI == null) // pickup avail check must be done against fixture.canBeDespawned fixturesUnderHand.add(it) - else + else if (it !is FixtureBase) mobsUnderHand.add(it) } diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt index 437a13767..f47081e55 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt @@ -244,7 +244,7 @@ open class FixtureBase : ActorWithBody, CuedByTerrainChange { if (canBeDespawned) { printdbg(this, "despawn at T${INGAME.WORLD_UPDATE_TIMER}: ${nameFun()}") - printStackTrace(this) +// printStackTrace(this) // remove filler block forEachBlockbox { x, y, _, _ -> @@ -312,7 +312,13 @@ open class FixtureBase : ActorWithBody, CuedByTerrainChange { } override fun flagDespawn() { - if (canBeDespawned) flagDespawn = true + if (canBeDespawned) { + printdbg(this, "Fixture at (${this.intTilewiseHitbox}) flagging despawn: ${this.javaClass.canonicalName}") + flagDespawn = true + } + else { + printdbg(this, "Fixture at (${this.intTilewiseHitbox}) CANNOT be despawned: ${this.javaClass.canonicalName}") + } } /** diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureLogicSignalEmitter.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureLogicSignalEmitter.kt index 150a6f817..da7b72dab 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureLogicSignalEmitter.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureLogicSignalEmitter.kt @@ -27,7 +27,7 @@ class FixtureLogicSignalEmitter : FixtureBase, Electric { val itemImage = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/signal_source.tga") density = 1400.0 - setHitboxDimension(TILE_SIZE, TILE_SIZE, 0, -1) + setHitboxDimension(TILE_SIZE, TILE_SIZE, 0, 1) makeNewSprite(TextureRegionPack(itemImage.texture, TILE_SIZE, TILE_SIZE)).let { it.setRowsAndFrames(1,1) diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt index 5988a5cc8..651a94012 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt @@ -23,7 +23,7 @@ internal class FixtureStorageChest : FixtureBase { (mainUI as UIStorageChest).chestInventory = this.inventory!! (mainUI as UIStorageChest).chestNameFun = this.nameFun - setHitboxDimension(TILE_SIZE, TILE_SIZE, 0, -1) + setHitboxDimension(TILE_SIZE, TILE_SIZE, 0, 1) makeNewSprite(TextureRegionPack(CommonResourcePool.getAsTextureRegion("itemplaceholder_16").texture, 16, 16)).let { it.setRowsAndFrames(1,1) diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSwingingDoorBase.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSwingingDoorBase.kt index dd38b9abc..a3d32cc2d 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSwingingDoorBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSwingingDoorBase.kt @@ -126,7 +126,7 @@ open class FixtureSwingingDoorBase : FixtureBase { (if (isOpacityActuallyLuminosity) lightBoxList else shadeBoxList)[0].light = opacity // define physical size - setHitboxDimension(TILE_SIZE * tilewiseHitboxWidth, TILE_SIZE * tilewiseHitboxHeight, 0, 0) + setHitboxDimension(TILE_SIZE * tilewiseHitboxWidth, TILE_SIZE * tilewiseHitboxHeight, 0, 1) blockBox = BlockBox(BlockBox.FULL_COLLISION, tilewiseHitboxWidth, tilewiseHitboxHeight) doorHoldLength = hashMapOf(