diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/data/HighlightOnHoverSlot.kt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/HighlightOnHoverSlot.kt b/src/main/java/at/hannibal2/skyhanni/data/HighlightOnHoverSlot.kt new file mode 100644 index 000000000..9e99fdbae --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/data/HighlightOnHoverSlot.kt @@ -0,0 +1,36 @@ +package at.hannibal2.skyhanni.data + +import at.hannibal2.skyhanni.events.GuiContainerEvent +import at.hannibal2.skyhanni.events.InventoryCloseEvent +import at.hannibal2.skyhanni.events.InventoryOpenEvent +import at.hannibal2.skyhanni.utils.InventoryUtils +import at.hannibal2.skyhanni.utils.LorenzColor +import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.RenderUtils.highlight +import net.minecraftforge.fml.common.eventhandler.EventPriority +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +object HighlightOnHoverSlot { + val currentSlots = mutableMapOf<Pair<Int, Int>, List<Int>>() + + @SubscribeEvent + fun onInventoryOpen(event: InventoryOpenEvent) { + currentSlots.clear() + } + + @SubscribeEvent + fun onInventoryClose(event: InventoryCloseEvent) { + currentSlots.clear() + } + + @SubscribeEvent(priority = EventPriority.LOW) + fun onDrawBackground(event: GuiContainerEvent.BackgroundDrawnEvent) { + if (!LorenzUtils.inSkyBlock) return + val list = currentSlots.flatMapTo(mutableSetOf()) { it.value } + for (slot in InventoryUtils.getItemsInOpenChest()) { + if (slot.slotNumber in list) { + slot highlight LorenzColor.GREEN + } + } + } +} |
