aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/garden
diff options
context:
space:
mode:
authorILike2WatchMemes <ilike2watchmemes@gmail.com>2024-03-24 10:18:46 +0100
committerGitHub <noreply@github.com>2024-03-24 10:18:46 +0100
commitbfeaeac6faa9e31319bb054ec800a13a23b11749 (patch)
treea090adc7b0efa6313c70ae2988eecc4ff9472cad /src/main/java/at/hannibal2/skyhanni/features/garden
parent1ab016a7b0ef8965c9cd664a5618d1c3d78f3bcd (diff)
downloadskyhanni-bfeaeac6faa9e31319bb054ec800a13a23b11749.tar.gz
skyhanni-bfeaeac6faa9e31319bb054ec800a13a23b11749.tar.bz2
skyhanni-bfeaeac6faa9e31319bb054ec800a13a23b11749.zip
Improvement: Plot Menu Highlighting and isBeingPasted for Plot (#1254)
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/garden')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenPlotAPI.kt12
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/plots/GardenPlotMenuHighlighting.kt9
2 files changed, 17 insertions, 4 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenPlotAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenPlotAPI.kt
index 5ed6d2434..9402fa682 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenPlotAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenPlotAPI.kt
@@ -73,6 +73,9 @@ object GardenPlotAPI {
var sprayHasNotified: Boolean,
@Expose
+ var isBeingPasted: Boolean,
+
+ @Expose
var isPestCountInaccurate: Boolean,
)
@@ -81,7 +84,7 @@ object GardenPlotAPI {
val type: SprayType,
)
- private fun Plot.getData() = GardenAPI.storage?.plotData?.getOrPut(id) { PlotData(id, "$id", 0, null, null, false, false) }
+ private fun Plot.getData() = GardenAPI.storage?.plotData?.getOrPut(id) { PlotData(id, "$id", 0, null, null, false, false, false) }
var Plot.name: String
get() = getData()?.name ?: "$id"
@@ -107,6 +110,12 @@ object GardenPlotAPI {
!it.sprayHasNotified && it.sprayExpiryTime?.isInPast() == true
} == true
+ var Plot.isBeingPasted: Boolean
+ get() = this.getData()?.isBeingPasted ?: false
+ set(value) {
+ this.getData()?.isBeingPasted = value
+ }
+
var Plot.isPestCountInaccurate: Boolean
get() = this.getData()?.isPestCountInaccurate ?: false
set(value) {
@@ -185,6 +194,7 @@ object GardenPlotAPI {
for (plot in plots) {
val itemStack = event.inventoryItems[plot.inventorySlot] ?: continue
+ plot.isBeingPasted = itemStack.getLore().any { it.contains("§7Pasting in progress:") }
plot.unlocked = itemStack.getLore().all { !it.contains("§7Cost:") }
plotNamePattern.matchMatcher(itemStack.name) {
val plotName = group("name")
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/plots/GardenPlotMenuHighlighting.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/plots/GardenPlotMenuHighlighting.kt
index 165980a9f..9fe975499 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/plots/GardenPlotMenuHighlighting.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/plots/GardenPlotMenuHighlighting.kt
@@ -2,10 +2,11 @@ package at.hannibal2.skyhanni.features.garden.inventory.plots
import at.hannibal2.skyhanni.config.features.garden.PlotMenuHighlightingConfig.PlotStatusType
import at.hannibal2.skyhanni.events.GuiContainerEvent
-import at.hannibal2.skyhanni.events.InventoryOpenEvent
+import at.hannibal2.skyhanni.events.InventoryUpdatedEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.features.garden.GardenPlotAPI
import at.hannibal2.skyhanni.features.garden.GardenPlotAPI.currentSpray
+import at.hannibal2.skyhanni.features.garden.GardenPlotAPI.isBeingPasted
import at.hannibal2.skyhanni.features.garden.GardenPlotAPI.pests
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.RenderUtils.highlight
@@ -18,19 +19,21 @@ class GardenPlotMenuHighlighting {
private var highlightedPlots = mutableMapOf<GardenPlotAPI.Plot, PlotStatusType>()
@SubscribeEvent
- fun onInventoryOpen(event: InventoryOpenEvent) {
+ fun onInventoryUpdate(event: InventoryUpdatedEvent) {
if (!isEnabled()) return
for (slot in InventoryUtils.getItemsInOpenChest()) {
val list = mutableListOf<PlotStatusType>()
val plot = GardenPlotAPI.plots.find { it.inventorySlot == slot.slotIndex } ?: continue
- val (pestsEnabled, spraysEnabled, locksEnabled, currentEnabled) = PlotStatusType.entries.map { it in config.deskPlotStatusTypes }
+ val (pestsEnabled, spraysEnabled, locksEnabled, currentEnabled, pastesEnabled) = PlotStatusType.entries.map { it in config.deskPlotStatusTypes }
if (plot.pests >= 1 && pestsEnabled) list.add(PlotStatusType.PESTS)
if (plot.currentSpray != null && spraysEnabled) list.add(PlotStatusType.SPRAYS)
if (!plot.unlocked && locksEnabled) list.add(PlotStatusType.LOCKED)
if (plot == GardenPlotAPI.getCurrentPlot() && currentEnabled) list.add(PlotStatusType.CURRENT)
+ if (plot.isBeingPasted && pastesEnabled) list.add(PlotStatusType.PASTING)
+ println(plot.isBeingPasted)
getLowestIndexItem(list)?.let { index ->
val status = config.deskPlotStatusTypes[index]