diff options
| author | Lorenz <ESs95s3P5z8Pheb> | 2022-07-11 23:41:39 +0200 |
|---|---|---|
| committer | Lorenz <ESs95s3P5z8Pheb> | 2022-07-11 23:41:39 +0200 |
| commit | d628559c60decc7900339f1978ea7f0faabbec05 (patch) | |
| tree | 0450b74ec7cf97acb3f82f7d481e9530749efba6 /src/main/java/at/lorenz/mod/items/ItemDisplayOverlayFeatures.kt | |
| parent | 455511cd71c11705d0bf1a33da674e69f3880ba4 (diff) | |
| download | SkyHanni-d628559c60decc7900339f1978ea7f0faabbec05.tar.gz SkyHanni-d628559c60decc7900339f1978ea7f0faabbec05.tar.bz2 SkyHanni-d628559c60decc7900339f1978ea7f0faabbec05.zip | |
moved features in category and package order around
Diffstat (limited to 'src/main/java/at/lorenz/mod/items/ItemDisplayOverlayFeatures.kt')
| -rw-r--r-- | src/main/java/at/lorenz/mod/items/ItemDisplayOverlayFeatures.kt | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/src/main/java/at/lorenz/mod/items/ItemDisplayOverlayFeatures.kt b/src/main/java/at/lorenz/mod/items/ItemDisplayOverlayFeatures.kt new file mode 100644 index 000000000..c07b2fff4 --- /dev/null +++ b/src/main/java/at/lorenz/mod/items/ItemDisplayOverlayFeatures.kt @@ -0,0 +1,121 @@ +package at.lorenz.mod.items + +import at.lorenz.mod.LorenzMod +import at.lorenz.mod.events.GuiRenderItemEvent +import at.lorenz.mod.utils.ItemUtils +import at.lorenz.mod.utils.ItemUtils.cleanName +import at.lorenz.mod.utils.LorenzDebug +import at.lorenz.mod.utils.LorenzUtils +import at.lorenz.mod.utils.LorenzUtils.between +import at.lorenz.mod.utils.LorenzUtils.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 + + if (!LorenzUtils.inSkyblock || 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 (LorenzMod.feature.items.displayMasterStarNumber) { + 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 (LorenzMod.feature.items.displayMasterSkullNumber) { + if (name.matchRegex("(.*)Master Skull - Tier .")) { + return name.substring(name.length - 1) + } + } + + if (LorenzMod.feature.items.displayDungeonHeadFloor) { + 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 (LorenzMod.feature.items.displayNewYearCakeNumber) { + if (name.startsWith("New Year Cake (")) { + try { + return "§b" + name.between("(Year ", ")") + } catch (e: IndexOutOfBoundsException) { + val message = "New Year Cake error in string: '$name': ${e.message}" + LorenzDebug.log(message) + LorenzUtils.error(message) + } + } + } + + if (LorenzMod.feature.items.displayPetLevel) { + 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 (LorenzMod.feature.items.displaySackName) { + 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 (LorenzMod.feature.items.displayMinionTier) { + 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 |
