From 2a7d78caa332e5336e87c7c2f946d26c58553a07 Mon Sep 17 00:00:00 2001 From: SirAlador Date: Sun, 19 Oct 2025 20:56:48 -0500 Subject: [PATCH] Incomplete 1.21.8 port --- build.gradle | 5 +- .../civ/snitchmod/common/Renderer.java | 107 +++++++++++------- .../mixins/MixinClientPacketListener.java | 2 +- .../snitchmod/common/model/SnitchAlert.java | 4 +- .../snitchmod/common/model/SnitchRename.java | 4 +- .../civ/snitchmod/fabric/FabricSnitchMod.java | 4 +- gradle.properties | 14 +-- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle | 4 +- 9 files changed, 85 insertions(+), 61 deletions(-) diff --git a/build.gradle b/build.gradle index d075832..08e8cdb 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,10 @@ plugins { id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.7-SNAPSHOT" apply false + id "dev.architectury.loom" version "1.11-SNAPSHOT" apply false } + + + architectury { minecraft = rootProject.minecraft_version } diff --git a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/Renderer.java b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/Renderer.java index c51235c..8c159c2 100644 --- a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/Renderer.java +++ b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/Renderer.java @@ -1,20 +1,21 @@ package gjum.minecraft.civ.snitchmod.common; +import com.mojang.blaze3d.pipeline.BlendFunction; +import com.mojang.blaze3d.pipeline.RenderPipeline; +import com.mojang.blaze3d.platform.DepthTestFunction; +import com.mojang.blaze3d.systems.RenderPass; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.BufferUploader; -import com.mojang.blaze3d.vertex.DefaultVertexFormat; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.Tesselator; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.blaze3d.vertex.VertexFormat; +import com.mojang.blaze3d.vertex.*; import gjum.minecraft.civ.snitchmod.common.Utils.Color; import gjum.minecraft.civ.snitchmod.common.model.Snitch; import gjum.minecraft.civ.snitchmod.common.model.SnitchFieldPreview; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; -import net.minecraft.client.renderer.CoreShaders; +import net.minecraft.client.renderer.RenderPipelines; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.layers.RenderLayer; import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import org.apache.commons.lang3.StringUtils; @@ -25,6 +26,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.OptionalInt; import static gjum.minecraft.civ.snitchmod.common.SnitchMod.getMod; @@ -40,6 +42,8 @@ public class Renderer { private final static Color ORANGE = new Color(0xEE8140); private final static Color PINK = new Color(0xFC66CC); + private static int matcount = 0; + public static void renderOverlays(Matrix4f matrixArg) { if (mc.player == null) return; if (mc.level == null) return; @@ -49,38 +53,48 @@ public static void renderOverlays(Matrix4f matrixArg) { Vec3 camPos = mc.gameRenderer.getMainCamera().getPosition(); Matrix4fStack modelViewStack = RenderSystem.getModelViewStack(); + matcount += 1; modelViewStack.pushMatrix(); - modelViewStack.mul(matrixArg); - modelViewStack.translate((float) -camPos.x, (float) -camPos.y, (float) -camPos.z); - - if (getMod().rangeOverlayVisible) { - int fieldDist = 260; - getMod().streamNearbySnitches(mc.player.position(), fieldDist) - // but still show culled/gone snitches - .filter(s -> !s.wasBroken()) - .limit(100) - .forEach(Renderer::renderSnitch); - } - - if (getMod().placementHelperVisible) { - int placeHelperDist = 50; - getMod().streamNearbySnitches(mc.player.position(), placeHelperDist) - .filter(Snitch::isAlive) - .limit(10) - .forEach(Renderer::renderPlacementHelper); - } - - if (getMod().snitchFieldToPreview != null) { - renderSnitchFieldPreview(getMod().snitchFieldToPreview); - } - + try { + modelViewStack.mul(matrixArg); + modelViewStack.translate((float) -camPos.x, (float) -camPos.y, (float) -camPos.z); + + if (getMod().rangeOverlayVisible) { + int fieldDist = 260; + getMod().streamNearbySnitches(mc.player.position(), fieldDist) + // but still show culled/gone snitches + .filter(s -> !s.wasBroken()) + .limit(100) + .forEach(Renderer::renderSnitch); + } + + if (getMod().placementHelperVisible) { + int placeHelperDist = 50; + getMod().streamNearbySnitches(mc.player.position(), placeHelperDist) + .filter(Snitch::isAlive) + .limit(10) + .forEach(Renderer::renderPlacementHelper); + } + + if (getMod().snitchFieldToPreview != null) { + renderSnitchFieldPreview(getMod().snitchFieldToPreview); + } + /* RenderSystem.enableDepthTest(); RenderSystem.depthMask(true); RenderSystem.enableCull(); RenderSystem.lineWidth(1.0F); RenderSystem.clearColor(1, 1, 1, 1); + */ + } catch (Exception e) { + e.printStackTrace(); + } finally { + modelViewStack.popMatrix(); + matcount -= 1; + if (matcount > 0) System.err.println("ALERT MATCOUNT " + matcount); + } + - modelViewStack.popMatrix(); } private static void renderSnitchFieldPreview(SnitchFieldPreview preview) { @@ -89,9 +103,11 @@ private static void renderSnitchFieldPreview(SnitchFieldPreview preview) { final boolean playerInRange = range.contains(mc.player.position()); AABB rangeBox = playerInRange ? range.inflate(-.01) : range.inflate(.01); + /* RenderSystem.enableDepthTest(); RenderSystem.enableBlend(); RenderSystem.disableCull(); + */ final Color color = PINK; final float boxAlpha = 0.2f; @@ -104,7 +120,8 @@ private static void renderSnitchFieldPreview(SnitchFieldPreview preview) { final int blockHlDist = 64; if (preview.field().pos.distSqr(mc.player.blockPosition()) < blockHlDist * blockHlDist) { - RenderSystem.disableDepthTest(); + //lmao?????? + //RenderSystem.disableDepthTest(); // inflate so it isn't obstructed by the snitch block final AABB blockBox = new AABB(preview.field().pos).inflate(.01); @@ -191,9 +208,11 @@ enum SnitchLiveliness { /* * Render the snitch range box. */ + /* RenderSystem.enableDepthTest(); RenderSystem.enableBlend(); RenderSystem.disableCull(); + */ renderFilledBox(rangeBox, snitchLiveliness.color, boxAlpha); @@ -210,7 +229,8 @@ enum SnitchLiveliness { */ final int blockHlDist = 64; if (snitch.pos.distSqr(mc.player.blockPosition()) < blockHlDist * blockHlDist) { - RenderSystem.disableDepthTest(); + //lmao??? + //RenderSystem.disableDepthTest(); // inflate so it isn't obstructed by the snitch block final AABB blockBox = new AABB(snitch.pos).inflate(.01); @@ -359,9 +379,11 @@ private static void renderPlacementHelper(Snitch snitch) { if (playerInRange) return; // only render helper for snitches the player isn't inside of final AABB helperBox = new AABB(snitch.pos).inflate(22.3); + /* RenderSystem.enableDepthTest(); RenderSystem.enableBlend(); RenderSystem.disableCull(); + */ Color color = BLUE; float alpha = 0.2f; @@ -372,7 +394,8 @@ private static void renderBoxOutline(AABB box, Color color, float a, float lineW RenderSystem.lineWidth(lineWidth); Tesselator tesselator = Tesselator.getInstance(); - BufferBuilder bufferBuilder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR); + //used to be DEBUG_LINES + BufferBuilder bufferBuilder = tesselator.begin(VertexFormat.Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR); GL11.glEnable(GL11.GL_LINE_SMOOTH); @@ -411,13 +434,12 @@ private static void renderBoxOutline(AABB box, Color color, float a, float lineW bufferBuilder.addVertex(maxX, maxY, minZ).setColor(r, g, b, a); bufferBuilder.addVertex(maxX, maxY, maxZ).setColor(r, g, b, a); - BufferUploader.drawWithShader(bufferBuilder.buildOrThrow()); + RenderType.debugLineStrip(lineWidth).draw(bufferBuilder.buildOrThrow()); } private static void renderFilledBox(AABB box, Color color, float a) { Tesselator tesselator = Tesselator.getInstance(); BufferBuilder bufferBuilder = tesselator.begin(VertexFormat.Mode.TRIANGLE_STRIP, DefaultVertexFormat.POSITION_COLOR); - RenderSystem.setShader(CoreShaders.POSITION_COLOR); float r = color.r; float g = color.g; @@ -460,15 +482,15 @@ private static void renderFilledBox(AABB box, Color color, float a) { bufferBuilder.addVertex(maxX, maxY, maxZ).setColor(r, g, b, a); bufferBuilder.addVertex(maxX, maxY, maxZ).setColor(r, g, b, a); - BufferUploader.drawWithShader(bufferBuilder.buildOrThrow()); + RenderType.debugFilledBox().draw(bufferBuilder.buildOrThrow()); } private static void renderBoxGuides(AABB box, Color color, float a, float lineWidth) { RenderSystem.lineWidth(lineWidth); Tesselator tesselator = Tesselator.getInstance(); - BufferBuilder bufferBuilder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR); - RenderSystem.setShader(CoreShaders.POSITION_COLOR); + //used to be DEBUG_LINES + BufferBuilder bufferBuilder = tesselator.begin(VertexFormat.Mode.DEBUG_LINE_STRIP, DefaultVertexFormat.POSITION_COLOR); GL11.glEnable(GL11.GL_LINE_SMOOTH); @@ -494,7 +516,7 @@ private static void renderBoxGuides(AABB box, Color color, float a, float lineWi addVertex(bufferBuilder, center.x, center.y, center.z - 1).setColor(r, g, b, a); addVertex(bufferBuilder, center.x, center.y, center.z - radius).setColor(r, g, b, a); - BufferUploader.drawWithShader(bufferBuilder.buildOrThrow()); + RenderType.debugLineStrip(lineWidth).draw(bufferBuilder.buildOrThrow()); } // does the double->float cast for us @@ -507,6 +529,7 @@ private static VertexConsumer addVertex(VertexConsumer bufferBuilder, double x, */ private static void renderTextFacingCamera(Component text, Vec3 pos, float offset, float scale, int colorAlphaHex) { var poseStack = new PoseStack(); + poseStack.pushPose(); poseStack.translate(pos.x, pos.y, pos.z); poseStack.mulPose(mc.gameRenderer.getMainCamera().rotation()); scale *= 0.005f * (mc.player.position().distanceTo(pos) / 2.4); diff --git a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/mixins/MixinClientPacketListener.java b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/mixins/MixinClientPacketListener.java index 30fa4dd..7b88d77 100644 --- a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/mixins/MixinClientPacketListener.java +++ b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/mixins/MixinClientPacketListener.java @@ -33,7 +33,7 @@ protected void onHandleContainerContent(ClientboundContainerSetContentPacket pac return; // continue method normally } try { - getMod().handleWindowItems(packetIn.getItems()); + getMod().handleWindowItems(packetIn.items()); } catch (Throwable e) { e.printStackTrace(); } diff --git a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/model/SnitchAlert.java b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/model/SnitchAlert.java index a3e8b87..2b482d2 100644 --- a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/model/SnitchAlert.java +++ b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/model/SnitchAlert.java @@ -63,9 +63,9 @@ public static SnitchAlert fromChat( String group = null; final HoverEvent hoverEvent = message.getSiblings().get(0).getStyle().getHoverEvent(); - if (hoverEvent != null && hoverEvent.getAction() == HoverEvent.Action.SHOW_TEXT) { + if (hoverEvent != null && hoverEvent.action() == HoverEvent.Action.SHOW_TEXT) { @SuppressWarnings("ConstantConditions") - String hoverText = hoverEvent.getValue(HoverEvent.Action.SHOW_TEXT).getString().replaceAll("§.", ""); + String hoverText = ((HoverEvent.ShowText)hoverEvent).value().getString().replaceAll("§.", ""); Matcher hoverMatch = hoverPattern.matcher(hoverText); if (hoverMatch.matches()) { diff --git a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/model/SnitchRename.java b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/model/SnitchRename.java index 061aada..33bc12d 100644 --- a/common/src/main/java/gjum/minecraft/civ/snitchmod/common/model/SnitchRename.java +++ b/common/src/main/java/gjum/minecraft/civ/snitchmod/common/model/SnitchRename.java @@ -57,10 +57,10 @@ public SnitchRename( String snitchOldName = textMatch.group(2); final HoverEvent hoverEvent = message.getSiblings().get(0).getStyle().getHoverEvent(); - if (hoverEvent == null || hoverEvent.getAction() != HoverEvent.Action.SHOW_TEXT) return null; + if (hoverEvent == null || hoverEvent.action() != HoverEvent.Action.SHOW_TEXT) return null; @SuppressWarnings("ConstantConditions") - String hoverText = hoverEvent.getValue(HoverEvent.Action.SHOW_TEXT).getString().replaceAll("§.", ""); + String hoverText = ((HoverEvent.ShowText)hoverEvent).value().getString().replaceAll("§.", ""); Matcher hoverMatch = hoverPattern.matcher(hoverText); if (!hoverMatch.matches()) return null; diff --git a/fabric/src/main/java/gjum/minecraft/civ/snitchmod/fabric/FabricSnitchMod.java b/fabric/src/main/java/gjum/minecraft/civ/snitchmod/fabric/FabricSnitchMod.java index ee5abe7..7efd8c6 100644 --- a/fabric/src/main/java/gjum/minecraft/civ/snitchmod/fabric/FabricSnitchMod.java +++ b/fabric/src/main/java/gjum/minecraft/civ/snitchmod/fabric/FabricSnitchMod.java @@ -5,6 +5,8 @@ import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents; +import net.minecraft.client.renderer.RenderPipelines; +import net.minecraft.core.registries.BuiltInRegistries; public class FabricSnitchMod extends SnitchMod implements ClientModInitializer { @Override @@ -22,7 +24,7 @@ public void onInitializeClient() { e.printStackTrace(); } }); - WorldRenderEvents.AFTER_TRANSLUCENT.register(((context) -> { + WorldRenderEvents.LAST.register(((context) -> { try { handleRenderBlockOverlay(context.matrixStack().last().pose()); } catch (Exception e) { diff --git a/gradle.properties b/gradle.properties index 3a72e8a..18d5328 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,15 +3,11 @@ org.gradle.jvmargs=-Xmx2048M maven_group=gjum.minecraft.snitchmod archives_base_name=snitchmod -mod_version=1.4.6-mc1.21.3 +mod_version=1.4.7-mc1.21.8 -minecraft_version=1.21.3 -enabled_platforms=fabric,forge,neoforge +minecraft_version=1.21.8 +enabled_platforms=fabric # https://fabricmc.net/versions.html -fabric_loader_version=0.16.9 -fabric_api_version=0.112.1+1.21.3 - -forge_version=53.0.25 - -neoforge_version=21.3.58 +fabric_loader_version=0.17.3 +fabric_api_version=0.112.1+1.21.3 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0d18421..d6e308a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle index 8436d99..ba9cf45 100644 --- a/settings.gradle +++ b/settings.gradle @@ -10,7 +10,7 @@ pluginManagement { include("common") include("fabric") -include("forge") -include("neoforge") +// include("forge") +// include("neoforge") rootProject.name = "snitchmod"