From 0cc77949c907d38497f8cdf6fd8198fe5f0a9440 Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Sun, 13 Oct 2024 20:47:59 +0200 Subject: Add current pet highlighter --- src/main/kotlin/features/inventory/PetFeatures.kt | 40 +++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main/kotlin/features/inventory/PetFeatures.kt (limited to 'src/main/kotlin/features/inventory') diff --git a/src/main/kotlin/features/inventory/PetFeatures.kt b/src/main/kotlin/features/inventory/PetFeatures.kt new file mode 100644 index 0000000..81124f3 --- /dev/null +++ b/src/main/kotlin/features/inventory/PetFeatures.kt @@ -0,0 +1,40 @@ +package moe.nea.firmament.features.inventory + +import net.minecraft.util.Identifier +import moe.nea.firmament.annotations.Subscribe +import moe.nea.firmament.events.SlotRenderEvents +import moe.nea.firmament.features.FirmamentFeature +import moe.nea.firmament.gui.config.ManagedConfig +import moe.nea.firmament.util.MC +import moe.nea.firmament.util.petData +import moe.nea.firmament.util.unformattedString +import moe.nea.firmament.util.useMatch + +object PetFeatures : FirmamentFeature { + override val identifier: String + get() = "pets" + + override val config: ManagedConfig? + get() = TConfig + + object TConfig : ManagedConfig(identifier) { + val highlightEquippedPet by toggle("highlight-pet") { true } + } + + val petMenuTitle = "Pets(?: \\([0-9]+/[0-9]+\\))?".toPattern() + + @Subscribe + fun onSlotRender(event: SlotRenderEvents.Before) { + if (!TConfig.highlightEquippedPet) return + val stack = event.slot.stack + if (stack.petData?.active == true) + petMenuTitle.useMatch(MC.screenName ?: return) { + event.context.drawSprite( + event.slot.x, event.slot.y, 0, 16, 16, + MC.guiAtlasManager.getSprite(Identifier.of("firmament:selected_pet_background")) + ) + } + } + + +} -- cgit