From 385a5978d5222ee8bb4a95ee7d949b816716ceaa Mon Sep 17 00:00:00 2001 From: TheidenHD Date: Sun, 4 Jun 2023 16:30:39 +0200 Subject: [PATCH 1/2] Fix Mixin --- build.gradle | 5 +-- .../observerlib/MixinConnector.java | 19 ----------- .../observerlib/mixin/MixinLevelChunk.java | 32 ++++--------------- src/main/resources/META-INF/MANIFEST.MF | 1 - 4 files changed, 9 insertions(+), 48 deletions(-) delete mode 100644 src/main/java/hellfirepvp/observerlib/MixinConnector.java delete mode 100644 src/main/resources/META-INF/MANIFEST.MF diff --git a/build.gradle b/build.gradle index 87a5ae9..177df62 100644 --- a/build.gradle +++ b/build.gradle @@ -25,6 +25,7 @@ apply plugin: 'org.spongepowered.mixin' mixin { add sourceSets.main, "observerlib.refmap.json" + config 'assets/observerlib/observerlib.mixins.json' } version = '1.18.2-1.6.0' @@ -100,6 +101,7 @@ minecraft { property 'forge.enabledGameTestNamespaces', 'observerlib' property 'Dmixin.debug.export', 'true' + args "-mixin.config=assets/observerlib/observerlib.mixins.json" args '--mod', 'observerlib', '--all', '--output', file('src/generated/resources/') mods { @@ -113,7 +115,7 @@ minecraft { dependencies { - minecraft 'net.minecraftforge:forge:1.18.2-40.1.25' + minecraft 'net.minecraftforge:forge:1.18.2-40.2.0' annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' } @@ -151,7 +153,6 @@ jar { "Implementation-Version": "${version}", "Implementation-Vendor" : "hellfirepvp", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), - "MixinConnector": "hellfirepvp.observerlib.MixinConnector" ]) } } diff --git a/src/main/java/hellfirepvp/observerlib/MixinConnector.java b/src/main/java/hellfirepvp/observerlib/MixinConnector.java deleted file mode 100644 index b8b50aa..0000000 --- a/src/main/java/hellfirepvp/observerlib/MixinConnector.java +++ /dev/null @@ -1,19 +0,0 @@ -package hellfirepvp.observerlib; - -import org.spongepowered.asm.mixin.Mixins; -import org.spongepowered.asm.mixin.connect.IMixinConnector; - -/** - * This class is part of the ObserverLib Mod - * The complete source code for this mod can be found on github. - * Class: MixinConnector - * Created by HellFirePvP - * Date: 27.05.2022 / 22:03 - */ -public class MixinConnector implements IMixinConnector { - - @Override - public void connect() { - Mixins.addConfiguration(String.format("assets/%s/%s.mixins.json", ObserverLib.MODID, ObserverLib.MODID)); - } -} diff --git a/src/main/java/hellfirepvp/observerlib/mixin/MixinLevelChunk.java b/src/main/java/hellfirepvp/observerlib/mixin/MixinLevelChunk.java index 4a418e8..5580b28 100644 --- a/src/main/java/hellfirepvp/observerlib/mixin/MixinLevelChunk.java +++ b/src/main/java/hellfirepvp/observerlib/mixin/MixinLevelChunk.java @@ -1,5 +1,6 @@ package hellfirepvp.observerlib.mixin; +import hellfirepvp.observerlib.ObserverLib; import hellfirepvp.observerlib.common.event.BlockChangeNotifier; import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; @@ -24,8 +25,6 @@ @Mixin(LevelChunk.class) public abstract class MixinLevelChunk { - private BlockState prevState = null; - @Shadow @Final Level level; @Shadow public abstract BlockState getBlockState(BlockPos p_62923_); @@ -36,33 +35,14 @@ public abstract class MixinLevelChunk { value = "INVOKE", target = "Lnet/minecraft/world/level/block/state/BlockState;getBlock()Lnet/minecraft/world/level/block/Block;", ordinal = 0 - ) + ), + locals = LocalCapture.CAPTURE_FAILHARD ) - public void onBlockStateUpdate(BlockPos pos, BlockState newState, boolean arg2, CallbackInfoReturnable cir) { - if (this.prevState == null || this.level.isClientSide() || this.prevState == newState) { - return; - } - if (this.level.captureBlockSnapshots) { - return; - } - LevelChunk thisLevelChunk = (LevelChunk)(Object) this; - BlockChangeNotifier.onBlockChange(this.level, thisLevelChunk, pos, this.prevState, newState); - this.prevState = null; - } - - @Inject( - method = "setBlockState", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/world/level/chunk/LevelChunkSection;setBlockState(IIILnet/minecraft/world/level/block/state/BlockState;)Lnet/minecraft/world/level/block/state/BlockState;", - shift = At.Shift.BEFORE - ) - ) - public void preBlockStateUpdate(BlockPos pos, BlockState newState, boolean p_62867_, CallbackInfoReturnable cir) { + public void onBlockStateUpdate(BlockPos p_62865_, BlockState p_62866_, boolean p_62867_, CallbackInfoReturnable cir, int i, LevelChunkSection levelchunksection, boolean flag, int j, int k, int l, BlockState blockstate) { if (this.level.isClientSide()) { return; } - this.prevState = this.getBlockState(pos); + LevelChunk thisLevelChunk = (LevelChunk)(Object) this; + BlockChangeNotifier.onBlockChange(this.level, thisLevelChunk, p_62865_, blockstate, p_62866_); } - } diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100644 index ea5858d..0000000 --- a/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1 +0,0 @@ -MixinConnector: hellfirepvp.observerlib.MixinConnector From 186bc52d97cc24e07dc30fe3d644b5de68b08b9d Mon Sep 17 00:00:00 2001 From: TheidenHD Date: Sun, 25 Jun 2023 11:50:51 +0200 Subject: [PATCH 2/2] Remove broken GL11 Part --- .../api/client/StructureRenderer.java | 11 ++---- .../client/preview/StructurePreview.java | 2 -- .../client/util/RenderSystemUtil.java | 35 ------------------- 3 files changed, 2 insertions(+), 46 deletions(-) delete mode 100644 src/main/java/hellfirepvp/observerlib/client/util/RenderSystemUtil.java diff --git a/src/main/java/hellfirepvp/observerlib/api/client/StructureRenderer.java b/src/main/java/hellfirepvp/observerlib/api/client/StructureRenderer.java index 425e5ee..e8b082e 100644 --- a/src/main/java/hellfirepvp/observerlib/api/client/StructureRenderer.java +++ b/src/main/java/hellfirepvp/observerlib/api/client/StructureRenderer.java @@ -1,12 +1,9 @@ package hellfirepvp.observerlib.api.client; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.VertexConsumer; import hellfirepvp.observerlib.api.structure.Structure; import hellfirepvp.observerlib.client.util.LightmapUtil; -import hellfirepvp.observerlib.client.util.RenderSystemUtil; -import hellfirepvp.observerlib.client.util.RenderTypeDecorator; import hellfirepvp.observerlib.common.block.BlockAirRequirement; import hellfirepvp.observerlib.common.util.RegistryUtil; import net.minecraft.core.Holder; @@ -174,9 +171,9 @@ public void render3DSliceGUI(PoseStack renderStack, double x, double y, float pT renderStack.translate(pos.getX(), pos.getY(), pos.getZ()); if (!view.getFluidState().isEmpty()) { - this.renderFluid(pos, view, view.getFluidState(), buffers.getBuffer(wrapBlockRenderType(RenderType.translucent()))); + this.renderFluid(pos, view, view.getFluidState(), buffers.getBuffer(RenderType.translucent())); } - RenderType type = wrapBlockRenderType(ItemBlockRenderTypes.getMovingBlockRenderType(view)); + RenderType type = ItemBlockRenderTypes.getMovingBlockRenderType(view); if (this.isolateIndividualBlockRender) { this.world.pushContentFilter(wPos -> wPos.equals(pos)); this.renderBlock(pos, view, buffers.getBuffer(type), renderStack); @@ -218,10 +215,6 @@ public void render3DSliceGUI(PoseStack renderStack, double x, double y, float pT renderStack.popPose(); } - private RenderType wrapBlockRenderType(RenderType type) { - return RenderTypeDecorator.wrapSetup(type, RenderSystemUtil::disableLighting, () -> {}); - } - private void renderFluid(BlockPos pos, BlockState state, FluidState fluidState, VertexConsumer buf) { BlockRenderDispatcher brd = Minecraft.getInstance().getBlockRenderer(); brd.renderLiquid(pos, this.world, buf, state, fluidState); diff --git a/src/main/java/hellfirepvp/observerlib/client/preview/StructurePreview.java b/src/main/java/hellfirepvp/observerlib/client/preview/StructurePreview.java index b31ea8d..6e30c64 100644 --- a/src/main/java/hellfirepvp/observerlib/client/preview/StructurePreview.java +++ b/src/main/java/hellfirepvp/observerlib/client/preview/StructurePreview.java @@ -128,7 +128,6 @@ void render(Level renderWorld, PoseStack renderStack, Vec3 playerPos) { .setColorDecorator(colorDecorator); Runnable transparentSetup = () -> { - RenderSystemUtil.disableAlphaTest(); RenderSystem.disableDepthTest(); RenderSystem.enableBlend(); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.SRC_ALPHA, @@ -138,7 +137,6 @@ void render(Level renderWorld, PoseStack renderStack, Vec3 playerPos) { RenderSystem.defaultBlendFunc(); RenderSystem.disableBlend(); RenderSystem.enableDepthTest(); - RenderSystemUtil.enableAlphaTest(); }; Vec3 vec = new Vec3(0, 0, 0); diff --git a/src/main/java/hellfirepvp/observerlib/client/util/RenderSystemUtil.java b/src/main/java/hellfirepvp/observerlib/client/util/RenderSystemUtil.java deleted file mode 100644 index 3443444..0000000 --- a/src/main/java/hellfirepvp/observerlib/client/util/RenderSystemUtil.java +++ /dev/null @@ -1,35 +0,0 @@ -package hellfirepvp.observerlib.client.util; - -import com.mojang.blaze3d.systems.RenderSystem; -import org.lwjgl.opengl.GL11; - -/** - * This class is part of the ObserverLib Mod - * The complete source code for this mod can be found on github. - * Class: RenderSystemUtil - * Created by HellFirePvP - * Date: 27.05.2022 / 23:04 - */ -public class RenderSystemUtil { - - public static void enableAlphaTest() { - RenderSystem.assertOnRenderThread(); - GL11.glEnable(GL11.GL_ALPHA_TEST); - } - - public static void disableAlphaTest() { - RenderSystem.assertOnRenderThread(); - GL11.glDisable(GL11.GL_ALPHA_TEST); - } - - public static void enableLighting() { - RenderSystem.assertOnRenderThread(); - GL11.glEnable(GL11.GL_LIGHTING); - } - - public static void disableLighting() { - RenderSystem.assertOnRenderThread(); - GL11.glDisable(GL11.GL_LIGHTING); - } - -}