diff --git a/src/main/java/markil3/immersive_hud/ConfigManager.java b/src/main/java/markil3/immersive_hud/ConfigManager.java index 262507c..33638ff 100644 --- a/src/main/java/markil3/immersive_hud/ConfigManager.java +++ b/src/main/java/markil3/immersive_hud/ConfigManager.java @@ -155,7 +155,9 @@ public class ConfigManager private final TimeValues hungerTime; private final TimeValues effectTime; private final ForgeConfigSpec.IntValue crosshairTime; + private final ForgeConfigSpec.BooleanValue hideCrosshair; private final ForgeConfigSpec.IntValue handTime; + private final ForgeConfigSpec.BooleanValue hideHands; private final ForgeConfigSpec.BooleanValue showArmor; private final ForgeConfigSpec.DoubleValue minHealth; private final ForgeConfigSpec.IntValue minHunger; @@ -182,6 +184,10 @@ public class ConfigManager 6 * TICKS_PER_SECOND, 0, 10 * 60 * TICKS_PER_SECOND); + this.hideCrosshair = + configSpecBuilder.translation( + "immersive_hud.configGui.hideCrosshair.title") + .define("hideCrosshair", true); this.handTime = configSpecBuilder.translation( "immersive_hud.configGui.handTime.title") @@ -189,6 +195,10 @@ public class ConfigManager 30 * TICKS_PER_SECOND, 0, 10 * 60 * TICKS_PER_SECOND); + this.hideHands = + configSpecBuilder.translation( + "immersive_hud.configGui.hideHands.title") + .define("hideHands", true); this.showArmor = configSpecBuilder.translation( "immersive_hud.configGui.showArmor.title") .define("showArmor", true); @@ -282,6 +292,16 @@ public class ConfigManager return this.crosshairTime.get(); } + /** + * Checks whether the crosshairs should be hidden after a period of time. + * + * @return - Whether or not crosshairs will be hidden. + */ + public boolean hideCrosshair() + { + return this.hideCrosshair.get(); + } + /** * Obtains the time that the hands are allowed to display. * @@ -292,6 +312,16 @@ public class ConfigManager return this.handTime.get(); } + /** + * Checks whether hands should be hidden after a period of time. + * + * @return - Whether or not hands will be hidden. + */ + public boolean hideHands() + { + return this.hideHands.get(); + } + /** * Checks whether the armor bar should render. * @@ -334,6 +364,16 @@ public class ConfigManager this.crosshairTime.set(time); } + /** + * Sets whether the crosshairs should be hidden after a period of time. + * + * @param hide - Whether or not crosshairs will be hidden. + */ + public void hideCrosshair(boolean hide) + { + this.hideCrosshair.set(hide); + } + /** * Sets the time that the hands are allowed to display. * @@ -344,6 +384,16 @@ public class ConfigManager this.handTime.set(time); } + /** + * Sets whether hands should be hidden after a period of time. + * + * @param hide - Whether or not hands will be hidden. + */ + public void hideHands(boolean hide) + { + this.hideHands.set(hide); + } + /** * Determines whether the armor bar should render. * diff --git a/src/main/java/markil3/immersive_hud/TimerUtils.java b/src/main/java/markil3/immersive_hud/TimerUtils.java index 4bbe59b..aca8335 100644 --- a/src/main/java/markil3/immersive_hud/TimerUtils.java +++ b/src/main/java/markil3/immersive_hud/TimerUtils.java @@ -24,7 +24,6 @@ import net.minecraft.potion.Effect; import net.minecraft.potion.EffectInstance; import net.minecraft.potion.Effects; import net.minecraft.util.Hand; -import net.minecraft.util.Util; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.RayTraceResult; @@ -270,11 +269,11 @@ public class TimerUtils if (item.isFood()) { healthTime = health.getMaxTime() - (healthTime > 0 ? - health.getFadeInTime() : - 0); + health.getFadeInTime() : + 0); hungerTime = hunger.getMaxTime() - (hungerTime > 0 ? - hunger.getFadeInTime() : - 0); + hunger.getFadeInTime() : + 0); } } } @@ -297,57 +296,62 @@ public class TimerUtils { float HAND_UP_TIME = 20F; - switch (hand) + boolean hideHands = + ConfigManager.getInstance().hideHands(); + if (hideHands) { - case OFF_HAND: - if (mainHandTime > 0 && mainHandTime < HAND_UP_TIME) + switch (hand) { - /* - * Undo the transformation of the previous hand - */ - matrixStack.translate(0, - (float) (1.0F * (HAND_UP_TIME - mainHandTime) / HAND_UP_TIME), - 0); - } - if (offHandTime == 0 && !offHandLock) - { - return true; - } - else if (!offHandLock && (mapLock & 0b01) == 0) - { - if (offHandTime > 0) + case OFF_HAND: + if (mainHandTime > 0 && mainHandTime < HAND_UP_TIME) { - offHandTime -= ticks; + /* + * Undo the transformation of the previous hand + */ + matrixStack.translate(0, + (float) (1.0F * (HAND_UP_TIME - mainHandTime) / HAND_UP_TIME), + 0); } - if (offHandTime < HAND_UP_TIME) + if (offHandTime == 0 && !offHandLock) { - matrixStack - .translate(0, - (float) (-1.0F * (HAND_UP_TIME - offHandTime) / HAND_UP_TIME), - 0); + return true; } - } - break; - case MAIN_HAND: - if (mainHandTime == 0 && !mainHandLock) - { - return true; - } - else if (!mainHandLock && (mapLock & 0b10) == 0) - { - if (mainHandTime > 0) + else if (!offHandLock && (mapLock & 0b01) == 0) { - mainHandTime -= ticks; + if (offHandTime > 0) + { + offHandTime -= ticks; + } + if (offHandTime < HAND_UP_TIME) + { + matrixStack + .translate(0, + (float) (-1.0F * (HAND_UP_TIME - offHandTime) / HAND_UP_TIME), + 0); + } } - if (mainHandTime < HAND_UP_TIME) + break; + case MAIN_HAND: + if (mainHandTime == 0 && !mainHandLock) { - matrixStack - .translate(0, - (float) (-1.0F * (HAND_UP_TIME - mainHandTime) / HAND_UP_TIME), - 0); + return true; } + else if (!mainHandLock && (mapLock & 0b10) == 0) + { + if (mainHandTime > 0) + { + mainHandTime -= ticks; + } + if (mainHandTime < HAND_UP_TIME) + { + matrixStack + .translate(0, + (float) (-1.0F * (HAND_UP_TIME - mainHandTime) / HAND_UP_TIME), + 0); + } + } + break; } - break; } return false; } @@ -360,8 +364,8 @@ public class TimerUtils ConfigManager.TimeValues health = ConfigManager.getInstance().getHealthTime(); mountTime = health.getMaxTime() - (mountTime > 0 ? - health.getFadeInTime() : - 0); + health.getFadeInTime() : + 0); jumpTime = 0; } @@ -383,34 +387,39 @@ public class TimerUtils boolean changed = false; boolean canceled = false; - if (mc.objectMouseOver != null && mc.objectMouseOver.getType() != RayTraceResult.Type.MISS) + boolean hideCrosshair = + ConfigManager.getInstance().hideCrosshair(); + if (hideCrosshair) { - if (mc.objectMouseOver.getType() == RayTraceResult.Type.ENTITY) + if (mc.objectMouseOver != null && mc.objectMouseOver.getType() != RayTraceResult.Type.MISS) { - if (mc.objectMouseOver.hitInfo == null || mc.objectMouseOver.hitInfo != mc.player - .getRidingEntity()) + if (mc.objectMouseOver.getType() == RayTraceResult.Type.ENTITY) + { + if (mc.objectMouseOver.hitInfo == null || mc.objectMouseOver.hitInfo != mc.player + .getRidingEntity()) + { + changed = true; + } + } + else { changed = true; } } + if (changed || mainHandLock || offHandLock || crosshairTime > 0) + { + setAlpha(Main.getAlpha(crosshairTime > 0 ? + crosshairTime : + CROSSHAIR_TIME, CROSSHAIR_TIME, 0, 0)); + } else { - changed = true; + canceled = true; + } + if (crosshairTime > 0) + { + crosshairTime -= ticks; } - } - if (changed || mainHandLock || offHandLock || crosshairTime > 0) - { - setAlpha(Main.getAlpha(crosshairTime > 0 ? - crosshairTime : - CROSSHAIR_TIME, CROSSHAIR_TIME, 0, 0)); - } - else - { - canceled = true; - } - if (crosshairTime > 0) - { - crosshairTime -= ticks; } return canceled; @@ -474,7 +483,8 @@ public class TimerUtils } else if (effectinstance.getDuration() <= BLINK_TIME + potion.getFadeInTime()) { - effectAlpha = -(effectinstance.getDuration() - BLINK_TIME) / 22F + 0.454F; + effectAlpha = + -(effectinstance.getDuration() - BLINK_TIME) / 22F + 0.454F; } else { @@ -645,11 +655,11 @@ public class TimerUtils if (item.isFood()) { healthTime = health.getMaxTime() - (healthTime > 0 ? - health.getFadeInTime() : - 0); + health.getFadeInTime() : + 0); hungerTime = hunger.getMaxTime() - (hungerTime > 0 ? - hunger.getFadeInTime() : - 0); + hunger.getFadeInTime() : + 0); } if (i == 0) { @@ -757,7 +767,8 @@ public class TimerUtils * Only makes a change if the player is healthy. Otherwise, * the bar is shown. */ - if (health / maxHealth > HEALTH_BOUNDARY && !mc.player.isPotionActive(Effects.WITHER) && !mc.player.isPotionActive(Effects.POISON)) + if (health / maxHealth > HEALTH_BOUNDARY && !mc.player.isPotionActive( + Effects.WITHER) && !mc.player.isPotionActive(Effects.POISON)) { if (healthTime > 0) { @@ -816,8 +827,8 @@ public class TimerUtils if (changed || hunger <= HUNGER_BOUNDARY) { hungerTime = hungerTimes.getMaxTime() - (hungerTime > 0 ? - hungerTimes.getFadeInTime() : - 0); + hungerTimes.getFadeInTime() : + 0); } else if (hungerTime > 0) { diff --git a/src/main/resources/assets/immersive_hud/lang/en_us.json b/src/main/resources/assets/immersive_hud/lang/en_us.json index 86e1475..238c055 100644 --- a/src/main/resources/assets/immersive_hud/lang/en_us.json +++ b/src/main/resources/assets/immersive_hud/lang/en_us.json @@ -19,7 +19,9 @@ "option.immersive_hud.effectFadeIn": "Potion Fade In Time", "option.immersive_hud.effectFadeOut": "Potion Fade Out Time", "option.immersive_hud.crosshairTime": "Crosshair Display Time", + "option.immersive_hud.hideCrosshair": "Hide Crosshair", "option.immersive_hud.handTime": "Hand Display Time", + "option.immersive_hud.hideHands": "Hide Hands", "option.immersive_hud.minHealth": "Minimum Health Fade", "option.immersive_hud.minHunger": "Minimum Hunger Fade", "option.immersive_hud.showArmor": "Show Armor", @@ -42,7 +44,9 @@ "tooltip.immersive_hud.effectFadeIn": "How many seconds it takes for potion icons to fade in", "tooltip.immersive_hud.effectFadeOut": "How many seconds it takes for potion icons to fade out", "tooltip.immersive_hud.crosshairTime": "How many seconds the crosshairs can be on screen", + "tooltip.immersive_hud.hideCrosshair": "Whether or not the crosshairs should be hidden after a period of time", "tooltip.immersive_hud.handTime": "How many seconds the hands can be on screen", + "tooltip.immersive_hud.hideHands": "Whether or not hands should be hidden after a period of time", "tooltip.immersive_hud.minHealth": "When the percentage of health goes below this level, the health bar won't fade away", "tooltip.immersive_hud.minHunger": "When the hunger level goes below this level, the hunger bar won't fade away", "tooltip.immersive_hud.showArmor": "Whether or not the armor bar should display on the HUD"