Add current pet highlighter

This commit is contained in:
Linnea Gräf
2024-10-13 20:47:59 +02:00
parent 87b8513730
commit 0cc77949c9
6 changed files with 138 additions and 89 deletions

View File

@@ -21,6 +21,7 @@ import moe.nea.firmament.features.fixes.CompatibliltyFeatures
import moe.nea.firmament.features.fixes.Fixes
import moe.nea.firmament.features.inventory.CraftingOverlay
import moe.nea.firmament.features.inventory.ItemRarityCosmetics
import moe.nea.firmament.features.inventory.PetFeatures
import moe.nea.firmament.features.inventory.PriceData
import moe.nea.firmament.features.inventory.SaveCursorPosition
import moe.nea.firmament.features.inventory.SlotLocking
@@ -67,6 +68,7 @@ object FeatureManager : DataHolder<FeatureManager.Config>(serializer(), "feature
loadFeature(CompatibliltyFeatures)
loadFeature(AnniversaryFeatures)
loadFeature(QuickCommands)
loadFeature(PetFeatures)
loadFeature(SaveCursorPosition)
loadFeature(CustomSkyBlockTextures)
loadFeature(PriceData)

View File

@@ -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"))
)
}
}
}