Skip to content

Commit 1ca85f5

Browse files
committed
Merge branch 'feature-1.19.2' into nyan-work/dev
2 parents 9e3633a + 2cabb0d commit 1ca85f5

File tree

6 files changed

+91
-30
lines changed

6 files changed

+91
-30
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
11
package me.jellysquid.mods.sodium.client.render.chunk.compile.pipeline;
22

3-
import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildBuffers;
43

5-
//#if MC > 11904 || MC < 11904
4+
import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildBuffers;
65
import me.jellysquid.mods.sodium.client.render.chunk.compile.buffers.ChunkModelBuilder;
7-
//#else
8-
//$$ import me.jellysquid.mods.sodium.client.render.chunk.data.ChunkRenderBounds;
9-
//#endif
6+
import me.jellysquid.mods.sodium.client.render.chunk.data.ChunkRenderBounds;
107

118
public class BlockRenderer {
129
public native void renderModel(BlockRenderContext ctx, ChunkBuildBuffers buffers);
1310

14-
//#if MC > 11904 || MC < 11904
1511
public native boolean renderModel(BlockRenderContext ctx, ChunkModelBuilder buffers);
16-
//#else
17-
//$$ public native void renderModel(BlockRenderContext ctx, ChunkBuildBuffers buffers, ChunkRenderBounds.Builder bounds);
18-
//#endif
12+
13+
public native void renderModel(BlockRenderContext ctx, ChunkBuildBuffers buffers, ChunkRenderBounds.Builder bounds);
1914
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.plusls.ommc.mixin.feature.worldEaterMineHelper.sodium;
2+
3+
import org.spongepowered.asm.mixin.Mixin;
4+
import top.hendrixshen.magiclib.compat.preprocess.api.DummyClass;
5+
import top.hendrixshen.magiclib.dependency.api.annotation.Dependencies;
6+
import top.hendrixshen.magiclib.dependency.api.annotation.Dependency;
7+
8+
9+
@Dependencies(and = @Dependency(value = "sodium", versionPredicate = ">0.4.10 <0.5"))
10+
@Mixin(DummyClass.class)
11+
public class MixinBlockRenderer_0_4_11 {
12+
}

src/main/java/com/plusls/ommc/mixin/feature/worldEaterMineHelper/sodium/MixinBlockRenderer_0_4_9.java

+2-20
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,11 @@
1919
//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
2020
//#endif
2121

22-
@Dependencies(and = @Dependency(value = "sodium", versionPredicate = ">0.4.8 <0.5"))
22+
@Dependencies(and = @Dependency(value = "sodium", versionPredicate = ">0.4.8 <0.4.11"))
2323
@Mixin(value = BlockRenderer.class, remap = false)
2424
public abstract class MixinBlockRenderer_0_4_9 {
25-
@Dynamic
2625
@Shadow(remap = false)
27-
//#if MC > 11904 || MC < 11904
2826
public abstract boolean renderModel(BlockRenderContext ctx, ChunkModelBuilder buffers);
29-
//#else
30-
//$$ public abstract void renderModel(BlockRenderContext ctx, ChunkBuildBuffers buffers, ChunkRenderBounds.Builder bounds);
31-
//#endif
3227

3328
@Unique
3429
private final ThreadLocal<Boolean> ommc$renderTag = ThreadLocal.withInitial(() -> false);
@@ -40,16 +35,7 @@ public abstract class MixinBlockRenderer_0_4_9 {
4035
value = "RETURN"
4136
)
4237
)
43-
private void postRenderModel(
44-
@NotNull BlockRenderContext ctx,
45-
//#if MC > 11904 || MC < 11904
46-
ChunkModelBuilder buffers,
47-
CallbackInfoReturnable<Boolean> cir
48-
//#else
49-
//$$ ChunkBuildBuffers buffers,
50-
//$$ ChunkRenderBounds.Builder bounds,
51-
//$$ CallbackInfo ci
52-
//#endif
38+
private void postRenderModel(@NotNull BlockRenderContext ctx, ChunkModelBuilder buffers, CallbackInfoReturnable<Boolean> cir
5339
) {
5440
if (WorldEaterMineHelperUtil.shouldUseCustomModel(ctx.state(), ctx.pos()) && !this.ommc$renderTag.get()) {
5541
BakedModel customModel = WorldEaterMineHelperUtil.customModels.get(ctx.state().getBlock());
@@ -61,11 +47,7 @@ private void postRenderModel(
6147
BakedModel originalModel = ctx.model();
6248
// ((AccessorBlockStateBase) ctx.state()).setLightEmission(15);
6349
((AccessorBlockRenderContext) ctx).setModel(customModel);
64-
//#if MC > 11904 || MC < 11904
6550
this.renderModel(ctx, buffers);
66-
//#else
67-
//$$ this.renderModel(ctx, buffers, bounds);
68-
//#endif
6951
((AccessorBlockRenderContext) ctx).setModel(originalModel);
7052
// ((AccessorBlockStateBase) ctx.state()).setLightEmission(originalLightEmission);
7153
this.ommc$renderTag.set(false);

src/main/resources/ommc.mixins.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,8 @@
5555
],
5656
"injectors": {
5757
"defaultRequire": 1
58-
}
58+
},
59+
"mixins": [
60+
"feature.worldEaterMineHelper.sodium.MixinBlockRenderer_0_4_11"
61+
]
5962
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.plusls.ommc.mixin.feature.worldEaterMineHelper.sodium;
2+
3+
import org.spongepowered.asm.mixin.Mixin;
4+
import top.hendrixshen.magiclib.compat.preprocess.api.DummyClass;
5+
import top.hendrixshen.magiclib.dependency.api.annotation.Dependencies;
6+
import top.hendrixshen.magiclib.dependency.api.annotation.Dependency;
7+
8+
@Dependencies(and = @Dependency(value = "sodium", versionPredicate = ">0.4.10 <0.5"))
9+
@Mixin(DummyClass.class)
10+
public class MixinBlockRenderer_0_4_11 {
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package com.plusls.ommc.mixin.feature.worldEaterMineHelper.sodium;
2+
3+
import com.plusls.ommc.feature.worldEaterMineHelper.WorldEaterMineHelperUtil;
4+
import com.plusls.ommc.mixin.accessor.AccessorBlockRenderContext;
5+
import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildBuffers;
6+
import me.jellysquid.mods.sodium.client.render.chunk.compile.pipeline.BlockRenderContext;
7+
import me.jellysquid.mods.sodium.client.render.chunk.compile.pipeline.BlockRenderer;
8+
import me.jellysquid.mods.sodium.client.render.chunk.data.ChunkRenderBounds;
9+
import net.minecraft.client.resources.model.BakedModel;
10+
import org.jetbrains.annotations.NotNull;
11+
import org.spongepowered.asm.mixin.Dynamic;
12+
import org.spongepowered.asm.mixin.Mixin;
13+
import org.spongepowered.asm.mixin.Shadow;
14+
import org.spongepowered.asm.mixin.Unique;
15+
import org.spongepowered.asm.mixin.injection.At;
16+
import org.spongepowered.asm.mixin.injection.Inject;
17+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
18+
import top.hendrixshen.magiclib.dependency.api.annotation.Dependencies;
19+
import top.hendrixshen.magiclib.dependency.api.annotation.Dependency;
20+
21+
/**
22+
* The implementation for mc [1.19.3, ~)
23+
*/
24+
@Dependencies(and = @Dependency(value = "sodium", versionPredicate = ">0.4.10 <0.5"))
25+
@Mixin(value = BlockRenderer.class, remap = false)
26+
public abstract class MixinBlockRenderer_0_4_11 {
27+
@Shadow(remap = false)
28+
public abstract void renderModel(BlockRenderContext ctx, ChunkBuildBuffers buffers, ChunkRenderBounds.Builder bounds);
29+
30+
@Unique
31+
private final ThreadLocal<Boolean> ommc$renderTag = ThreadLocal.withInitial(() -> false);
32+
33+
@Dynamic
34+
@Inject(
35+
method = "renderModel",
36+
at = @At(
37+
value = "RETURN"
38+
)
39+
)
40+
private void postRenderModel(@NotNull BlockRenderContext ctx, ChunkBuildBuffers buffers, ChunkRenderBounds.Builder bounds, CallbackInfo ci) {
41+
if (WorldEaterMineHelperUtil.shouldUseCustomModel(ctx.state(), ctx.pos()) && !this.ommc$renderTag.get()) {
42+
BakedModel customModel = WorldEaterMineHelperUtil.customModels.get(ctx.state().getBlock());
43+
44+
if (customModel != null) {
45+
this.ommc$renderTag.set(true);
46+
// This impl will break light system, so disable it.
47+
// int originalLightEmission = ctx.state().getLightEmission();
48+
BakedModel originalModel = ctx.model();
49+
// ((AccessorBlockStateBase) ctx.state()).setLightEmission(15);
50+
((AccessorBlockRenderContext) ctx).setModel(customModel);
51+
this.renderModel(ctx, buffers, bounds);
52+
((AccessorBlockRenderContext) ctx).setModel(originalModel);
53+
// ((AccessorBlockStateBase) ctx.state()).setLightEmission(originalLightEmission);
54+
this.ommc$renderTag.set(false);
55+
}
56+
}
57+
}
58+
}

0 commit comments

Comments
 (0)