Causes things to fade in as well as out.
This commit is contained in:
@@ -33,6 +33,7 @@ import org.apache.logging.log4j.Logger;
|
|||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import static markil3.immersive_hud.TimerUtils.VISUAL_TIME;
|
||||||
import static markil3.immersive_hud.TimerUtils.resetAlpha;
|
import static markil3.immersive_hud.TimerUtils.resetAlpha;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -122,6 +123,8 @@ public class EventBus
|
|||||||
public static void onGUIDraw(final RenderGameOverlayEvent event)
|
public static void onGUIDraw(final RenderGameOverlayEvent event)
|
||||||
{
|
{
|
||||||
Minecraft mc = Minecraft.getInstance();
|
Minecraft mc = Minecraft.getInstance();
|
||||||
|
boolean fadeIn = false;
|
||||||
|
|
||||||
switch (event.getType())
|
switch (event.getType())
|
||||||
{
|
{
|
||||||
case CROSSHAIRS:
|
case CROSSHAIRS:
|
||||||
@@ -159,7 +162,7 @@ public class EventBus
|
|||||||
{
|
{
|
||||||
RenderUtils.renderHotbar(mc, mc.ingameGUI,
|
RenderUtils.renderHotbar(mc, mc.ingameGUI,
|
||||||
event.getMatrixStack(),
|
event.getMatrixStack(),
|
||||||
event.getPartialTicks(), TimerUtils.hotbarTime);
|
event.getPartialTicks(), TimerUtils.hotbarTime, VISUAL_TIME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -249,7 +252,7 @@ public class EventBus
|
|||||||
if (!TimerUtils.drawJumpbar())
|
if (!TimerUtils.drawJumpbar())
|
||||||
{
|
{
|
||||||
RenderUtils.renderHorseJumpBar(mc, mc.ingameGUI,
|
RenderUtils.renderHorseJumpBar(mc, mc.ingameGUI,
|
||||||
event.getMatrixStack(), TimerUtils.jumpTime);
|
event.getMatrixStack(), TimerUtils.jumpTime, VISUAL_TIME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -260,7 +263,7 @@ public class EventBus
|
|||||||
if (!TimerUtils.drawExperience())
|
if (!TimerUtils.drawExperience())
|
||||||
{
|
{
|
||||||
RenderUtils.renderExperience(mc, mc.ingameGUI,
|
RenderUtils.renderExperience(mc, mc.ingameGUI,
|
||||||
event.getMatrixStack(), TimerUtils.experienceTime);
|
event.getMatrixStack(), TimerUtils.experienceTime, VISUAL_TIME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ import org.apache.logging.log4j.Logger;
|
|||||||
@Mod("immersive_hud")
|
@Mod("immersive_hud")
|
||||||
public class Main
|
public class Main
|
||||||
{
|
{
|
||||||
|
public static final int FADE_IN_TIME = 5;
|
||||||
|
public static final int FADE_OUT_TIME = 20;
|
||||||
/**
|
/**
|
||||||
* Class logger.
|
* Class logger.
|
||||||
*/
|
*/
|
||||||
@@ -56,12 +58,20 @@ public class Main
|
|||||||
*
|
*
|
||||||
* @param renderTime - How many ticks until the element entirely
|
* @param renderTime - How many ticks until the element entirely
|
||||||
* disappears.
|
* disappears.
|
||||||
|
* @param maxTime - How many ticks the element can appear.
|
||||||
*
|
*
|
||||||
* @return The proper transparency to render something.
|
* @return The proper transparency to render something.
|
||||||
*/
|
*/
|
||||||
static float getAlpha(int renderTime)
|
static float getAlpha(int renderTime, int maxTime)
|
||||||
{
|
{
|
||||||
return Math.min(renderTime / 20.0F,
|
if (renderTime <= FADE_OUT_TIME)
|
||||||
1.0F);
|
{
|
||||||
|
return renderTime / (float) FADE_OUT_TIME;
|
||||||
|
}
|
||||||
|
else if (renderTime > maxTime - FADE_IN_TIME)
|
||||||
|
{
|
||||||
|
return (maxTime - renderTime) / (float) FADE_IN_TIME;
|
||||||
|
}
|
||||||
|
return 1F;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -170,14 +170,14 @@ public class RenderUtils
|
|||||||
public static void renderHorseJumpBar(Minecraft mc,
|
public static void renderHorseJumpBar(Minecraft mc,
|
||||||
IngameGui gui,
|
IngameGui gui,
|
||||||
MatrixStack matrixStack,
|
MatrixStack matrixStack,
|
||||||
int renderTime)
|
int renderTime, int maxRenderTime)
|
||||||
{
|
{
|
||||||
if (renderTime == 0)
|
if (renderTime == 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
float alpha = Main.getAlpha(renderTime);
|
float alpha = Main.getAlpha(renderTime, maxRenderTime);
|
||||||
int scaledWidth = mc.getMainWindow().getScaledWidth();
|
int scaledWidth = mc.getMainWindow().getScaledWidth();
|
||||||
int scaledHeight = mc.getMainWindow().getScaledHeight();
|
int scaledHeight = mc.getMainWindow().getScaledHeight();
|
||||||
int xPosition = scaledWidth / 2 - 91;
|
int xPosition = scaledWidth / 2 - 91;
|
||||||
@@ -215,14 +215,14 @@ public class RenderUtils
|
|||||||
public static void renderExperience(Minecraft mc,
|
public static void renderExperience(Minecraft mc,
|
||||||
IngameGui gui,
|
IngameGui gui,
|
||||||
MatrixStack matrixStack,
|
MatrixStack matrixStack,
|
||||||
int renderTime)
|
int renderTime, int maxRenderTime)
|
||||||
{
|
{
|
||||||
if (renderTime == 0)
|
if (renderTime == 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
float alpha = Main.getAlpha(renderTime);
|
float alpha = Main.getAlpha(renderTime, maxRenderTime);
|
||||||
RenderSystem.color4f(1.0F, 1.0F, 1.0F, alpha);
|
RenderSystem.color4f(1.0F, 1.0F, 1.0F, alpha);
|
||||||
|
|
||||||
if (mc.playerController.gameIsSurvivalOrAdventure())
|
if (mc.playerController.gameIsSurvivalOrAdventure())
|
||||||
@@ -256,7 +256,7 @@ public class RenderUtils
|
|||||||
String s = "" + mc.player.experienceLevel;
|
String s = "" + mc.player.experienceLevel;
|
||||||
int i1 = (scaledWidth - gui.getFontRenderer()
|
int i1 = (scaledWidth - gui.getFontRenderer()
|
||||||
.getStringWidth(s)) / 2;
|
.getStringWidth(s)) / 2;
|
||||||
int j1 = scaledHeight - (int) ((22F * Main.getAlpha(TimerUtils.hotbarTime) + 9F) * alpha) - (int) (4F * alpha);
|
int j1 = scaledHeight - (int) ((22F * Main.getAlpha(TimerUtils.hotbarTime, maxRenderTime) + 9F) * alpha) - (int) (4F * alpha);
|
||||||
gui.getFontRenderer()
|
gui.getFontRenderer()
|
||||||
.drawString(matrixStack,
|
.drawString(matrixStack,
|
||||||
s,
|
s,
|
||||||
@@ -309,7 +309,7 @@ public class RenderUtils
|
|||||||
*/
|
*/
|
||||||
public static void renderHotbar(Minecraft mc, IngameGui gui,
|
public static void renderHotbar(Minecraft mc, IngameGui gui,
|
||||||
MatrixStack matrixStack,
|
MatrixStack matrixStack,
|
||||||
float partialTicks, int renderTime)
|
float partialTicks, int renderTime, int maxRenderTime)
|
||||||
{
|
{
|
||||||
final ResourceLocation WIDGETS_TEX_PATH =
|
final ResourceLocation WIDGETS_TEX_PATH =
|
||||||
new ResourceLocation("textures/gui/widgets.png");
|
new ResourceLocation("textures/gui/widgets.png");
|
||||||
@@ -320,7 +320,7 @@ public class RenderUtils
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
float alpha = Main.getAlpha(renderTime);
|
float alpha = Main.getAlpha(renderTime, maxRenderTime);
|
||||||
|
|
||||||
int scaledWidth = mc.getMainWindow().getScaledWidth();
|
int scaledWidth = mc.getMainWindow().getScaledWidth();
|
||||||
int scaledHeight = mc.getMainWindow().getScaledHeight();
|
int scaledHeight = mc.getMainWindow().getScaledHeight();
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ import java.util.Collections;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import static markil3.immersive_hud.Main.FADE_IN_TIME;
|
||||||
|
|
||||||
public class TimerUtils
|
public class TimerUtils
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@@ -186,7 +188,7 @@ public class TimerUtils
|
|||||||
*/
|
*/
|
||||||
public static int getHotbarTranslation()
|
public static int getHotbarTranslation()
|
||||||
{
|
{
|
||||||
return (int) (22F * Main.getAlpha(hotbarTime));
|
return (int) (22F * Main.getAlpha(hotbarTime, VISUAL_TIME));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -199,7 +201,7 @@ public class TimerUtils
|
|||||||
public static int getExperienceTranslation()
|
public static int getExperienceTranslation()
|
||||||
{
|
{
|
||||||
return (int) ((getHotbarTranslation() + 10F) * Main.getAlpha(
|
return (int) ((getHotbarTranslation() + 10F) * Main.getAlpha(
|
||||||
experienceTime)) - 3;
|
experienceTime, VISUAL_TIME)) - 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -211,7 +213,7 @@ public class TimerUtils
|
|||||||
*/
|
*/
|
||||||
public static int getJumpTranslation()
|
public static int getJumpTranslation()
|
||||||
{
|
{
|
||||||
return (int) ((getHotbarTranslation() + 10F) * Main.getAlpha(jumpTime)) - 3;
|
return (int) ((getHotbarTranslation() + 10F) * Main.getAlpha(jumpTime, VISUAL_TIME)) - 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -319,6 +321,7 @@ public class TimerUtils
|
|||||||
public static void resetMountHealth()
|
public static void resetMountHealth()
|
||||||
{
|
{
|
||||||
mountTime = VISUAL_TIME;
|
mountTime = VISUAL_TIME;
|
||||||
|
jumpTime = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -354,7 +357,7 @@ public class TimerUtils
|
|||||||
{
|
{
|
||||||
setAlpha(Main.getAlpha(crosshairTime > 0 ?
|
setAlpha(Main.getAlpha(crosshairTime > 0 ?
|
||||||
crosshairTime :
|
crosshairTime :
|
||||||
VISUAL_TIME));
|
VISUAL_TIME - FADE_IN_TIME, VISUAL_TIME));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -405,6 +408,7 @@ public class TimerUtils
|
|||||||
final int BLINK_TIME = 200;
|
final int BLINK_TIME = 200;
|
||||||
float effectAlpha = 0.0F;
|
float effectAlpha = 0.0F;
|
||||||
Integer time = effectTime.get(effectinstance.getPotion());
|
Integer time = effectTime.get(effectinstance.getPotion());
|
||||||
|
|
||||||
if (time == null)
|
if (time == null)
|
||||||
{
|
{
|
||||||
effectTime.put(effectinstance.getPotion(), (time = VISUAL_TIME));
|
effectTime.put(effectinstance.getPotion(), (time = VISUAL_TIME));
|
||||||
@@ -425,7 +429,7 @@ public class TimerUtils
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
effectAlpha = Main.getAlpha(time);
|
effectAlpha = Main.getAlpha(time, VISUAL_TIME);
|
||||||
}
|
}
|
||||||
return effectAlpha;
|
return effectAlpha;
|
||||||
}
|
}
|
||||||
@@ -627,7 +631,7 @@ public class TimerUtils
|
|||||||
|
|
||||||
if (changed)
|
if (changed)
|
||||||
{
|
{
|
||||||
hotbarTime = VISUAL_TIME;
|
hotbarTime = VISUAL_TIME - (hotbarTime > 0 ? FADE_IN_TIME : 0);
|
||||||
}
|
}
|
||||||
else if (hotbarTime > 0)
|
else if (hotbarTime > 0)
|
||||||
{
|
{
|
||||||
@@ -671,7 +675,7 @@ public class TimerUtils
|
|||||||
}
|
}
|
||||||
if (changed)
|
if (changed)
|
||||||
{
|
{
|
||||||
healthTime = HEALTH_TIME;
|
healthTime = HEALTH_TIME - (healthTime > 0 ? FADE_IN_TIME : 0);
|
||||||
}
|
}
|
||||||
else if (healthTime > 0)
|
else if (healthTime > 0)
|
||||||
{
|
{
|
||||||
@@ -689,7 +693,7 @@ public class TimerUtils
|
|||||||
stack.translate(0F,
|
stack.translate(0F,
|
||||||
getHealthTranslation(),
|
getHealthTranslation(),
|
||||||
0F);
|
0F);
|
||||||
setAlpha(Main.getAlpha(healthTime));
|
setAlpha(Main.getAlpha(healthTime, HEALTH_TIME));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -734,7 +738,7 @@ public class TimerUtils
|
|||||||
|
|
||||||
if (changed || hunger <= HUNGER_BOUNDARY)
|
if (changed || hunger <= HUNGER_BOUNDARY)
|
||||||
{
|
{
|
||||||
hungerTime = HEALTH_TIME;
|
hungerTime = HEALTH_TIME - hungerTime == 0 ? FADE_IN_TIME : 0;
|
||||||
}
|
}
|
||||||
else if (hungerTime > 0)
|
else if (hungerTime > 0)
|
||||||
{
|
{
|
||||||
@@ -750,7 +754,7 @@ public class TimerUtils
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setAlpha(Main.getAlpha(hungerTime));
|
setAlpha(Main.getAlpha(hungerTime, HEALTH_TIME));
|
||||||
stack.push();
|
stack.push();
|
||||||
stack.translate(0F,
|
stack.translate(0F,
|
||||||
getHealthTranslation(),
|
getHealthTranslation(),
|
||||||
@@ -776,7 +780,7 @@ public class TimerUtils
|
|||||||
*/
|
*/
|
||||||
if (healthTime > 0)
|
if (healthTime > 0)
|
||||||
{
|
{
|
||||||
setAlpha(Main.getAlpha(healthTime));
|
setAlpha(Main.getAlpha(healthTime, HEALTH_TIME));
|
||||||
stack.push();
|
stack.push();
|
||||||
stack.translate(0F,
|
stack.translate(0F,
|
||||||
getHealthTranslation(),
|
getHealthTranslation(),
|
||||||
@@ -819,6 +823,7 @@ public class TimerUtils
|
|||||||
Minecraft mc = Minecraft.getInstance();
|
Minecraft mc = Minecraft.getInstance();
|
||||||
Entity tmp = mc.player.getRidingEntity();
|
Entity tmp = mc.player.getRidingEntity();
|
||||||
boolean changed = false;
|
boolean changed = false;
|
||||||
|
|
||||||
if (tmp == null)
|
if (tmp == null)
|
||||||
{
|
{
|
||||||
mountHealth = -1;
|
mountHealth = -1;
|
||||||
@@ -838,9 +843,10 @@ public class TimerUtils
|
|||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (changed)
|
if (changed)
|
||||||
{
|
{
|
||||||
mountTime = VISUAL_TIME;
|
mountTime = VISUAL_TIME - (mountTime > 0 ? FADE_IN_TIME : 0);
|
||||||
}
|
}
|
||||||
else if (mountTime > 0)
|
else if (mountTime > 0)
|
||||||
{
|
{
|
||||||
@@ -853,7 +859,7 @@ public class TimerUtils
|
|||||||
stack.translate(0F,
|
stack.translate(0F,
|
||||||
getHealthTranslation(),
|
getHealthTranslation(),
|
||||||
0F);
|
0F);
|
||||||
setAlpha(Main.getAlpha(mountTime));
|
setAlpha(Main.getAlpha(mountTime, VISUAL_TIME));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -872,7 +878,7 @@ public class TimerUtils
|
|||||||
Minecraft mc = Minecraft.getInstance();
|
Minecraft mc = Minecraft.getInstance();
|
||||||
if (mc.player.getHorseJumpPower() > 0)
|
if (mc.player.getHorseJumpPower() > 0)
|
||||||
{
|
{
|
||||||
jumpTime = VISUAL_TIME;
|
jumpTime = VISUAL_TIME - (jumpTime > 0 ? FADE_IN_TIME : 0);
|
||||||
}
|
}
|
||||||
else if (jumpTime > 0)
|
else if (jumpTime > 0)
|
||||||
{
|
{
|
||||||
@@ -901,7 +907,7 @@ public class TimerUtils
|
|||||||
}
|
}
|
||||||
if (changed)
|
if (changed)
|
||||||
{
|
{
|
||||||
experienceTime = VISUAL_TIME;
|
experienceTime = VISUAL_TIME - (experienceTime > 0 ? FADE_IN_TIME : 0);
|
||||||
}
|
}
|
||||||
else if (experienceTime > 0)
|
else if (experienceTime > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user