aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/lorenz/mod/ItemDisplayOverlayFeatures.kt
diff options
context:
space:
mode:
authorLorenz <ESs95s3P5z8Pheb>2022-07-08 08:51:53 +0200
committerLorenz <ESs95s3P5z8Pheb>2022-07-08 08:51:53 +0200
commitba0b3db8a0425b268ce569bd0bc19ca13bd73c93 (patch)
tree4c56d8f468038ef8b6c8aeeeca3af0a9c5bd738d /src/main/java/at/lorenz/mod/ItemDisplayOverlayFeatures.kt
parentac5518f87c5a1d7864e2fec5a835739cba753698 (diff)
downloadSkyHanni-ba0b3db8a0425b268ce569bd0bc19ca13bd73c93.tar.gz
SkyHanni-ba0b3db8a0425b268ce569bd0bc19ca13bd73c93.tar.bz2
SkyHanni-ba0b3db8a0425b268ce569bd0bc19ca13bd73c93.zip
added ItemDisplayOverlayFeatures
Diffstat (limited to 'src/main/java/at/lorenz/mod/ItemDisplayOverlayFeatures.kt')
-rw-r--r--src/main/java/at/lorenz/mod/ItemDisplayOverlayFeatures.kt114
1 files changed, 114 insertions, 0 deletions
diff --git a/src/main/java/at/lorenz/mod/ItemDisplayOverlayFeatures.kt b/src/main/java/at/lorenz/mod/ItemDisplayOverlayFeatures.kt
new file mode 100644
index 000000000..ec5078bdc
--- /dev/null
+++ b/src/main/java/at/lorenz/mod/ItemDisplayOverlayFeatures.kt
@@ -0,0 +1,114 @@
+package at.lorenz.mod
+
+import at.lorenz.mod.config.LorenzConfig
+import at.lorenz.mod.events.GuiRenderItemEvent
+import at.lorenz.mod.utils.ItemUtils
+import at.lorenz.mod.utils.ItemUtils.Companion.cleanName
+import at.lorenz.mod.utils.LorenzUtils
+import at.lorenz.mod.utils.LorenzUtils.Companion.between
+import at.lorenz.mod.utils.LorenzUtils.Companion.matchRegex
+import at.lorenz.mod.utils.NumberUtil.romanToDecimal
+import net.minecraft.client.renderer.GlStateManager
+import net.minecraft.item.ItemStack
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+class ItemDisplayOverlayFeatures {
+
+ @SubscribeEvent
+ fun onRenderItemOverlayPost(event: GuiRenderItemEvent.RenderOverlayEvent.Post) {
+ val item = event.stack ?: return
+
+ //TODO add
+// if (!Utils.inSkyblock || item.stackSize != 1 || item.tagCompound?.hasKey("SkytilsNoItemOverlay") == true) return
+ if (item.stackSize != 1 || item.tagCompound?.hasKey("SkytilsNoItemOverlay") == true) return
+
+ val stackTip = getStackTip(item)
+
+ if (stackTip.isNotEmpty()) {
+ 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()
+ }
+
+ }
+
+ private fun getStackTip(item: ItemStack): String {
+ val name = item.cleanName()
+
+ if (LorenzConfig.lorenzItemDisplayMasterStarSkullNumber) {
+ when (name) {
+ "First Master Star" -> return "1"
+ "Second Master Star" -> return "2"
+ "Third Master Star" -> return "3"
+ "Fourth Master Star" -> return "4"
+ "Fifth Master Star" -> return "5"
+ }
+
+ if (name.matchRegex("(.*)Master Skull - Tier .")) {
+ return name.substring(name.length - 1)
+ }
+
+ }
+
+ if (LorenzConfig.lorenzItemDisplayDungeonHeadNumber) {
+ if (name.contains("Golden ") || name.contains("Diamond ")) {
+ when {
+ name.contains("Bonzo") -> return "1"
+ name.contains("Scarf") -> return "2"
+ name.contains("Professor") -> return "3"
+ name.contains("Thorn") -> return "4"
+ name.contains("Livid") -> return "5"
+ name.contains("Sadan") -> return "6"
+ name.contains("Necron") -> return "7"
+ }
+ }
+ }
+
+ if (LorenzConfig.lorenzItemDisplayNewYearCakeNumber) {
+ if (name.startsWith("New Year Cake")) {
+ return "§b" + name.split("(Year ", ")")[1]
+ }
+ }
+
+ if (LorenzConfig.lorenzItemDisplayPetLevel) {
+ if (ItemUtils.isPet(name)) {
+ try {
+ val level = name.between("Lvl ", "] ").toInt()
+ if (level != ItemUtils.maxPetLevel(name)) {
+ return "$level"
+ }
+ } catch (e: java.lang.NumberFormatException) {
+ e.printStackTrace()
+ LorenzDebug.log("name: '$name'")
+ LorenzUtils.warning("NumberFormatException at lorenzItemDisplayPetLevel")
+ }
+ }
+ }
+
+ if (LorenzConfig.lorenzItemSackNameDisplay) {
+ if (ItemUtils.isSack(name)) {
+ val split = name.split(" ")
+ val sackName = split[split.size - 2]
+ return (if (name.contains("Enchanted")) "§5" else "") + sackName.substring(0, 2)
+ }
+ }
+
+ if (LorenzConfig.lorenzItemDisplayMinionTier) {
+ if (name.contains(" Minion ")) {
+ val array = name.split(" ")
+ val last = array[array.size - 1]
+ return last.romanToDecimal().toString()
+ }
+ }
+
+ return ""
+ }
+} \ No newline at end of file