diff options
author | My-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com> | 2021-10-09 01:51:34 -0400 |
---|---|---|
committer | My-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com> | 2021-10-09 01:51:34 -0400 |
commit | 5d06b43807389234e42e6c98fff73aa35ee4904e (patch) | |
tree | 90a5895a5cedeaa271d5d7ff474ff61d24e5708f /src/main | |
parent | 2185673d76bc639660da04b61e81601b9e0d8513 (diff) | |
download | SkytilsMod-5d06b43807389234e42e6c98fff73aa35ee4904e.tar.gz SkytilsMod-5d06b43807389234e42e6c98fff73aa35ee4904e.tar.bz2 SkytilsMod-5d06b43807389234e42e6c98fff73aa35ee4904e.zip |
bestiary stack size
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/kotlin/skytils/skytilsmod/core/Config.kt | 7 | ||||
-rw-r--r-- | src/main/kotlin/skytils/skytilsmod/features/impl/misc/MiscFeatures.kt | 52 |
2 files changed, 54 insertions, 5 deletions
diff --git a/src/main/kotlin/skytils/skytilsmod/core/Config.kt b/src/main/kotlin/skytils/skytilsmod/core/Config.kt index ceea45d8..b44a8080 100644 --- a/src/main/kotlin/skytils/skytilsmod/core/Config.kt +++ b/src/main/kotlin/skytils/skytilsmod/core/Config.kt @@ -1225,6 +1225,13 @@ object Config : Vigilant(File("./config/skytils/config.toml"), "Skytils", sortin var pingDisplay = 0 @Property( + type = PropertyType.SWITCH, name = "Show Bestiary Level", + description = "Shows the bestiary level as the stack size.", + category = "Miscellaneous", subcategory = "Other" + ) + var showBestiaryLevel = false + + @Property( PropertyType.SWITCH, name = "Show Selected Arrow", description = "Shows your current selected arrow.", category = "Miscellaneous", subcategory = "Other" diff --git a/src/main/kotlin/skytils/skytilsmod/features/impl/misc/MiscFeatures.kt b/src/main/kotlin/skytils/skytilsmod/features/impl/misc/MiscFeatures.kt index 41b5c083..1b053b6b 100644 --- a/src/main/kotlin/skytils/skytilsmod/features/impl/misc/MiscFeatures.kt +++ b/src/main/kotlin/skytils/skytilsmod/features/impl/misc/MiscFeatures.kt @@ -24,6 +24,7 @@ import net.minecraft.client.Minecraft import net.minecraft.client.entity.EntityOtherPlayerMP import net.minecraft.client.gui.GuiScreen import net.minecraft.client.gui.inventory.GuiChest +import net.minecraft.client.renderer.GlStateManager import net.minecraft.entity.EntityLivingBase import net.minecraft.entity.effect.EntityLightningBolt import net.minecraft.entity.item.EntityArmorStand @@ -56,16 +57,14 @@ import skytils.skytilsmod.core.GuiManager.Companion.createTitle import skytils.skytilsmod.core.TickTask import skytils.skytilsmod.core.structure.FloatPair import skytils.skytilsmod.core.structure.GuiElement -import skytils.skytilsmod.events.BossBarEvent -import skytils.skytilsmod.events.CheckRenderEntityEvent -import skytils.skytilsmod.events.GuiContainerEvent +import skytils.skytilsmod.events.* import skytils.skytilsmod.events.GuiContainerEvent.SlotClickEvent import skytils.skytilsmod.events.PacketEvent.ReceiveEvent -import skytils.skytilsmod.events.SendChatMessageEvent import skytils.skytilsmod.mixins.transformers.accessors.AccessorWorldInfo import skytils.skytilsmod.utils.* import skytils.skytilsmod.utils.ItemUtil.getExtraAttributes import skytils.skytilsmod.utils.ItemUtil.getSkyBlockItemID +import skytils.skytilsmod.utils.NumberUtil.romanToDecimal import skytils.skytilsmod.utils.NumberUtil.roundToPrecision import skytils.skytilsmod.utils.RenderUtil.highlight import skytils.skytilsmod.utils.RenderUtil.renderItem @@ -402,6 +401,48 @@ class MiscFeatures { } } + @SubscribeEvent + fun onRenderItemOverlayPost(event: GuiRenderItemEvent.RenderOverlayEvent.Post) { + val item = event.stack ?: return + if (!Utils.inSkyblock || mc.thePlayer == null || item.stackSize != 1 || item.tagCompound?.hasKey("SkytilsNoItemOverlay") == true) return + var stackTip = "" + + val c = mc.thePlayer.openContainer + if (c is ContainerChest) { + val name = c.lowerChestInventory.name + if (Skytils.config.showBestiaryLevel && name.startsWithAny( + "Bestiary ➜ ", + "Search Results" + ) && item.item != Item.getItemFromBlock(Blocks.stained_glass_pane) + ) { + val arrowSlot = c.inventorySlots.getOrNull(48)?.stack + if (arrowSlot != null && arrowSlot.item == Items.arrow && ItemUtil.getItemLore(item) + .lastOrNull() == "§eClick to view!" /* && ItemUtil.getDisplayName(arrowSlot) == "§aGo Back" && ItemUtil.getItemLore( + arrowSlot + ).firstOrNull() == "§7To Bestiary"*/ + ) { + var ending = ItemUtil.getDisplayName(item).substringAfterLast(" ", "") + if (ending.any { !it.isUpperCase() }) ending = "" + stackTip = ending.romanToDecimal().toString() + } + } + } + + if (stackTip.isNotBlank()) { + GlStateManager.disableLighting() + GlStateManager.disableDepth() + GlStateManager.disableBlend() + event.fr.drawStringWithShadow( + stackTip, + (event.x + 17 - event.fr.getStringWidth(stackTip)).toFloat(), + (event.y + 9).toFloat(), + 16777215 + ) + GlStateManager.enableLighting() + GlStateManager.enableDepth() + } + } + companion object { private val mc = Minecraft.getMinecraft() private var golemSpawnTime: Long = 0 @@ -589,7 +630,8 @@ class MiscFeatures { } override fun demoRender() { - usesBaldTimeChanger = Loader.instance().activeModList.any { it.modId == "timechanger" && it.version == "1.0" } + usesBaldTimeChanger = + Loader.instance().activeModList.any { it.modId == "timechanger" && it.version == "1.0" } if (usesBaldTimeChanger) { ScreenRenderer.fontRenderer.drawString( "Incompatible Time Changer detected.", |