diff --git a/assets/mods/basegame/items/itemid.csv b/assets/mods/basegame/items/itemid.csv index f002e82e5..c85baee9e 100644 --- a/assets/mods/basegame/items/itemid.csv +++ b/assets/mods/basegame/items/itemid.csv @@ -8,6 +8,7 @@ id;classname 8;net.torvald.terrarum.modulebasegame.gameitems.ItemLogicSignalEmitter 9;net.torvald.terrarum.modulebasegame.gameitems.WireCutterAll 10;net.torvald.terrarum.modulebasegame.gameitems.ItemTypewriter +11;net.torvald.terrarum.modulebasegame.gameitems.ItemWallCalendar 256;net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorOak 257;net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorEbony diff --git a/assets/mods/basegame/sprites/fixtures/calendar.tga b/assets/mods/basegame/sprites/fixtures/calendar.tga new file mode 100644 index 000000000..3ac31b2dc --- /dev/null +++ b/assets/mods/basegame/sprites/fixtures/calendar.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:511edae339c321a9f0e6b11a25a1df6d0dff2de0893ebc94c3e990a2be7aa3bc +size 1042 diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt index ec9607ba0..4062e1ed2 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt @@ -1367,7 +1367,7 @@ open class ActorWithBody : Actor { //println("-> $stairHeight") // edge-detect mode - return if (yheight == 0) hitFloor.toInt() * 2 to stairHeight + return if (yheight == 0) hitFloor.toInt(1) to stairHeight // not an edge-detect && no collision else if (stairHeight == 0) 0 to 0 // there was collision and stairHeight <= AUTO_CLIMB_STRIDE diff --git a/src/net/torvald/terrarum/gameworld/WorldTime.kt b/src/net/torvald/terrarum/gameworld/WorldTime.kt index 4bd2da5c3..fb5e11a14 100644 --- a/src/net/torvald/terrarum/gameworld/WorldTime.kt +++ b/src/net/torvald/terrarum/gameworld/WorldTime.kt @@ -58,7 +58,7 @@ import kotlin.math.sin class WorldTime(initTime: Long = 0L) { /** It is not recommended to directly modify the TIME_T. Use provided methods instead. */ - var TIME_T = 0L // Epoch: Year 125 Spring 1st, 0h00:00 (Mondag) // 125-01-01 + var TIME_T = 0L // Epoch: Year 1 Spring 1st, 0h00:00 (Mondag) // 0001-01-01 init { TIME_T = initTime @@ -181,7 +181,7 @@ class WorldTime(initTime: Long = 0L) { const val MONTH_LENGTH = 30 // ingame calendar specific - const val EPOCH_YEAR = 125 + const val EPOCH_YEAR = 1 val YEAR_SECONDS = DAY_LENGTH * YEAR_DAYS diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTypewriter.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTypewriter.kt index 4405e1ba6..c5392daca 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTypewriter.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTypewriter.kt @@ -24,7 +24,7 @@ class FixtureTypewriter : FixtureBase { // constructor used when the game loads from the savefile constructor() : super( BlockBox(BlockBox.NO_COLLISION, 1, 1), - nameFun = { Lang["ITEM_TYPEWRITER"] } + nameFun = { Lang["GAME_ITEM_TYPEWRITER"] } ) { density = 2000.0 diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWallCalendar.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWallCalendar.kt new file mode 100644 index 000000000..3a7903356 --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWallCalendar.kt @@ -0,0 +1,31 @@ +package net.torvald.terrarum.modulebasegame.gameactors + +import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE +import net.torvald.terrarum.gameactors.AVKey +import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase +import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack + +/** + * Created by minjaesong on 2023-08-08. + */ +class FixtureWallCalendar : FixtureBase { + + constructor() : super( + BlockBox(BlockBox.NO_COLLISION, 1, 1), + nameFun = { Lang["GAME_ITEM_CALENDAR"] } + ) { + val itemImage = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/calendar.tga") + + density = 600.0 + setHitboxDimension(TILE_SIZE, TILE_SIZE, 0, 1) + + makeNewSprite(TextureRegionPack(itemImage.texture, TILE_SIZE, TILE_SIZE)).let { + it.setRowsAndFrames(1,1) + } + + actorValue[AVKey.BASEMASS] = 1.0 + } + + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTypewriter.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTypewriter.kt index 1a0bc2b1d..9cc7584e9 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTypewriter.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTypewriter.kt @@ -11,7 +11,7 @@ import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch class ItemTypewriter(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureTypewriter") { override var dynamicID: ItemID = originalID - override val originalName = "ITEM_TYPEWRITER" + override val originalName = "GAME_ITEM_TYPEWRITER" override var baseMass = FixtureTikiTorch.MASS override var stackable = true override var inventoryCategory = Category.MISC diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemWallCalendar.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemWallCalendar.kt new file mode 100644 index 000000000..5a612c124 --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemWallCalendar.kt @@ -0,0 +1,29 @@ +package net.torvald.terrarum.modulebasegame.gameitems + +import com.badlogic.gdx.graphics.g2d.TextureRegion +import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE +import net.torvald.terrarum.gameitems.ItemID + +/** + * Created by minjaesong on 2023-08-08. + */ +class ItemWallCalendar(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureWallCalendar") { + + override var dynamicID: ItemID = originalID + override val originalName = "GAME_ITEM_CALENDAR" + override var baseMass = 1.0 + override var stackable = true + override var inventoryCategory = Category.MISC + override val isUnique = false + override val isDynamic = false + override val materialId = "" + override val itemImage: TextureRegion + get() = getItemImageFromSingleImage("basegame", "sprites/fixtures/calendar.tga") + + override var baseToolSize: Double? = baseMass + + init { + equipPosition = EquipPosition.HAND_GRIP + } + +} \ No newline at end of file