diff --git a/assets/mods/basegame/items/itemid.csv b/assets/mods/basegame/items/itemid.csv index 682847e05..e58a8d7d8 100644 --- a/assets/mods/basegame/items/itemid.csv +++ b/assets/mods/basegame/items/itemid.csv @@ -46,6 +46,7 @@ id;classname;tags 45;net.torvald.terrarum.modulebasegame.gameitems.ItemLogicSignalLatch;FIXTURE,SIGNAL 46;net.torvald.terrarum.modulebasegame.gameitems.ItemLogicSignalRepeaterHorz;FIXTURE,SIGNAL 47;net.torvald.terrarum.modulebasegame.gameitems.ItemWrench;TOOL,WRENCH +48;net.torvald.terrarum.modulebasegame.gameitems.ItemAlloyingFurnace;FIXTURE,STATION # ingots 112;net.torvald.terrarum.modulebasegame.gameitems.IngotCopper;INGOT diff --git a/assets/mods/basegame/items/items.tga b/assets/mods/basegame/items/items.tga index 24d2bc534..b952e36c9 100644 --- a/assets/mods/basegame/items/items.tga +++ b/assets/mods/basegame/items/items.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:31ce5594842eed5fc3fe35aa9c93dc7dd310f52529bdb8c44f5da3557d5fe3bb +oid sha256:7225619633ef3ec7de8d005d2295ba96ffe48f2f56ed740e389fac58f0b6b721 size 2408466 diff --git a/assets/mods/basegame/locales/en/itemdesc.json b/assets/mods/basegame/locales/en/itemdesc.json index ffb5d1319..ddca16a6a 100644 --- a/assets/mods/basegame/locales/en/itemdesc.json +++ b/assets/mods/basegame/locales/en/itemdesc.json @@ -42,7 +42,8 @@ "TOOLTIP_item@basegame:28": "A music vending machine (free to play)", "TOOLTIP_item@basegame:29": "A coal lookalike that burns just as well and is renewable", "TOOLTIP_item@basegame:36": "Creates wires from metal ingots", - "TOOLTIP_item@basegame:47": "Reorients electronic components", + "TOOLTIP_item@basegame:47": "Reorients gadgets", + "TOOLTIP_item@basegame:48": "Melts two metal ingots to make a bar of alloy", "TOOLTIP_item@basegame:114": "A precious fuel for the steel production", diff --git a/assets/mods/basegame/locales/en/items.json b/assets/mods/basegame/locales/en/items.json index af9c10f6c..1e19a82ce 100644 --- a/assets/mods/basegame/locales/en/items.json +++ b/assets/mods/basegame/locales/en/items.json @@ -1,4 +1,5 @@ { + "ITEM_ALLOYING_FURNACE": "Alloying Furnace", "ITEM_CALENDAR": "Calendar", "ITEM_CHARCOAL": "Charcoal", "ITEM_CHERRY_BOMB": "Bomb", diff --git a/assets/mods/basegame/locales/koKR/itemdesc.json b/assets/mods/basegame/locales/koKR/itemdesc.json index db202ebfa..c1509eb9f 100644 --- a/assets/mods/basegame/locales/koKR/itemdesc.json +++ b/assets/mods/basegame/locales/koKR/itemdesc.json @@ -41,7 +41,8 @@ "TOOLTIP_item@basegame:28": "음악 자판기입이다 (무료 플레이)", "TOOLTIP_item@basegame:29": "석탄과 비슷하고 똑같이 잘 타지만 재생 가능합니다", "TOOLTIP_item@basegame:36": "금속 주괴를 사용해 철사를 뽑아냅니다", - "TOOLTIP_item@basegame:47": "전자 장치의 방향을 바꿉니다", + "TOOLTIP_item@basegame:47": "기기의 방향을 바꿉니다", + "TOOLTIP_item@basegame:48": "두 금속 괴를 녹여 합금을 만듭니다", "TOOLTIP_item@basegame:114": "강철 생산의 소중한 연료입니다", diff --git a/assets/mods/basegame/locales/koKR/items.json b/assets/mods/basegame/locales/koKR/items.json index 24d135a25..8552989de 100644 --- a/assets/mods/basegame/locales/koKR/items.json +++ b/assets/mods/basegame/locales/koKR/items.json @@ -1,4 +1,5 @@ { + "ITEM_ALLOYING_FURNACE": "합금 화로", "ITEM_CALENDAR": "달력", "ITEM_CHARCOAL": "목탄", "ITEM_CHERRY_BOMB": "폭탄", diff --git a/assets/mods/basegame/sprites/fixtures/alloying_furnace.tga b/assets/mods/basegame/sprites/fixtures/alloying_furnace.tga index cad5c7245..6c01a44e7 100644 --- a/assets/mods/basegame/sprites/fixtures/alloying_furnace.tga +++ b/assets/mods/basegame/sprites/fixtures/alloying_furnace.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dc8658cbebf1321e86f65dcd3fb4f37bdf8be4656cf950a94d0b610f8fd9c345 +oid sha256:fe94f699ae969acd4bf582f1b34edf67fe8c43964a84b1c297c13171ed324444 size 12306 diff --git a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt index 4e81ba796..3aa80b097 100644 --- a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt +++ b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt @@ -47,7 +47,7 @@ class EntryPoint : ModuleEntryPoint() { } } } - + println("\n[Basegame.EntryPoint] Welcome back!") } diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureAlloyingCrucible.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureAlloyingFurnace.kt similarity index 98% rename from src/net/torvald/terrarum/modulebasegame/gameactors/FixtureAlloyingCrucible.kt rename to src/net/torvald/terrarum/modulebasegame/gameactors/FixtureAlloyingFurnace.kt index 34288e2c7..fddb569ac 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureAlloyingCrucible.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureAlloyingFurnace.kt @@ -20,13 +20,13 @@ import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameparticles.ParticleVanishingSprite import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.modulebasegame.TerrarumIngame -import net.torvald.terrarum.modulebasegame.ui.UISmelterBasic +import net.torvald.terrarum.modulebasegame.ui.UIAlloyingFurnace import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** * Created by minjaesong on 2024-03-09. */ -class FixtureAlloyingCrucible : FixtureBase { +class FixtureAlloyingFurnace : FixtureBase { var fuelCaloriesNow = 0.0 // arbitrary number, may as well be watts or joules @@ -146,7 +146,7 @@ class FixtureAlloyingCrucible : FixtureBase { constructor() : super( BlockBox(BlockBox.NO_COLLISION, 2, 2), // temporary value, will be overwritten by spawn() - nameFun = { Lang["ITEM_ALLOYING_SMELTER"] }, + nameFun = { Lang["ITEM_ALLOYING_FURNACE"] }, ) { CommonResourcePool.addToLoadingList("particles-tiki_smoke.tga") { TextureRegionPack(ModMgr.getGdxFile("basegame", "particles/bigger_smoke.tga"), 16, 16) @@ -167,7 +167,7 @@ class FixtureAlloyingCrucible : FixtureBase { actorValue[AVKey.BASEMASS] = 100.0 -// this.mainUI = UIAlloyingCrucible(this) + this.mainUI = UIAlloyingFurnace(this) } diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemSmelterBasic.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemSmelterBasic.kt index 02fb94581..d3beec395 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemSmelterBasic.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemSmelterBasic.kt @@ -2,9 +2,7 @@ package net.torvald.terrarum.modulebasegame.gameitems import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.CommonResourcePool -import net.torvald.terrarum.ModMgr import net.torvald.terrarum.gameitems.ItemID -import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** * Created by minjaesong on 2023-12-04. @@ -18,4 +16,18 @@ class ItemSmelterBasic(originalID: ItemID) : FixtureItemBase(originalID, "net.to override var baseToolSize: Double? = baseMass override var originalName = "ITEM_SMELTER_SMALL" +} + +/** + * Created by minjaesong on 2024-03-10. + */ +class ItemAlloyingFurnace(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureAlloyingFurnace") { + override var baseMass = 100.0 + override val canBeDynamic = false + override val materialId = "" + override val itemImage: TextureRegion + get() = CommonResourcePool.getAsItemSheet("basegame.items").get(13,3) + + override var baseToolSize: Double? = baseMass + override var originalName = "ITEM_ALLOYING_FURNACE" } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/ui/SmelterGuiEventBuilder.kt b/src/net/torvald/terrarum/modulebasegame/ui/SmelterGuiEventBuilder.kt index 383bfe47f..8c6011260 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/SmelterGuiEventBuilder.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/SmelterGuiEventBuilder.kt @@ -14,10 +14,11 @@ import java.util.concurrent.atomic.AtomicInteger */ object SmelterGuiEventBuilder { + const val SLOT_INDEX_STRIDE = 16 const val PRODUCT_SLOT = 0 - const val ORE_SLOT_FIRST = 1 - const val FIRE_SLOT_FIRST = 2 - + const val ORE_SLOT_FIRST = SLOT_INDEX_STRIDE + const val FIRE_SLOT_FIRST = 2*SLOT_INDEX_STRIDE + @@ -25,7 +26,7 @@ object SmelterGuiEventBuilder { clickedOnState: AtomicInteger, fireboxItemStatus: SmelterItemStatus, - oreItemStatus: SmelterItemStatus, + oreItemStatus: List, getPlayerInventory: () -> ActorInventory, @@ -42,7 +43,10 @@ object SmelterGuiEventBuilder { // oreslot if (amount != null && gameItem != null) { - if (clickedOnState.get() == ORE_SLOT_FIRST) { + val clicked = clickedOnState.get() + + if (clicked in ORE_SLOT_FIRST until ORE_SLOT_FIRST + 16) { + val oreItemStatus = oreItemStatus[clicked - ORE_SLOT_FIRST] if (oreItemStatus.itm == gameItem.dynamicID) { playerInventory.remove(gameItem.dynamicID, amount) oreItemStatus.changeCount(amount) @@ -53,7 +57,7 @@ object SmelterGuiEventBuilder { } } // firebox - else if (clickedOnState.get() == FIRE_SLOT_FIRST) { + else if (clicked == FIRE_SLOT_FIRST) { if (fireboxItemStatus.isNull()) { playerInventory.remove(gameItem.dynamicID, amount) fireboxItemStatus.set(gameItem.dynamicID, amount) @@ -73,7 +77,7 @@ object SmelterGuiEventBuilder { clickedOnState: AtomicInteger, fireboxItemStatus: SmelterItemStatus, - oreItemStatus: SmelterItemStatus, + oreItemStatus: List, getPlayerInventory: () -> ActorInventory, @@ -83,33 +87,36 @@ object SmelterGuiEventBuilder { val scrollY = -scrollY if (gameItem != null) { val addCount1 = scrollY.toLong() + val clicked = clickedOnState.get() + if (clicked in ORE_SLOT_FIRST until ORE_SLOT_FIRST + 16) { + val oreItemStatus = oreItemStatus[clicked - ORE_SLOT_FIRST] + if ((oreItemStatus.isNull() || oreItemStatus.itm == gameItem.dynamicID)) { + val itemToUse = oreItemStatus.itm ?: gameItem.dynamicID - if (clickedOnState.get() == ORE_SLOT_FIRST && (oreItemStatus.isNull() || oreItemStatus.itm == gameItem.dynamicID)) { - val itemToUse = oreItemStatus.itm ?: gameItem.dynamicID + val addCount2 = scrollY.toLong().coerceIn( + -(playerInventory.searchByID(itemToUse)?.qty ?: 0L), + oreItemStatus.qty ?: 0L, + ) - val addCount2 = scrollY.toLong().coerceIn( - -(playerInventory.searchByID(itemToUse)?.qty ?: 0L), - oreItemStatus.qty ?: 0L, - ) - - // add to the inventory slot - if (oreItemStatus.isNotNull() && addCount1 >= 1L) { - playerInventory.add(oreItemStatus.itm!!, addCount2) - oreItemStatus.changeCount(-addCount2) - } - // remove from the inventory slot - else if (addCount1 <= -1L) { - playerInventory.remove(itemToUse, -addCount2) - if (oreItemStatus.isNull()) - oreItemStatus.set(itemToUse, -addCount2) - else + // add to the inventory slot + if (oreItemStatus.isNotNull() && addCount1 >= 1L) { + playerInventory.add(oreItemStatus.itm!!, addCount2) oreItemStatus.changeCount(-addCount2) + } + // remove from the inventory slot + else if (addCount1 <= -1L) { + playerInventory.remove(itemToUse, -addCount2) + if (oreItemStatus.isNull()) + oreItemStatus.set(itemToUse, -addCount2) + else + oreItemStatus.changeCount(-addCount2) + } + if (oreItemStatus.qty == 0L) oreItemStatus.nullify() + else if (oreItemStatus.isNotNull() && oreItemStatus.qty!! < 0L) throw Error("Item removal count is larger than what was on the slot") + itemListUpdateKeepCurrentFilter() } - if (oreItemStatus.qty == 0L) oreItemStatus.nullify() - else if (oreItemStatus.isNotNull() && oreItemStatus.qty!! < 0L) throw Error("Item removal count is larger than what was on the slot") - itemListUpdateKeepCurrentFilter() } - else if (clickedOnState.get() == FIRE_SLOT_FIRST && (fireboxItemStatus.isNull() || fireboxItemStatus.itm == gameItem.dynamicID)) { + else if (clicked == FIRE_SLOT_FIRST && (fireboxItemStatus.isNull() || fireboxItemStatus.itm == gameItem.dynamicID)) { val itemToUse = fireboxItemStatus.itm ?: gameItem.dynamicID val addCount2 = scrollY.toLong().coerceIn( @@ -149,7 +156,7 @@ object SmelterGuiEventBuilder { playerThings: UITemplateHalfInventory, - oreItemStatus: SmelterItemStatus, + oreItemStatus: SmelterItemStatus, oreSlotIndex: Int, getPlayerInventory: () -> ActorInventory, @@ -157,8 +164,8 @@ object SmelterGuiEventBuilder { itemListUpdateKeepCurrentFilter: () -> Unit ): (GameItem?, Long, Int, Any?, UIItemInventoryCellBase) -> Unit { return { gameItem: GameItem?, amount: Long, mouseButton: Int, itemExtraInfo: Any?, theButton: UIItemInventoryCellBase -> - if (clickedOnState.get() != ORE_SLOT_FIRST) { - clickedOnState.set(ORE_SLOT_FIRST) + if (clickedOnState.get() != ORE_SLOT_FIRST + oreSlotIndex) { + clickedOnState.set(ORE_SLOT_FIRST + oreSlotIndex) theButton.forceHighlighted = true buttonsToUnhighlight().forEach { it.forceHighlighted = false } playerThings.itemList.itemPage = 0 @@ -186,7 +193,7 @@ object SmelterGuiEventBuilder { fun getOreItemSlotWheelFun( clickedOnState: AtomicInteger, - oreItemStatus: SmelterItemStatus, + oreItemStatus: SmelterItemStatus, oreSlotIndex: Int, getPlayerInventory: () -> ActorInventory, @@ -195,7 +202,7 @@ object SmelterGuiEventBuilder { ): (GameItem?, Long, Float, Float, Any?, UIItemInventoryCellBase) -> Unit { return { gameItem: GameItem?, amount: Long, scrollX: Float, scrollY: Float, itemExtraInfo: Any?, theButton: UIItemInventoryCellBase -> val playerInventory = getPlayerInventory() val scrollY = -scrollY - if (clickedOnState.get() == ORE_SLOT_FIRST && oreItemStatus.isNotNull()) { + if (clickedOnState.get() == ORE_SLOT_FIRST + oreSlotIndex && oreItemStatus.isNotNull()) { val removeCount1 = scrollY.toLong() val removeCount2 = scrollY.toLong().coerceIn( -oreItemStatus.qty!!, diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIAlloyingFurnace.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIAlloyingFurnace.kt new file mode 100644 index 000000000..38e4e7e2f --- /dev/null +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIAlloyingFurnace.kt @@ -0,0 +1,132 @@ +package net.torvald.terrarum.modulebasegame.ui + +import com.badlogic.gdx.graphics.Color +import com.badlogic.gdx.graphics.OrthographicCamera +import com.badlogic.gdx.graphics.g2d.SpriteBatch +import net.torvald.terrarum.App +import net.torvald.terrarum.CommonResourcePool +import net.torvald.terrarum.INGAME +import net.torvald.terrarum.ModMgr +import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory +import net.torvald.terrarum.modulebasegame.gameactors.FixtureAlloyingFurnace +import net.torvald.terrarum.modulebasegame.gameactors.InventoryPair +import net.torvald.terrarum.ui.Toolkit +import net.torvald.terrarum.ui.UICanvas +import net.torvald.terrarum.ui.UIItemCatBar +import net.torvald.terrarum.ui.UIItemInventoryElemWide +import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack +import java.util.concurrent.atomic.AtomicInteger + +class UIAlloyingFurnace(smelter: FixtureAlloyingFurnace) : UICanvas( + toggleKeyLiteral = "control_key_inventory", + toggleButtonLiteral = "control_gamepad_start" +) { + + + override var width = Toolkit.drawWidth + override var height = App.scr.height + + private var clickedOnState = AtomicInteger(SmelterGuiEventBuilder.PRODUCT_SLOT) // Used to set inventory filter and its behaviour. 0: default, 1: oreslot, 2: firebox + + private val playerThings = UITemplateHalfInventory(this, false).also { + it.itemListTouchDownFun = SmelterGuiEventBuilder.getPlayerSlotTouchDownFun( + clickedOnState, + smelter.fireboxItemStatus, + listOf(smelter.oreItem1Status, smelter.oreItem2Status), + { getPlayerInventory() }, + { itemListUpdateKeepCurrentFilter() } + ) + it.itemListWheelFun = SmelterGuiEventBuilder.getPlayerSlotWheelFun( + clickedOnState, + smelter.fireboxItemStatus, + listOf(smelter.oreItem1Status, smelter.oreItem2Status), + { getPlayerInventory() }, + { itemListUpdateKeepCurrentFilter() } + ) + } + + fun getPlayerInventory(): ActorInventory = INGAME.actorNowPlaying!!.inventory + + init { + CommonResourcePool.addToLoadingList("basegame_gui_smelter_icons") { + TextureRegionPack(ModMgr.getGdxFile("basegame", "gui/smelter_icons.tga"), 20, 20) + } + CommonResourcePool.loadAll() + } + + private val smelterCellIcons = CommonResourcePool.getAsTextureRegionPack("basegame_gui_smelter_icons") + + private var smelterBackdrops = + CommonResourcePool.getAsTextureRegionPack("basegame/sprites/fixtures/alloying_furnace.tga") + + + private val leftPanelWidth = playerThings.width + private val leftPanelHeight = playerThings.height + private val leftPanelX = playerThings.posX - leftPanelWidth - UIItemInventoryItemGrid.listGap - UIItemInventoryElemWide.height + private val leftPanelY = playerThings.posY + + private val backdropColour = Color(0x999999_c8.toInt()) + private val backdropZoom = 6 + private val backdropX = (leftPanelX + (leftPanelWidth - smelterBackdrops.tileW * backdropZoom) / 2).toFloat() + private val backdropY = (leftPanelY + (leftPanelHeight - smelterBackdrops.tileH * backdropZoom) / 2).toFloat() + + private val oreX1 = backdropX + 6 * backdropZoom + 6 + private val oreX2 = backdropX + 18 * backdropZoom + 6 + private val oreY = backdropY + 23 * backdropZoom + 3 + + private val fireboxX = backdropX + 12 * backdropZoom + 6 + private val fireboxY = backdropY + 39 * backdropZoom + 3 + + private val productX = backdropX + 37 * backdropZoom + 3 + private val productY = backdropY + 39 * backdropZoom + 3 + + private val thermoX = (backdropX + 24 * backdropZoom + 1).toInt() + private val thermoY = (backdropY + 39 * backdropZoom + 3).toInt() + + + + + private var encumbrancePerc = 0f + + private fun itemListUpdate() { + // let itemlists be sorted + inventoryFilter = { _: InventoryPair -> true } + playerThings.rebuild(UIItemCatBar.FILTER_CAT_ALL) + encumbrancePerc = getPlayerInventory().encumberment.toFloat() + } + + private var inventoryFilter = { _: InventoryPair -> true } + + private fun itemListUpdate(filter: (InventoryPair) -> Boolean) { + // let itemlists be sorted + inventoryFilter = filter + playerThings.rebuild(filter) + encumbrancePerc = getPlayerInventory().encumberment.toFloat() + } + + private fun itemListUpdateKeepCurrentFilter() { + // let itemlists be sorted + playerThings.rebuild(inventoryFilter) + encumbrancePerc = getPlayerInventory().encumberment.toFloat() + } + + init { + addUIitem(playerThings) +// addUIitem(oreItemSlot) +// addUIitem(fireboxItemSlot) +// addUIitem(productItemslot) + } + + override fun updateImpl(delta: Float) { + TODO("Not yet implemented") + } + + override fun renderImpl(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera) { + TODO("Not yet implemented") + } + + override fun dispose() { + TODO("Not yet implemented") + } + +} diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UISmelterBasic.kt b/src/net/torvald/terrarum/modulebasegame/ui/UISmelterBasic.kt index 1ee7cf348..1b51e9da7 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UISmelterBasic.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UISmelterBasic.kt @@ -10,6 +10,7 @@ import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory import net.torvald.terrarum.modulebasegame.gameactors.FixtureSmelterBasic import net.torvald.terrarum.modulebasegame.gameactors.InventoryPair import net.torvald.terrarum.modulebasegame.ui.SmelterGuiEventBuilder.PRODUCT_SLOT +import net.torvald.terrarum.modulebasegame.ui.SmelterGuiEventBuilder.SLOT_INDEX_STRIDE import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.tooltipShowing import net.torvald.terrarum.ui.* import net.torvald.terrarum.ui.UIItemCatBar.Companion.FILTER_CAT_ALL @@ -37,14 +38,14 @@ class UISmelterBasic(val smelter: FixtureSmelterBasic) : UICanvas( it.itemListTouchDownFun = SmelterGuiEventBuilder.getPlayerSlotTouchDownFun( clickedOnState, smelter.fireboxItemStatus, - smelter.oreItemStatus, + listOf(smelter.oreItemStatus), { getPlayerInventory() }, { itemListUpdateKeepCurrentFilter() } ) it.itemListWheelFun = SmelterGuiEventBuilder.getPlayerSlotWheelFun( clickedOnState, smelter.fireboxItemStatus, - smelter.oreItemStatus, + listOf(smelter.oreItemStatus), { getPlayerInventory() }, { itemListUpdateKeepCurrentFilter() } ) @@ -112,14 +113,14 @@ class UISmelterBasic(val smelter: FixtureSmelterBasic) : UICanvas( clickedOnState, { listOf(fireboxItemSlot) }, playerThings, - smelter.oreItemStatus, + smelter.oreItemStatus, 1, { getPlayerInventory() }, { filter -> itemListUpdate(filter) }, { itemListUpdateKeepCurrentFilter() } ), wheelFun = SmelterGuiEventBuilder.getOreItemSlotWheelFun( clickedOnState, - smelter.oreItemStatus, + smelter.oreItemStatus, 1, { getPlayerInventory() }, { itemListUpdateKeepCurrentFilter() } ) @@ -309,7 +310,7 @@ class UISmelterBasic(val smelter: FixtureSmelterBasic) : UICanvas( override fun renderImpl(frameDelta: Float, batch: SpriteBatch, camera: OrthographicCamera) { - val clickedOn = clickedOnState.get() + val clickedOn = clickedOnState.get() / SLOT_INDEX_STRIDE batch.color = backdropColour diff --git a/work_files/graphics/items/basegame_items.kra b/work_files/graphics/items/basegame_items.kra index 3d805cd31..e83a60290 100644 --- a/work_files/graphics/items/basegame_items.kra +++ b/work_files/graphics/items/basegame_items.kra @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eb9bb0883094e58ec290101143e7d8993d5dee63d002cf47bba31bf78433b4ac -size 1523463 +oid sha256:bdfe3f0cc5878c4082acced3d2858bc4f712d124e2ba25c7f16c6f8d0cfb6251 +size 1536221 diff --git a/work_files/graphics/sprites/fixtures/alloying_furnace.kra b/work_files/graphics/sprites/fixtures/alloying_furnace.kra index 52cc3b464..67a469f4a 100644 --- a/work_files/graphics/sprites/fixtures/alloying_furnace.kra +++ b/work_files/graphics/sprites/fixtures/alloying_furnace.kra @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d44a2428e98bce1b27493cc1102e25a4737761c2b00f18c06e861284c1d9abc0 -size 227940 +oid sha256:1f7eaead474e7833c18eac79365047d3db82762d7bf187178a5686eb4c7a6343 +size 227379