diff --git a/build.gradle b/build.gradle index 92d66c7..34155b3 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '0.5-SNAPSHOT' + id 'fabric-loom' version '0.6-SNAPSHOT' id 'maven-publish' } @@ -21,9 +21,9 @@ dependencies { mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" 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}" - 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. // You may need to force-disable transitiveness on them. diff --git a/gradle.properties b/gradle.properties index 5093afa..5d34717 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,12 +3,12 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/use - minecraft_version=1.15 - yarn_mappings=1.15+build.2 + minecraft_version=1.14.3 + yarn_mappings=1.14.3+build.13 loader_version=0.11.2 cloth_version=2.9.3 -modmenu_version=1.8.4+build.20 +modmenu_version=1.6.3-95 autoconfig_version=2.2.0 # Mod Properties diff --git a/src/main/java/markil3/immersive_hud/ConfigManager.java b/src/main/java/markil3/immersive_hud/ConfigManager.java index 8618b13..f2b358c 100644 --- a/src/main/java/markil3/immersive_hud/ConfigManager.java +++ b/src/main/java/markil3/immersive_hud/ConfigManager.java @@ -2,6 +2,8 @@ package markil3.immersive_hud; import net.minecraft.util.math.MathHelper; +//import me.sargunvohra.mcmods.autoconfig1u.AutoConfig; + import me.sargunvohra.mcmods.autoconfig1u.AutoConfig; import static markil3.immersive_hud.Main.TICKS_PER_SECOND; @@ -278,8 +280,8 @@ public class ConfigManager this.minHunger = MathHelper.clamp(boundary, 0, 20); } /** - * Saves changes to this mod's configuration. - */ + * Saves changes to this mod's configuration. + */ // public void save() // { // SPEC.save(); diff --git a/src/main/java/markil3/immersive_hud/Main.java b/src/main/java/markil3/immersive_hud/Main.java index cab61af..9b1d246 100644 --- a/src/main/java/markil3/immersive_hud/Main.java +++ b/src/main/java/markil3/immersive_hud/Main.java @@ -22,6 +22,9 @@ import net.fabricmc.api.ModInitializer; import me.sargunvohra.mcmods.autoconfig1u.AutoConfig; 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. * diff --git a/src/main/java/markil3/immersive_hud/ModMenu.java b/src/main/java/markil3/immersive_hud/ModMenu.java deleted file mode 100644 index e189f82..0000000 --- a/src/main/java/markil3/immersive_hud/ModMenu.java +++ /dev/null @@ -1,168 +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 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) 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.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.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(); - }; - } -} diff --git a/src/main/java/markil3/immersive_hud/TimerUtils.java b/src/main/java/markil3/immersive_hud/TimerUtils.java index 00d3b64..fcbfd35 100644 --- a/src/main/java/markil3/immersive_hud/TimerUtils.java +++ b/src/main/java/markil3/immersive_hud/TimerUtils.java @@ -16,11 +16,10 @@ */ 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.network.ClientPlayerEntity; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.effect.StatusEffect; @@ -35,10 +34,11 @@ import net.minecraft.item.FilledMapItem; import net.minecraft.item.FishingRodItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.item.LingeringPotionItem; import net.minecraft.item.RangedWeaponItem; import net.minecraft.item.ShieldItem; import net.minecraft.item.SnowballItem; -import net.minecraft.item.ThrowablePotionItem; +import net.minecraft.item.SplashPotionItem; import net.minecraft.item.TridentItem; import net.minecraft.util.Hand; import net.minecraft.util.hit.EntityHitResult; @@ -173,7 +173,7 @@ public class TimerUtils */ public static void setAlpha(float alpha) { - RenderSystem.color4f(1.0F, 1.0F, 1.0F, alpha); + GlStateManager.color4f(1.0F, 1.0F, 1.0F, alpha); } /** @@ -344,14 +344,12 @@ public class TimerUtils * hands into and out of view as needed. * * @param hand - The hand being rendered. - * @param matrixStack - The rendering stack. * * @return If true, then don't render this hand at all. * * @since 0.1-1.16.4-fabric */ public static boolean onRenderHand(Hand hand, - MatrixStack matrixStack, float ticks) { final float HAND_UP_TIME = 20F; @@ -371,10 +369,9 @@ public class TimerUtils } if (offHandTime < HAND_UP_TIME) { - matrixStack - .translate(0, - -1.0F * (HAND_UP_TIME - offHandTime) / - HAND_UP_TIME, + GlStateManager.translatef(0, + (float) (-1.0F * (HAND_UP_TIME - offHandTime) / + HAND_UP_TIME), 0); } } @@ -392,10 +389,9 @@ public class TimerUtils } if (mainHandTime < HAND_UP_TIME) { - matrixStack - .translate(0, - -1.0F * (HAND_UP_TIME - mainHandTime) / - HAND_UP_TIME, + GlStateManager.translatef(0, + (float) (-1.0F * (HAND_UP_TIME - mainHandTime) / + HAND_UP_TIME), 0); } } @@ -422,13 +418,13 @@ public class TimerUtils boolean changed = false; boolean canceled = false; - if (mc.crosshairTarget != null && mc.crosshairTarget + if (mc.hitResult != null && mc.hitResult .getType() != HitResult.Type.MISS) { - if (mc.crosshairTarget.getType() == HitResult.Type + if (mc.hitResult.getType() == HitResult.Type .ENTITY) { - if (((EntityHitResult) mc.crosshairTarget).getEntity() != entity + if (((EntityHitResult) mc.hitResult).getEntity() != entity .getVehicle()) { changed = true; @@ -497,9 +493,9 @@ public class TimerUtils mountHealth = mount.getHealth(); changed = true; } - if (mountMaxHealth != mount.getMaximumHealth()) + if (mountMaxHealth != mount.getHealthMaximum()) { - mountMaxHealth = mount.getMaximumHealth(); + mountMaxHealth = mount.getHealthMaximum(); changed = true; } } @@ -522,8 +518,8 @@ public class TimerUtils { if (tmp != null && mountTime > 0) { - RenderSystem.pushMatrix(); - RenderSystem.translatef(0F, + GlStateManager.pushMatrix(); + GlStateManager.translatef(0F, getHealthTranslation(), 0F); setAlpha(Main.getAlpha(mountTime, @@ -534,8 +530,8 @@ public class TimerUtils } return true; } - RenderSystem.pushMatrix(); - RenderSystem.translatef(0F, + GlStateManager.pushMatrix(); + GlStateManager.translatef(0F, getHealthTranslation(), 0F); return false; @@ -695,9 +691,9 @@ public class TimerUtils health = entity.getHealth(); changed = true; } - if (maxHealth != entity.getMaximumHealth()) + if (maxHealth != entity.getHealthMaximum()) { - maxHealth = entity.getMaximumHealth(); + maxHealth = entity.getHealthMaximum(); changed = true; } if (changed) @@ -845,8 +841,8 @@ public class TimerUtils } if (jumpTime > 0) { - RenderSystem.pushMatrix(); - RenderSystem.translatef(0F, TimerUtils.getJumpTranslation(), 0F); + GlStateManager.pushMatrix(); + GlStateManager.translatef(0F, TimerUtils.getJumpTranslation(), 0F); setAlpha(Main.getAlpha(jumpTime, jump.getMaxTime(), jump.getFadeInTime(), @@ -899,8 +895,10 @@ public class TimerUtils } if (experienceTime > 0) { - RenderSystem.pushMatrix(); - RenderSystem.translatef(0F, TimerUtils.getExperienceTranslation(), 0F); + GlStateManager.pushMatrix(); + GlStateManager.translatef(0F, + TimerUtils.getExperienceTranslation(), + 0F); setAlpha(Main.getAlpha(experienceTime, experience.getMaxTime(), experience.getFadeInTime(), @@ -1042,7 +1040,7 @@ public class TimerUtils * Items that have the crosshairs enabled for as long * 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 EggItem || item instanceof EnderPearlItem || item instanceof FishingRodItem) @@ -1144,8 +1142,8 @@ public class TimerUtils { ConfigManager.TimeValues hotbar = ConfigManager.getInstance().getHotbarTime(); - RenderSystem.pushMatrix(); - RenderSystem.translatef(0F, TimerUtils.getHotbarTranslation(), 0F); + GlStateManager.pushMatrix(); + GlStateManager.translatef(0F, TimerUtils.getHotbarTranslation(), 0F); setAlpha(Main.getAlpha(hotbarTime, hotbar.getMaxTime(), hotbar.getFadeInTime(), diff --git a/src/main/java/markil3/immersive_hud/mixin/HeldItemHook.java b/src/main/java/markil3/immersive_hud/mixin/HeldItemHook.java index a7e833c..2b141e0 100644 --- a/src/main/java/markil3/immersive_hud/mixin/HeldItemHook.java +++ b/src/main/java/markil3/immersive_hud/mixin/HeldItemHook.java @@ -17,9 +17,7 @@ package markil3.immersive_hud.mixin; import net.minecraft.client.network.AbstractClientPlayerEntity; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.item.HeldItemRenderer; -import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.render.FirstPersonRenderer; import net.minecraft.item.ItemStack; import net.minecraft.util.Hand; @@ -37,42 +35,33 @@ import markil3.immersive_hud.TimerUtils; * @author Markil 3 * @version 0.1-1.16.4-fabric */ -@Mixin(HeldItemRenderer.class) +@Mixin(FirstPersonRenderer.class) public class HeldItemHook { /** * Determines whether or not to render a certain hand. * - * @param player - * @param tickDelta - * @param pitch * @param hand - * @param swingProgress - * @param item - * @param equipProgress - * @param matrices - * @param vertexConsumers - * @param light * @param callbackInfo * * @since 0.1-1.16.4-fabric */ - @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", - target = "Lnet/minecraft/client/util/math/MatrixStack;push()V", - shift = At.Shift.AFTER), cancellable = true) - public void renderHand(AbstractClientPlayerEntity player, - float tickDelta, - float pitch, + @Inject(method = "renderFirstPersonItem" + + "(Lnet/minecraft/client/network/AbstractClientPlayerEntity;" + + "FFLnet/minecraft/util/Hand;FLnet/minecraft/item/ItemStack;F)V", + at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform" + + "/GlStateManager;pushMatrix()V", shift = At.Shift.AFTER), + cancellable = true) + public void renderHand(AbstractClientPlayerEntity abstractClientPlayerEntity, + float f, + float g, Hand hand, - float swingProgress, - ItemStack item, - float equipProgress, - MatrixStack matrices, - VertexConsumerProvider vertexConsumers, - int light, + float h, + ItemStack itemStack, + float i, CallbackInfo callbackInfo) { - if (TimerUtils.onRenderHand(hand, matrices, tickDelta)) + if (TimerUtils.onRenderHand(hand, f)) { callbackInfo.cancel(); } diff --git a/src/main/java/markil3/immersive_hud/mixin/HudHook.java b/src/main/java/markil3/immersive_hud/mixin/HudHook.java index 4c72b89..2b1b64e 100644 --- a/src/main/java/markil3/immersive_hud/mixin/HudHook.java +++ b/src/main/java/markil3/immersive_hud/mixin/HudHook.java @@ -16,7 +16,7 @@ */ 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.gui.hud.InGameHud; @@ -119,7 +119,7 @@ public class HudHook CallbackInfo callbackInfo) { logger.debug("Finishing jumpbar"); - RenderSystem.popMatrix(); + GlStateManager.popMatrix(); /* * Resets the color so that nothing else is bothered. */ @@ -157,7 +157,7 @@ public class HudHook public void finishExperience(int x, CallbackInfo callbackInfo) { logger.debug("Finishing experience bar"); - RenderSystem.popMatrix(); + GlStateManager.popMatrix(); /* * Resets the color so that nothing else is bothered. */ @@ -175,8 +175,8 @@ public class HudHook public void startStatus(CallbackInfo info) { logger.debug("Starting status bars"); - RenderSystem.pushMatrix(); - RenderSystem.translatef(0F, TimerUtils.getHealthTranslation(), 0F); + GlStateManager.pushMatrix(); + GlStateManager.translatef(0F, TimerUtils.getHealthTranslation(), 0F); } /** @@ -262,7 +262,7 @@ public class HudHook public void finishStatus(CallbackInfo info) { logger.debug("Finishing status bars"); - RenderSystem.popMatrix(); + GlStateManager.popMatrix(); } /** @@ -302,7 +302,7 @@ public class HudHook /* * Resets the color so that nothing else is bothered. */ - RenderSystem.popMatrix(); + GlStateManager.popMatrix(); TimerUtils.resetAlpha(); } @@ -406,7 +406,7 @@ public class HudHook * @since 0.1-1.16.4-fabric */ @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)) public void adjustHotbar(float tickDelta, CallbackInfo callbackInfo) @@ -429,7 +429,7 @@ public class HudHook CallbackInfo callbackInfo) { logger.debug("Finishing hotbar"); - RenderSystem.popMatrix(); + GlStateManager.popMatrix(); /* * Resets the color so that nothing else is bothered. */ diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index e91018c..ac2adaa 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -35,7 +35,7 @@ "depends": { "fabricloader": ">=0.7.4", - "minecraft": "1.15.x" + "minecraft": "1.14.x" }, "suggests": { "modmenu": "*",