From ae84c3c74b346057bd6de389fa27094bec6ca9c0 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Tue, 7 Nov 2023 21:20:32 +0100 Subject: added function renderDisplay to SkyHanniTracker, removed code duplication --- .../skyhanni/utils/tracker/SkyHanniTracker.kt | 31 ++++++++++++++++++---- 1 file changed, 26 insertions(+), 5 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/utils/tracker') diff --git a/src/main/java/at/hannibal2/skyhanni/utils/tracker/SkyHanniTracker.kt b/src/main/java/at/hannibal2/skyhanni/utils/tracker/SkyHanniTracker.kt index 5e9181447..a63a47706 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/tracker/SkyHanniTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/tracker/SkyHanniTracker.kt @@ -1,23 +1,30 @@ package at.hannibal2.skyhanni.utils.tracker import at.hannibal2.skyhanni.config.Storage +import at.hannibal2.skyhanni.config.core.config.Position import at.hannibal2.skyhanni.data.ProfileStorageData +import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList +import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems import at.hannibal2.skyhanni.utils.tracker.TrackerUtils.addDisplayModeToggle import at.hannibal2.skyhanni.utils.tracker.TrackerUtils.addSessionResetButton +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.inventory.GuiInventory class SkyHanniTracker( - val name: String, + private val name: String, private val currentSessionData: Data, - val getStorage: (Storage.ProfileSpecific) -> Data, - val update: () -> Unit, + private val getStorage: (Storage.ProfileSpecific) -> Data, + private val update: () -> Unit, ) { + private var inventoryOpen = false + private fun getSharedTracker(): SharedTracker? { val profileSpecific = ProfileStorageData.profileSpecific ?: return null return SharedTracker(getStorage(profileSpecific), currentSessionData) } - fun addSessionResetButton(list: MutableList>, inventoryOpen: Boolean) { + fun addSessionResetButton(list: MutableList>) { if (inventoryOpen && TrackerUtils.currentDisplayMode == DisplayMode.CURRENT) { list.addSessionResetButton(name, getSharedTracker()) { update() @@ -25,11 +32,15 @@ class SkyHanniTracker( } } - fun addDisplayModeToggle(list: MutableList>, inventoryOpen: Boolean) { + fun addDisplayModeToggle(list: MutableList>, closedText: String? = null) { if (inventoryOpen) { list.addDisplayModeToggle { update() } + } else { + closedText?.let { + list.addAsSingletonList(it) + } } } @@ -44,4 +55,14 @@ class SkyHanniTracker( fun modify(modifyFunction: (Data) -> Unit) { getSharedTracker()?.modify(modifyFunction) } + + fun renderDisplay(position: Position, display: List>) { + val currentlyOpen = Minecraft.getMinecraft().currentScreen is GuiInventory + if (inventoryOpen != currentlyOpen) { + inventoryOpen = currentlyOpen + update() + } + + position.renderStringsAndItems(display, posLabel = name) + } } -- cgit