From 9b5c44eaa0ee3031502ebe0047a3fba3095e82c9 Mon Sep 17 00:00:00 2001 From: tobinio Date: Fri, 3 Oct 2025 08:07:27 +0200 Subject: [PATCH] support 1.21.9 --- build.gradle | 2 +- gradle.properties | 14 +++--- gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 3 +- .../VisibleEntitiesClient.java | 6 ++- .../entity/InteractionEntityRenderer.java | 33 +++++++------ .../entity/MarkerEntityRenderer.java | 46 ++++++++++--------- .../client/ItemFrameEntityRendererMixin.java | 39 ++++++---------- .../client/LivingEntityRendererMixin.java | 25 ++++++---- .../assets/visible-entities/lang/en_us.json | 2 +- 10 files changed, 87 insertions(+), 85 deletions(-) diff --git a/build.gradle b/build.gradle index fb01cc5..f0cf06c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.10-SNAPSHOT' + id 'fabric-loom' version '1.11-SNAPSHOT' id 'maven-publish' } diff --git a/gradle.properties b/gradle.properties index 2fc9f1e..3ca4d0b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,16 +4,16 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.21.5 -yarn_mappings=1.21.5+build.1 -loader_version=0.16.10 +minecraft_version=1.21.9 +yarn_mappings=1.21.9+build.1 +loader_version=0.17.2 # Mod Properties -mod_version=0.1.5+mc1.21.5 +mod_version=0.1.5+mc1.21.9 maven_group=tobinio.visibleentities archives_base_name=visible-entities # Dependencies -fabric_version=0.119.5+1.21.5 -yacl_version=3.6.6+1.21.5-fabric -modmenu_version=14.0.0-rc.2 \ No newline at end of file +fabric_version=0.133.14+1.21.9 +yacl_version=3.8.0+1.21.9-fabric +modmenu_version=16.0.0-rc.1 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index cea7a79..ca025c8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6..f3b75f3 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/src/client/java/tobinio/visibleentities/VisibleEntitiesClient.java b/src/client/java/tobinio/visibleentities/VisibleEntitiesClient.java index 1ee4f8a..8030c9c 100644 --- a/src/client/java/tobinio/visibleentities/VisibleEntitiesClient.java +++ b/src/client/java/tobinio/visibleentities/VisibleEntitiesClient.java @@ -19,17 +19,19 @@ import tobinio.visibleentities.settings.Config; import static tobinio.visibleentities.VisibleEntities.MOD_ID; public class VisibleEntitiesClient implements ClientModInitializer { + public static final KeyBinding.Category VISIBLE_ENTITIES = KeyBinding.Category.create(id("visible-entities")); + private static final KeyBinding TOGGLE_ACTIVE_KEY = KeyBindingHelper.registerKeyBinding(new KeyBinding( "key.visible-entities.active", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_N, - "category.visible-entities.visible-entities")); + VISIBLE_ENTITIES)); private static final KeyBinding TOGGLE_VISIBILITY_KEY = KeyBindingHelper.registerKeyBinding(new KeyBinding( "key.visible-entities.visibility", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_UNKNOWN, - "category.visible-entities.visible-entities")); + VISIBLE_ENTITIES)); public static Identifier id(String path) { return Identifier.of(MOD_ID, path); diff --git a/src/client/java/tobinio/visibleentities/entity/InteractionEntityRenderer.java b/src/client/java/tobinio/visibleentities/entity/InteractionEntityRenderer.java index 024ce18..6aae907 100644 --- a/src/client/java/tobinio/visibleentities/entity/InteractionEntityRenderer.java +++ b/src/client/java/tobinio/visibleentities/entity/InteractionEntityRenderer.java @@ -1,16 +1,14 @@ package tobinio.visibleentities.entity; import net.minecraft.client.render.*; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.EntityRenderer; import net.minecraft.client.render.entity.EntityRendererFactory; import net.minecraft.client.render.entity.state.EntityRenderState; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.decoration.DisplayEntity; import net.minecraft.entity.decoration.InteractionEntity; -import net.minecraft.util.Identifier; import net.minecraft.util.math.Box; -import tobinio.visibleentities.VisibleEntities; -import tobinio.visibleentities.VisibleEntitiesClient; import tobinio.visibleentities.settings.Config; /** @@ -35,23 +33,24 @@ public class InteractionEntityRenderer extends EntityRenderer { + VertexRendering.drawBox( + matricesEntry, + vertexConsumer, + state.boundingBox.offset(-state.x, -state.y, -state.z), + 1.0F, + 1.0F, + 1.0F, + 1.0F + ); + }); } } diff --git a/src/client/java/tobinio/visibleentities/entity/MarkerEntityRenderer.java b/src/client/java/tobinio/visibleentities/entity/MarkerEntityRenderer.java index 90381f1..03a700c 100644 --- a/src/client/java/tobinio/visibleentities/entity/MarkerEntityRenderer.java +++ b/src/client/java/tobinio/visibleentities/entity/MarkerEntityRenderer.java @@ -1,15 +1,14 @@ package tobinio.visibleentities.entity; import net.minecraft.client.render.*; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.EntityRenderer; import net.minecraft.client.render.entity.EntityRendererFactory; import net.minecraft.client.render.entity.state.EntityRenderState; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.MarkerEntity; -import net.minecraft.entity.decoration.InteractionEntity; -import net.minecraft.util.Identifier; import net.minecraft.util.math.Box; -import tobinio.visibleentities.VisibleEntitiesClient; import tobinio.visibleentities.settings.Config; /** @@ -35,32 +34,35 @@ public class MarkerEntityRenderer extends EntityRenderer { + VertexRendering.drawBox(matricesEntry, vertexConsumer, box, 1.0F, 1.0F, 1.0F, 1.0F); + }); + queue.submitCustom(matrices,RenderLayer.getDebugFilledBox(), (matricesEntry, vertexConsumer) -> { + MatrixStack matrixStack = new MatrixStack(); + matrixStack.peek().copy(matricesEntry); + VertexRendering.drawFilledBox(matrixStack, + vertexConsumer, + box.minX, + box.minY, + box.minZ, + box.maxX, + box.maxY, + box.maxZ, + 0.8F, + 0.4F, + 1.0F, + 0.5F); + }); } } diff --git a/src/client/java/tobinio/visibleentities/mixin/client/ItemFrameEntityRendererMixin.java b/src/client/java/tobinio/visibleentities/mixin/client/ItemFrameEntityRendererMixin.java index c9ae4c4..28e3e6d 100644 --- a/src/client/java/tobinio/visibleentities/mixin/client/ItemFrameEntityRendererMixin.java +++ b/src/client/java/tobinio/visibleentities/mixin/client/ItemFrameEntityRendererMixin.java @@ -1,26 +1,17 @@ package tobinio.visibleentities.mixin.client; -import net.minecraft.block.Block; import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.TexturedRenderLayers; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.BlockModelRenderer; import net.minecraft.client.render.block.BlockRenderManager; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.ItemFrameEntityRenderer; import net.minecraft.client.render.entity.state.ItemFrameEntityRenderState; -import net.minecraft.client.render.model.BakedModelManager; import net.minecraft.client.render.model.BlockStateModel; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.EntityType; import net.minecraft.entity.decoration.ItemFrameEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.state.StateManager; import net.minecraft.state.property.Properties; -import net.minecraft.state.property.Property; -import net.minecraft.util.math.RotationAxis; import org.spongepowered.asm.mixin.*; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -41,9 +32,9 @@ public abstract class ItemFrameEntityRendererMixin { @Final private BlockRenderManager blockRenderManager; - @Inject (at = @At (value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;multiply(Lorg/joml/Quaternionfc;)V", ordinal = 1), method = "render(Lnet/minecraft/client/render/entity/state/ItemFrameEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V") + @Inject (at = @At (value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;multiply(Lorg/joml/Quaternionfc;)V", ordinal = 1), method = "render(Lnet/minecraft/client/render/entity/state/ItemFrameEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V") private void renderTransparent(ItemFrameEntityRenderState state, MatrixStack matrixStack, - VertexConsumerProvider vertexConsumerProvider, int i, CallbackInfo ci) { + OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState cameraRenderState, CallbackInfo ci) { Config instance = Config.HANDLER.instance(); @@ -53,22 +44,22 @@ public abstract class ItemFrameEntityRendererMixin { matrixStack.push(); matrixStack.translate(-0.5F, -0.5F, -0.5F); - BlockModelRenderer - .render(matrixStack.peek(), - vertexConsumerProvider.getBuffer(TexturedRenderLayers.getItemEntityTranslucentCull()), - model, - 1.0F, - 1.0F, - 1.0F, - i, - OverlayTexture.DEFAULT_UV); + + orderedRenderCommandQueue.submitBlockStateModel(matrixStack,TexturedRenderLayers.getItemEntityTranslucentCull(), model, + 1.0F, + 1.0F, + 1.0F, + state.light, + OverlayTexture.DEFAULT_UV, + state.outlineColor + ); matrixStack.pop(); } } - @Inject (at = @At (value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;multiply(Lorg/joml/Quaternionfc;)V", ordinal = 2), method = "render(Lnet/minecraft/client/render/entity/state/ItemFrameEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V") + @Inject (at = @At (value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;multiply(Lorg/joml/Quaternionfc;)V", ordinal = 2), method = "render(Lnet/minecraft/client/render/entity/state/ItemFrameEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V") private void offSetMap(ItemFrameEntityRenderState state, MatrixStack matrixStack, - VertexConsumerProvider vertexConsumerProvider, int i, CallbackInfo ci) { + OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState cameraRenderState, CallbackInfo ci) { Config instance = Config.HANDLER.instance(); diff --git a/src/client/java/tobinio/visibleentities/mixin/client/LivingEntityRendererMixin.java b/src/client/java/tobinio/visibleentities/mixin/client/LivingEntityRendererMixin.java index 047ca94..c3473f9 100644 --- a/src/client/java/tobinio/visibleentities/mixin/client/LivingEntityRendererMixin.java +++ b/src/client/java/tobinio/visibleentities/mixin/client/LivingEntityRendererMixin.java @@ -1,8 +1,12 @@ package tobinio.visibleentities.mixin.client; -import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.model.Model; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.command.ModelCommandRenderer; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.LivingEntityRenderer; -import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.client.render.entity.state.LivingEntityRenderState; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.ColorHelper; import org.spongepowered.asm.mixin.Mixin; @@ -17,13 +21,18 @@ import tobinio.visibleentities.settings.Config; */ @Mixin (LivingEntityRenderer.class) public class LivingEntityRendererMixin { - @Redirect (method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At (value = "INVOKE", target = "Lnet/minecraft/client/render/entity/model/EntityModel;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;III)V")) - private void defineTransparency(EntityModel instance, MatrixStack matrixStack, VertexConsumer vertexConsumer, - int light, int overlay, int color) { - if (color != -1) { - color = ColorHelper.getArgb(Config.HANDLER.instance().transparency, ColorHelper.getRed(color), ColorHelper.getGreen(color), ColorHelper.getBlue(color)); + @Redirect (method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At (value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) + private void defineTransparency(OrderedRenderCommandQueue instance, Model model, Object o, MatrixStack matrixStack, + RenderLayer renderLayer, int light, int overlay, int tintColor, Sprite sprite, int outlineColor, + ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { + LivingEntityRenderState livingEntityRenderState = (LivingEntityRenderState) o; + + if (tintColor != -1) { + tintColor = ColorHelper.getArgb(Config.HANDLER.instance().transparency, ColorHelper.getRed(tintColor), ColorHelper.getGreen(tintColor), ColorHelper.getBlue(tintColor)); } - instance.render(matrixStack, vertexConsumer, light, overlay, color); + instance.submitModel( + model, livingEntityRenderState, matrixStack, renderLayer, livingEntityRenderState.light, overlay, tintColor, null, livingEntityRenderState.outlineColor, null + ); } } diff --git a/src/main/resources/assets/visible-entities/lang/en_us.json b/src/main/resources/assets/visible-entities/lang/en_us.json index 7b24c64..5f0f4e0 100644 --- a/src/main/resources/assets/visible-entities/lang/en_us.json +++ b/src/main/resources/assets/visible-entities/lang/en_us.json @@ -5,5 +5,5 @@ "visible-entities.visibility.disabled": "[Visible Entities] All Rending Disabled", "visible-entities.visibility.enabled": "[Visible Entities] All Rending Enabled", "key.visible-entities.visibility": "stop rending - Enabled/Disabled", - "category.visible-entities.visible-entities": "Visible Entities" + "key.category.visible-entities.visible-entities": "Visible Entities" } \ No newline at end of file -- 2.51.2