From b24a3da2ed9b35c36735254d08800211837eba6c Mon Sep 17 00:00:00 2001 From: minjaesong Date: Fri, 15 Mar 2024 02:26:42 +0900 Subject: [PATCH] colour changing wire cutter --- assets/mods/basegame/items/items.tga | 2 +- .../modulebasegame/gameitems/WireCutterAll.kt | 2 +- .../modulebasegame/ui/UIWireCutterPie.kt | 39 ++++++++++++------- work_files/graphics/items/basegame_items.kra | 4 +- 4 files changed, 28 insertions(+), 19 deletions(-) diff --git a/assets/mods/basegame/items/items.tga b/assets/mods/basegame/items/items.tga index e728696e1..cbf1fa63c 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:78a25d01dfbbfd4cde5a1ac034598191ba8e5b252e2a1969354a9b59906d72f6 +oid sha256:5f160e248d715e1d840c2a6c7287727b331f137919e6d2b52a29923cd91a18e5 size 2408466 diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt index dc06f40f8..928410a53 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt @@ -94,7 +94,7 @@ class WireCutterAll(originalID: ItemID) : GameItem(originalID), FixtureInteracti override val itemImage: TextureRegion get() = CommonResourcePool.getAsItemSheet("basegame.items").get(1, 3) - @Transient val selectorUI = UIWireCutterPie() + @Transient val selectorUI = UIWireCutterPie(originalID) init { stackable = false diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIWireCutterPie.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIWireCutterPie.kt index a075d0f65..05950dbbc 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIWireCutterPie.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIWireCutterPie.kt @@ -7,6 +7,7 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion import com.jme3.math.FastMath import net.torvald.terrarum.* import net.torvald.terrarum.gameactors.AVKey +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.toItemCountText import net.torvald.terrarum.ui.Toolkit @@ -17,7 +18,7 @@ import kotlin.math.roundToInt /** * Created by minjaesong on 2024-03-14. */ -class UIWireCutterPie : UICanvas() { +class UIWireCutterPie(val itemID: ItemID) : UICanvas() { init { handler.allowESCtoClose = false @@ -43,10 +44,18 @@ class UIWireCutterPie : UICanvas() { var selection: Int = -1 override fun updateImpl(delta: Float) { - if (selection >= 0 && (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying != null) + if (selection >= 0 && (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying != null) { + // change actorvalue (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying!!.actorValue[AVKey.__PLAYER_WIRECUTTERSEL] = selection % slotCount + // change itemsprite somehow + val region = getSprite(selection % slotCount) + ItemCodex[itemID]?.itemImage?.let { + it.setRegion(region.regionX, region.regionY, region.regionWidth, region.regionHeight) + } + } + // update controls if (handler.isOpened || handler.isOpening) { @@ -63,20 +72,20 @@ class UIWireCutterPie : UICanvas() { private val drawColor = Color(1f, 1f, 1f, 1f) - private fun getSprite(index: Int): TextureRegion { - val (x, y) = when (index) { - 0 -> 1 to 3 - 1 -> 11 to 2 - 2 -> 12 to 2 - 3 -> 13 to 2 - 4 -> 14 to 2 - 5 -> 15 to 2 - else -> throw IllegalArgumentException() - } - return CommonResourcePool.getAsItemSheet("basegame.items").get(x, y) - } - companion object { + fun getSprite(index: Int): TextureRegion { + val (x, y) = when (index) { + 0 -> 10 to 2 + 1 -> 11 to 2 + 2 -> 12 to 2 + 3 -> 13 to 2 + 4 -> 14 to 2 + 5 -> 15 to 2 + else -> throw IllegalArgumentException() + } + return CommonResourcePool.getAsItemSheet("basegame.items").get(x, y) + } + fun getWireItemID(index: Int): String { return when (index) { 0 -> "__all__" diff --git a/work_files/graphics/items/basegame_items.kra b/work_files/graphics/items/basegame_items.kra index fe63eb5a4..1bf2a92ac 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:34a8d23fd7fd6b5111672d16f6573adf92bd617c63f89118c006ac5ccd50b769 -size 1665215 +oid sha256:faee262b567d1c480ec84c511b7b67a229405fad9d16a6673ca7adb96b063653 +size 1668812