Skip to content

Commit 43db809

Browse files
XXMA16Chocohead
authored andcommitted
Fix Architectury 1.20.x
1 parent 0bb44d3 commit 43db809

3 files changed

Lines changed: 58 additions & 2 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package me.modmuss50.optifabric.compat.architectury.mixin;
2+
3+
import me.modmuss50.optifabric.compat.InterceptingMixin;
4+
import me.modmuss50.optifabric.compat.PlacatingSurrogate;
5+
import me.modmuss50.optifabric.compat.Shim;
6+
import net.minecraft.client.gui.DrawableHelper;
7+
import net.minecraft.client.render.GameRenderer;
8+
import net.minecraft.client.util.Window;
9+
import net.minecraft.client.util.math.MatrixStack;
10+
import org.joml.Matrix4f;
11+
import org.spongepowered.asm.mixin.Mixin;
12+
import org.spongepowered.asm.mixin.injection.At;
13+
import org.spongepowered.asm.mixin.injection.At.Shift;
14+
import org.spongepowered.asm.mixin.injection.Inject;
15+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
16+
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
17+
18+
@Mixin(GameRenderer.class)
19+
@InterceptingMixin("dev/architectury/mixin/fabric/client/MixinGameRenderer")
20+
abstract class GameRendererNew4erMixin {
21+
@Shim
22+
private native void renderScreenPre(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, Window window, Matrix4f matrix, MatrixStack matrices, DrawableHelper drawContext);
23+
24+
@PlacatingSurrogate
25+
private void renderScreenPre(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, Window window, float guiFarPlane, Matrix4f matrix, MatrixStack matrices) {
26+
}
27+
28+
@Inject(method = "render(FJZ)V", locals = LocalCapture.CAPTURE_FAILHARD, cancellable = true,
29+
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;renderWithTooltip(Lnet/minecraft/class_332;IIF)V", ordinal = 0))
30+
private void renderScreenPre(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, Window window, float guiFarPlane, Matrix4f matrix, MatrixStack matrices, float idk, DrawableHelper drawContext) {
31+
renderScreenPre(tickDelta, startTime, tick, ci, mouseX, mouseY, window, matrix, matrices, drawContext);
32+
}
33+
34+
@Shim
35+
private native void renderScreenPost(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, Window window, Matrix4f matrix, MatrixStack matrices, DrawableHelper drawContext);
36+
37+
@PlacatingSurrogate
38+
private void renderScreenPost(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, Window window, float guiFarPlane, Matrix4f matrix, MatrixStack matrices) {
39+
}
40+
41+
@Inject(method = "render(FJZ)V", locals = LocalCapture.CAPTURE_FAILHARD,
42+
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;renderWithTooltip(Lnet/minecraft/class_332;IIF)V", shift = Shift.AFTER, ordinal = 0))
43+
private void renderScreenPost(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int mouseX, int mouseY, Window window, float guiFarPlane, Matrix4f matrix, MatrixStack matrices, float idk, DrawableHelper drawContext) {
44+
renderScreenPost(tickDelta, startTime, tick, ci, mouseX, mouseY, window, matrix, matrices, drawContext);
45+
}
46+
}

src/main/java/me/modmuss50/optifabric/mod/OptifabricSetup.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ protected boolean isPresent() {
6767
return injector.predictFuture(RemappingUtils.getClassName("class_702")).filter(node -> {//ParticleManager
6868
//(MatrixStack, VertexConsumerProvider$Immediate, LightmapTextureManager, Camera, Frustum)
6969
String desc = RemappingUtils.mapMethodDescriptor("(Lnet/minecraft/class_4587;Lnet/minecraft/class_4597$class_4598;"
70-
+ "Lnet/minecraft/class_765;Lnet/minecraft/class_4184;FLnet/minecraft/class_4604;)V");
70+
+ "Lnet/minecraft/class_765;Lnet/minecraft/class_4184;FLnet/minecraft/class_4604;)V");
7171

7272
for (MethodNode method : node.methods) {
7373
if (("renderParticles".equals(method.name) || "render".equals(method.name)) && desc.equals(method.desc)) {
@@ -404,7 +404,9 @@ protected boolean isPresent() {
404404
Mixins.addConfiguration("optifabric.compat.images.mixins.json");
405405
}
406406

407-
if (isPresent("architectury", ">=7.0.52")) {
407+
if (isPresent("architectury", ">=9.0.6")) {
408+
Mixins.addConfiguration("optifabric.compat.architectury-AB.new4er-mixins.json");
409+
} else if (isPresent("architectury", ">=7.0.52")) {
408410
Mixins.addConfiguration("optifabric.compat.architectury-AB.newererer-mixins.json");
409411
} else if (isPresent("architectury", ">=3.7")) {
410412
Mixins.addConfiguration("optifabric.compat.architectury-AB.newerer-mixins.json");
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"parent": "optifabric.mixins.json",
3+
"package": "me.modmuss50.optifabric.compat.architectury.mixin",
4+
"plugin": "me.modmuss50.optifabric.compat.InterceptingMixinPlugin",
5+
"mixins": [
6+
"GameRendererNew4erMixin"
7+
]
8+
}

0 commit comments

Comments
 (0)