From 3c6e7665fa06aa9dbbb3b9328e0b2371ac44fed3 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Wed, 31 Jan 2024 02:26:17 +0900 Subject: [PATCH] porting scroll behav to the storage chest --- .../modulebasegame/ui/UIStorageChest.kt | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIStorageChest.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIStorageChest.kt index 104638823..a7f146ac6 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIStorageChest.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIStorageChest.kt @@ -114,6 +114,23 @@ internal class UIStorageChest : UICanvas( itemListUpdate() } } + it.itemListWheelFun = { gameItem, amount, _, scrollY, _, _ -> + if (gameItem != null) { + val amount = scrollY.toLong().coerceIn( + -(getPlayerInventory().searchByID(gameItem.dynamicID)?.qty ?: 0L), + amount + ) + + // remove from the chest + if (amount >= 1f) + negotiator.refund(getFixtureInventory(), getPlayerInventory(), gameItem, amount) + // add to the chest + else if (amount <= -1f) + negotiator.accept(getPlayerInventory(), getFixtureInventory(), gameItem, -amount) + + itemListUpdate() + } + } } // make grid mode buttons work together itemListChest.itemList.navRemoCon.listButtonListener = { _,_ -> setCompact(false) } @@ -137,6 +154,23 @@ internal class UIStorageChest : UICanvas( itemListUpdate() } } + it.itemListWheelFun = { gameItem, amount, _, scrollY, _, _ -> + if (gameItem != null) { + val amount = scrollY.toLong().coerceIn( + -(getFixtureInventory().searchByID(gameItem.dynamicID)?.qty ?: 0L), + amount + ) + + // remove from the player + if (amount >= 1f) + negotiator.accept(getPlayerInventory(), getFixtureInventory(), gameItem, amount) + // add to the player + else if (amount <= -1f) + negotiator.refund(getFixtureInventory(), getPlayerInventory(), gameItem, -amount) + + itemListUpdate() + } + } } itemListPlayer.itemList.navRemoCon.listButtonListener = { _,_ -> setCompact(false) } itemListPlayer.itemList.navRemoCon.gridButtonListener = { _,_ -> setCompact(true) }