Skip to content

Commit 944bd56

Browse files
committed
Hacky ass fix for 1.21.10+
1 parent 9a76789 commit 944bd56

File tree

6 files changed

+84
-10
lines changed

6 files changed

+84
-10
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.polyfrost.polynametag;
2+
3+
import dev.deftu.omnicore.api.client.render.stack.OmniMatrixStack;
4+
import net.minecraft.client.util.math.MatrixStack;
5+
6+
public interface LabelCommandMatrix {
7+
OmniMatrixStack polynametag$getMatrixStack();
8+
9+
void polynametag$setMatrixStack(MatrixStack matrixStack);
10+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package org.polyfrost.polynametag.mixin.client;
2+
3+
import dev.deftu.omnicore.api.client.render.stack.OmniMatrixStack;
4+
import dev.deftu.omnicore.api.client.render.stack.OmniMatrixStacks;
5+
import net.minecraft.client.render.command.OrderedRenderCommandQueueImpl;
6+
import net.minecraft.client.util.math.MatrixStack;
7+
import org.polyfrost.polynametag.LabelCommandMatrix;
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.Unique;
10+
11+
@Mixin(OrderedRenderCommandQueueImpl.LabelCommand.class)
12+
public abstract class Mixin_ImplementLabelCommandMatrix implements LabelCommandMatrix {
13+
@Unique
14+
private OmniMatrixStack polynametag$matrixStack = OmniMatrixStacks.create();
15+
16+
@Override
17+
public OmniMatrixStack polynametag$getMatrixStack() {
18+
return polynametag$matrixStack;
19+
}
20+
21+
@Override
22+
public void polynametag$setMatrixStack(MatrixStack matrixStack) {
23+
polynametag$matrixStack = OmniMatrixStacks.vanilla(matrixStack);
24+
}
25+
}

versions/1.21.10-fabric/src/main/java/org/polyfrost/polynametag/mixin/client/Mixin_ReplaceBackgroundRendering.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
44
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
55
import com.llamalad7.mixinextras.sugar.Local;
6-
import dev.deftu.omnicore.api.client.render.stack.OmniMatrixStack;
7-
import dev.deftu.omnicore.api.client.render.stack.OmniMatrixStacks;
86
import net.minecraft.client.font.TextRenderer;
97
import net.minecraft.client.render.VertexConsumerProvider;
108
import net.minecraft.client.render.command.LabelCommandRenderer;
@@ -13,6 +11,7 @@
1311
import net.minecraft.entity.Entity;
1412
import net.minecraft.text.Text;
1513
import org.joml.Matrix4f;
14+
import org.polyfrost.polynametag.LabelCommandMatrix;
1615
import org.polyfrost.polynametag.client.NametagRenderer;
1716
import org.polyfrost.polynametag.client.PolyNametagConfig;
1817
import org.spongepowered.asm.mixin.Mixin;
@@ -37,9 +36,7 @@ public abstract class Mixin_ReplaceBackgroundRendering<T extends Entity, S exten
3736
@Local OrderedRenderCommandQueueImpl.LabelCommand labelCommand
3837
) {
3938
if (PolyNametagConfig.isEnabled()) {
40-
// TODO/FIX
41-
OmniMatrixStack matrixStack = OmniMatrixStacks.create();
42-
NametagRenderer.drawBackground(matrixStack, text);
39+
NametagRenderer.drawBackground(((LabelCommandMatrix) (Object) labelCommand).polynametag$getMatrixStack(), text);
4340
} else {
4441
original.call(
4542
instance,

versions/1.21.10-fabric/src/main/java/org/polyfrost/polynametag/mixin/client/Mixin_ReplaceTextRendering.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
44
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
55
import com.llamalad7.mixinextras.sugar.Local;
6-
import dev.deftu.omnicore.api.client.render.stack.OmniMatrixStack;
7-
import dev.deftu.omnicore.api.client.render.stack.OmniMatrixStacks;
86
import dev.deftu.omnicore.api.color.ColorFormat;
97
import dev.deftu.omnicore.api.color.OmniColor;
108
import net.minecraft.client.font.TextRenderer;
@@ -15,6 +13,7 @@
1513
import net.minecraft.entity.Entity;
1614
import net.minecraft.text.Text;
1715
import org.joml.Matrix4f;
16+
import org.polyfrost.polynametag.LabelCommandMatrix;
1817
import org.polyfrost.polynametag.client.NametagRenderer;
1918
import org.polyfrost.polynametag.client.PolyNametagConfig;
2019
import org.spongepowered.asm.mixin.Mixin;
@@ -39,9 +38,7 @@ public abstract class Mixin_ReplaceTextRendering<T extends Entity, S extends Ent
3938
@Local OrderedRenderCommandQueueImpl.LabelCommand labelCommand
4039
) {
4140
if (PolyNametagConfig.isEnabled()) {
42-
// TODO/FIX
43-
OmniMatrixStack matrixStack = OmniMatrixStacks.create();
44-
NametagRenderer.drawNametagString(matrixStack, text.getString(), x, y, new OmniColor(ColorFormat.ARGB, color));
41+
NametagRenderer.drawNametagString(((LabelCommandMatrix) (Object) labelCommand).polynametag$getMatrixStack(), text.getString(), x, y, new OmniColor(ColorFormat.ARGB, color));
4542
} else {
4643
original.call(
4744
instance,
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package org.polyfrost.polynametag.mixin.client;
2+
3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
5+
import com.llamalad7.mixinextras.sugar.Local;
6+
import net.minecraft.client.render.command.LabelCommandRenderer;
7+
import net.minecraft.client.util.math.MatrixStack;
8+
import org.polyfrost.polynametag.LabelCommandMatrix;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
12+
import java.util.List;
13+
14+
@Mixin(LabelCommandRenderer.Commands.class)
15+
public abstract class Mixin_SaveMatrixStackInLabelCommand {
16+
@WrapOperation(method = "add", at = @At(value = "INVOKE", target = "Ljava/util/List;add(Ljava/lang/Object;)Z"))
17+
private <E> boolean polynametag$storeMatrixStack(List<E> instance, E labelCommand, Operation<Boolean> original, @Local(argsOnly = true) MatrixStack matrixStack) {
18+
((LabelCommandMatrix) labelCommand).polynametag$setMatrixStack(matrixStack);
19+
return original.call(instance, labelCommand);
20+
}
21+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"compatibilityLevel": "JAVA_8",
3+
"minVersion": "0.7",
4+
"package": "org.polyfrost.polynametag.mixin",
5+
"refmap": "mixins.polynametag.refmap.json",
6+
"injectors": {
7+
"maxShiftBy": 5
8+
},
9+
"client": [
10+
"client.Mixin_ApplyScaling",
11+
"client.Mixin_EnableSelfNametag",
12+
"client.Mixin_ImplementLabelCommandMatrix",
13+
"client.Mixin_OffsetRendering",
14+
"client.Mixin_ReplaceBackgroundRendering",
15+
"client.Mixin_ReplaceTextRendering",
16+
"client.Mixin_SaveMatrixStackInLabelCommand",
17+
"client.Mixin_ShowInInventory",
18+
"client.essential.Mixin_EssentialIndicatorCompatibility",
19+
"client.levelhead.Mixin_FixLevelheadRendering",
20+
"client.levelhead.Mixin_UseCustomConfigArgs",
21+
"client.patcher.Mixin_OverwritePatcherNametagTextRendering"
22+
],
23+
"verbose": true
24+
}

0 commit comments

Comments
 (0)