diff --git a/src/main/java/markil3/immersive_hud/ConfigManager.java b/src/main/java/markil3/immersive_hud/ConfigManager.java index 8618b13..23d5d5f 100644 --- a/src/main/java/markil3/immersive_hud/ConfigManager.java +++ b/src/main/java/markil3/immersive_hud/ConfigManager.java @@ -82,7 +82,9 @@ public class ConfigManager private TimeValues hungerTime = new TimeValues(); private TimeValues effectTime = new TimeValues(); private int crosshairTime = 6 * TICKS_PER_SECOND; + private boolean hideCrosshair = true; private int handTime = 30 * TICKS_PER_SECOND; + private boolean hideHands = true; private boolean showArmor = true; private double minHealth = 0.5; private int minHunger = 17; @@ -184,6 +186,16 @@ public class ConfigManager return this.crosshairTime; } + /** + * 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; + } + /** * Obtains the time that the hands are allowed to display. * @@ -194,6 +206,16 @@ public class ConfigManager return this.handTime; } + /** + * 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; + } + /** * Checks whether the armor bar should render. * @@ -236,6 +258,16 @@ public class ConfigManager this.crosshairTime = 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 = hide; + } + /** * Sets the time that the hands are allowed to display. * @@ -246,6 +278,16 @@ public class ConfigManager this.handTime = 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 = hide; + } + /** * Determines whether the armor bar should render. * diff --git a/src/main/java/markil3/immersive_hud/ModMenu.java b/src/main/java/markil3/immersive_hud/ModMenu.java index e189f82..b268734 100644 --- a/src/main/java/markil3/immersive_hud/ModMenu.java +++ b/src/main/java/markil3/immersive_hud/ModMenu.java @@ -130,6 +130,14 @@ public class ModMenu implements ModMenuApi .setSaveConsumer(val -> instance.setCrosshairTime((int) (val * TICKS_PER_SECOND))) .build()); + general.addEntry(entryBuilder.startBooleanToggle( + "option.immersive_hud.hideCrosshair", + instance.hideCrosshair()) + .setDefaultValue(true) + .setTooltip("tooltip.immersive_hud.hideCrosshair") + .setSaveConsumer(val -> instance.hideCrosshair(val)) + .build()); + general.addEntry(entryBuilder.startDoubleField( "option.immersive_hud.handTime", (float) instance.getHandTime() / TICKS_PER_SECOND) @@ -138,6 +146,14 @@ public class ModMenu implements ModMenuApi .setSaveConsumer(val -> instance.setHandTime((int) (val * TICKS_PER_SECOND))) .build()); + general.addEntry(entryBuilder.startBooleanToggle( + "option.immersive_hud.hideHands", + instance.hideHands()) + .setDefaultValue(true) + .setTooltip("tooltip.immersive_hud.hideHands") + .setSaveConsumer(val -> instance.hideHands(val)) + .build()); + general.addEntry(entryBuilder.startDoubleField( "option.immersive_hud.minHealth", instance.getMinHealth()) diff --git a/src/main/java/markil3/immersive_hud/TimerUtils.java b/src/main/java/markil3/immersive_hud/TimerUtils.java index 976cbfd..daa85ad 100644 --- a/src/main/java/markil3/immersive_hud/TimerUtils.java +++ b/src/main/java/markil3/immersive_hud/TimerUtils.java @@ -356,50 +356,54 @@ public class TimerUtils { final float HAND_UP_TIME = 20F; - switch (hand) + boolean hideHands = ConfigManager.getInstance().hideHands(); + if (hideHands) { - case OFF_HAND: - if (offHandTime == 0 && !offHandLock) + switch (hand) { - return true; - } - else if (!offHandLock && (mapLock & 0b01) == 0) - { - if (offHandTime > 0) + case OFF_HAND: + if (offHandTime == 0 && !offHandLock) { - offHandTime -= ticks; + return true; } - if (offHandTime < HAND_UP_TIME) + else if (!offHandLock && (mapLock & 0b01) == 0) { - matrixStack - .translate(0, - -1.0F * (HAND_UP_TIME - offHandTime) / - HAND_UP_TIME, - 0); + if (offHandTime > 0) + { + offHandTime -= ticks; + } + if (offHandTime < HAND_UP_TIME) + { + matrixStack + .translate(0, + -1.0F * (HAND_UP_TIME - offHandTime) / + HAND_UP_TIME, + 0); + } } - } - break; - case MAIN_HAND: - if (mainHandTime == 0 && !mainHandLock) - { - return true; - } - else if (!mainHandLock && (mapLock & 0b10) == 0) - { - if (mainHandTime > 0) + break; + case MAIN_HAND: + if (mainHandTime == 0 && !mainHandLock) { - mainHandTime -= ticks; + return true; } - if (mainHandTime < HAND_UP_TIME) + else if (!mainHandLock && (mapLock & 0b10) == 0) { - matrixStack - .translate(0, - -1.0F * (HAND_UP_TIME - mainHandTime) / - HAND_UP_TIME, - 0); + if (mainHandTime > 0) + { + mainHandTime -= ticks; + } + if (mainHandTime < HAND_UP_TIME) + { + matrixStack + .translate(0, + -1.0F * (HAND_UP_TIME - mainHandTime) / + HAND_UP_TIME, + 0); + } } + break; } - break; } return false; } @@ -422,37 +426,41 @@ public class TimerUtils boolean changed = false; boolean canceled = false; - if (mc.crosshairTarget != null && mc.crosshairTarget - .getType() != HitResult.Type.MISS) + boolean hideCrosshair = ConfigManager.getInstance().hideCrosshair(); + if (hideCrosshair) { - if (mc.crosshairTarget.getType() == HitResult.Type - .ENTITY) + if (mc.crosshairTarget != null && mc.crosshairTarget + .getType() != HitResult.Type.MISS) { - if (((EntityHitResult) mc.crosshairTarget).getEntity() != entity - .getVehicle()) + if (mc.crosshairTarget.getType() == HitResult.Type + .ENTITY) + { + if (((EntityHitResult) mc.crosshairTarget).getEntity() != entity + .getVehicle()) + { + 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; } @@ -900,7 +908,9 @@ public class TimerUtils if (experienceTime > 0) { RenderSystem.pushMatrix(); - RenderSystem.translatef(0F, TimerUtils.getExperienceTranslation(), 0F); + RenderSystem.translatef(0F, + TimerUtils.getExperienceTranslation(), + 0F); setAlpha(Main.getAlpha(experienceTime, experience.getMaxTime(), experience.getFadeInTime(), 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"