diff --git a/gradle.properties b/gradle.properties index fda7c9d..df392b7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,8 +4,8 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.20.6 -yarn_mappings=1.20.6+build.3 +minecraft_version=1.21 +yarn_mappings=1.21+build.1 loader_version=0.15.11 # Mod Properties @@ -14,5 +14,5 @@ maven_group=com.armorhud archives_base_name=simple-armor-hud # Dependency properties -fabric_version=0.99.0+1.20.6 -modmenu_version=10.0.0-beta.1 +fabric_version=0.100.1+1.21 +modmenu_version=11.0.0-beta.1 -- 2.51.2 From 2d77c1dcf48b86a2488c86235b2364bed9660d07 Mon Sep 17 00:00:00 2001 From: legoraft Date: Thu, 13 Jun 2024 20:04:03 +0200 Subject: [PATCH 02/10] Fixed methods for 1.21 --- .../java/com/armorhud/config/fabricScreen.java | 7 ++++++- .../com/armorhud/mixin/client/armorHudMixin.java | 16 +++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/client/java/com/armorhud/config/fabricScreen.java b/src/client/java/com/armorhud/config/fabricScreen.java index 3eca1ab..3e0f6b9 100644 --- a/src/client/java/com/armorhud/config/fabricScreen.java +++ b/src/client/java/com/armorhud/config/fabricScreen.java @@ -23,7 +23,7 @@ public class fabricScreen extends GameOptionsScreen { @Override protected void init() { - OptionListWidget optionListWidget = this.addDrawableChild(new OptionListWidget(this.client, this.width, this.height, this)); + OptionListWidget optionListWidget = this.addDrawableChild(new OptionListWidget(this.client, this.width, this)); doubleHotbarToggle = CyclingButtonWidget.onOffBuilder(config.DOUBLE_HOTBAR) .build(Text.translatable("config.doublehotbar"), ((button, value) -> config.DOUBLE_HOTBAR = !config.DOUBLE_HOTBAR)); @@ -46,6 +46,11 @@ public class fabricScreen extends GameOptionsScreen { super.init(); } + @Override + protected void addOptions() { + + } + @Override public void close() { assert this.client != null; diff --git a/src/client/java/com/armorhud/mixin/client/armorHudMixin.java b/src/client/java/com/armorhud/mixin/client/armorHudMixin.java index 1294225..eb3e0ff 100644 --- a/src/client/java/com/armorhud/mixin/client/armorHudMixin.java +++ b/src/client/java/com/armorhud/mixin/client/armorHudMixin.java @@ -4,6 +4,7 @@ import com.armorhud.config.config; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.hud.InGameHud; +import net.minecraft.client.render.RenderTickCounter; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; @@ -16,27 +17,28 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(InGameHud.class) - public abstract class armorHudMixin { @Shadow @Final private MinecraftClient client; @Shadow protected abstract LivingEntity getRiddenEntity(); + @Shadow public abstract void tick(boolean paused); + @Unique int armorHeight; @Inject(at = @At("TAIL"), method = "renderHotbar") - private void renderHud(DrawContext context, float tickDelta, CallbackInfo ci) { + private void renderHud(DrawContext context, RenderTickCounter tickCounter, CallbackInfo ci) { if(!config.ARMOR_HUD) { return; } assert client.player != null; - renderArmor(context, tickDelta); + renderArmor(context, tickCounter); moveArmor(context); } @Unique - private void renderArmor(DrawContext context, float tickDelta) { + private void renderArmor(DrawContext context, RenderTickCounter tickCounter) { int scaledWidth = context.getScaledWindowWidth(); assert client.player != null; @@ -58,17 +60,17 @@ public abstract class armorHudMixin { armorPiece = j; } - renderArmorPiece(context, x, armorHeight, tickDelta, client.player, client.player.getInventory().getArmorStack(armorPiece)); + renderArmorPiece(context, x, armorHeight, tickCounter, client.player, client.player.getInventory().getArmorStack(armorPiece)); } } // Pretty much the same as renderHotbarItem but with x and y as float parameters. @Unique - private void renderArmorPiece(DrawContext context, float x, float y, float tickDelta, PlayerEntity player, ItemStack stack) { + private void renderArmorPiece(DrawContext context, float x, float y, RenderTickCounter tickCounter, PlayerEntity player, ItemStack stack) { if (stack.isEmpty()) return; // Magic - float f = (float)stack.getBobbingAnimationTime() - tickDelta; + float f = (float)stack.getBobbingAnimationTime() - tickCounter.getTickDelta(false); context.getMatrices().push(); context.getMatrices().translate(x, y, 0); -- 2.51.2 From 471efd45be6e1a8d7ff3c9b64170cbc327b0d874 Mon Sep 17 00:00:00 2001 From: legoraft Date: Sun, 23 Jun 2024 10:54:34 +0200 Subject: [PATCH 03/10] Fixed bubbles freezing --- .../armorhud/mixin/client/armorHudMixin.java | 2 ++ .../armorhud/mixin/client/inGameHudMixin.java | 24 +++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/client/java/com/armorhud/mixin/client/armorHudMixin.java b/src/client/java/com/armorhud/mixin/client/armorHudMixin.java index eb3e0ff..941859f 100644 --- a/src/client/java/com/armorhud/mixin/client/armorHudMixin.java +++ b/src/client/java/com/armorhud/mixin/client/armorHudMixin.java @@ -81,7 +81,9 @@ public abstract class armorHudMixin { context.getMatrices().scale(1 / g, (g + 1) / 2, 1); context.getMatrices().translate(-8, -12, 0); } + context.drawItem(player, stack, 0, 0, 1); + if (f > 0) { context.getMatrices().pop(); } diff --git a/src/client/java/com/armorhud/mixin/client/inGameHudMixin.java b/src/client/java/com/armorhud/mixin/client/inGameHudMixin.java index e492151..4e5c777 100644 --- a/src/client/java/com/armorhud/mixin/client/inGameHudMixin.java +++ b/src/client/java/com/armorhud/mixin/client/inGameHudMixin.java @@ -1,29 +1,39 @@ package com.armorhud.mixin.client; import com.armorhud.config.config; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.entity.player.PlayerEntity; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(InGameHud.class) public abstract class inGameHudMixin { - @Shadow @Nullable protected abstract PlayerEntity getCameraPlayer(); +// @ModifyVariable(method = "renderArmor", at = @At("STORE"), ordinal = 1) +// private static int renderArmor(int l) { +// +// if (config.DISABLE_ARMOR_BAR) { +// return 0; +// } else { +// return player.getArmor(); +// } +// } - @ModifyVariable(method = "renderStatusBars", at = @At("STORE"), ordinal = 11) - public int renderStatusBars(int u) { - PlayerEntity playerEntity = this.getCameraPlayer(); - assert playerEntity != null; + @Inject(method = "renderArmor", at=@At("HEAD")) + private static void checkArmor(DrawContext context, PlayerEntity player, int i, int j, int k, int x, CallbackInfo ci) { + int l; if (config.DISABLE_ARMOR_BAR) { - return 0; + l = 0; } else { - return playerEntity.getArmor(); + l = player.getArmor(); } } -- 2.51.2 From 946605c357b174b7d82a80a4761a520ce5f9e31b Mon Sep 17 00:00:00 2001 From: legoraft Date: Sun, 23 Jun 2024 10:59:18 +0200 Subject: [PATCH 04/10] Changed armorbar disabling --- .../armorhud/mixin/client/inGameHudMixin.java | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/src/client/java/com/armorhud/mixin/client/inGameHudMixin.java b/src/client/java/com/armorhud/mixin/client/inGameHudMixin.java index 4e5c777..3dc3e2e 100644 --- a/src/client/java/com/armorhud/mixin/client/inGameHudMixin.java +++ b/src/client/java/com/armorhud/mixin/client/inGameHudMixin.java @@ -16,24 +16,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; public abstract class inGameHudMixin { -// @ModifyVariable(method = "renderArmor", at = @At("STORE"), ordinal = 1) -// private static int renderArmor(int l) { -// -// if (config.DISABLE_ARMOR_BAR) { -// return 0; -// } else { -// return player.getArmor(); -// } -// } - - @Inject(method = "renderArmor", at=@At("HEAD")) + @Inject(method = "renderArmor", at=@At("HEAD"), cancellable = true) private static void checkArmor(DrawContext context, PlayerEntity player, int i, int j, int k, int x, CallbackInfo ci) { - int l; - if (config.DISABLE_ARMOR_BAR) { - l = 0; - } else { - l = player.getArmor(); + ci.cancel(); } } -- 2.51.2 From 9a58293b5258746f474f20d1287676b2615fc2db Mon Sep 17 00:00:00 2001 From: legoraft Date: Sun, 23 Jun 2024 11:02:33 +0200 Subject: [PATCH 05/10] Cleaned up renderArmorPiece --- .../com/armorhud/mixin/client/armorHudMixin.java | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/client/java/com/armorhud/mixin/client/armorHudMixin.java b/src/client/java/com/armorhud/mixin/client/armorHudMixin.java index 941859f..f2e67bc 100644 --- a/src/client/java/com/armorhud/mixin/client/armorHudMixin.java +++ b/src/client/java/com/armorhud/mixin/client/armorHudMixin.java @@ -69,25 +69,11 @@ public abstract class armorHudMixin { private void renderArmorPiece(DrawContext context, float x, float y, RenderTickCounter tickCounter, PlayerEntity player, ItemStack stack) { if (stack.isEmpty()) return; - // Magic - float f = (float)stack.getBobbingAnimationTime() - tickCounter.getTickDelta(false); context.getMatrices().push(); context.getMatrices().translate(x, y, 0); - if (f > 0) { - float g = 1 + f / 5; - context.getMatrices().push(); - context.getMatrices().translate(8, 12, 0); - context.getMatrices().scale(1 / g, (g + 1) / 2, 1); - context.getMatrices().translate(-8, -12, 0); - } - context.drawItem(player, stack, 0, 0, 1); - if (f > 0) { - context.getMatrices().pop(); - } - context.drawItemInSlot(this.client.textRenderer, stack, 0,0); context.getMatrices().pop(); } -- 2.51.2 From c177e7cdc974c6a1904a226b2cc90ddfe2025070 Mon Sep 17 00:00:00 2001 From: legoraft Date: Sun, 23 Jun 2024 12:00:56 +0200 Subject: [PATCH 06/10] Fixed options screen --- src/client/java/com/armorhud/config/fabricScreen.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/client/java/com/armorhud/config/fabricScreen.java b/src/client/java/com/armorhud/config/fabricScreen.java index 3e0f6b9..d9e61d9 100644 --- a/src/client/java/com/armorhud/config/fabricScreen.java +++ b/src/client/java/com/armorhud/config/fabricScreen.java @@ -23,8 +23,6 @@ public class fabricScreen extends GameOptionsScreen { @Override protected void init() { - OptionListWidget optionListWidget = this.addDrawableChild(new OptionListWidget(this.client, this.width, this)); - doubleHotbarToggle = CyclingButtonWidget.onOffBuilder(config.DOUBLE_HOTBAR) .build(Text.translatable("config.doublehotbar"), ((button, value) -> config.DOUBLE_HOTBAR = !config.DOUBLE_HOTBAR)); @@ -38,17 +36,18 @@ public class fabricScreen extends GameOptionsScreen { .build(Text.translatable("config.righttoleft"), (button, value) -> config.RTL = !config.RTL); disableArmorBar = CyclingButtonWidget.onOffBuilder(config.DISABLE_ARMOR_BAR) - .build(Text.translatable("config.disablearmorbar"), ((button, value) -> config.DISABLE_ARMOR_BAR = !config.DISABLE_ARMOR_BAR)); + .build(Text.translatable("config.disablearmorbar"), ((button, value) -> config.DISABLE_ARMOR_BAR = !config.DISABLE_ARMOR_BAR)); + + OptionListWidget optionListWidget = this.addDrawableChild(new OptionListWidget(this.client, this.width, this)); optionListWidget.addWidgetEntry(doubleHotbarToggle, betterMountHudToggle); optionListWidget.addWidgetEntry(armorHudToggle, rightToLeftToggle); optionListWidget.addWidgetEntry(disableArmorBar, null); - super.init(); } @Override protected void addOptions() { - + super.init(); } @Override -- 2.51.2 From 5c49680c1cd7470e6c52a54eaf19568bf59b5610 Mon Sep 17 00:00:00 2001 From: legoraft Date: Sun, 23 Jun 2024 12:03:20 +0200 Subject: [PATCH 07/10] Renamed fabricScreen to configScreen --- .../armorhud/config/{fabricScreen.java => configScreen.java} | 4 ++-- src/client/java/com/armorhud/util/armorHudModMenu.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename src/client/java/com/armorhud/config/{fabricScreen.java => configScreen.java} (96%) diff --git a/src/client/java/com/armorhud/config/fabricScreen.java b/src/client/java/com/armorhud/config/configScreen.java similarity index 96% rename from src/client/java/com/armorhud/config/fabricScreen.java rename to src/client/java/com/armorhud/config/configScreen.java index d9e61d9..2b1aa8c 100644 --- a/src/client/java/com/armorhud/config/fabricScreen.java +++ b/src/client/java/com/armorhud/config/configScreen.java @@ -5,10 +5,10 @@ import net.minecraft.client.gui.screen.option.GameOptionsScreen; import net.minecraft.client.gui.widget.*; import net.minecraft.text.Text; -public class fabricScreen extends GameOptionsScreen { +public class configScreen extends GameOptionsScreen { public Screen parent; - public fabricScreen(Screen parent) { + public configScreen(Screen parent) { super(parent, null, Text.translatable("config.title")); this.parent = parent; diff --git a/src/client/java/com/armorhud/util/armorHudModMenu.java b/src/client/java/com/armorhud/util/armorHudModMenu.java index a17dce8..f5b9a65 100644 --- a/src/client/java/com/armorhud/util/armorHudModMenu.java +++ b/src/client/java/com/armorhud/util/armorHudModMenu.java @@ -1,8 +1,8 @@ package com.armorhud.util; +import com.armorhud.config.configScreen; import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; -import com.armorhud.config.fabricScreen; import net.minecraft.client.gui.screen.Screen; public class armorHudModMenu implements ModMenuApi { @@ -13,7 +13,7 @@ public class armorHudModMenu implements ModMenuApi { } private Screen createConfigScreen(Screen parent) { - return new fabricScreen(parent); + return new configScreen(parent); } } -- 2.51.2 From e6d66ea24e544e92ba3ec4588cf0fc76061db10e Mon Sep 17 00:00:00 2001 From: legoraft Date: Sun, 23 Jun 2024 12:17:38 +0200 Subject: [PATCH 08/10] Added done button and title --- .../java/com/armorhud/config/configScreen.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/client/java/com/armorhud/config/configScreen.java b/src/client/java/com/armorhud/config/configScreen.java index 2b1aa8c..ee56520 100644 --- a/src/client/java/com/armorhud/config/configScreen.java +++ b/src/client/java/com/armorhud/config/configScreen.java @@ -1,5 +1,6 @@ package com.armorhud.config; +import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.option.GameOptionsScreen; import net.minecraft.client.gui.widget.*; @@ -18,9 +19,10 @@ public class configScreen extends GameOptionsScreen { public CyclingButtonWidget betterMountHudToggle; public CyclingButtonWidget armorHudToggle; public CyclingButtonWidget rightToLeftToggle; - public CyclingButtonWidget disableArmorBar; + public ButtonWidget doneButton; + @Override protected void init() { doubleHotbarToggle = CyclingButtonWidget.onOffBuilder(config.DOUBLE_HOTBAR) @@ -43,6 +45,19 @@ public class configScreen extends GameOptionsScreen { optionListWidget.addWidgetEntry(doubleHotbarToggle, betterMountHudToggle); optionListWidget.addWidgetEntry(armorHudToggle, rightToLeftToggle); optionListWidget.addWidgetEntry(disableArmorBar, null); + + doneButton = ButtonWidget + .builder(Text.translatable("config.done"), button -> close()) + .dimensions(width / 2 - 100, height - 25, 200, 20) + .build(); + + addDrawableChild(doneButton); + } + + @Override + public void render(DrawContext context, int mouseX, int mouseY, float delta) { + super.render(context, mouseX, mouseY, delta); + context.drawCenteredTextWithShadow(textRenderer, super.title, width / 2, 10, 0xffffff); } @Override -- 2.51.2 From 0df3c317eea85fc9388f0cf0bb7e63398aa65d09 Mon Sep 17 00:00:00 2001 From: legoraft Date: Sun, 23 Jun 2024 12:19:13 +0200 Subject: [PATCH 09/10] Fixed alignment on title --- src/client/java/com/armorhud/config/configScreen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/java/com/armorhud/config/configScreen.java b/src/client/java/com/armorhud/config/configScreen.java index ee56520..c67aa7e 100644 --- a/src/client/java/com/armorhud/config/configScreen.java +++ b/src/client/java/com/armorhud/config/configScreen.java @@ -57,7 +57,7 @@ public class configScreen extends GameOptionsScreen { @Override public void render(DrawContext context, int mouseX, int mouseY, float delta) { super.render(context, mouseX, mouseY, delta); - context.drawCenteredTextWithShadow(textRenderer, super.title, width / 2, 10, 0xffffff); + context.drawCenteredTextWithShadow(textRenderer, super.title, width / 2, 12, 0xffffff); } @Override -- 2.51.2 From 43fa4df15e22f43b966fe08eb709b14ef740cc39 Mon Sep 17 00:00:00 2001 From: legoraft Date: Sun, 23 Jun 2024 12:22:04 +0200 Subject: [PATCH 10/10] Updated dependencies and bumped version --- build.gradle | 2 +- gradle.properties | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index c2affdb..891ac41 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ repositories { // See https://docs.gradle.org/current/userguide/declaring_repositories.html // for more information about repositories. maven { url = "https://maven.terraformersmc.com/" } - maven { url = "https://maven.gegy.dev" } +// maven { url = "https://maven.gegy.dev" } } loom { diff --git a/gradle.properties b/gradle.properties index df392b7..300b734 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,14 +5,14 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop minecraft_version=1.21 -yarn_mappings=1.21+build.1 +yarn_mappings=1.21+build.2 loader_version=0.15.11 # Mod Properties -mod_version=1.4.3 +mod_version=1.4.4 maven_group=com.armorhud archives_base_name=simple-armor-hud # Dependency properties -fabric_version=0.100.1+1.21 -modmenu_version=11.0.0-beta.1 +fabric_version=0.100.3+1.21 +modmenu_version=11.0.1