From 9852f21c3f8dd5839b48e47733970290622bc384 Mon Sep 17 00:00:00 2001 From: Cadiboo <37298044+Cadiboo@users.noreply.github.com> Date: Sun, 16 Jun 2024 22:12:01 +1000 Subject: [PATCH] Update to 1.20.4 --- .../nocubes/client/optifine/Dummy.java | 12 ++--- .../nocubes/client/optifine/HD_U_G7.java | 16 +++---- .../client/optifine/OptiFineProxy.java | 12 ++--- .../nocubes/client/render/MeshRenderer.java | 2 +- .../client/render/VanillaRenderer.java | 10 ++-- .../trait/INoCubesChunkSectionRender.java | 2 +- .../INoCubesChunkSectionRenderBuilder.java | 2 +- .../INoCubesChunkSectionRenderOptiFine.java | 6 +-- .../mixin/client/RenderChunkMixin.java | 4 +- .../client/RenderChunkRebuildTaskMixin.java | 2 +- .../client/optifine/RenderChunkMixin.java | 8 ++-- .../nocubes/network/NoCubesNetwork.java | 2 +- fabric/build.gradle | 4 +- ...rmSpecificRenderChunkRebuildTaskMixin.java | 10 ++-- .../nocubes/config/NoCubesConfigImpl.java | 6 +-- .../cadiboo/nocubes/forge/ClientInit.java | 5 +- .../cadiboo/nocubes/forge/ClientPlatform.java | 3 +- ...rmSpecificRenderChunkRebuildTaskMixin.java | 10 ++-- .../client/RenderChunkCompileTaskMixin.java | 2 +- .../network/C2SRequestUpdateSmoothable.java | 8 ++-- .../nocubes/network/NoCubesNetworkForge.java | 48 +++++++++---------- .../network/S2CUpdateServerConfig.java | 4 +- .../nocubes/network/S2CUpdateSmoothable.java | 4 +- gradle.properties | 8 ++-- 24 files changed, 96 insertions(+), 94 deletions(-) diff --git a/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/Dummy.java b/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/Dummy.java index 83546baf..582d3061 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/Dummy.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/Dummy.java @@ -5,7 +5,7 @@ import io.github.cadiboo.nocubes.client.render.VanillaRenderer; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRender; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRenderBuilder; -import net.minecraft.client.renderer.ChunkBufferBuilderPack; +import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.BlockRenderDispatcher; import net.minecraft.client.renderer.block.model.BakedQuad; @@ -38,12 +38,12 @@ public long getSeed(long originalSeed) { } @Override - public Object preRenderBlock(INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack builder, BlockAndTintGetter chunkCacheOF, RenderType renderType, BufferBuilder buffer, BlockState state, BlockPos pos) { + public Object preRenderBlock(INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack builder, BlockAndTintGetter chunkCacheOF, RenderType renderType, BufferBuilder buffer, BlockState state, BlockPos pos) { return null; } @Override - public Object preRenderFluid(INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack buffers, BlockAndTintGetter chunkCache, RenderType layer, BufferBuilder buffer, BlockState block, FluidState fluid, BlockPos worldPos) { + public Object preRenderFluid(INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack buffers, BlockAndTintGetter chunkCache, RenderType layer, BufferBuilder buffer, BlockState block, FluidState fluid, BlockPos worldPos) { return null; } @@ -53,11 +53,11 @@ public BakedModel getModel(Object renderEnv, BakedModel originalModel, BlockStat } @Override - public void postRenderBlock(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack builder, Set usedLayers) { + public void postRenderBlock(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack builder, Set usedLayers) { } @Override - public void postRenderFluid(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack builder, Set usedLayers) { + public void postRenderFluid(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack builder, Set usedLayers) { } @Override @@ -77,7 +77,7 @@ public List getQuadsAndStoreOverlays(List quads, BlockAndT @Override public int forEachOverlayQuad( INoCubesChunkSectionRenderBuilder rebuildTask, INoCubesChunkSectionRender chunkRender, - ChunkBufferBuilderPack buffers, BlockPos chunkPos, + SectionBufferBuilderPack buffers, BlockPos chunkPos, BlockAndTintGetter world, PoseStack matrix, Set usedLayers, RandomSource random, BlockRenderDispatcher dispatcher, BlockState state, BlockPos worldPos, diff --git a/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/HD_U_G7.java b/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/HD_U_G7.java index 9ccd4450..6078fca9 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/HD_U_G7.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/HD_U_G7.java @@ -7,7 +7,7 @@ import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRender; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRenderBuilder; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRenderOptiFine; -import net.minecraft.client.renderer.ChunkBufferBuilderPack; +import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.BlockRenderDispatcher; import net.minecraft.client.renderer.block.model.BakedQuad; @@ -62,7 +62,7 @@ public long getSeed(long originalSeed) { } @Override - public Object preRenderBlock(INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack builder, BlockAndTintGetter chunkCacheOF, RenderType renderType, BufferBuilder buffer, BlockState state, BlockPos pos) { + public Object preRenderBlock(INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack builder, BlockAndTintGetter chunkCacheOF, RenderType renderType, BufferBuilder buffer, BlockState state, BlockPos pos) { BufferBuilder_setBlockLayer(buffer, renderType); Object renderEnv = BufferBuilder_getRenderEnv(buffer, state, pos); RenderEnv_setRegionRenderCacheBuilder(renderEnv, builder); @@ -79,7 +79,7 @@ protected void prePushShaderEntity(INoCubesChunkSectionRender chunkRender, Buffe } @Override - public Object preRenderFluid(INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack buffers, BlockAndTintGetter chunkCache, RenderType layer, BufferBuilder buffer, BlockState block, FluidState fluid, BlockPos worldPos) { + public Object preRenderFluid(INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack buffers, BlockAndTintGetter chunkCache, RenderType layer, BufferBuilder buffer, BlockState block, FluidState fluid, BlockPos worldPos) { return this.preRenderBlock(chunkRender, buffers, chunkCache, layer, buffer, block, worldPos); } @@ -89,7 +89,7 @@ public BakedModel getModel(Object renderEnv, BakedModel originalModel, BlockStat } @Override - public void postRenderBlock(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack builder, Set usedLayers) { + public void postRenderBlock(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack builder, Set usedLayers) { var chunkRenderOf = (INoCubesChunkSectionRenderOptiFine) chunkRender; if (Config_isShaders()) SVertexBuilder_popEntity(buffer); @@ -101,7 +101,7 @@ public void postRenderBlock(Object renderEnv, BufferBuilder buffer, INoCubesChun } @Override - public void postRenderFluid(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack builder, Set usedLayers) { + public void postRenderFluid(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack builder, Set usedLayers) { this.postRenderBlock(renderEnv, buffer, chunkRender, builder, usedLayers); } @@ -123,7 +123,7 @@ public List getQuadsAndStoreOverlays(List quads, BlockAndT @Override public int forEachOverlayQuad( INoCubesChunkSectionRenderBuilder rebuildTask, INoCubesChunkSectionRender chunkRender, - ChunkBufferBuilderPack buffers, BlockPos chunkPos, + SectionBufferBuilderPack buffers, BlockPos chunkPos, BlockAndTintGetter world, PoseStack matrix, Set usedLayers, RandomSource random, BlockRenderDispatcher dispatcher, BlockState state, BlockPos worldPos, @@ -175,7 +175,7 @@ interface Reflect { MethodHandle getRenderEnv = Reflector.tryGetMethod(BufferBuilder.class.getName(), "getRenderEnv", BlockState.class, BlockPos.class); MethodHandle reset = Reflector.tryGetMethod("net.optifine.render.RenderEnv", "reset", BlockState.class, BlockPos.class); - MethodHandle setRegionRenderCacheBuilder = Reflector.tryGetMethod("net.optifine.render.RenderEnv", "setRegionRenderCacheBuilder", ChunkBufferBuilderPack.class); + MethodHandle setRegionRenderCacheBuilder = Reflector.tryGetMethod("net.optifine.render.RenderEnv", "setRegionRenderCacheBuilder", SectionBufferBuilderPack.class); MethodHandle isOverlaysRendered = Reflector.tryGetMethod("net.optifine.render.RenderEnv", "isOverlaysRendered"); MethodHandle setOverlaysRendered = Reflector.tryGetMethod("net.optifine.render.RenderEnv", "setOverlaysRendered", boolean.class); MethodHandle getListQuadsOverlay = Reflector.tryGetMethod("net.optifine.render.RenderEnv", "getListQuadsOverlay", RenderType.class); @@ -266,7 +266,7 @@ static void ChunkCacheOF_setRenderEnv(BlockAndTintGetter chunkCacheOF, Object re } } - static void RenderEnv_setRegionRenderCacheBuilder(Object renderEnv, ChunkBufferBuilderPack builder) { + static void RenderEnv_setRegionRenderCacheBuilder(Object renderEnv, SectionBufferBuilderPack builder) { // ((RenderEnv) renderEnv).setRegionRenderCacheBuilder(builder); try { setRegionRenderCacheBuilder.invoke(renderEnv, builder); diff --git a/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/OptiFineProxy.java b/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/OptiFineProxy.java index 383ae738..eb470f5b 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/OptiFineProxy.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/client/optifine/OptiFineProxy.java @@ -5,7 +5,7 @@ import io.github.cadiboo.nocubes.client.render.VanillaRenderer; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRender; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRenderBuilder; -import net.minecraft.client.renderer.ChunkBufferBuilderPack; +import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.BlockRenderDispatcher; import net.minecraft.client.renderer.block.model.BakedQuad; @@ -33,16 +33,16 @@ public interface OptiFineProxy { long getSeed(long originalSeed); /** @return null or the RenderEnv */ - Object preRenderBlock(INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack buffers, BlockAndTintGetter chunkCache, RenderType layer, BufferBuilder buffer, BlockState state, BlockPos worldPos); + Object preRenderBlock(INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack buffers, BlockAndTintGetter chunkCache, RenderType layer, BufferBuilder buffer, BlockState state, BlockPos worldPos); /** @return null or the RenderEnv */ - Object preRenderFluid(INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack buffers, BlockAndTintGetter chunkCache, RenderType layer, BufferBuilder buffer, BlockState block, FluidState fluid, BlockPos worldPos); + Object preRenderFluid(INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack buffers, BlockAndTintGetter chunkCache, RenderType layer, BufferBuilder buffer, BlockState block, FluidState fluid, BlockPos worldPos); BakedModel getModel(Object renderEnv, BakedModel originalModel, BlockState state); - void postRenderBlock(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack buffers, Set usedLayers); + void postRenderBlock(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack buffers, Set usedLayers); - void postRenderFluid(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack buffers, Set usedLayers); + void postRenderFluid(Object renderEnv, BufferBuilder buffer, INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack buffers, Set usedLayers); @Nullable BakedQuad getQuadEmissive(BakedQuad quad); @@ -52,7 +52,7 @@ public interface OptiFineProxy { int forEachOverlayQuad( INoCubesChunkSectionRenderBuilder rebuildTask, INoCubesChunkSectionRender chunkRender, - ChunkBufferBuilderPack buffers, BlockPos chunkPos, + SectionBufferBuilderPack buffers, BlockPos chunkPos, BlockAndTintGetter world, PoseStack matrix, Set usedLayers, RandomSource random, BlockRenderDispatcher dispatcher, BlockState state, BlockPos worldPos, diff --git a/common/src/main/java/io/github/cadiboo/nocubes/client/render/MeshRenderer.java b/common/src/main/java/io/github/cadiboo/nocubes/client/render/MeshRenderer.java index 18a9f89c..bf5a5486 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/client/render/MeshRenderer.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/client/render/MeshRenderer.java @@ -192,7 +192,7 @@ private static void renderExtras( } if (renderGrassTufts && foundState.state.hasProperty(SNOWY) && !ModUtil.isPlant(stateAbove)) { - var grass = Blocks.GRASS.defaultBlockState(); + var grass = Blocks.SHORT_GRASS.defaultBlockState(); var worldAbove = relativeAbove.move(area.start); var renderBothSides = true; diff --git a/common/src/main/java/io/github/cadiboo/nocubes/client/render/VanillaRenderer.java b/common/src/main/java/io/github/cadiboo/nocubes/client/render/VanillaRenderer.java index aedf7668..22908163 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/client/render/VanillaRenderer.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/client/render/VanillaRenderer.java @@ -15,7 +15,7 @@ import io.github.cadiboo.nocubes.util.Vec; import net.minecraft.client.Minecraft; import net.minecraft.client.color.block.BlockColors; -import net.minecraft.client.renderer.ChunkBufferBuilderPack; +import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.BlockRenderDispatcher; import net.minecraft.client.renderer.block.model.BakedQuad; @@ -35,7 +35,7 @@ public final class VanillaRenderer { public static void renderChunk( - INoCubesChunkSectionRenderBuilder rebuildTask, INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack buffers, + INoCubesChunkSectionRenderBuilder rebuildTask, INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack buffers, BlockPos chunkPos, BlockAndTintGetter world, PoseStack matrix, Set usedLayers, RandomSource random, BlockRenderDispatcher dispatcher, RenderInLayer renderBlock @@ -100,7 +100,7 @@ public interface RenderInLayer { } static void renderInBlockLayers( - INoCubesChunkSectionRenderBuilder rebuildTask, INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack buffers, + INoCubesChunkSectionRenderBuilder rebuildTask, INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack buffers, BlockAndTintGetter world, Set usedLayers, OptiFineProxy optiFine, BlockState state, BlockPos worldPos, RenderInLayer render ) { @@ -149,7 +149,7 @@ public interface QuadConsumer { static void forEachQuadInEveryBlockLayer( INoCubesChunkSectionRenderBuilder rebuildTask, INoCubesChunkSectionRender chunkRender, - ChunkBufferBuilderPack buffers, BlockPos chunkPos, + SectionBufferBuilderPack buffers, BlockPos chunkPos, BlockAndTintGetter world, PoseStack matrix, Set usedLayers, RandomSource random, BlockRenderDispatcher dispatcher, OptiFineProxy optiFine, @@ -231,7 +231,7 @@ static List getQuadsAndStoreOverlays( } public static BufferBuilder getAndStartBuffer( - INoCubesChunkSectionRender chunkRender, ChunkBufferBuilderPack buffers, + INoCubesChunkSectionRender chunkRender, SectionBufferBuilderPack buffers, Set usedLayers, RenderType layer ) { var buffer = buffers.builder(layer); diff --git a/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRender.java b/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRender.java index b15650b7..05eb576a 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRender.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRender.java @@ -3,7 +3,7 @@ import com.mojang.blaze3d.vertex.BufferBuilder; /** - * Adds extra functionality to {@link net.minecraft.client.renderer.chunk.ChunkRenderDispatcher.RenderChunk}. + * Adds extra functionality to {@link net.minecraft.client.renderer.chunk.SectionRenderDispatcher.RenderSection}. * Implemented by {@link io.github.cadiboo.nocubes.mixin.client.RenderChunkMixin}. */ public interface INoCubesChunkSectionRender { diff --git a/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRenderBuilder.java b/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRenderBuilder.java index ea93a1c8..4309ce9d 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRenderBuilder.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRenderBuilder.java @@ -3,7 +3,7 @@ import net.minecraft.core.BlockPos; /** - * Adds extra functionality to {@link net.minecraft.client.renderer.chunk.ChunkRenderDispatcher.RenderChunk.RebuildTask}. + * Adds extra functionality to {@link net.minecraft.client.renderer.chunk.SectionRenderDispatcher.RenderSection.RebuildTask}. * Implemented by {@link io.github.cadiboo.nocubes.mixin.client.RenderChunkRebuildTaskMixin}. */ public interface INoCubesChunkSectionRenderBuilder { diff --git a/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRenderOptiFine.java b/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRenderOptiFine.java index b499fe7a..6e52f10f 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRenderOptiFine.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/hooks/trait/INoCubesChunkSectionRenderOptiFine.java @@ -1,13 +1,13 @@ package io.github.cadiboo.nocubes.hooks.trait; import io.github.cadiboo.nocubes.mixin.client.optifine.RenderChunkMixin; -import net.minecraft.client.renderer.ChunkBufferBuilderPack; +import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.RenderType; import java.util.Set; /** - * Adds extra functionality to {@link net.minecraft.client.renderer.chunk.ChunkRenderDispatcher.RenderChunk.RebuildTask}. + * Adds extra functionality to {@link net.minecraft.client.renderer.chunk.SectionRenderDispatcher.RenderSection.RebuildTask}. * Implemented by {@link RenderChunkMixin}. */ public interface INoCubesChunkSectionRenderOptiFine { @@ -15,5 +15,5 @@ public interface INoCubesChunkSectionRenderOptiFine { int noCubes$regionDY(); int noCubes$regionDZ(); - void noCubes$postRenderOverlays(ChunkBufferBuilderPack builder, Set usedLayers); + void noCubes$postRenderOverlays(SectionBufferBuilderPack builder, Set usedLayers); } diff --git a/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkMixin.java b/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkMixin.java index bfb96b3e..0e9deb4a 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkMixin.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkMixin.java @@ -2,11 +2,11 @@ import com.mojang.blaze3d.vertex.BufferBuilder; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRender; -import net.minecraft.client.renderer.chunk.ChunkRenderDispatcher; +import net.minecraft.client.renderer.chunk.SectionRenderDispatcher; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -@Mixin(ChunkRenderDispatcher.RenderChunk.class) +@Mixin(SectionRenderDispatcher.RenderSection.class) public abstract class RenderChunkMixin implements INoCubesChunkSectionRender { @Shadow diff --git a/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkRebuildTaskMixin.java b/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkRebuildTaskMixin.java index 86430603..89ec07cd 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkRebuildTaskMixin.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkRebuildTaskMixin.java @@ -17,7 +17,7 @@ /** * Changes chunk rendering to allow us to do our own custom rendering. */ -@Mixin(targets = "net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$RenderChunk$RebuildTask") +@Mixin(targets = "net.minecraft.client.renderer.chunk.SectionRenderDispatcher$RenderChunk$RebuildTask") public abstract class RenderChunkRebuildTaskMixin { /** diff --git a/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/optifine/RenderChunkMixin.java b/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/optifine/RenderChunkMixin.java index 58f44d76..30921b00 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/optifine/RenderChunkMixin.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/mixin/client/optifine/RenderChunkMixin.java @@ -1,7 +1,7 @@ package io.github.cadiboo.nocubes.mixin.client.optifine; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRenderOptiFine; -import net.minecraft.client.renderer.ChunkBufferBuilderPack; +import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.RenderType; import org.spongepowered.asm.mixin.Dynamic; import org.spongepowered.asm.mixin.Mixin; @@ -9,7 +9,7 @@ import java.util.Set; -@Mixin(net.minecraft.client.renderer.chunk.ChunkRenderDispatcher.RenderChunk.class) +@Mixin(net.minecraft.client.renderer.chunk.SectionRenderDispatcher.RenderSection.class) public class RenderChunkMixin implements INoCubesChunkSectionRenderOptiFine { @Dynamic("Added by OptiFine") @@ -38,11 +38,11 @@ public class RenderChunkMixin implements INoCubesChunkSectionRenderOptiFine { @Dynamic("Added by OptiFine") @Shadow - private void shadow$postRenderOverlays(ChunkBufferBuilderPack builder, Set usedLayers) { + private void shadow$postRenderOverlays(SectionBufferBuilderPack builder, Set usedLayers) { } @Override - public void noCubes$postRenderOverlays(ChunkBufferBuilderPack builder, Set usedLayers) { + public void noCubes$postRenderOverlays(SectionBufferBuilderPack builder, Set usedLayers) { shadow$postRenderOverlays(builder, usedLayers); } } diff --git a/common/src/main/java/io/github/cadiboo/nocubes/network/NoCubesNetwork.java b/common/src/main/java/io/github/cadiboo/nocubes/network/NoCubesNetwork.java index 1b083a39..0ba8e05f 100644 --- a/common/src/main/java/io/github/cadiboo/nocubes/network/NoCubesNetwork.java +++ b/common/src/main/java/io/github/cadiboo/nocubes/network/NoCubesNetwork.java @@ -25,7 +25,7 @@ public class NoCubesNetwork { */ public static final int REQUIRED_PERMISSION_LEVEL = 2; - public static final String NETWORK_PROTOCOL_VERSION = "2"; + public static final int NETWORK_PROTOCOL_VERSION = 2; public static boolean checkPermissionAndNotifyIfUnauthorised(Player player, @Nullable MinecraftServer connectedToServer) { if (connectedToServer != null && connectedToServer.isSingleplayerOwner(player.getGameProfile())) diff --git a/fabric/build.gradle b/fabric/build.gradle index 5624fd0e..bdaed9c2 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -25,9 +25,9 @@ dependencies { shadow(implementation(group: 'org.beryx', name: 'awt-color-factory', version: rootProject.ext.COLOR_FACTORY_VERSION)) // CompileOnly so our Mixins can target Sodium's classes - def sodium = modCompileOnly 'maven.modrinth:sodium:mc1.20.1-0.5.7' + def sodium = modCompileOnly 'maven.modrinth:sodium:mc1.20.4-0.5.8' modImplementation sodium - modImplementation 'maven.modrinth:iris:1.6.17+1.20.1' + modImplementation 'maven.modrinth:iris:1.7.1+1.20.4' } loom { diff --git a/fabric/src/main/java/io/github/cadiboo/nocubes/mixin/client/PlatformSpecificRenderChunkRebuildTaskMixin.java b/fabric/src/main/java/io/github/cadiboo/nocubes/mixin/client/PlatformSpecificRenderChunkRebuildTaskMixin.java index 5598adee..ce5a10b4 100644 --- a/fabric/src/main/java/io/github/cadiboo/nocubes/mixin/client/PlatformSpecificRenderChunkRebuildTaskMixin.java +++ b/fabric/src/main/java/io/github/cadiboo/nocubes/mixin/client/PlatformSpecificRenderChunkRebuildTaskMixin.java @@ -6,10 +6,10 @@ import io.github.cadiboo.nocubes.client.render.VanillaRenderer; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRender; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRenderBuilder; -import net.minecraft.client.renderer.ChunkBufferBuilderPack; +import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.BlockRenderDispatcher; -import net.minecraft.client.renderer.chunk.ChunkRenderDispatcher; +import net.minecraft.client.renderer.chunk.SectionRenderDispatcher; import net.minecraft.client.renderer.chunk.RenderChunkRegion; import net.minecraft.core.BlockPos; import net.minecraft.util.RandomSource; @@ -21,7 +21,7 @@ import java.util.Iterator; import java.util.Set; -@Mixin(targets = "net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$RenderChunk$RebuildTask") +@Mixin(targets = "net.minecraft.client.renderer.chunk.SectionRenderDispatcher$RenderChunk$RebuildTask") public abstract class PlatformSpecificRenderChunkRebuildTaskMixin implements INoCubesChunkSectionRenderBuilder { @Shadow(aliases = { @@ -31,7 +31,7 @@ public abstract class PlatformSpecificRenderChunkRebuildTaskMixin implements INo "field_20839", // Fabric }) @Final - ChunkRenderDispatcher.RenderChunk parentClass; + SectionRenderDispatcher.RenderSection parentClass; @Override public Object noCubes$getModelData(BlockPos worldPos) { @@ -48,7 +48,7 @@ public abstract class PlatformSpecificRenderChunkRebuildTaskMixin implements INo public Iterator noCubes$renderChunk( Iterator iterator, float x, float y, float z, - ChunkBufferBuilderPack buffers, + SectionBufferBuilderPack buffers, @Local(ordinal = 0) BlockPos chunkPos, @Local(ordinal = 0) RenderChunkRegion region, @Local(ordinal = 0) PoseStack matrix, diff --git a/forge/src/main/java/io/github/cadiboo/nocubes/config/NoCubesConfigImpl.java b/forge/src/main/java/io/github/cadiboo/nocubes/config/NoCubesConfigImpl.java index b352a3d1..42c07218 100644 --- a/forge/src/main/java/io/github/cadiboo/nocubes/config/NoCubesConfigImpl.java +++ b/forge/src/main/java/io/github/cadiboo/nocubes/config/NoCubesConfigImpl.java @@ -313,12 +313,12 @@ static void bake(ModConfig config) { NoCubesConfig.Server.extendFluidsRange = validateRange(0, 2, INSTANCE.extendFluidsRange.get(), "extendFluidsRange"); NoCubesConfig.Server.oldNoCubesSlopes = INSTANCE.oldNoCubesSlopes.get(); NoCubesConfig.Server.oldNoCubesInFluids = INSTANCE.oldNoCubesInFluids.get(); - NoCubesConfig.Server.oldNoCubesRoughness = validateRange(0d, 1d, INSTANCE.oldNoCubesRoughness.get(), "oldNoCubesRoughness").floatValue(); + NoCubesConfig.Server.oldNoCubesRoughness = validateRange(0f, 1f, INSTANCE.oldNoCubesRoughness.get(), "oldNoCubesRoughness").floatValue(); if (NoCubesConfig.Client.render && oldChunkRenderSettingsHash != NoCubesConfig.Server.hashChunkRenderSettings(blocks.stream())) DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> reloadAllChunks("options affecting chunk rendering in the server config were changed")); if (FMLEnvironment.dist.isDedicatedServer() && ServerLifecycleHooks.getCurrentServer() != null) - NoCubesNetworkForge.CHANNEL.send(PacketDistributor.ALL.noArg(), S2CUpdateServerConfig.create(config)); + NoCubesNetworkForge.CHANNEL.send(S2CUpdateServerConfig.create(config), PacketDistributor.ALL.noArg()); } static > T validateRange(T min, T max, T value, String name) { @@ -358,7 +358,7 @@ static class Impl { final IntValue extendFluidsRange; final BooleanValue oldNoCubesSlopes; final BooleanValue oldNoCubesInFluids; - final DoubleValue oldNoCubesRoughness; + final FloatValue oldNoCubesRoughness; private Impl(Builder builder) { final var smoothableListCommentExtra = "Instead of manually editing this list, you can smoothen or un-smoothen blocks by looking at them in-game and pressing the 'N' key, or whatever it may have been rebound to."; diff --git a/forge/src/main/java/io/github/cadiboo/nocubes/forge/ClientInit.java b/forge/src/main/java/io/github/cadiboo/nocubes/forge/ClientInit.java index ea0e0d89..91a2a2d2 100644 --- a/forge/src/main/java/io/github/cadiboo/nocubes/forge/ClientInit.java +++ b/forge/src/main/java/io/github/cadiboo/nocubes/forge/ClientInit.java @@ -13,7 +13,8 @@ import net.minecraftforge.event.TickEvent; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; -import net.minecraftforge.network.NetworkHooks; +import net.minecraftforge.network.ConnectionType; +import net.minecraftforge.network.NetworkContext; /** * @author Cadiboo @@ -52,7 +53,7 @@ public static void register(IEventBus modBus, IEventBus events) { }); events.addListener((ClientPlayerNetworkEvent.LoggingIn event) -> { // In this case Forge has already loaded the default server configs for us (see NetworkHooks#handleClientLoginSuccess(Connection)) - var forgeAlreadyLoadedDefaultConfig = NetworkHooks.isVanillaConnection(event.getConnection()); + var forgeAlreadyLoadedDefaultConfig = NetworkContext.get(event.getConnection()).getType() == ConnectionType.VANILLA; NoCubesNetworkClient.onJoinedServer(forgeAlreadyLoadedDefaultConfig); }); } diff --git a/forge/src/main/java/io/github/cadiboo/nocubes/forge/ClientPlatform.java b/forge/src/main/java/io/github/cadiboo/nocubes/forge/ClientPlatform.java index ec5312bb..637a819b 100644 --- a/forge/src/main/java/io/github/cadiboo/nocubes/forge/ClientPlatform.java +++ b/forge/src/main/java/io/github/cadiboo/nocubes/forge/ClientPlatform.java @@ -18,6 +18,7 @@ import net.minecraftforge.client.model.data.ModelData; import net.minecraftforge.fml.config.ConfigTracker; import net.minecraftforge.fml.config.ModConfig; +import net.minecraftforge.network.PacketDistributor; import java.io.File; import java.util.List; @@ -31,7 +32,7 @@ public void updateClientVisuals(boolean render) { @Override public void sendC2SRequestUpdateSmoothable(boolean newValue, BlockState[] states) { - NoCubesNetworkForge.CHANNEL.sendToServer(new C2SRequestUpdateSmoothable(newValue, states)); + NoCubesNetworkForge.CHANNEL.send(new C2SRequestUpdateSmoothable(newValue, states), PacketDistributor.SERVER.noArg()); } @Override diff --git a/forge/src/main/java/io/github/cadiboo/nocubes/mixin/client/PlatformSpecificRenderChunkRebuildTaskMixin.java b/forge/src/main/java/io/github/cadiboo/nocubes/mixin/client/PlatformSpecificRenderChunkRebuildTaskMixin.java index 6595b536..668515a5 100644 --- a/forge/src/main/java/io/github/cadiboo/nocubes/mixin/client/PlatformSpecificRenderChunkRebuildTaskMixin.java +++ b/forge/src/main/java/io/github/cadiboo/nocubes/mixin/client/PlatformSpecificRenderChunkRebuildTaskMixin.java @@ -6,10 +6,10 @@ import io.github.cadiboo.nocubes.client.render.VanillaRenderer; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRender; import io.github.cadiboo.nocubes.hooks.trait.INoCubesChunkSectionRenderBuilder; -import net.minecraft.client.renderer.ChunkBufferBuilderPack; +import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.BlockRenderDispatcher; -import net.minecraft.client.renderer.chunk.ChunkRenderDispatcher; +import net.minecraft.client.renderer.chunk.SectionRenderDispatcher; import net.minecraft.client.renderer.chunk.RenderChunkRegion; import net.minecraft.core.BlockPos; import net.minecraft.util.RandomSource; @@ -22,7 +22,7 @@ import java.util.Iterator; import java.util.Set; -@Mixin(targets = "net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$RenderChunk$RebuildTask") +@Mixin(targets = "net.minecraft.client.renderer.chunk.SectionRenderDispatcher$RenderChunk$RebuildTask") public abstract class PlatformSpecificRenderChunkRebuildTaskMixin extends RenderChunkCompileTaskMixin implements INoCubesChunkSectionRenderBuilder { @Shadow(aliases = { @@ -32,7 +32,7 @@ public abstract class PlatformSpecificRenderChunkRebuildTaskMixin extends Render "field_20839", // Fabric }) @Final - ChunkRenderDispatcher.RenderChunk parentClass; + SectionRenderDispatcher.RenderSection parentClass; @Override public ModelData noCubes$getModelData(BlockPos worldPos) { @@ -49,7 +49,7 @@ public abstract class PlatformSpecificRenderChunkRebuildTaskMixin extends Render public Iterator noCubes$renderChunk( Iterator iterator, float x, float y, float z, - ChunkBufferBuilderPack buffers, + SectionBufferBuilderPack buffers, @Local(ordinal = 0) BlockPos chunkPos, @Local(ordinal = 0) RenderChunkRegion region, @Local(ordinal = 0) PoseStack matrix, diff --git a/forge/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkCompileTaskMixin.java b/forge/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkCompileTaskMixin.java index ecf195f3..feae5fb7 100644 --- a/forge/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkCompileTaskMixin.java +++ b/forge/src/main/java/io/github/cadiboo/nocubes/mixin/client/RenderChunkCompileTaskMixin.java @@ -5,7 +5,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -@Mixin(targets = "net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$RenderChunk$ChunkCompileTask") +@Mixin(targets = "net.minecraft.client.renderer.chunk.SectionRenderDispatcher$RenderChunk$ChunkCompileTask") public abstract class RenderChunkCompileTaskMixin { @Shadow diff --git a/forge/src/main/java/io/github/cadiboo/nocubes/network/C2SRequestUpdateSmoothable.java b/forge/src/main/java/io/github/cadiboo/nocubes/network/C2SRequestUpdateSmoothable.java index 579f0ef2..82de3d66 100644 --- a/forge/src/main/java/io/github/cadiboo/nocubes/network/C2SRequestUpdateSmoothable.java +++ b/forge/src/main/java/io/github/cadiboo/nocubes/network/C2SRequestUpdateSmoothable.java @@ -1,7 +1,7 @@ package io.github.cadiboo.nocubes.network; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.network.NetworkEvent; +import net.minecraftforge.event.network.CustomPayloadEvent; import net.minecraftforge.network.PacketDistributor; import java.util.Objects; @@ -11,15 +11,15 @@ public record C2SRequestUpdateSmoothable( boolean newValue, BlockState[] states ) { - public static void handle(C2SRequestUpdateSmoothable msg, Supplier contextSupplier) { + public static void handle(C2SRequestUpdateSmoothable msg, Supplier contextSupplier) { var ctx = contextSupplier.get(); var sender = Objects.requireNonNull(ctx.getSender(), "Command sender was null"); NoCubesNetwork.handleC2SRequestUpdateSmoothable( sender, msg.newValue, msg.states, ctx::enqueueWork, (playerIfNotNullElseEveryone, newValue, states) -> NoCubesNetworkForge.CHANNEL.send( - playerIfNotNullElseEveryone == null ? PacketDistributor.ALL.noArg() : PacketDistributor.PLAYER.with(() -> sender), - new S2CUpdateSmoothable(newValue, states) + new S2CUpdateSmoothable(newValue, states), + playerIfNotNullElseEveryone == null ? PacketDistributor.ALL.noArg() : PacketDistributor.PLAYER.with(sender) ) ); ctx.setPacketHandled(true); diff --git a/forge/src/main/java/io/github/cadiboo/nocubes/network/NoCubesNetworkForge.java b/forge/src/main/java/io/github/cadiboo/nocubes/network/NoCubesNetworkForge.java index b33f50b7..f40b4424 100644 --- a/forge/src/main/java/io/github/cadiboo/nocubes/network/NoCubesNetworkForge.java +++ b/forge/src/main/java/io/github/cadiboo/nocubes/network/NoCubesNetworkForge.java @@ -2,9 +2,9 @@ import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.network.NetworkEvent; -import net.minecraftforge.network.NetworkRegistry; -import net.minecraftforge.network.simple.SimpleChannel; +import net.minecraftforge.event.network.CustomPayloadEvent; +import net.minecraftforge.network.ChannelBuilder; +import net.minecraftforge.network.SimpleChannel; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -13,6 +13,7 @@ import java.util.function.Supplier; import static io.github.cadiboo.nocubes.NoCubes.MOD_ID; +import static net.minecraftforge.network.Channel.*; /** * Stores the mod's channel and registers the messages. @@ -21,21 +22,21 @@ public final class NoCubesNetworkForge { private static final Logger LOG = LogManager.getLogger(); - public static final SimpleChannel CHANNEL = NetworkRegistry.newSimpleChannel( - new ResourceLocation(MOD_ID, "main"), - () -> NoCubesNetwork.NETWORK_PROTOCOL_VERSION, + public static final SimpleChannel CHANNEL = ChannelBuilder + .named(new ResourceLocation(MOD_ID, "main")) + .networkProtocolVersion(NoCubesNetwork.NETWORK_PROTOCOL_VERSION) // Clients can run on servers with the same NoCubes version and servers without NoCubes (including vanilla) - serverVersion -> { - if (NetworkRegistry.ABSENT.version().equals(serverVersion) || NetworkRegistry.ACCEPTVANILLA.equals(serverVersion)) { + .clientAcceptedVersions((serverVersionStatus, serverVersion) -> { + if (VersionTest.Status.MISSING.equals(serverVersionStatus) || VersionTest.Status.VANILLA.equals(serverVersionStatus)) { NoCubesNetworkClient.currentServerHasNoCubes = false; return true; } NoCubesNetworkClient.currentServerHasNoCubes = true; - return NoCubesNetwork.NETWORK_PROTOCOL_VERSION.equals(serverVersion); - }, + return VersionTest.exact(NoCubesNetwork.NETWORK_PROTOCOL_VERSION).accepts(serverVersionStatus, serverVersion); + }) // Clients must have the same version as the server - NoCubesNetwork.NETWORK_PROTOCOL_VERSION::equals - ); + .serverAcceptedVersions(VersionTest.exact(NoCubesNetwork.NETWORK_PROTOCOL_VERSION)) + .simpleChannel(); /** * Called from inside the mod constructor. @@ -68,23 +69,22 @@ public static void register() { ); } - static void register(int index, Class messageType, BiConsumer encoder, Function decoder, BiConsumer> handler) { - CHANNEL.registerMessage( - index, - messageType, - (msg, buffer) -> { + static void register(int index, Class messageType, BiConsumer encoder, Function decoder, BiConsumer> handler) { + CHANNEL + .messageBuilder(messageType, index) + .encoder((msg, buffer) -> { LOG.debug("Encoding {}", messageType.getSimpleName()); encoder.accept(msg, buffer); - }, - buffer -> { + }) + .decoder(buffer -> { LOG.debug("Decoding {}", messageType.getSimpleName()); return decoder.apply(buffer); - }, - (msg, ctx) -> { + }) + .consumerNetworkThread((msg, ctx) -> { LOG.debug("Handling {}", messageType.getSimpleName()); - handler.accept(msg, ctx); - } - ); + handler.accept(msg, () -> ctx); + }) + .add(); } } diff --git a/forge/src/main/java/io/github/cadiboo/nocubes/network/S2CUpdateServerConfig.java b/forge/src/main/java/io/github/cadiboo/nocubes/network/S2CUpdateServerConfig.java index 2b3d0b14..0d4f8860 100644 --- a/forge/src/main/java/io/github/cadiboo/nocubes/network/S2CUpdateServerConfig.java +++ b/forge/src/main/java/io/github/cadiboo/nocubes/network/S2CUpdateServerConfig.java @@ -1,9 +1,9 @@ package io.github.cadiboo.nocubes.network; import com.electronwill.nightconfig.core.file.FileConfig; +import net.minecraftforge.event.network.CustomPayloadEvent; import net.minecraftforge.fml.config.ModConfig; import net.minecraftforge.fml.loading.FMLEnvironment; -import net.minecraftforge.network.NetworkEvent; import java.io.IOException; import java.nio.file.Files; @@ -24,7 +24,7 @@ public static S2CUpdateServerConfig create(ModConfig serverConfig) { } } - public static void handle(S2CUpdateServerConfig msg, Supplier contextSupplier) { + public static void handle(S2CUpdateServerConfig msg, Supplier contextSupplier) { var ctx = contextSupplier.get(); NoCubesNetworkClient.handleS2CUpdateServerConfig(ctx::enqueueWork, msg.data()); ctx.setPacketHandled(true); diff --git a/forge/src/main/java/io/github/cadiboo/nocubes/network/S2CUpdateSmoothable.java b/forge/src/main/java/io/github/cadiboo/nocubes/network/S2CUpdateSmoothable.java index e97942c9..b8afc006 100644 --- a/forge/src/main/java/io/github/cadiboo/nocubes/network/S2CUpdateSmoothable.java +++ b/forge/src/main/java/io/github/cadiboo/nocubes/network/S2CUpdateSmoothable.java @@ -1,7 +1,7 @@ package io.github.cadiboo.nocubes.network; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.network.NetworkEvent; +import net.minecraftforge.event.network.CustomPayloadEvent; import java.util.function.Supplier; @@ -12,7 +12,7 @@ public record S2CUpdateSmoothable( boolean newValue, BlockState[] states ) { - public static void handle(S2CUpdateSmoothable msg, Supplier contextSupplier) { + public static void handle(S2CUpdateSmoothable msg, Supplier contextSupplier) { var ctx = contextSupplier.get(); NoCubesNetworkClient.handleS2CUpdateSmoothable(ctx::enqueueWork, msg.newValue, msg.states); ctx.setPacketHandled(true); diff --git a/gradle.properties b/gradle.properties index c43ea532..7a7d98bd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,15 +1,15 @@ # Common -minecraft_version=1.20.1 +minecraft_version=1.20.4 # Forge -forge_version=47.2.30 +forge_version=49.1.0 forge_loader_version_range=[47,) forge_version_range=[47,) # https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html -minecraft_version_range=[1.20.1] +minecraft_version_range=[1.20.4] # Fabric -fabric_api_version=0.92.0+1.20.1 +fabric_api_version=0.97.1+1.20.4 fabric_loader_version=0.15.10 # Mod