From 52ae1768cb95f7560cd269505c22377791274800 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Thu, 11 Jan 2024 01:51:06 +0900 Subject: [PATCH] fix: setHitboxDimension had no instruction whatsoever for the fixtures --- .../modulecomputers/gameactors/FixtureHomeComputer.kt | 2 +- src/net/torvald/terrarum/gameactors/ActorWithBody.kt | 4 +++- .../modulebasegame/gameactors/FixtureSwingingDoorBase.kt | 2 +- .../terrarum/modulebasegame/gameactors/FixtureWallCalendar.kt | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt index d4457065f..b699f27fd 100644 --- a/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt +++ b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt @@ -37,7 +37,7 @@ class FixtureHomeComputer : FixtureBase { nameFun = { "Computer" } ) { density = 1400.0 - setHitboxDimension(TerrarumAppConfiguration.TILE_SIZE, TerrarumAppConfiguration.TILE_SIZE, 0, -1) + setHitboxDimension(TerrarumAppConfiguration.TILE_SIZE, TerrarumAppConfiguration.TILE_SIZE, 0, 0) makeNewSprite(FixtureBase.getSpritesheet("dwarventech", "sprites/fixtures/desktop_computer.tga", TILE_SIZE, TILE_SIZE)).let { it.setRowsAndFrames(1,1) diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt index 67b69dbaa..29c416317 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt @@ -419,6 +419,8 @@ open class ActorWithBody : Actor { /** * ONLY FOR INITIAL SETUP * + * For the fixtures, `ty` of `0` will plant the fixture to the ground (they will spawn 1 px lower). Use value `1` to spawn them flush to the block grids. + * * @param w * @param h * @param tx positive: translate sprite to LEFT. @@ -428,7 +430,7 @@ open class ActorWithBody : Actor { baseHitboxH = h baseHitboxW = w hitboxTranslateX = tx - hitboxTranslateY = ty + hitboxTranslateY = ty - 1 // plant the fixture to the ground hitbox.setDimension(w.toDouble(), h.toDouble()) } diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSwingingDoorBase.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSwingingDoorBase.kt index 5cccef3c9..38cfa4170 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSwingingDoorBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSwingingDoorBase.kt @@ -127,7 +127,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( diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWallCalendar.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWallCalendar.kt index 8be6fe66b..aad9f0ba9 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWallCalendar.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWallCalendar.kt @@ -23,7 +23,7 @@ class FixtureWallCalendar : FixtureBase { val itemImage = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/calendar.tga") density = 600.0 - setHitboxDimension(TILE_SIZE, TILE_SIZE, 0, 0) + setHitboxDimension(TILE_SIZE, TILE_SIZE, 0, 1) makeNewSprite(TextureRegionPack(itemImage.texture, TILE_SIZE, TILE_SIZE)).let { it.setRowsAndFrames(1,1)