diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4c897b3e..9617fa8b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,10 +3,10 @@ format = { version = "1.1" } [versions] indra = "3.1.3" -minecraft = "1.21.1" +minecraft = "1.21.3" fabricLoader = "0.16.7" -fabricApi = "0.106.0+1.21.1" -modmenu = "11.0.1" +fabricApi = "0.106.1+1.21.3" +modmenu = "12.0.0-beta.1" viafabricplus = "3.3.0" vineflower = "1.10.1" cuiProtocol = "4.0.0" @@ -19,7 +19,7 @@ fabric-api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fab fabric-api-bom = { module = "net.fabricmc.fabric-api:fabric-api-bom", version.ref = "fabricApi" } fabric-api-networking = { module = "net.fabricmc.fabric-api:fabric-networking-api-v1" } modmenu = { module = "com.terraformersmc:modmenu", version.ref = "modmenu" } -neoforge = { module = "net.neoforged:neoforge", version = "21.1.72"} +neoforge = { module = "net.neoforged:neoforge", version = "21.3.3-beta"} viafabricplus-api = { module = "de.florianmichael:ViaFabricPlus", version.ref = "viafabricplus" } viaversion = { module = "com.viaversion:viaversion-common", version = "5.0.5" } vineflower = { module = "org.vineflower:vineflower", version.ref = "vineflower" } @@ -39,9 +39,9 @@ spotless = { id = "com.diffplug.spotless", version = "6.25.0" } versions = { id = "com.github.ben-manes.versions", version = "0.51.0" } [libraries.cuiProtocol-fabric] -module = "org.enginehub.worldeditcui-protocol:worldeditcui-protocol-fabric-mc1.21.1" +module = "org.enginehub.worldeditcui-protocol:worldeditcui-protocol-fabric-mc1.21.3" version.ref = "cuiProtocol" [libraries.cuiProtocol-neoforge] -module = "org.enginehub.worldeditcui-protocol:worldeditcui-protocol-neoforge-mc1.21.1" +module = "org.enginehub.worldeditcui-protocol:worldeditcui-protocol-neoforge-mc1.21.3" version.ref = "cuiProtocol" diff --git a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/event/listeners/CUIListenerWorldRender.java b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/event/listeners/CUIListenerWorldRender.java index b2ebbd01..1fc48eaa 100644 --- a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/event/listeners/CUIListenerWorldRender.java +++ b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/event/listeners/CUIListenerWorldRender.java @@ -11,10 +11,11 @@ import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.FogRenderer; -import net.minecraft.client.renderer.ShaderInstance; +import net.minecraft.client.renderer.CompiledShaderProgram; +import net.minecraft.client.renderer.FogParameters; +import net.minecraft.util.profiling.Profiler; +import net.minecraft.util.profiling.ProfilerFiller; import org.enginehub.worldeditcui.WorldEditCUI; import org.enginehub.worldeditcui.render.LineStyle; import org.enginehub.worldeditcui.render.PipelineProvider; @@ -92,10 +93,11 @@ public void onRender(final float partialTicks) { // allow ignoring eg. shadow pass return; } - Minecraft.getInstance().getProfiler().push("worldeditcui"); + final ProfilerFiller profiler = Profiler.get(); + profiler.push("worldeditcui"); this.ctx.init(new Vector3(this.minecraft.gameRenderer.getMainCamera().getPosition()), partialTicks, sink); - final float fogStart = RenderSystem.getShaderFogStart(); - FogRenderer.setupNoFog(); + final FogParameters fogStart = RenderSystem.getShaderFog(); + RenderSystem.setShaderFog(FogParameters.NO_FOG); final Matrix4fStack poseStack = RenderSystem.getModelViewStack(); poseStack.pushMatrix(); RenderSystem.disableCull(); @@ -106,7 +108,7 @@ public void onRender(final float partialTicks) { RenderSystem.depthMask(true); RenderSystem.lineWidth(LineStyle.DEFAULT_WIDTH); - final ShaderInstance oldShader = RenderSystem.getShader(); + final CompiledShaderProgram oldShader = RenderSystem.getShader(); try { this.controller.renderSelections(this.ctx); this.sink.flush(); @@ -116,13 +118,13 @@ public void onRender(final float partialTicks) { } RenderSystem.depthFunc(GL32.GL_LEQUAL); - RenderSystem.setShader(() -> oldShader); + RenderSystem.setShader(oldShader); // RenderSystem.enableTexture(); RenderSystem.disableBlend(); RenderSystem.enableCull(); poseStack.popMatrix(); - RenderSystem.setShaderFogStart(fogStart); - Minecraft.getInstance().getProfiler().pop(); + RenderSystem.setShaderFog(fogStart); + profiler.pop(); } catch (final Exception ex) { this.controller.getDebugger().error("Failed while preparing state for WorldEdit CUI", ex); diff --git a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/event/listeners/CUIRenderContext.java b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/event/listeners/CUIRenderContext.java index 4224af4a..a399da55 100644 --- a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/event/listeners/CUIRenderContext.java +++ b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/event/listeners/CUIRenderContext.java @@ -37,7 +37,7 @@ public Matrix4fStack matrixStack() { } public void applyMatrices() { - RenderSystem.applyModelViewMatrix(); + // RenderSystem.applyModelViewMatrix(); } public float dt() { diff --git a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/fabric/FabricModWorldEditCUI.java b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/fabric/FabricModWorldEditCUI.java index 39ef0876..c6661558 100644 --- a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/fabric/FabricModWorldEditCUI.java +++ b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/fabric/FabricModWorldEditCUI.java @@ -99,7 +99,7 @@ public void onInitialize() { try { RenderSystem.getModelViewStack().pushMatrix(); RenderSystem.getModelViewStack().mul(ctx.matrixStack().last().pose()); - RenderSystem.applyModelViewMatrix(); + // RenderSystem.applyModelViewMatrix(); ctx.worldRenderer().getTranslucentTarget().bindWrite(false); this.onPostRenderEntities(ctx); } finally { @@ -113,11 +113,11 @@ public void onInitialize() { try { RenderSystem.getModelViewStack().pushMatrix(); RenderSystem.getModelViewStack().mul(ctx.matrixStack().last().pose()); - RenderSystem.applyModelViewMatrix(); + // RenderSystem.applyModelViewMatrix(); this.onPostRenderEntities(ctx); } finally { RenderSystem.getModelViewStack().popMatrix(); - RenderSystem.applyModelViewMatrix(); + // RenderSystem.applyModelViewMatrix(); } } }); @@ -126,7 +126,7 @@ public void onInitialize() { private void onTick(final Minecraft mc) { final CUIConfiguration config = this.controller.getConfiguration(); final boolean inGame = mc.player != null; - final boolean clock = mc.getTimer().getGameTimeDeltaPartialTick(false) > 0; + final boolean clock = mc.getDeltaTracker().getGameTimeDeltaPartialTick(false) > 0; if (inGame && mc.screen == null) { while (this.keyBindToggleUI.consumeClick()) { diff --git a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/BufferBuilderRenderSink.java b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/BufferBuilderRenderSink.java index a6c8f91a..60a9d70f 100644 --- a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/BufferBuilderRenderSink.java +++ b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/BufferBuilderRenderSink.java @@ -14,14 +14,13 @@ import com.mojang.blaze3d.vertex.BufferUploader; import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexFormat; -import net.minecraft.client.renderer.ShaderInstance; +import net.minecraft.client.renderer.ShaderProgram; import org.jetbrains.annotations.Nullable; import org.joml.Vector3f; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL32; import java.util.Objects; -import java.util.function.Supplier; public class BufferBuilderRenderSink implements RenderSink { @@ -270,9 +269,9 @@ public static class RenderType { private final VertexFormat.Mode mode; private final VertexFormat format; private final boolean hasNormals; - private final Supplier shader; + private final ShaderProgram shader; - public RenderType(final VertexFormat.Mode mode, final VertexFormat format, final Supplier shader) { + public RenderType(final VertexFormat.Mode mode, final VertexFormat format, final ShaderProgram shader) { this.mode = mode; this.format = format; this.hasNormals = format.getElementAttributeNames().contains("Normal"); @@ -291,7 +290,7 @@ boolean hasNormals() { return this.hasNormals; } - Supplier shader() { + ShaderProgram shader() { return this.shader; } diff --git a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/OptifinePipelineProvider.java b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/OptifinePipelineProvider.java index 9415e11a..32324b84 100644 --- a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/OptifinePipelineProvider.java +++ b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/OptifinePipelineProvider.java @@ -12,6 +12,7 @@ import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.VertexFormat; import com.mojang.logging.LogUtils; +import net.minecraft.client.renderer.CoreShaders; import net.minecraft.client.renderer.GameRenderer; import org.slf4j.Logger; @@ -86,9 +87,9 @@ static String activeProgram() { public static class OptifineTypeFactory implements BufferBuilderRenderSink.TypeFactory { public static final OptifineTypeFactory INSTANCE = new OptifineTypeFactory(); - private static final BufferBuilderRenderSink.RenderType QUADS = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR, GameRenderer::getPositionColorShader); - private static final BufferBuilderRenderSink.RenderType LINES = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR, GameRenderer::getPositionColorShader); - private static final BufferBuilderRenderSink.RenderType LINES_LOOP = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR, GameRenderer::getPositionColorShader); + private static final BufferBuilderRenderSink.RenderType QUADS = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR, CoreShaders.POSITION_COLOR); + private static final BufferBuilderRenderSink.RenderType LINES = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR, CoreShaders.POSITION_COLOR); + private static final BufferBuilderRenderSink.RenderType LINES_LOOP = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR, CoreShaders.POSITION_COLOR); private OptifineTypeFactory() {} diff --git a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/VanillaPipelineProvider.java b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/VanillaPipelineProvider.java index 4db3bd61..25fd4e63 100644 --- a/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/VanillaPipelineProvider.java +++ b/worldeditcui-fabric/src/main/java/org/enginehub/worldeditcui/render/VanillaPipelineProvider.java @@ -11,6 +11,7 @@ import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.VertexFormat; +import net.minecraft.client.renderer.CoreShaders; import net.minecraft.client.renderer.GameRenderer; public final class VanillaPipelineProvider implements PipelineProvider { @@ -18,9 +19,9 @@ public final class VanillaPipelineProvider implements PipelineProvider { public static class DefaultTypeFactory implements BufferBuilderRenderSink.TypeFactory { public static final DefaultTypeFactory INSTANCE = new DefaultTypeFactory(); - private static final BufferBuilderRenderSink.RenderType QUADS = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR, GameRenderer::getPositionColorShader); - private static final BufferBuilderRenderSink.RenderType LINES = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL, GameRenderer::getRendertypeLinesShader); - private static final BufferBuilderRenderSink.RenderType LINES_LOOP = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL, GameRenderer::getRendertypeLinesShader); + private static final BufferBuilderRenderSink.RenderType QUADS = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR, CoreShaders.POSITION_COLOR); + private static final BufferBuilderRenderSink.RenderType LINES = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL, CoreShaders.RENDERTYPE_LINES); + private static final BufferBuilderRenderSink.RenderType LINES_LOOP = new BufferBuilderRenderSink.RenderType(VertexFormat.Mode.LINES, DefaultVertexFormat.POSITION_COLOR_NORMAL, CoreShaders.RENDERTYPE_LINES); private DefaultTypeFactory() {} diff --git a/worldeditcui-fabric/src/main/resources/fabric.mod.json b/worldeditcui-fabric/src/main/resources/fabric.mod.json index 6ecbf5aa..b93c1ca1 100644 --- a/worldeditcui-fabric/src/main/resources/fabric.mod.json +++ b/worldeditcui-fabric/src/main/resources/fabric.mod.json @@ -42,7 +42,7 @@ "fabric-lifecycle-events-v1": "^2.0.0", "fabric-screen-api-v1": ">=1.0.9", "fabric-resource-loader-v0": ">=0.4.17", - "minecraft": ">=1.20.5" + "minecraft": ">=1.21.2" }, "suggests": { "worldedit": ">=7.2.0"