diff --git a/assets/mods/basegame/items/itemid.csv b/assets/mods/basegame/items/itemid.csv index e4103f144..d81f276a0 100644 --- a/assets/mods/basegame/items/itemid.csv +++ b/assets/mods/basegame/items/itemid.csv @@ -49,6 +49,7 @@ id;classname;tags 48;net.torvald.terrarum.modulebasegame.gameitems.ItemAlloyingFurnace;FIXTURE,STATION 49;net.torvald.terrarum.modulebasegame.gameitems.ItemLogicSignalAdder;FIXTURE,SIGNAL 50;net.torvald.terrarum.modulebasegame.gameitems.ItemSolderingWire; +51;net.torvald.terrarum.modulebasegame.gameitems.ItemElectricWorkbench;FIXTURE,CRAFTING # ingots 112;net.torvald.terrarum.modulebasegame.gameitems.IngotCopper;INGOT diff --git a/assets/mods/basegame/locales/en/items.json b/assets/mods/basegame/locales/en/items.json index a44d37eb5..7f5d1a378 100644 --- a/assets/mods/basegame/locales/en/items.json +++ b/assets/mods/basegame/locales/en/items.json @@ -9,6 +9,7 @@ "ITEM_DOOR_EBONY": "Ebony Door", "ITEM_DOOR_BIRCH": "Birch Door", "ITEM_DOOR_ROSEWOOD": "Rosewood Door", + "ITEM_ELECTRIC_WORKBENCH": "Electric Workbench", "ITEM_FURNACE_AND_ANVIL": "Furnace and Anvil", "ITEM_GEM_RUBY": "Raw Ruby", "ITEM_GEM_EMERALD": "Raw Emerald", diff --git a/assets/mods/basegame/locales/koKR/items.json b/assets/mods/basegame/locales/koKR/items.json index 35283b89f..29fd81353 100644 --- a/assets/mods/basegame/locales/koKR/items.json +++ b/assets/mods/basegame/locales/koKR/items.json @@ -9,6 +9,7 @@ "ITEM_DOOR_EBONY": "흑단 문", "ITEM_DOOR_BIRCH": "백단 문", "ITEM_DOOR_ROSEWOOD": "자단 문", + "ITEM_ELECTRIC_WORKBENCH": "전기 작업대", "ITEM_FURNACE_AND_ANVIL": "화로와 모루", "ITEM_GEM_RUBY": "홍옥석", "ITEM_GEM_EMERALD": "취옥석", diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWorkbench.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWorkbench.kt index 93f1aa75e..6ce70e049 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWorkbench.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWorkbench.kt @@ -32,4 +32,30 @@ class FixtureWorkbench : FixtureBase, CraftingStation { actorValue[AVKey.BASEMASS] = 20.0 } +} + +/** + * Created by minjaesong on 2024-03-14. + */ +class FixtureElectricWorkbench : FixtureBase, CraftingStation { + + @Transient override val tags = listOf("soldering") + + constructor() : super( + BlockBox(BlockBox.NO_COLLISION, 2, 2), + nameFun = { Lang["ITEM_ELECTRIC_WORKBENCH"] }, + mainUI = UICrafting(null) + ) { + val itemImage = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/electric_workbench.tga") + + density = BlockCodex[Block.PLANK_NORMAL].density.toDouble() + setHitboxDimension(itemImage.texture.width, itemImage.texture.height, 0, 0) + + makeNewSprite(TextureRegionPack(itemImage.texture, 32, 32)).let { + it.setRowsAndFrames(2,1) + } + + actorValue[AVKey.BASEMASS] = 40.0 + } + } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt index 20f12765d..8660982db 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt @@ -114,16 +114,16 @@ open class FixtureItemBase(originalID: ItemID, val fixtureClassName: String) : G */ companion object { /** Always use with Getter! */ - fun getItemImageFromSheet(module: String, path: String, tileW: Int, tileH: Int): TextureRegion { - val id = "$module/${path.replace('\\','/')}" + fun getItemImageFromSheet(module: String, path: String, tileW: Int, tileH: Int, tileIndexX: Int = 0, tileIndexY: Int = 0): TextureRegion { + val id = "sheet:$module/${path.replace('\\','/')}" return (CommonResourcePool.getOrPut(id) { TextureRegionPack(ModMgr.getGdxFile(module, path), tileW, tileH) - } as TextureRegionPack).get(0,0) + } as TextureRegionPack).get(tileIndexX, tileIndexY) } /** Always use with Getter! */ fun getItemImageFromSingleImage(module: String, path: String): TextureRegion { - val id = "$module/${path.replace('\\','/')}" + val id = "singleton:$module/${path.replace('\\','/')}" return CommonResourcePool.getOrPut(id) { TextureRegion(Texture(ModMgr.getGdxFile(module, path))) } as TextureRegion diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemWorkbench.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemWorkbench.kt index b8eb44fe0..2967a26bc 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemWorkbench.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemWorkbench.kt @@ -18,4 +18,21 @@ class ItemWorkbench(originalID: ItemID) : FixtureItemBase(originalID, "net.torva override var baseToolSize: Double? = baseMass override var originalName = "ITEM_WORKBENCH" -} \ No newline at end of file +} + +/** + * Created by minjaesong on 2024-03-14. + */ +class ItemElectricWorkbench(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureElectricWorkbench") { + + + override var baseMass = 40.0 + override val canBeDynamic = false + override val materialId = "" + override val itemImage: TextureRegion + get() = getItemImageFromSheet("basegame", "sprites/fixtures/electric_workbench.tga", 32, 32, 0, 1) + + override var baseToolSize: Double? = baseMass + override var originalName = "ITEM_ELECTRIC_WORKBENCH" + +}