Skip to content

Commit f56409e

Browse files
committed
yea
1 parent 1cd845f commit f56409e

File tree

10 files changed

+234
-6
lines changed

10 files changed

+234
-6
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ public abstract class Mixin_ReplaceBackgroundRendering {
2424
Text text,
2525
float x,
2626
float y,
27-
int color,
27+
int inColor,
2828
boolean shadow,
2929
Matrix4f matrix4f,
3030
VertexConsumerProvider vertexConsumerProvider,
31-
boolean unknownArgument,
31+
boolean seeThrough,
3232
int backgroundColor,
3333
int light,
3434
Operation<Integer> original,
@@ -44,11 +44,11 @@ public abstract class Mixin_ReplaceBackgroundRendering {
4444
text,
4545
x,
4646
y,
47-
color,
47+
inColor,
4848
shadow,
4949
matrix4f,
5050
vertexConsumerProvider,
51-
unknownArgument,
51+
seeThrough,
5252
backgroundColor,
5353
light
5454
);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public abstract class Mixin_ReplaceTextRendering {
2929
boolean shadow,
3030
Matrix4f matrix4f,
3131
VertexConsumerProvider vertexConsumerProvider,
32-
boolean unknownArgument,
32+
boolean seeThrough,
3333
int backgroundColor,
3434
int light,
3535
Operation<Integer> original,
@@ -48,7 +48,7 @@ public abstract class Mixin_ReplaceTextRendering {
4848
shadow,
4949
matrix4f,
5050
vertexConsumerProvider,
51-
unknownArgument,
51+
seeThrough,
5252
backgroundColor,
5353
light
5454
);
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 net.minecraft.client.renderer.entity.EntityRenderer;
4+
import org.polyfrost.polynametag.client.PolyNametagConfig;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.injection.At;
7+
import org.spongepowered.asm.mixin.injection.ModifyArgs;
8+
import org.spongepowered.asm.mixin.injection.invoke.arg.Args;
9+
10+
@Mixin(EntityRenderer.class)
11+
public abstract class Mixin_ApplyScaling {
12+
@ModifyArgs(method = "renderNameTag", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack;scale(FFF)V"))
13+
private void polynametag$applyScaling(Args args) {
14+
if (PolyNametagConfig.isEnabled()) {
15+
final float scale = PolyNametagConfig.getScale();
16+
args.set(0, ((float) args.get(0)) * scale);
17+
args.set(1, ((float) args.get(1)) * scale);
18+
args.set(2, ((float) args.get(2)) * scale);
19+
}
20+
}
21+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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 net.minecraft.client.Minecraft;
6+
import net.minecraft.client.renderer.entity.LivingEntityRenderer;
7+
import net.minecraft.world.entity.Entity;
8+
import org.polyfrost.polynametag.client.PolyNametagConfig;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
12+
@Mixin(LivingEntityRenderer.class)
13+
public abstract class Mixin_EnableSelfNametag {
14+
@WrapOperation(method = "shouldShowName(Lnet/minecraft/world/entity/LivingEntity;)Z", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getCameraEntity()Lnet/minecraft/world/entity/Entity;"))
15+
private Entity polynametag$checkOwnInvisibility(Minecraft instance, Operation<Entity> original) {
16+
if (PolyNametagConfig.isEnabled() && PolyNametagConfig.isShowOwnNametag()) {
17+
return null;
18+
} else {
19+
return original.call(instance);
20+
}
21+
}
22+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package org.polyfrost.polynametag.mixin.client;
2+
3+
// no-op above 1.12.2
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 net.minecraft.client.renderer.entity.LivingEntityRenderer;
6+
import net.minecraft.world.entity.LivingEntity;
7+
import org.polyfrost.polynametag.client.PolyNametagConfig;
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
11+
@Mixin(LivingEntityRenderer.class)
12+
public abstract class Mixin_FixSneakingNametag {
13+
@WrapOperation(method = "shouldShowName(Lnet/minecraft/world/entity/LivingEntity;)Z", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;isDiscrete()Z"))
14+
private boolean polynametag$showCustomNametagWhilstSneaking(LivingEntity instance, Operation<Boolean> original) {
15+
if (PolyNametagConfig.isEnabled()) {
16+
return false;
17+
} else {
18+
return original.call(instance);
19+
}
20+
}
21+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.polyfrost.polynametag.mixin.client;
2+
3+
import net.minecraft.client.renderer.entity.EntityRenderer;
4+
import org.polyfrost.polynametag.client.PolyNametagConfig;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.injection.At;
7+
import org.spongepowered.asm.mixin.injection.ModifyArg;
8+
9+
@Mixin(EntityRenderer.class)
10+
public abstract class Mixin_OffsetRendering {
11+
@ModifyArg(method = "renderNameTag", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack;translate(DDD)V", ordinal = 0), index = 1)
12+
private double polynametag$modifyTranslateY(double original) {
13+
if (PolyNametagConfig.isEnabled()) {
14+
original += PolyNametagConfig.getHeightOffset();
15+
}
16+
17+
return original;
18+
}
19+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
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 com.mojang.blaze3d.vertex.PoseStack;
7+
import com.mojang.math.Matrix4f;
8+
import dev.deftu.omnicore.api.client.render.stack.OmniMatrixStacks;
9+
import net.minecraft.client.gui.Font;
10+
import net.minecraft.client.renderer.MultiBufferSource;
11+
import net.minecraft.client.renderer.entity.EntityRenderer;
12+
import net.minecraft.network.chat.Component;
13+
import net.minecraft.world.entity.Entity;
14+
import org.polyfrost.polynametag.client.NametagRenderer;
15+
import org.polyfrost.polynametag.client.PolyNametagConfig;
16+
import org.spongepowered.asm.mixin.Mixin;
17+
import org.spongepowered.asm.mixin.injection.At;
18+
19+
@Mixin(EntityRenderer.class)
20+
public abstract class Mixin_ReplaceBackgroundRendering {
21+
@WrapOperation(method = "renderNameTag", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/Font;drawInBatch(Lnet/minecraft/network/chat/Component;FFIZLcom/mojang/math/Matrix4f;Lnet/minecraft/client/renderer/MultiBufferSource;ZII)I", ordinal = 0))
22+
private int polynametag$renderCustomBackground(
23+
Font instance,
24+
Component text,
25+
float x,
26+
float y,
27+
int inColor,
28+
boolean shadow,
29+
Matrix4f matrix4f,
30+
MultiBufferSource vertexConsumerProvider,
31+
boolean seeThrough,
32+
int backgroundColor,
33+
int light,
34+
Operation<Integer> original,
35+
@Local(argsOnly = true) PoseStack poseStack,
36+
@Local(argsOnly = true) Entity entity
37+
) {
38+
if (PolyNametagConfig.isEnabled()) {
39+
NametagRenderer.drawBackground(OmniMatrixStacks.vanilla(poseStack), entity);
40+
return 0;
41+
} else {
42+
return original.call(
43+
instance,
44+
text,
45+
x,
46+
y,
47+
inColor,
48+
shadow,
49+
matrix4f,
50+
vertexConsumerProvider,
51+
seeThrough,
52+
backgroundColor,
53+
light
54+
);
55+
}
56+
}
57+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
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 com.mojang.blaze3d.vertex.PoseStack;
7+
import com.mojang.math.Matrix4f;
8+
import dev.deftu.omnicore.api.client.render.stack.OmniMatrixStacks;
9+
import dev.deftu.omnicore.api.color.ColorFormat;
10+
import dev.deftu.omnicore.api.color.OmniColor;
11+
import net.minecraft.client.gui.Font;
12+
import net.minecraft.client.renderer.MultiBufferSource;
13+
import net.minecraft.client.renderer.entity.EntityRenderer;
14+
import net.minecraft.network.chat.Component;
15+
import org.polyfrost.polynametag.client.NametagRenderer;
16+
import org.polyfrost.polynametag.client.PolyNametagConfig;
17+
import org.spongepowered.asm.mixin.Mixin;
18+
import org.spongepowered.asm.mixin.injection.At;
19+
20+
@Mixin(EntityRenderer.class)
21+
public abstract class Mixin_ReplaceTextRendering {
22+
@WrapOperation(method = "renderNameTag", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/Font;drawInBatch(Lnet/minecraft/network/chat/Component;FFIZLcom/mojang/math/Matrix4f;Lnet/minecraft/client/renderer/MultiBufferSource;ZII)I", ordinal = 1))
23+
private int polynametag$renderCustomText(
24+
Font instance,
25+
Component text,
26+
float x,
27+
float y,
28+
int inColor,
29+
boolean shadow,
30+
Matrix4f matrix4f,
31+
MultiBufferSource vertexConsumerProvider,
32+
boolean seeThrough,
33+
int backgroundColor,
34+
int light,
35+
Operation<Integer> original,
36+
@Local(argsOnly = true) PoseStack poseStack
37+
) {
38+
if (PolyNametagConfig.isEnabled()) {
39+
final OmniColor color = new OmniColor(ColorFormat.ARGB, PolyNametagConfig.INSTANCE.getTextColor().getArgb());
40+
return NametagRenderer.drawNametagString(OmniMatrixStacks.vanilla(poseStack), text.getString(), x, y, color);
41+
} else {
42+
return original.call(
43+
instance,
44+
text,
45+
x,
46+
y,
47+
inColor,
48+
shadow,
49+
matrix4f,
50+
vertexConsumerProvider,
51+
seeThrough,
52+
backgroundColor,
53+
light
54+
);
55+
}
56+
}
57+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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 dev.deftu.omnicore.api.client.OmniClient;
6+
import dev.deftu.omnicore.api.client.screen.OmniScreens;
7+
import net.minecraft.client.gui.screens.inventory.InventoryScreen;
8+
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
9+
import net.minecraft.client.renderer.entity.EntityRenderer;
10+
import net.minecraft.world.entity.Entity;
11+
import org.polyfrost.polynametag.client.PolyNametagConfig;
12+
import org.spongepowered.asm.mixin.Mixin;
13+
import org.spongepowered.asm.mixin.injection.At;
14+
15+
@Mixin(EntityRenderer.class)
16+
public abstract class Mixin_ShowInInventory<T extends Entity> {
17+
@WrapOperation(method = "renderNameTag", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/EntityRenderDispatcher;distanceToSqr(Lnet/minecraft/world/entity/Entity;)D"))
18+
private double polynametag$hideNametagInInventory(EntityRenderDispatcher instance, Entity entity, Operation<Double> original) {
19+
if (PolyNametagConfig.isEnabled() &&
20+
!PolyNametagConfig.isShowInInventory() &&
21+
OmniScreens.getCurrentScreen() instanceof InventoryScreen &&
22+
entity == OmniClient.getPlayer()) {
23+
return Integer.MAX_VALUE;
24+
} else {
25+
return original.call(instance, entity);
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)