From 38e4c078feafccb7257ae26959cf047329f6d17c Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sat, 18 Mar 2023 20:57:23 +0700 Subject: [PATCH] Fix health bar rendering when it shouldn't --- .../dbotthepony/mc/otm/client/MatteryGUI.kt | 30 +++++++------------ 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/MatteryGUI.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/MatteryGUI.kt index 0d7607c15..9c2ec1590 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/MatteryGUI.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/MatteryGUI.kt @@ -193,18 +193,10 @@ object MatteryGUI { showIteration(event) } - private fun renderFoodAndAir(event: RenderGuiOverlayEvent.Pre) { - if (event.overlay != FOOD_LEVEL_ELEMENT && event.overlay != AIR_LEVEL_ELEMENT) { - return - } - + private fun renderFoodAndAir(event: RenderGuiOverlayEvent.Pre, gui: ForgeGui) { val ply: LocalPlayer = minecraft.player ?: return - if (ply.vehicle is LivingEntity || - minecraft.options.hideGui || - minecraft.gameMode?.canHurtPlayer() == false || - minecraft.getCameraEntity() !is Player - ) { + if (ply.vehicle is LivingEntity) { return } @@ -214,8 +206,6 @@ object MatteryGUI { mattery = lastState } - val gui = minecraft.gui as? ForgeGui ?: return - if (mattery != null && mattery.isAndroid) { event.isCanceled = true lastState = mattery @@ -273,7 +263,7 @@ object MatteryGUI { return HEALTH_POISON } else if (player.hasEffect(MobEffects.WITHER)) { return HEALTH_WITHER - } else if (player.isFullyFrozen()) { + } else if (player.isFullyFrozen) { return HEALTH_FROZEN } @@ -285,26 +275,23 @@ object MatteryGUI { return RGBAColor.DARK_GREEN.toInt() } else if (player.hasEffect(MobEffects.WITHER)) { return RGBAColor.WHITE.toInt() - } else if (player.isFullyFrozen()) { + } else if (player.isFullyFrozen) { return RGBAColor.AQUA.toInt() } return RGBAColor.RED.toInt() } // можно вынести в конфиг, но для этого нужен селектор цвета - private fun renderPlayerHealth(event: RenderGuiOverlayEvent.Pre) { + private fun renderPlayerHealth(event: RenderGuiOverlayEvent.Pre, gui: ForgeGui) { if (!ClientConfig.ANDROID_HEALTH_HUD) return val ply: LocalPlayer = minecraft.player ?: return - var mattery = ply.matteryPlayer if (!ply.isAlive && mattery == null) { mattery = lastState } - val gui = minecraft.gui as? ForgeGui ?: return - if (mattery != null && mattery.isAndroid) { event.isCanceled = true lastState = mattery @@ -352,10 +339,13 @@ object MatteryGUI { } fun onLayerRenderEvent(event: RenderGuiOverlayEvent.Pre) { + val gui = minecraft.gui as? ForgeGui ?: return + if (minecraft.options.hideGui || !gui.shouldDrawSurvivalElements()) return + if (event.overlay == FOOD_LEVEL_ELEMENT || event.overlay == AIR_LEVEL_ELEMENT) { - renderFoodAndAir(event) + renderFoodAndAir(event, gui) } else if (event.overlay == PLAYER_HEALTH_ELEMENT) { - renderPlayerHealth(event) + renderPlayerHealth(event, gui) } } }