Skip to content

Commit 958f16d

Browse files
committed
rewrite part 1
1 parent ce0e206 commit 958f16d

20 files changed

+446
-844
lines changed

build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
@file:Suppress("UnstableApiUsage", "PropertyName")
22

33
import dev.deftu.gradle.utils.GameSide
4-
import dev.deftu.gradle.utils.MinecraftVersion
54

65
plugins {
76
java
@@ -18,7 +17,7 @@ plugins {
1817

1918
toolkitLoomHelper {
2019
useOneConfig {
21-
version = "1.0.0-alpha.49"
20+
version = "1.0.0-alpha.69+dgt"
2221
loaderVersion = "1.1.0-alpha.35"
2322

2423
usePolyMixin = true
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.polyfrost.glintcolorizer.mixin;
2+
3+
import net.minecraft.client.renderer.GlStateManager;
4+
import net.minecraft.client.renderer.entity.layers.LayerArmorBase;
5+
import net.minecraft.client.renderer.entity.layers.LayerRenderer;
6+
import net.minecraft.entity.EntityLivingBase;
7+
import org.polyfrost.glintcolorizer.config.GlintConfig;
8+
import org.polyfrost.polyui.color.PolyColor;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
import org.spongepowered.asm.mixin.injection.Inject;
12+
import org.spongepowered.asm.mixin.injection.Redirect;
13+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
14+
15+
@Mixin(value = LayerArmorBase.class, priority = Integer.MIN_VALUE)
16+
public abstract class ArmorGlintCustomizer_LayerArmorBase_Mixin implements LayerRenderer<EntityLivingBase> {
17+
18+
@Inject(method = "renderGlint", at = @At("HEAD"), cancellable = true)
19+
private void disableArmorGlint(CallbackInfo ci) {
20+
if (GlintConfig.INSTANCE.enabled && GlintConfig.INSTANCE.isArmorGlintDisabled()) {
21+
ci.cancel();
22+
}
23+
}
24+
25+
@Redirect(method = "renderGlint", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;color(FFFF)V"))
26+
private void modifyArmorGlintColor(float r, float g, float b, float a) {
27+
if (!GlintConfig.INSTANCE.enabled) {
28+
GlStateManager.color(r, g, b, a);
29+
} else {
30+
PolyColor color = GlintConfig.INSTANCE.getArmorColor();
31+
GlStateManager.color(color.red() / 255f, color.green() / 255f, color.blue() / 255f, color.alpha() / 255f);
32+
}
33+
}
34+
35+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package org.polyfrost.glintcolorizer.mixin;
2+
3+
import org.polyfrost.glintcolorizer.GlintMetadata;
4+
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
5+
import net.minecraft.client.resources.model.IBakedModel;
6+
import net.minecraftforge.client.ForgeHooksClient;
7+
import org.polyfrost.glintcolorizer.GlintMetadata.RenderMode;
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Inject;
11+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
12+
13+
@Mixin(value = ForgeHooksClient.class, remap = false)
14+
public class CaptureCameraTransform_ForgeHooksClient_Mixin {
15+
@Inject(method = "handleCameraTransforms", at = @At("HEAD"))
16+
@SuppressWarnings("deprecation")
17+
private static void captureCameraTransform(IBakedModel model, ItemCameraTransforms.TransformType cameraTransformType, CallbackInfoReturnable<IBakedModel> cir) {
18+
switch (cameraTransformType) {
19+
case FIRST_PERSON:
20+
case THIRD_PERSON:
21+
GlintMetadata.setRenderMode(RenderMode.HELD);
22+
break;
23+
case FIXED:
24+
GlintMetadata.setRenderMode(RenderMode.FRAMED);
25+
break;
26+
case GROUND:
27+
GlintMetadata.setRenderMode(RenderMode.DROPPED);
28+
break;
29+
default:
30+
GlintMetadata.setRenderMode(RenderMode.GUI);
31+
break;
32+
}
33+
}
34+
}

src/main/java/org/polyfrost/glintcolorizer/mixin/ForgeHooksClientMixin.java

Lines changed: 0 additions & 28 deletions
This file was deleted.
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
package org.polyfrost.glintcolorizer.mixin;
2+
3+
import net.minecraft.client.renderer.GlStateManager;
4+
import net.minecraft.client.renderer.entity.RenderItem;
5+
import net.minecraft.client.resources.model.IBakedModel;
6+
import net.minecraft.potion.PotionHelper;
7+
import org.polyfrost.glintcolorizer.config.GlintConfig;
8+
import org.polyfrost.glintcolorizer.config.GlintOptions;
9+
import org.polyfrost.glintcolorizer.GlintMetadata;
10+
import org.spongepowered.asm.mixin.Mixin;
11+
import org.spongepowered.asm.mixin.Unique;
12+
import org.spongepowered.asm.mixin.injection.At;
13+
import org.spongepowered.asm.mixin.injection.Inject;
14+
import org.spongepowered.asm.mixin.injection.ModifyArg;
15+
import org.spongepowered.asm.mixin.injection.Redirect;
16+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
17+
18+
@Mixin(RenderItem.class)
19+
public class GlintCustomizer_RenderItem_Mixin {
20+
21+
@Inject(method = "renderEffect", at = @At("HEAD"))
22+
private void pushMatrix(IBakedModel model, CallbackInfo ci) {
23+
GlStateManager.pushMatrix();
24+
}
25+
26+
@Inject(method = "renderEffect", at = @At("TAIL"))
27+
private void popMatrix(IBakedModel model, CallbackInfo ci) {
28+
GlStateManager.popMatrix();
29+
}
30+
31+
@Redirect(method = "renderEffect", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;scale(FFF)V"))
32+
private void modifyScale(float x, float y, float z) {
33+
if (!GlintConfig.INSTANCE.enabled) {
34+
GlStateManager.scale(x, y, z);
35+
} else {
36+
float scaleFactor = GlintMetadata.getRenderingOptions().getScale();
37+
GlStateManager.scale(x * scaleFactor, y * scaleFactor, z * scaleFactor);
38+
}
39+
}
40+
41+
@ModifyArg(method = "renderEffect", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;translate(FFF)V"), index = 0)
42+
private float modifySpeed(float speed) {
43+
if (!GlintConfig.INSTANCE.enabled) {
44+
return speed;
45+
}
46+
return GlintMetadata.getRenderingOptions().getSpeed();
47+
}
48+
49+
@ModifyArg(method = "renderEffect", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;rotate(FFFF)V", ordinal = 0), index = 0)
50+
private float modifyFirstStrokeRotation(float angle) {
51+
if (!GlintConfig.INSTANCE.enabled) {
52+
return angle;
53+
}
54+
return GlintMetadata.getRenderingOptions().getFirstStrokeRotation();
55+
}
56+
57+
@ModifyArg(method = "renderEffect", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;rotate(FFFF)V", ordinal = 1), index = 0)
58+
private float modifySecondStrokeRotation(float angle) {
59+
if (!GlintConfig.INSTANCE.enabled) {
60+
return angle;
61+
}
62+
return GlintMetadata.getRenderingOptions().getSecondStrokeRotation();
63+
}
64+
65+
@ModifyArg(method = "renderEffect", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/RenderItem;renderModel(Lnet/minecraft/client/resources/model/IBakedModel;I)V", ordinal = 0), index = 1)
66+
private int modifyFirstStrokeColor(int color) {
67+
return glc$getColor(color, true);
68+
}
69+
70+
@ModifyArg(method = "renderEffect", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/RenderItem;renderModel(Lnet/minecraft/client/resources/model/IBakedModel;I)V", ordinal = 1), index = 1)
71+
private int modifySecondStrokeColor(int color) {
72+
return glc$getColor(color, false);
73+
}
74+
75+
@Unique
76+
private int glc$getColor(int color, boolean firstStroke) {
77+
if (!GlintConfig.INSTANCE.enabled) {
78+
return color;
79+
}
80+
GlintOptions options = GlintMetadata.getRenderingOptions();
81+
if (options instanceof GlintOptions.ShinyPots) {
82+
GlintOptions.ShinyPots potsOptions = (GlintOptions.ShinyPots) options;
83+
if (potsOptions.usePotionBasedColor()) {
84+
int potionId = GlintMetadata.getRenderingItemMetadata();
85+
return PotionHelper.getLiquidColor(potionId, false) | 0xFF000000;
86+
}
87+
}
88+
if (options.useIndividualStrokes()) {
89+
return firstStroke ? options.getStrokeOneColor().getRgba() : options.getStrokeTwoColor().getRgba();
90+
} else return options.getGlintColor().getRgba();
91+
}
92+
93+
}

src/main/java/org/polyfrost/glintcolorizer/mixin/LayerArmorBaseMixin.java

Lines changed: 0 additions & 49 deletions
This file was deleted.

0 commit comments

Comments
 (0)