Compare commits

..

1 Commits

Author SHA1 Message Date
Markil3
be64f84832 Sets up for Fabric 1.14
Note that we had to remove the modmenu and cloth APIs, since we couldn't figure out how to get the dependency mess to work. Maybe we will fix it later, but at least the .toml config file still works.
2021-03-03 08:26:28 -07:00
12 changed files with 253 additions and 835 deletions

View File

@@ -1,5 +1,5 @@
plugins { plugins {
id 'fabric-loom' version '0.5-SNAPSHOT' id 'fabric-loom' version '0.6-SNAPSHOT'
id 'maven-publish' id 'maven-publish'
} }
@@ -21,9 +21,9 @@ dependencies {
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
modApi "me.shedaniel.cloth:config-2:${project.cloth_version}" // modApi "me.shedaniel.cloth:config-2:${project.cloth_version}"
modApi "me.sargunvohra.mcmods:autoconfig1u:${project.autoconfig_version}" modApi "me.sargunvohra.mcmods:autoconfig1u:${project.autoconfig_version}"
modImplementation "io.github.prospector:modmenu:${project.modmenu_version}" // modImplementation "io.github.prospector:modmenu:${project.modmenu_version}"
// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs. // PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
// You may need to force-disable transitiveness on them. // You may need to force-disable transitiveness on them.

View File

@@ -3,15 +3,15 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/use # check these on https://fabricmc.net/use
minecraft_version=1.15 minecraft_version=1.14.3
yarn_mappings=1.15+build.2 yarn_mappings=1.14.3+build.13
loader_version=0.11.2 loader_version=0.11.2
cloth_version=2.9.3 cloth_version=2.9.3
modmenu_version=1.8.4+build.20 modmenu_version=1.6.3-95
autoconfig_version=2.2.0 autoconfig_version=2.2.0
# Mod Properties # Mod Properties
mod_version = 1.2 mod_version = 1.0
maven_group = markil3 maven_group = markil3
archives_base_name = immersive_hud archives_base_name = immersive_hud

View File

@@ -1,19 +1,13 @@
package markil3.immersive_hud; package markil3.immersive_hud;
import net.minecraft.item.Item;
import net.minecraft.item.Items;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
import net.minecraft.util.registry.Registry;
//import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig; import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
import static markil3.immersive_hud.Main.TICKS_PER_SECOND; import static markil3.immersive_hud.Main.TICKS_PER_SECOND;
import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* Configuration manager of this mod, which reads from and writes to this mod's * Configuration manager of this mod, which reads from and writes to this mod's
* configuration file. * configuration file.
@@ -90,13 +84,10 @@ public class ConfigManager
private TimeValues hungerTime = new TimeValues(); private TimeValues hungerTime = new TimeValues();
private TimeValues effectTime = new TimeValues(); private TimeValues effectTime = new TimeValues();
private int crosshairTime = 6 * TICKS_PER_SECOND; private int crosshairTime = 6 * TICKS_PER_SECOND;
private boolean hideCrosshair = true;
private int handTime = 30 * TICKS_PER_SECOND; private int handTime = 30 * TICKS_PER_SECOND;
private boolean hideHands = true;
private boolean showArmor = true; private boolean showArmor = true;
private double minHealth = 0.5; private double minHealth = 0.5;
private int minHunger = 17; private int minHunger = 17;
private Identifier[] ignoredItems = new Identifier[]{Registry.ITEM.getId(Items.FIREWORK_ROCKET)};
/** /**
* Returns the instance of this class. * Returns the instance of this class.
@@ -195,16 +186,6 @@ public class ConfigManager
return this.crosshairTime; 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. * Obtains the time that the hands are allowed to display.
* *
@@ -215,16 +196,6 @@ public class ConfigManager
return this.handTime; 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. * Checks whether the armor bar should render.
* *
@@ -257,16 +228,6 @@ public class ConfigManager
return this.minHunger; return this.minHunger;
} }
/**
* Obtains a collection of items that won't cause hands and crosshairs to show when used.
*
* @return A set of ignored items.
*/
public Set<Item> getIgnoredItems()
{
return Arrays.stream(ignoredItems).map(Registry.ITEM::get).collect(Collectors.toSet());
}
/** /**
* Sets the time that the hands are allowed to display. * Sets the time that the hands are allowed to display.
* *
@@ -277,16 +238,6 @@ public class ConfigManager
this.crosshairTime = time; 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. * Sets the time that the hands are allowed to display.
* *
@@ -297,16 +248,6 @@ public class ConfigManager
this.handTime = time; 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. * Determines whether the armor bar should render.
* *
@@ -338,19 +279,9 @@ public class ConfigManager
{ {
this.minHunger = MathHelper.clamp(boundary, 0, 20); this.minHunger = MathHelper.clamp(boundary, 0, 20);
} }
/**
* Sets which items won't cause the hands and crosshairs to show when used.
*
* @param items - A set of ignored items.
*/
public void setIgnoredItems(Item... items)
{
this.ignoredItems = Arrays.stream(items).map(Registry.ITEM::getId).toArray(Identifier[]::new);
}
/** /**
* Saves changes to this mod's configuration. * Saves changes to this mod's configuration.
*/ */
// public void save() // public void save()
// { // {
// SPEC.save(); // SPEC.save();

View File

@@ -22,6 +22,9 @@ import net.fabricmc.api.ModInitializer;
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig; import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
import me.sargunvohra.mcmods.autoconfig1u.serializer.Toml4jConfigSerializer; import me.sargunvohra.mcmods.autoconfig1u.serializer.Toml4jConfigSerializer;
//import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
//import me.sargunvohra.mcmods.autoconfig1u.serializer.Toml4jConfigSerializer;
/** /**
* The main entry point for the Immersive HUD mod. * The main entry point for the Immersive HUD mod.
* *

View File

@@ -1,184 +0,0 @@
package markil3.immersive_hud;
import net.minecraft.client.gui.screen.Screen;
import java.util.function.Function;
import io.github.prospector.modmenu.api.ModMenuApi;
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
import me.shedaniel.clothconfig2.api.ConfigBuilder;
import me.shedaniel.clothconfig2.api.ConfigCategory;
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
import me.shedaniel.clothconfig2.gui.entries.DoubleListEntry;
import static markil3.immersive_hud.Main.TICKS_PER_SECOND;
public class ModMenu implements ModMenuApi
{
private void startTimeField(String name, ConfigEntryBuilder entryBuilder,
ConfigCategory cat,
ConfigManager.TimeValues value)
{
final float SHOW_TIME = 6;
final float FADE_IN = 0.25F;
final float FADE_OUT = 0.5F;
DoubleListEntry maxTime =
entryBuilder.startDoubleField("option.immersive_hud." + name +
"MaxTime",
(float) value.getMaxTime() / TICKS_PER_SECOND)
.setDefaultValue(SHOW_TIME)
.setMin(0)
.setMax(10 * 60 * TICKS_PER_SECOND) // 10 Minutes
.setTooltip("tooltip.immersive_hud." + name +
"MaxTime")
.setSaveConsumer(val -> value.setMaxTime((int) (val * TICKS_PER_SECOND)))
.build();
DoubleListEntry fadeIn =
entryBuilder.startDoubleField("option.immersive_hud." + name +
"FadeIn",
(float) value.getFadeInTime() / TICKS_PER_SECOND)
.setDefaultValue(FADE_IN)
.setMin(0)
.setMax(10 * 60 * TICKS_PER_SECOND)
.setTooltip("tooltip.immersive_hud." + name +
"FadeIn")
.setSaveConsumer(val -> value.setFadeInTime((int) (val * TICKS_PER_SECOND)))
.build();
DoubleListEntry fadeOut =
entryBuilder.startDoubleField("option.immersive_hud." + name +
"FadeOut",
(float) value.getFadeOutTime() / TICKS_PER_SECOND)
.setDefaultValue(FADE_OUT)
.setMin(0)
.setMax(10 * 60 * TICKS_PER_SECOND)
.setTooltip("tooltip.immersive_hud." + name +
"FadeOut")
.setSaveConsumer(val -> value.setFadeOutTime((int) (val * TICKS_PER_SECOND)))
.build();
cat.addEntry(maxTime);
cat.addEntry(fadeIn);
cat.addEntry(fadeOut);
}
@Override
public String getModId()
{
return "immersive_hud";
}
@Override
public Function<Screen, ? extends Screen> getConfigScreenFactory()
{
return screen -> {
ConfigCategory general;
ConfigEntryBuilder entryBuilder;
ConfigManager instance = ConfigManager.getInstance();
final ConfigBuilder builder = ConfigBuilder.create()
.setParentScreen(screen)
.setTitle("immersive_hud.configGui.title")
.setSavingRunnable(() -> {
try
{
if (Class.forName(
"me.sargunvohra.mcmods.autoconfig1u" +
".AutoConfig") != null)
{
((me.sargunvohra.mcmods.autoconfig1u.ConfigManager<ConfigManagerCloth>) AutoConfig
.getConfigHolder(
ConfigManagerCloth.class)).save();
}
}
catch (ClassNotFoundException e)
{
// Do nothing
}
});
general =
builder.getOrCreateCategory("category.immersive_hud" +
".general");
entryBuilder = builder.entryBuilder();
startTimeField("hotbar", entryBuilder,
general,
instance.getHotbarTime());
startTimeField("experience", entryBuilder,
general,
instance.getExperienceTime());
startTimeField("jump", entryBuilder,
general,
instance.getJumpTime());
startTimeField("jump", entryBuilder,
general,
instance.getHealthTime());
startTimeField("hunger", entryBuilder,
general,
instance.getHungerTime());
startTimeField("effect", entryBuilder,
general,
instance.getPotionTime());
general.addEntry(entryBuilder.startDoubleField(
"option.immersive_hud.crosshairTime",
(float) instance.getCrosshairTime() / TICKS_PER_SECOND)
.setDefaultValue(6)
.setTooltip("tooltip.immersive_hud.crosshairTime")
.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)
.setDefaultValue(30)
.setTooltip("tooltip.immersive_hud.handTime")
.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())
.setDefaultValue(0.5)
.setTooltip("tooltip.immersive_hud.minHealth")
.setSaveConsumer(val -> instance.setMinHealth(val))
.build());
general.addEntry(entryBuilder.startIntField(
"option.immersive_hud.minHunger",
instance.getMinHunger())
.setDefaultValue(17)
.setTooltip("tooltip.immersive_hud.minHunger")
.setSaveConsumer(val -> instance.setMinHunger(val))
.build());
general.addEntry(entryBuilder.startBooleanToggle(
"option.immersive_hud.showArmor",
instance.shouldShowArmor())
.setDefaultValue(true)
.setTooltip("tooltip.immersive_hud.showArmor")
.setSaveConsumer(val -> instance.shouldShowArmor(val))
.build());
return builder.build();
};
}
}

View File

@@ -16,11 +16,10 @@
*/ */
package markil3.immersive_hud; package markil3.immersive_hud;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.platform.GlStateManager;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity; import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffect;
@@ -35,10 +34,11 @@ import net.minecraft.item.FilledMapItem;
import net.minecraft.item.FishingRodItem; import net.minecraft.item.FishingRodItem;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.LingeringPotionItem;
import net.minecraft.item.RangedWeaponItem; import net.minecraft.item.RangedWeaponItem;
import net.minecraft.item.ShieldItem; import net.minecraft.item.ShieldItem;
import net.minecraft.item.SnowballItem; import net.minecraft.item.SnowballItem;
import net.minecraft.item.ThrowablePotionItem; import net.minecraft.item.SplashPotionItem;
import net.minecraft.item.TridentItem; import net.minecraft.item.TridentItem;
import net.minecraft.util.Hand; import net.minecraft.util.Hand;
import net.minecraft.util.hit.EntityHitResult; import net.minecraft.util.hit.EntityHitResult;
@@ -49,7 +49,6 @@ import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.Optional; import java.util.Optional;
import java.util.Set;
/** /**
* Contains the logic for changing the HUD. * Contains the logic for changing the HUD.
@@ -174,7 +173,7 @@ public class TimerUtils
*/ */
public static void setAlpha(float alpha) public static void setAlpha(float alpha)
{ {
RenderSystem.color4f(1.0F, 1.0F, 1.0F, alpha); GlStateManager.color4f(1.0F, 1.0F, 1.0F, alpha);
} }
/** /**
@@ -251,8 +250,6 @@ public class TimerUtils
ConfigManager.getInstance().getExperienceTime(); ConfigManager.getInstance().getExperienceTime();
ConfigManager.TimeValues jump = ConfigManager.TimeValues jump =
ConfigManager.getInstance().getJumpTime(); ConfigManager.getInstance().getJumpTime();
ConfigManager.TimeValues healthTimes = ConfigManager.getInstance().getHealthTime();
ConfigManager.TimeValues hungerTimes = ConfigManager.getInstance().getHungerTime();
float hotbarAlpha = Main.getAlpha(hotbarTime, float hotbarAlpha = Main.getAlpha(hotbarTime,
hotbar.getMaxTime(), hotbar.getMaxTime(),
@@ -266,21 +263,8 @@ public class TimerUtils
jump.getMaxTime(), jump.getMaxTime(),
jump.getFadeInTime(), jump.getFadeInTime(),
jump.getFadeOutTime()); jump.getFadeOutTime());
float statusAlpha = Main.getAlpha(healthTime,
healthTimes.getMaxTime(),
healthTimes.getFadeInTime(),
healthTimes.getFadeOutTime());
statusAlpha = Math.max(statusAlpha, Main.getAlpha(hungerTime,
hungerTimes.getMaxTime(),
hungerTimes.getFadeInTime(),
hungerTimes.getFadeOutTime()));
/*
* Draw it in its standard location until it is completely transparent, then move it
* instantly.
*/
statusAlpha = (float) Math.ceil(statusAlpha);
return 7 * (1 - Math.max(experienceAlpha, return 7 * (1 - Math.max(experienceAlpha,
jumpAlpha)) + 22 * (1 - hotbarAlpha) + 42 * (1 - statusAlpha); jumpAlpha)) + 22 * (1 - hotbarAlpha);
} }
/** /**
@@ -288,8 +272,9 @@ public class TimerUtils
* view, and briefly brings the health and hunger into view if the held item * view, and briefly brings the health and hunger into view if the held item
* is food. * is food.
* *
* @param hand - The hand being triggered * @param hand - The hand being triggered
* @param clear - Whether the hand it being enabled or disabled. * @param clear - Whether the hand it being enabled or disabled.
*
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
public static void onClick(Hand hand, boolean clear) public static void onClick(Hand hand, boolean clear)
@@ -304,7 +289,6 @@ public class TimerUtils
LivingEntity entity; LivingEntity entity;
Item item; Item item;
Iterator<ItemStack> hands; Iterator<ItemStack> hands;
Set<Item> ignored;
if (mc.getCameraEntity() instanceof LivingEntity) if (mc.getCameraEntity() instanceof LivingEntity)
{ {
entity = (LivingEntity) mc.getCameraEntity(); entity = (LivingEntity) mc.getCameraEntity();
@@ -330,14 +314,6 @@ public class TimerUtils
.map(ItemStack::getItem) .map(ItemStack::getItem)
.orElse(null); .orElse(null);
} }
if (item != null)
{
ignored = ConfigManager.getInstance().getIgnoredItems();
if (ignored.contains(item))
{
return;
}
}
crosshairTime = ConfigManager.getInstance().getCrosshairTime(); crosshairTime = ConfigManager.getInstance().getCrosshairTime();
if (hand == Hand.MAIN_HAND) if (hand == Hand.MAIN_HAND)
{ {
@@ -354,11 +330,11 @@ public class TimerUtils
if (item.isFood()) if (item.isFood())
{ {
healthTime = health.getMaxTime() - (healthTime > 0 ? healthTime = health.getMaxTime() - (healthTime > 0 ?
health.getFadeInTime() : health.getFadeInTime() :
0); 0);
hungerTime = hunger.getMaxTime() - (hungerTime > 0 ? hungerTime = hunger.getMaxTime() - (hungerTime > 0 ?
hunger.getFadeInTime() : hunger.getFadeInTime() :
0); 0);
} }
} }
} }
@@ -367,65 +343,59 @@ public class TimerUtils
* Run whenever a hand is rendered in 1st person. This brings the player * Run whenever a hand is rendered in 1st person. This brings the player
* hands into and out of view as needed. * hands into and out of view as needed.
* *
* @param hand - The hand being rendered. * @param hand - The hand being rendered.
* @param matrixStack - The rendering stack. *
* @return If true, then don't render this hand at all. * @return If true, then don't render this hand at all.
*
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
public static boolean onRenderHand(Hand hand, public static boolean onRenderHand(Hand hand,
MatrixStack matrixStack,
float ticks) float ticks)
{ {
final float HAND_UP_TIME = 20F; final float HAND_UP_TIME = 20F;
boolean hideHands = ConfigManager.getInstance().hideHands(); switch (hand)
if (hideHands)
{ {
switch (hand) case OFF_HAND:
if (offHandTime == 0 && !offHandLock)
{ {
case OFF_HAND: return true;
if (offHandTime == 0 && !offHandLock)
{
return true;
}
else if (!offHandLock && (mapLock & 0b01) == 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)
{
mainHandTime -= ticks;
}
if (mainHandTime < HAND_UP_TIME)
{
matrixStack
.translate(0,
-1.0F * (HAND_UP_TIME - mainHandTime) /
HAND_UP_TIME,
0);
}
}
break;
} }
else if (!offHandLock && (mapLock & 0b01) == 0)
{
if (offHandTime > 0)
{
offHandTime -= ticks;
}
if (offHandTime < HAND_UP_TIME)
{
GlStateManager.translatef(0,
(float) (-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)
{
mainHandTime -= ticks;
}
if (mainHandTime < HAND_UP_TIME)
{
GlStateManager.translatef(0,
(float) (-1.0F * (HAND_UP_TIME - mainHandTime) /
HAND_UP_TIME),
0);
}
}
break;
} }
return false; return false;
} }
@@ -435,6 +405,7 @@ public class TimerUtils
* needed. * needed.
* *
* @return If true, then cancel drawing the crosshair. * @return If true, then cancel drawing the crosshair.
*
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
public static boolean drawCrosshair(float ticks) public static boolean drawCrosshair(float ticks)
@@ -447,42 +418,38 @@ public class TimerUtils
boolean changed = false; boolean changed = false;
boolean canceled = false; boolean canceled = false;
boolean hideCrosshair = ConfigManager.getInstance().hideCrosshair(); if (mc.hitResult != null && mc.hitResult
if (hideCrosshair) .getType() != HitResult.Type.MISS)
{ {
if (mc.crosshairTarget != null && mc.crosshairTarget if (mc.hitResult.getType() == HitResult.Type
.getType() != HitResult.Type.MISS) .ENTITY)
{ {
if (mc.crosshairTarget.getType() == HitResult.Type if (((EntityHitResult) mc.hitResult).getEntity() != entity
.ENTITY) .getVehicle())
{
if (((EntityHitResult) mc.crosshairTarget).getEntity() != entity
.getVehicle())
{
changed = true;
}
}
else
{ {
changed = true; changed = true;
} }
} }
if (changed || mainHandLock || offHandLock || crosshairTime
> 0)
{
setAlpha(Main.getAlpha(crosshairTime > 0 ?
crosshairTime :
CROSSHAIR_TIME, CROSSHAIR_TIME, 0, 0));
}
else else
{ {
canceled = true; changed = 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; return canceled;
} }
@@ -491,6 +458,7 @@ public class TimerUtils
* as needed. * as needed.
* *
* @return If true, then cancel drawing the mount health bar. * @return If true, then cancel drawing the mount health bar.
*
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
public static boolean drawMountHealth(float ticks) public static boolean drawMountHealth(float ticks)
@@ -512,7 +480,7 @@ public class TimerUtils
LivingEntity mount; LivingEntity mount;
boolean changed = false; boolean changed = false;
if (tmp == null || !(tmp instanceof LivingEntity)) if (tmp == null)
{ {
mountHealth = -1; mountHealth = -1;
mountMaxHealth = -1; mountMaxHealth = -1;
@@ -525,17 +493,17 @@ public class TimerUtils
mountHealth = mount.getHealth(); mountHealth = mount.getHealth();
changed = true; changed = true;
} }
if (mountMaxHealth != mount.getMaximumHealth()) if (mountMaxHealth != mount.getHealthMaximum())
{ {
mountMaxHealth = mount.getMaximumHealth(); mountMaxHealth = mount.getHealthMaximum();
changed = true; changed = true;
} }
} }
if (changed) if (changed)
{ {
mountTime = healthTimes.getMaxTime() - (mountTime > 0 ? mountTime = healthTimes.getMaxTime() - (mountTime > 0 ?
healthTimes.getFadeInTime() : healthTimes.getFadeInTime() :
0); 0);
} }
else if (mountTime > 0) else if (mountTime > 0)
{ {
@@ -550,8 +518,8 @@ public class TimerUtils
{ {
if (tmp != null && mountTime > 0) if (tmp != null && mountTime > 0)
{ {
RenderSystem.pushMatrix(); GlStateManager.pushMatrix();
RenderSystem.translatef(0F, GlStateManager.translatef(0F,
getHealthTranslation(), getHealthTranslation(),
0F); 0F);
setAlpha(Main.getAlpha(mountTime, setAlpha(Main.getAlpha(mountTime,
@@ -562,8 +530,8 @@ public class TimerUtils
} }
return true; return true;
} }
RenderSystem.pushMatrix(); GlStateManager.pushMatrix();
RenderSystem.translatef(0F, GlStateManager.translatef(0F,
getHealthTranslation(), getHealthTranslation(),
0F); 0F);
return false; return false;
@@ -622,6 +590,7 @@ public class TimerUtils
* Obtains how transparent * Obtains how transparent
* *
* @param effectinstance * @param effectinstance
*
* @return * @return
*/ */
public static float getPotionAlpha(StatusEffectInstance effectinstance) public static float getPotionAlpha(StatusEffectInstance effectinstance)
@@ -633,8 +602,7 @@ public class TimerUtils
if (effectinstance.getDuration() <= BLINK_TIME) if (effectinstance.getDuration() <= BLINK_TIME)
{ {
effectAlpha = effectAlpha =
MathHelper.sin(7000F / (effectinstance MathHelper.sin(7000F / (effectinstance.getDuration() + 16F * (float) Math.PI)) * 50F / (effectinstance
.getDuration() + 16F * (float) Math.PI)) * 50F / (effectinstance
.getDuration() + 100F) + 0.5F; .getDuration() + 100F) + 0.5F;
} }
else if (effectinstance.getDuration() <= BLINK_TIME + potion.getFadeInTime()) else if (effectinstance.getDuration() <= BLINK_TIME + potion.getFadeInTime())
@@ -659,6 +627,7 @@ public class TimerUtils
* needed. * needed.
* *
* @return If true, then cancel drawing the armor bar. * @return If true, then cancel drawing the armor bar.
*
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
public static boolean drawArmor() public static boolean drawArmor()
@@ -686,6 +655,7 @@ public class TimerUtils
* needed. * needed.
* *
* @return If true, then cancel drawing the health. * @return If true, then cancel drawing the health.
*
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
public static boolean drawHealth(float ticks) public static boolean drawHealth(float ticks)
@@ -721,16 +691,16 @@ public class TimerUtils
health = entity.getHealth(); health = entity.getHealth();
changed = true; changed = true;
} }
if (maxHealth != entity.getMaximumHealth()) if (maxHealth != entity.getHealthMaximum())
{ {
maxHealth = entity.getMaximumHealth(); maxHealth = entity.getHealthMaximum();
changed = true; changed = true;
} }
if (changed) if (changed)
{ {
healthTime = healthTimes.getMaxTime() - (healthTime > 0 ? healthTime = healthTimes.getMaxTime() - (healthTime > 0 ?
healthTimes.getFadeInTime() : healthTimes.getFadeInTime() :
0); 0);
} }
else if (healthTime > 0) else if (healthTime > 0)
{ {
@@ -761,6 +731,7 @@ public class TimerUtils
* needed. * needed.
* *
* @return If true, then cancel drawing the hunger bar. * @return If true, then cancel drawing the hunger bar.
*
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
public static boolean drawHunger(float ticks) public static boolean drawHunger(float ticks)
@@ -807,8 +778,8 @@ public class TimerUtils
if (changed) if (changed)
{ {
hungerTime = hungerTimes.getMaxTime() - (hungerTime > 0 ? hungerTime = hungerTimes.getMaxTime() - (hungerTime > 0 ?
hungerTimes.getFadeInTime() : hungerTimes.getFadeInTime() :
0); 0);
} }
else if (hungerTime > 0) else if (hungerTime > 0)
{ {
@@ -839,6 +810,7 @@ public class TimerUtils
* as needed. * as needed.
* *
* @return If true, then cancel drawing the jump bar. * @return If true, then cancel drawing the jump bar.
*
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
public static boolean drawJumpbar(float ticks) public static boolean drawJumpbar(float ticks)
@@ -860,8 +832,8 @@ public class TimerUtils
if (entity.method_3151() > 0) if (entity.method_3151() > 0)
{ {
jumpTime = jump.getMaxTime() - (jumpTime > 0 ? jumpTime = jump.getMaxTime() - (jumpTime > 0 ?
jump.getFadeInTime() : jump.getFadeInTime() :
0); 0);
} }
else if (jumpTime > 0) else if (jumpTime > 0)
{ {
@@ -869,8 +841,8 @@ public class TimerUtils
} }
if (jumpTime > 0) if (jumpTime > 0)
{ {
RenderSystem.pushMatrix(); GlStateManager.pushMatrix();
RenderSystem.translatef(0F, TimerUtils.getJumpTranslation(), 0F); GlStateManager.translatef(0F, TimerUtils.getJumpTranslation(), 0F);
setAlpha(Main.getAlpha(jumpTime, setAlpha(Main.getAlpha(jumpTime,
jump.getMaxTime(), jump.getMaxTime(),
jump.getFadeInTime(), jump.getFadeInTime(),
@@ -885,6 +857,7 @@ public class TimerUtils
* as needed. * as needed.
* *
* @return If true, then cancel drawing the experience bar. * @return If true, then cancel drawing the experience bar.
*
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
public static boolean drawExperience(float ticks) public static boolean drawExperience(float ticks)
@@ -913,8 +886,8 @@ public class TimerUtils
if (changed) if (changed)
{ {
experienceTime = experience.getMaxTime() - (experienceTime > 0 ? experienceTime = experience.getMaxTime() - (experienceTime > 0 ?
experience.getFadeInTime() : experience.getFadeInTime() :
0); 0);
} }
else if (experienceTime > 0) else if (experienceTime > 0)
{ {
@@ -922,8 +895,8 @@ public class TimerUtils
} }
if (experienceTime > 0) if (experienceTime > 0)
{ {
RenderSystem.pushMatrix(); GlStateManager.pushMatrix();
RenderSystem.translatef(0F, GlStateManager.translatef(0F,
TimerUtils.getExperienceTranslation(), TimerUtils.getExperienceTranslation(),
0F); 0F);
setAlpha(Main.getAlpha(experienceTime, setAlpha(Main.getAlpha(experienceTime,
@@ -941,6 +914,7 @@ public class TimerUtils
* or not to draw it. * or not to draw it.
* *
* @return If true, then cancel drawing the hotbar. * @return If true, then cancel drawing the hotbar.
*
* @see #recolorHotbar() * @see #recolorHotbar()
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
@@ -1049,7 +1023,7 @@ public class TimerUtils
{ {
if (entity.isUsingItem() && entity if (entity.isUsingItem() && entity
.getActiveHand() != null && entity.getActiveHand() .getActiveHand() != null && entity.getActiveHand()
.ordinal() == i) .ordinal() == i)
{ {
switch (i) switch (i)
{ {
@@ -1066,7 +1040,7 @@ public class TimerUtils
* Items that have the crosshairs enabled for as long * Items that have the crosshairs enabled for as long
* as the item is being held at all. * as the item is being held at all.
*/ */
else if (item instanceof ThrowablePotionItem || else if (item instanceof SplashPotionItem || item instanceof LingeringPotionItem ||
item instanceof SnowballItem || item instanceof item instanceof SnowballItem || item instanceof
EggItem || item instanceof EnderPearlItem || item EggItem || item instanceof EnderPearlItem || item
instanceof FishingRodItem) instanceof FishingRodItem)
@@ -1112,11 +1086,11 @@ public class TimerUtils
if (item.isFood()) if (item.isFood())
{ {
healthTime = health.getMaxTime() - (healthTime > 0 ? healthTime = health.getMaxTime() - (healthTime > 0 ?
health.getFadeInTime() : health.getFadeInTime() :
0); 0);
hungerTime = hunger.getMaxTime() - (hungerTime > 0 ? hungerTime = hunger.getMaxTime() - (hungerTime > 0 ?
hunger.getFadeInTime() : hunger.getFadeInTime() :
0); 0);
} }
if (i == 0) if (i == 0)
{ {
@@ -1145,8 +1119,8 @@ public class TimerUtils
if (changed) if (changed)
{ {
hotbarTime = hotbar.getMaxTime() - (hotbarTime > 0 ? hotbarTime = hotbar.getMaxTime() - (hotbarTime > 0 ?
hotbar.getFadeInTime() : hotbar.getFadeInTime() :
0); 0);
} }
else if (hotbarTime > 0) else if (hotbarTime > 0)
{ {
@@ -1161,14 +1135,15 @@ public class TimerUtils
* needed. * needed.
* *
* @return If true, then cancel drawing the crosshair. * @return If true, then cancel drawing the crosshair.
*
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
public static void recolorHotbar() public static void recolorHotbar()
{ {
ConfigManager.TimeValues hotbar = ConfigManager.TimeValues hotbar =
ConfigManager.getInstance().getHotbarTime(); ConfigManager.getInstance().getHotbarTime();
RenderSystem.pushMatrix(); GlStateManager.pushMatrix();
RenderSystem.translatef(0F, TimerUtils.getHotbarTranslation(), 0F); GlStateManager.translatef(0F, TimerUtils.getHotbarTranslation(), 0F);
setAlpha(Main.getAlpha(hotbarTime, setAlpha(Main.getAlpha(hotbarTime,
hotbar.getMaxTime(), hotbar.getMaxTime(),
hotbar.getFadeInTime(), hotbar.getFadeInTime(),

View File

@@ -21,8 +21,6 @@ import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.entity.LivingEntity; import net.minecraft.entity.LivingEntity;
import net.minecraft.util.Hand; import net.minecraft.util.Hand;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
@@ -40,9 +38,6 @@ import markil3.immersive_hud.TimerUtils;
@Mixin(ClientPlayerEntity.class) @Mixin(ClientPlayerEntity.class)
public class ClientPlayerHook public class ClientPlayerHook
{ {
private static final Logger LOGGER =
LogManager.getLogger(ClientPlayerHook.class);
/** /**
* Updates hand timing every time an attack is initiated. * Updates hand timing every time an attack is initiated.
* *
@@ -54,18 +49,7 @@ public class ClientPlayerHook
@Inject(method = "swingHand", at = @At(value = "TAIL")) @Inject(method = "swingHand", at = @At(value = "TAIL"))
public void swingHand(Hand hand, CallbackInfo callbackInfo) public void swingHand(Hand hand, CallbackInfo callbackInfo)
{ {
try TimerUtils.onClick(hand, hand == null);
{
TimerUtils.onClick(hand, hand == null);
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.network" +
".ClientPlayerEntity#swingHand " +
"event",
e);
}
} }
/** /**
@@ -79,18 +63,7 @@ public class ClientPlayerHook
@Inject(method = "setCurrentHand", at = @At(value = "TAIL")) @Inject(method = "setCurrentHand", at = @At(value = "TAIL"))
public void setCurrentHand(Hand hand, CallbackInfo callbackInfo) public void setCurrentHand(Hand hand, CallbackInfo callbackInfo)
{ {
try TimerUtils.onClick(hand, hand == null);
{
TimerUtils.onClick(hand, hand == null);
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.network" +
".ClientPlayerEntity#setCurrentHand " +
"event",
e);
}
} }
/** /**
@@ -103,21 +76,10 @@ public class ClientPlayerHook
@Inject(method = "clearActiveItem", at = @At(value = "HEAD")) @Inject(method = "clearActiveItem", at = @At(value = "HEAD"))
public void clearActiveItem(CallbackInfo callbackInfo) public void clearActiveItem(CallbackInfo callbackInfo)
{ {
try if (MinecraftClient.getInstance().cameraEntity instanceof LivingEntity)
{ {
if (MinecraftClient.getInstance().cameraEntity instanceof LivingEntity) TimerUtils.onClick(((LivingEntity) MinecraftClient.getInstance().cameraEntity)
{ .getActiveHand(), true);
TimerUtils.onClick(((LivingEntity) MinecraftClient.getInstance().cameraEntity)
.getActiveHand(), true);
}
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.network" +
".ClientPlayerEntity#clearActiveItem " +
"event",
e);
} }
} }
} }

View File

@@ -17,14 +17,10 @@
package markil3.immersive_hud.mixin; package markil3.immersive_hud.mixin;
import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.network.AbstractClientPlayerEntity;
import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.FirstPersonRenderer;
import net.minecraft.client.render.item.HeldItemRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.Hand; import net.minecraft.util.Hand;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
@@ -39,58 +35,35 @@ import markil3.immersive_hud.TimerUtils;
* @author Markil 3 * @author Markil 3
* @version 0.1-1.16.4-fabric * @version 0.1-1.16.4-fabric
*/ */
@Mixin(HeldItemRenderer.class) @Mixin(FirstPersonRenderer.class)
public class HeldItemHook public class HeldItemHook
{ {
private static final Logger LOGGER =
LogManager.getLogger(HeldItemHook.class);
/** /**
* Determines whether or not to render a certain hand. * Determines whether or not to render a certain hand.
* *
* @param player
* @param tickDelta
* @param pitch
* @param hand * @param hand
* @param swingProgress
* @param item
* @param equipProgress
* @param matrices
* @param vertexConsumers
* @param light
* @param callbackInfo * @param callbackInfo
* *
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
@Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", @Inject(method = "renderFirstPersonItem" +
target = "Lnet/minecraft/client/util/math/MatrixStack;push()V", "(Lnet/minecraft/client/network/AbstractClientPlayerEntity;" +
shift = At.Shift.AFTER), cancellable = true) "FFLnet/minecraft/util/Hand;FLnet/minecraft/item/ItemStack;F)V",
public void renderHand(AbstractClientPlayerEntity player, at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform" +
float tickDelta, "/GlStateManager;pushMatrix()V", shift = At.Shift.AFTER),
float pitch, cancellable = true)
public void renderHand(AbstractClientPlayerEntity abstractClientPlayerEntity,
float f,
float g,
Hand hand, Hand hand,
float swingProgress, float h,
ItemStack item, ItemStack itemStack,
float equipProgress, float i,
MatrixStack matrices,
VertexConsumerProvider vertexConsumers,
int light,
CallbackInfo callbackInfo) CallbackInfo callbackInfo)
{ {
try if (TimerUtils.onRenderHand(hand, f))
{ {
if (TimerUtils.onRenderHand(hand, matrices, tickDelta)) callbackInfo.cancel();
{
callbackInfo.cancel();
}
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.render.item" +
".HeldItemRenderer#renderFirstPersonItem " +
"event",
e);
} }
} }

View File

@@ -16,7 +16,7 @@
*/ */
package markil3.immersive_hud.mixin; package markil3.immersive_hud.mixin;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.platform.GlStateManager;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.gui.hud.InGameHud;
@@ -44,7 +44,7 @@ import markil3.immersive_hud.TimerUtils;
@Mixin(InGameHud.class) @Mixin(InGameHud.class)
public class HudHook public class HudHook
{ {
private static final Logger LOGGER = LogManager.getLogger(HudHook.class); private static final Logger logger = LogManager.getLogger(HudHook.class);
private StatusEffectInstance currentEffect; private StatusEffectInstance currentEffect;
@@ -60,22 +60,11 @@ public class HudHook
cancellable = true) cancellable = true)
public void startCrosshair(CallbackInfo callbackInfo) public void startCrosshair(CallbackInfo callbackInfo)
{ {
LOGGER.debug("Starting crosshair"); logger.debug("Starting crosshair");
try if (TimerUtils.drawCrosshair(MinecraftClient.getInstance()
.getTickDelta()))
{ {
if (TimerUtils.drawCrosshair(MinecraftClient.getInstance() callbackInfo.cancel();
.getTickDelta()))
{
callbackInfo.cancel();
}
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderCrosshair " +
"event",
e);
} }
} }
@@ -90,22 +79,11 @@ public class HudHook
@Inject(method = "renderCrosshair", at = @At(value = "TAIL")) @Inject(method = "renderCrosshair", at = @At(value = "TAIL"))
public void finishCrosshair(CallbackInfo callbackInfo) public void finishCrosshair(CallbackInfo callbackInfo)
{ {
LOGGER.debug("Finishing crosshair"); logger.debug("Finishing crosshair");
try /*
{ * Resets the color so that nothing else is bothered.
/* */
* Resets the color so that nothing else is bothered. TimerUtils.resetAlpha();
*/
TimerUtils.resetAlpha();
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderCrosshair " +
"event",
e);
}
} }
/** /**
@@ -120,22 +98,10 @@ public class HudHook
cancellable = true) cancellable = true)
public void startJumpbar(int x, CallbackInfo callbackInfo) public void startJumpbar(int x, CallbackInfo callbackInfo)
{ {
LOGGER.debug("Starting jumpbar"); logger.debug("Starting jumpbar");
try if (TimerUtils.drawJumpbar(MinecraftClient.getInstance().getTickDelta()))
{ {
if (TimerUtils.drawJumpbar(MinecraftClient.getInstance() callbackInfo.cancel();
.getTickDelta()))
{
callbackInfo.cancel();
}
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderMountJumpBar " +
"event",
e);
} }
} }
@@ -152,23 +118,12 @@ public class HudHook
int x, int x,
CallbackInfo callbackInfo) CallbackInfo callbackInfo)
{ {
LOGGER.debug("Finishing jumpbar"); logger.debug("Finishing jumpbar");
try GlStateManager.popMatrix();
{ /*
RenderSystem.popMatrix(); * Resets the color so that nothing else is bothered.
/* */
* Resets the color so that nothing else is bothered. TimerUtils.resetAlpha();
*/
TimerUtils.resetAlpha();
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderMountJumpBar " +
"event",
e);
}
} }
/** /**
@@ -183,22 +138,10 @@ public class HudHook
cancellable = true) cancellable = true)
public void startExperience(int x, CallbackInfo callbackInfo) public void startExperience(int x, CallbackInfo callbackInfo)
{ {
LOGGER.debug("Starting experience bar"); logger.debug("Starting experience bar");
try if (TimerUtils.drawExperience(MinecraftClient.getInstance().getTickDelta()))
{ {
if (TimerUtils.drawExperience(MinecraftClient.getInstance() callbackInfo.cancel();
.getTickDelta()))
{
callbackInfo.cancel();
}
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderExperienceBar " +
"event",
e);
} }
} }
@@ -213,48 +156,27 @@ public class HudHook
@Inject(method = "renderExperienceBar", at = @At(value = "TAIL")) @Inject(method = "renderExperienceBar", at = @At(value = "TAIL"))
public void finishExperience(int x, CallbackInfo callbackInfo) public void finishExperience(int x, CallbackInfo callbackInfo)
{ {
LOGGER.debug("Finishing experience bar"); logger.debug("Finishing experience bar");
try GlStateManager.popMatrix();
{ /*
RenderSystem.popMatrix(); * Resets the color so that nothing else is bothered.
/* */
* Resets the color so that nothing else is bothered. TimerUtils.resetAlpha();
*/
TimerUtils.resetAlpha();
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderExperienceBar " +
"event",
e);
}
} }
/** /**
* Changes the position of the status bars as the ones below them move up * Changes the position of the status bars as the ones below them move up
* and down. * and down.
* *
*
* @return The same matrix stack, with a new matrix pushed onto it. * @return The same matrix stack, with a new matrix pushed onto it.
*/ */
@Inject(method = "renderStatusBars", at = @At("HEAD")) @Inject(method = "renderStatusBars", at = @At("HEAD"))
public void startStatus(CallbackInfo info) public void startStatus(CallbackInfo info)
{ {
LOGGER.debug("Starting status bars"); logger.debug("Starting status bars");
try GlStateManager.pushMatrix();
{ GlStateManager.translatef(0F, TimerUtils.getHealthTranslation(), 0F);
RenderSystem.pushMatrix();
RenderSystem.translatef(0F, TimerUtils.getHealthTranslation(), 0F);
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderStatusBars " +
"event",
e);
}
} }
/** /**
@@ -268,21 +190,10 @@ public class HudHook
"(Ljava/lang/String;)V")) "(Ljava/lang/String;)V"))
public void renderArmor(CallbackInfo callbackInfo) public void renderArmor(CallbackInfo callbackInfo)
{ {
LOGGER.debug("Rendering armor"); logger.debug("Rendering armor");
try if (TimerUtils.drawArmor())
{ {
if (TimerUtils.drawArmor()) TimerUtils.setAlpha(0F);
{
TimerUtils.setAlpha(0F);
}
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderStatusBars " +
"event",
e);
} }
} }
@@ -298,26 +209,14 @@ public class HudHook
ordinal = 0)) ordinal = 0))
public void renderHealth(CallbackInfo callbackInfo) public void renderHealth(CallbackInfo callbackInfo)
{ {
LOGGER.debug("Rendering health"); logger.debug("Rendering health");
try /*
* Resets the transparency from the previous call.
*/
TimerUtils.setAlpha(1F);
if (TimerUtils.drawHealth(MinecraftClient.getInstance().getTickDelta()))
{ {
/* TimerUtils.setAlpha(0F);
* Resets the transparency from the previous call.
*/
TimerUtils.setAlpha(1F);
if (TimerUtils.drawHealth(MinecraftClient.getInstance()
.getTickDelta()))
{
TimerUtils.setAlpha(0F);
}
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderStatusBars " +
"event",
e);
} }
} }
@@ -326,32 +225,19 @@ public class HudHook
* *
* @param callbackInfo * @param callbackInfo
*/ */
@Inject(method = "renderStatusBars()V", at = @At(value = "INVOKE", @Inject(method = "renderStatusBars()V", at = @At(value = "INVOKE", target = "Lnet" +
target = "Lnet" +
"/minecraft/util/profiler/Profiler;swap(Ljava/lang/String;)V", "/minecraft/util/profiler/Profiler;swap(Ljava/lang/String;)V",
ordinal = 1, shift = At.Shift.BY, by = 3)) ordinal = 1))
public void renderFood(CallbackInfo callbackInfo) public void renderFood(CallbackInfo callbackInfo)
{ {
LOGGER.debug("Rendering food"); logger.debug("Rendering food");
try /*
* Resets the transparency from the previous call.
*/
TimerUtils.setAlpha(1F);
if (TimerUtils.drawHunger(MinecraftClient.getInstance().getTickDelta()))
{ {
/* TimerUtils.setAlpha(0F);
* Resets the transparency from the previous call.
*/
TimerUtils.setAlpha(1F);
if (TimerUtils.drawHunger(MinecraftClient.getInstance()
.getTickDelta()))
{
TimerUtils.setAlpha(0F);
}
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderStatusBars " +
"event",
e);
} }
} }
@@ -360,46 +246,23 @@ public class HudHook
* *
* @param callbackInfo * @param callbackInfo
*/ */
@Inject(method = "renderStatusBars()V", at = @At(value = "INVOKE", @Inject(method = "renderStatusBars()V", at = @At(value = "INVOKE", target = "Lnet" +
target = "Lnet" +
"/minecraft/util/profiler/Profiler;swap(Ljava/lang/String;)V", "/minecraft/util/profiler/Profiler;swap(Ljava/lang/String;)V",
ordinal = 2)) ordinal = 2))
public void renderAir(CallbackInfo callbackInfo) public void renderAir(CallbackInfo callbackInfo)
{ {
LOGGER.debug("Rendering air"); logger.debug("Rendering air");
try /*
{ * Resets the color so that nothing else is bothered.
/* */
* Resets the color so that nothing else is bothered. TimerUtils.setAlpha(1F);
*/
TimerUtils.setAlpha(1F);
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderStatusBars " +
"event",
e);
}
} }
@Inject(method = "renderStatusBars", at = @At("TAIL")) @Inject(method = "renderStatusBars", at = @At("TAIL"))
public void finishStatus(CallbackInfo info) public void finishStatus(CallbackInfo info)
{ {
LOGGER.debug("Finishing status bars"); logger.debug("Finishing status bars");
try GlStateManager.popMatrix();
{
RenderSystem.popMatrix();
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderStatusBars " +
"event",
e);
}
} }
/** /**
@@ -414,25 +277,13 @@ public class HudHook
cancellable = true) cancellable = true)
public void startMountHealth(CallbackInfo callbackInfo) public void startMountHealth(CallbackInfo callbackInfo)
{ {
try if (TimerUtils.drawMountHealth(MinecraftClient.getInstance().getTickDelta()))
{ {
if (TimerUtils.drawMountHealth(MinecraftClient.getInstance() callbackInfo.cancel();
.getTickDelta()))
{
callbackInfo.cancel();
}
else
{
LOGGER.debug("Starting mount health");
}
} }
catch (Exception e) else
{ {
LOGGER.error( logger.debug("Starting mount health");
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderMountHealth " +
"event",
e);
} }
} }
@@ -447,23 +298,12 @@ public class HudHook
@Inject(method = "renderMountHealth", at = @At(value = "TAIL")) @Inject(method = "renderMountHealth", at = @At(value = "TAIL"))
public void finishMountHealth(CallbackInfo callbackInfo) public void finishMountHealth(CallbackInfo callbackInfo)
{ {
LOGGER.debug("Finishing mount health"); logger.debug("Finishing mount health");
try /*
{ * Resets the color so that nothing else is bothered.
/* */
* Resets the color so that nothing else is bothered. GlStateManager.popMatrix();
*/ TimerUtils.resetAlpha();
RenderSystem.popMatrix();
TimerUtils.resetAlpha();
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderMountHealth " +
"event",
e);
}
} }
/** /**
@@ -476,21 +316,10 @@ public class HudHook
@At(value = "HEAD", shift = At.Shift.AFTER)) @At(value = "HEAD", shift = At.Shift.AFTER))
public void startPotion(CallbackInfo info) public void startPotion(CallbackInfo info)
{ {
LOGGER.debug("Starting potions"); logger.debug("Starting potions");
try TimerUtils.updatePotions(MinecraftClient.getInstance().cameraEntity instanceof ClientPlayerEntity ?
{ ((ClientPlayerEntity) MinecraftClient.getInstance().cameraEntity) :
TimerUtils.updatePotions(MinecraftClient.getInstance().cameraEntity instanceof ClientPlayerEntity ? null);
((ClientPlayerEntity) MinecraftClient.getInstance().cameraEntity) :
null);
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderStatusEffectOverlay " +
"event",
e);
}
} }
/** /**
@@ -506,22 +335,10 @@ public class HudHook
"shouldShowIcon()Z")) "shouldShowIcon()Z"))
public boolean shouldRenderPotion(StatusEffectInstance effect) public boolean shouldRenderPotion(StatusEffectInstance effect)
{ {
LOGGER.debug("Updating potions"); logger.debug("Updating potions");
try currentEffect = effect;
{ return TimerUtils.updatePotion(effect,
currentEffect = effect; MinecraftClient.getInstance().getTickDelta());
return TimerUtils.updatePotion(effect,
MinecraftClient.getInstance().getTickDelta());
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderStatusEffectOverlay " +
"event",
e);
}
return true;
} }
/** /**
@@ -536,20 +353,8 @@ public class HudHook
@At(value = "STORE")) @At(value = "STORE"))
public float updatePotion(float f) public float updatePotion(float f)
{ {
LOGGER.debug("Adjusting potions"); logger.debug("Adjusting potions");
try return TimerUtils.getPotionAlpha(currentEffect);
{
return TimerUtils.getPotionAlpha(currentEffect);
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderStatusEffectOverlay " +
"event",
e);
}
return 1F;
} }
/** /**
@@ -563,22 +368,11 @@ public class HudHook
@Inject(method = "renderStatusEffectOverlay", at = @At(value = "TAIL")) @Inject(method = "renderStatusEffectOverlay", at = @At(value = "TAIL"))
public void finishPotion(CallbackInfo callbackInfo) public void finishPotion(CallbackInfo callbackInfo)
{ {
LOGGER.debug("Finishing potions"); logger.debug("Finishing potions");
try /*
{ * Resets the color so that nothing else is bothered.
/* */
* Resets the color so that nothing else is bothered. TimerUtils.resetAlpha();
*/
TimerUtils.resetAlpha();
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderStatusEffectOverlay " +
"event",
e);
}
} }
/** /**
@@ -595,21 +389,10 @@ public class HudHook
public void startHotbar(float tickDelta, public void startHotbar(float tickDelta,
CallbackInfo callbackInfo) CallbackInfo callbackInfo)
{ {
LOGGER.debug("Starting hotbar"); logger.debug("Starting hotbar");
try if (TimerUtils.updateHotbar(tickDelta))
{ {
if (TimerUtils.updateHotbar(tickDelta)) callbackInfo.cancel();
{
callbackInfo.cancel();
}
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderHotbar " +
"event",
e);
} }
} }
@@ -623,24 +406,13 @@ public class HudHook
* @since 0.1-1.16.4-fabric * @since 0.1-1.16.4-fabric
*/ */
@Inject(method = "renderHotbar", at = @At(value = "INVOKE", target = @Inject(method = "renderHotbar", at = @At(value = "INVOKE", target =
"Lcom/mojang/blaze3d/systems/RenderSystem;color4f(FFFF)V", shift "Lcom/mojang/blaze3d/platform/GlStateManager;color4f(FFFF)V", shift
= At.Shift.AFTER)) = At.Shift.AFTER))
public void adjustHotbar(float tickDelta, public void adjustHotbar(float tickDelta,
CallbackInfo callbackInfo) CallbackInfo callbackInfo)
{ {
LOGGER.debug("Adjusting hotbar"); logger.debug("Adjusting hotbar");
try TimerUtils.recolorHotbar();
{
TimerUtils.recolorHotbar();
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud" +
".InGameHud#renderHotbar " +
"event",
e);
}
} }
/** /**
@@ -656,21 +428,11 @@ public class HudHook
public void finishHotbar(float tickDelta, public void finishHotbar(float tickDelta,
CallbackInfo callbackInfo) CallbackInfo callbackInfo)
{ {
LOGGER.debug("Finishing hotbar"); logger.debug("Finishing hotbar");
try GlStateManager.popMatrix();
{ /*
RenderSystem.popMatrix(); * Resets the color so that nothing else is bothered.
/* */
* Resets the color so that nothing else is bothered. TimerUtils.resetAlpha();
*/
TimerUtils.resetAlpha();
}
catch (Exception e)
{
LOGGER.error(
"Error in running net.minecraft.client.gui.hud.InGameHud#renderHotbar " +
"event",
e);
}
} }
} }

View File

@@ -19,9 +19,7 @@
"option.immersive_hud.effectFadeIn": "Potion Fade In Time", "option.immersive_hud.effectFadeIn": "Potion Fade In Time",
"option.immersive_hud.effectFadeOut": "Potion Fade Out Time", "option.immersive_hud.effectFadeOut": "Potion Fade Out Time",
"option.immersive_hud.crosshairTime": "Crosshair Display Time", "option.immersive_hud.crosshairTime": "Crosshair Display Time",
"option.immersive_hud.hideCrosshair": "Hide Crosshair",
"option.immersive_hud.handTime": "Hand Display Time", "option.immersive_hud.handTime": "Hand Display Time",
"option.immersive_hud.hideHands": "Hide Hands",
"option.immersive_hud.minHealth": "Minimum Health Fade", "option.immersive_hud.minHealth": "Minimum Health Fade",
"option.immersive_hud.minHunger": "Minimum Hunger Fade", "option.immersive_hud.minHunger": "Minimum Hunger Fade",
"option.immersive_hud.showArmor": "Show Armor", "option.immersive_hud.showArmor": "Show Armor",
@@ -44,9 +42,7 @@
"tooltip.immersive_hud.effectFadeIn": "How many seconds it takes for potion icons to fade in", "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.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.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.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.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.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" "tooltip.immersive_hud.showArmor": "Whether or not the armor bar should display on the HUD"

View File

@@ -28,14 +28,14 @@
}, },
"mixins": [ "mixins": [
{ {
"config": "immersive_hud.mixins.json", "config": "modid.mixins.json",
"environment": "client" "environment": "client"
} }
], ],
"depends": { "depends": {
"fabricloader": ">=0.7.4", "fabricloader": ">=0.7.4",
"minecraft": "1.15.x" "minecraft": "1.14.x"
}, },
"suggests": { "suggests": {
"modmenu": "*", "modmenu": "*",