diff --git a/lib/TerrarumSansBitmap.jar b/lib/TerrarumSansBitmap.jar index 1ca4a70fb..0472a05c6 100644 Binary files a/lib/TerrarumSansBitmap.jar and b/lib/TerrarumSansBitmap.jar differ diff --git a/src/net/torvald/terrarum/App.java b/src/net/torvald/terrarum/App.java index 465f7851e..738d8f95a 100644 --- a/src/net/torvald/terrarum/App.java +++ b/src/net/torvald/terrarum/App.java @@ -882,7 +882,6 @@ public class App implements ApplicationListener { ModMgr.INSTANCE.invoke(); // invoke Module Manager - TextureRegionPack.Companion.setGlobalFlipY(true); fontSmallNumbers = TinyAlphNum.INSTANCE; IME.invoke(); diff --git a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt index 7908f3844..a0bf02def 100644 --- a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt +++ b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt @@ -28,14 +28,6 @@ class EntryPoint : ModuleEntryPoint() { printdbg(this, "Hello, world!") - // the order of invocation is important! Material should be the first as blocks and items are depend on it. - ModMgr.GameMaterialLoader.invoke(moduleName) - ModMgr.GameItemLoader.invoke(moduleName) - ModMgr.GameBlockLoader.invoke(moduleName) - ModMgr.GameLanguageLoader.invoke(moduleName) - - - // load common resources to the AssetsManager CommonResourcePool.addToLoadingList("$moduleName.items16") { TextureRegionPack(ModMgr.getGdxFile(moduleName, "items/items.tga"), 16, 16, flipY = true) @@ -46,6 +38,17 @@ class EntryPoint : ModuleEntryPoint() { CommonResourcePool.addToLoadingList("$moduleName.items48") { TextureRegionPack(ModMgr.getGdxFile(moduleName, "items/items48.tga"), 48, 48, flipY = true) } + CommonResourcePool.addToLoadingList("inventory_category") { + TextureRegionPack("./assets/graphics/gui/inventory/category.tga", 20, 20, flipY = true) + } + CommonResourcePool.loadAll() + + + // the order of invocation is important! Material should be the first as blocks and items are depend on it. + ModMgr.GameMaterialLoader.invoke(moduleName) + ModMgr.GameItemLoader.invoke(moduleName) + ModMgr.GameBlockLoader.invoke(moduleName) + ModMgr.GameLanguageLoader.invoke(moduleName) ///////////////////////////////// diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureLogicSignalEmitter.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureLogicSignalEmitter.kt index f3da3c009..0be065a02 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureLogicSignalEmitter.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureLogicSignalEmitter.kt @@ -1,6 +1,9 @@ package net.torvald.terrarum.modulebasegame.gameactors +import com.badlogic.gdx.graphics.Texture +import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.CommonResourcePool +import net.torvald.terrarum.ModMgr import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.langpack.Lang @@ -20,7 +23,13 @@ class FixtureLogicSignalEmitter : FixtureBase, Electric { ) init { - println("INIT AGAIN FixtureLogicSignalEmitter") + CommonResourcePool.addToLoadingList("basegame-sprites-fixtures-signal_source.tga") { + val t = TextureRegion(Texture(ModMgr.getGdxFile("basegame", "sprites/fixtures/signal_source.tga"))) + t.flip(false, false) + /*return*/t + } + CommonResourcePool.loadAll() + density = 1400.0 setHitboxDimension(TILE_SIZE, TILE_SIZE, 0, -1) diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt new file mode 100644 index 000000000..3afc28d70 --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt @@ -0,0 +1,59 @@ +package net.torvald.terrarum.modulebasegame.gameitems + +import com.badlogic.gdx.graphics.g2d.TextureRegion +import net.torvald.terrarum.CommonResourcePool +import net.torvald.terrarum.INGAME +import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.gameactors.ActorWithBody +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID +import net.torvald.terrarum.gameitems.mouseInInteractableRange +import net.torvald.terrarum.itemproperties.Material +import net.torvald.terrarum.modulebasegame.TerrarumIngame +import net.torvald.terrarum.modulebasegame.gameactors.FixtureBase + +/** + * Created by minjaesong on 2021-12-13. + */ +open class FixtureItemBase(originalID: ItemID, val makeFixture: () -> FixtureBase) : GameItem(originalID) { + + protected val ghostItem = makeFixture() + + override var dynamicID: ItemID = originalID + override val originalName = "FIXTUREBASE" + override var baseMass = 1.0 + override var stackable = true + override var inventoryCategory = Category.MISC + override val isUnique = false + override val isDynamic = false + override val material = Material() + override val itemImage: TextureRegion + get() = CommonResourcePool.getAsTextureRegion("itemplaceholder_32") + override var baseToolSize: Double? = baseMass + + override fun effectWhenEquipped(actor: ActorWithBody, delta: Float) { + (INGAME as TerrarumIngame).blockMarkingActor.let { + it.setGhost(ghostItem) + it.isVisible = true + it.update(delta) + it.setGhostColourBlock() + mouseInInteractableRange(actor) { it.setGhostColourAllow(); true } + } + } + + override fun effectOnUnequip(actor: ActorWithBody, delta: Float) { + (INGAME as TerrarumIngame).blockMarkingActor.let { + it.unsetGhost() + it.isVisible = false + it.setGhostColourNone() + } + } + + override fun startPrimaryUse(actor: ActorWithBody, delta: Float) = mouseInInteractableRange(actor) { + val item = makeFixture() + + item.spawn(Terrarum.mouseTileX, Terrarum.mouseTileY - item.blockBox.height + 1) + // return true when placed, false when cannot be placed + } + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemLogicSignalEmitter.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemLogicSignalEmitter.kt index f6b9fa49a..504dd2f82 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemLogicSignalEmitter.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemLogicSignalEmitter.kt @@ -1,18 +1,15 @@ package net.torvald.terrarum.modulebasegame.gameitems -import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.CommonResourcePool -import net.torvald.terrarum.ModMgr import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.itemproperties.Material import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.gameactors.FixtureLogicSignalEmitter -class ItemLogicSignalEmitter(originalID: ItemID) : GameItem(originalID) { +class ItemLogicSignalEmitter(originalID: ItemID) : FixtureItemBase(originalID, { FixtureLogicSignalEmitter() }) { override var dynamicID: ItemID = originalID override val originalName = "ITEM_LOGIC_SIGNAL_EMITTER" @@ -27,28 +24,16 @@ class ItemLogicSignalEmitter(originalID: ItemID) : GameItem(originalID) { override var baseToolSize: Double? = baseMass init { - CommonResourcePool.addToLoadingList("basegame-sprites-fixtures-signal_source.tga") { - val t = TextureRegion(Texture(ModMgr.getGdxFile("basegame", "sprites/fixtures/signal_source.tga"))) - t.flip(false, true) - /*return*/t - } - CommonResourcePool.loadAll() - equipPosition = EquipPosition.HAND_GRIP } - override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Boolean { - val item = FixtureLogicSignalEmitter() - - return item.spawn(Terrarum.mouseTileX, Terrarum.mouseTileY) - // return true when placed, false when cannot be placed - } - override fun effectWhenEquipped(actor: ActorWithBody, delta: Float) { + super.effectWhenEquipped(actor, delta) (Terrarum.ingame!! as TerrarumIngame).selectedWireRenderClass = "signal" } override fun effectOnUnequip(actor: ActorWithBody, delta: Float) { + super.effectOnUnequip(actor, delta) (Terrarum.ingame!! as TerrarumIngame).selectedWireRenderClass = "" } diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt index 639a71504..1c074c0a0 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt @@ -2,11 +2,7 @@ package net.torvald.terrarum.modulebasegame.gameitems import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.CommonResourcePool -import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.gameitems.ItemID -import net.torvald.terrarum.gameitems.mouseInInteractableRange import net.torvald.terrarum.itemproperties.Material import net.torvald.terrarum.modulebasegame.gameactors.FixtureStorageChest import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch @@ -14,7 +10,7 @@ import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch /** * Created by minjaesong on 2019-07-08. */ -class ItemStorageChest(originalID: ItemID) : GameItem(originalID) { +class ItemStorageChest(originalID: ItemID) : FixtureItemBase(originalID, { FixtureStorageChest() }) { override var dynamicID: ItemID = originalID override val originalName = "ITEM_STORAGE_CHEST" @@ -32,11 +28,4 @@ class ItemStorageChest(originalID: ItemID) : GameItem(originalID) { equipPosition = EquipPosition.HAND_GRIP } - override fun startPrimaryUse(actor: ActorWithBody, delta: Float) = mouseInInteractableRange(actor) { - val item = FixtureStorageChest() - - item.spawn(Terrarum.mouseTileX, Terrarum.mouseTileY - item.blockBox.height + 1) - // return true when placed, false when cannot be placed - } - } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt index b10c7ab03..8787152d0 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt @@ -2,33 +2,14 @@ package net.torvald.terrarum.modulebasegame.gameitems import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.CommonResourcePool -import net.torvald.terrarum.INGAME -import net.torvald.terrarum.ModMgr -import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.gameitems.ItemID -import net.torvald.terrarum.gameitems.mouseInInteractableRange import net.torvald.terrarum.itemproperties.Material -import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch -import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** * Created by minjaesong on 2019-05-16. */ -class ItemTikiTorch(originalID: ItemID) : GameItem(originalID) { - - companion object { - private val ghostTorch = FixtureTikiTorch() - } - - init { - CommonResourcePool.addToLoadingList("sprites-fixtures-tiki_torch.tga") { - TextureRegionPack(ModMgr.getGdxFile("basegame", "sprites/fixtures/tiki_torch.tga"), 16, 32, flipY = true) - } - CommonResourcePool.loadAll() - } +class ItemTikiTorch(originalID: ItemID) : FixtureItemBase(originalID, { FixtureTikiTorch() }) { override var dynamicID: ItemID = originalID override val originalName = "ITEM_TIKI_TORCH" @@ -46,30 +27,4 @@ class ItemTikiTorch(originalID: ItemID) : GameItem(originalID) { equipPosition = EquipPosition.HAND_GRIP } - override fun effectWhenEquipped(actor: ActorWithBody, delta: Float) { - (INGAME as TerrarumIngame).blockMarkingActor.let { - it.setGhost(ghostTorch) - it.isVisible = true - it.update(delta) - it.setGhostColourBlock() - mouseInInteractableRange(actor) { it.setGhostColourAllow(); true } - } - } - - override fun effectOnUnequip(actor: ActorWithBody, delta: Float) { - (INGAME as TerrarumIngame).blockMarkingActor.let { - it.unsetGhost() - it.isVisible = false - it.setGhostColourNone() - } - } - - override fun startPrimaryUse(actor: ActorWithBody, delta: Float) = mouseInInteractableRange(actor) { - val item = FixtureTikiTorch() - - item.spawn(Terrarum.mouseTileX, Terrarum.mouseTileY - item.blockBox.height + 1) - // return true when placed, false when cannot be placed - - } - } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt index bca23001b..5bc4843d0 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt @@ -14,7 +14,6 @@ import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarum.ui.UIItemHorizontalFadeSlide -import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** * Created by minjaesong on 2017-10-21. @@ -112,10 +111,6 @@ class UIInventoryFull( init { handler.allowESCtoClose = true - CommonResourcePool.addToLoadingList("inventory_category") { - TextureRegionPack("./assets/graphics/gui/inventory/category.tga", 20, 20) - } - CommonResourcePool.loadAll() } private val SP = "\u3000 " diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt index f551c024d..01354e92f 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt @@ -19,10 +19,6 @@ import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() { init { - CommonResourcePool.addToLoadingList("inventory_category") { - TextureRegionPack("assets/graphics/gui/inventory/category.tga", 20, 20) - } - CommonResourcePool.loadAll() } private val labels = CommonResourcePool.getAsTextureRegionPack("inventory_category") diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt index 141e291e0..ea23f3b07 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt @@ -77,9 +77,6 @@ class UILoadDemoSavefiles(val remoCon: UIRemoCon) : UICanvas() { // private val hash = RandomWordsName(3) init { - CommonResourcePool.addToLoadingList("inventory_category") { - TextureRegionPack("./assets/graphics/gui/inventory/category.tga", 20, 20) - } CommonResourcePool.addToLoadingList("terrarum-defaultsavegamethumb") { TextureRegion(Texture(Gdx.files.internal("assets/graphics/gui/savegame_thumb_placeholder.png"))) } diff --git a/src/net/torvald/terrarum/ui/UIItemSpinner.kt b/src/net/torvald/terrarum/ui/UIItemSpinner.kt index baae44370..12ec82317 100644 --- a/src/net/torvald/terrarum/ui/UIItemSpinner.kt +++ b/src/net/torvald/terrarum/ui/UIItemSpinner.kt @@ -7,7 +7,6 @@ import com.badlogic.gdx.graphics.Pixmap import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.glutils.FrameBuffer import net.torvald.terrarum.* -import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** * Created by minjaesong on 2021-10-23. @@ -25,10 +24,6 @@ class UIItemSpinner( ) : UIItem(parentUI, initialX, initialY) { init { - CommonResourcePool.addToLoadingList("inventory_category") { - TextureRegionPack("assets/graphics/gui/inventory/category.tga", 20, 20) - } - CommonResourcePool.loadAll() } private val labels = CommonResourcePool.getAsTextureRegionPack("inventory_category") diff --git a/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt b/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt index bbd40a206..57fe40d1e 100644 --- a/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt +++ b/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt @@ -67,10 +67,6 @@ class UIItemTextLineInput( ) : UIItem(parentUI, initialX, initialY) { init { - CommonResourcePool.addToLoadingList("inventory_category") { - TextureRegionPack("assets/graphics/gui/inventory/category.tga", 20, 20) - } - CommonResourcePool.loadAll() } private val labels = CommonResourcePool.getAsTextureRegionPack("inventory_category") diff --git a/src/net/torvald/terrarum/ui/UIItemTextSelector.kt b/src/net/torvald/terrarum/ui/UIItemTextSelector.kt index b89955f83..b073f8a86 100644 --- a/src/net/torvald/terrarum/ui/UIItemTextSelector.kt +++ b/src/net/torvald/terrarum/ui/UIItemTextSelector.kt @@ -27,10 +27,6 @@ class UIItemTextSelector( ) : UIItem(parentUI, initialX, initialY) { init { - CommonResourcePool.addToLoadingList("inventory_category") { - TextureRegionPack("assets/graphics/gui/inventory/category.tga", 20, 20) - } - CommonResourcePool.loadAll() } override val mouseUp: Boolean