aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/shcm/shsupercm/fabric/citresewn/ActiveCITs.java3
-rw-r--r--src/main/java/shcm/shsupercm/fabric/citresewn/mixin/citenchantment/ItemRendererMixin.java23
-rw-r--r--src/main/java/shcm/shsupercm/fabric/citresewn/mixin/citenchantment/ItemStackMixin.java2
-rw-r--r--src/main/java/shcm/shsupercm/fabric/citresewn/pack/cits/CITEnchantment.java8
4 files changed, 23 insertions, 13 deletions
diff --git a/src/main/java/shcm/shsupercm/fabric/citresewn/ActiveCITs.java b/src/main/java/shcm/shsupercm/fabric/citresewn/ActiveCITs.java
index 9085e6f..231c1cd 100644
--- a/src/main/java/shcm/shsupercm/fabric/citresewn/ActiveCITs.java
+++ b/src/main/java/shcm/shsupercm/fabric/citresewn/ActiveCITs.java
@@ -1,8 +1,5 @@
package shcm.shsupercm.fabric.citresewn;
-import net.minecraft.client.render.VertexConsumer;
-import net.minecraft.client.render.VertexConsumerProvider;
-import net.minecraft.client.render.VertexConsumers;
import net.minecraft.client.render.model.BakedModel;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.entity.LivingEntity;
diff --git a/src/main/java/shcm/shsupercm/fabric/citresewn/mixin/citenchantment/ItemRendererMixin.java b/src/main/java/shcm/shsupercm/fabric/citresewn/mixin/citenchantment/ItemRendererMixin.java
index 4594d8f..7af6c22 100644
--- a/src/main/java/shcm/shsupercm/fabric/citresewn/mixin/citenchantment/ItemRendererMixin.java
+++ b/src/main/java/shcm/shsupercm/fabric/citresewn/mixin/citenchantment/ItemRendererMixin.java
@@ -15,25 +15,34 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import shcm.shsupercm.fabric.citresewn.CITResewn;
+import shcm.shsupercm.fabric.citresewn.config.CITResewnConfig;
import shcm.shsupercm.fabric.citresewn.pack.cits.CITEnchantment;
@Mixin(ItemRenderer.class)
public class ItemRendererMixin {
@Inject(method = "getHeldItemModel", at = @At("TAIL"))
private void setAppliedContext(ItemStack stack, World world, LivingEntity entity, int seed, CallbackInfoReturnable<BakedModel> cir) {
- if (CITResewn.INSTANCE.activeCITs != null)
+ if (CITResewnConfig.INSTANCE().enabled && CITResewn.INSTANCE.activeCITs != null)
CITResewn.INSTANCE.activeCITs.setEnchantmentAppliedContextCached(stack, world, entity);
}
+ @Inject(method = "renderItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/render/model/json/ModelTransformation$Mode;ZLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/render/model/BakedModel;)V", at = @At("HEAD"))
+ private void startApplyingItem(ItemStack stack, ModelTransformation.Mode renderMode, boolean leftHanded, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, BakedModel model, CallbackInfo ci) {
+ if (CITResewnConfig.INSTANCE().enabled)
+ CITEnchantment.shouldApply = true;
+ }
+
@Inject(method = "renderItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/render/model/json/ModelTransformation$Mode;ZLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/render/model/BakedModel;)V", at = @At("TAIL"))
- private void clearAppliedContext(ItemStack stack, ModelTransformation.Mode renderMode, boolean leftHanded, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, BakedModel model, CallbackInfo ci) {
+ private void stopApplyingItem(ItemStack stack, ModelTransformation.Mode renderMode, boolean leftHanded, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, BakedModel model, CallbackInfo ci) {
+ CITEnchantment.shouldApply = false;
if (CITResewn.INSTANCE.activeCITs != null)
CITResewn.INSTANCE.activeCITs.setEnchantmentAppliedContextCached(null, null, null);
}
-
@Inject(method = "getArmorGlintConsumer", cancellable = true, at = @At("RETURN"))
private static void getArmorGlintConsumer(VertexConsumerProvider provider, RenderLayer layer, boolean solid, boolean glint, CallbackInfoReturnable<VertexConsumer> cir) {
+ if (!CITEnchantment.shouldApply)
+ return;
VertexConsumer vertexConsumer = solid ? CITEnchantment.GlintRenderLayer.ARMOR_GLINT.tryApply(cir.getReturnValue(), provider) : CITEnchantment.GlintRenderLayer.ARMOR_ENTITY_GLINT.tryApply(cir.getReturnValue(), provider);
if (vertexConsumer != null)
cir.setReturnValue(vertexConsumer);
@@ -41,6 +50,8 @@ public class ItemRendererMixin {
@Inject(method = "getCompassGlintConsumer", cancellable = true, at = @At("RETURN"))
private static void getCompassGlintConsumer(VertexConsumerProvider provider, RenderLayer layer, MatrixStack.Entry entry, CallbackInfoReturnable<VertexConsumer> cir) {
+ if (!CITEnchantment.shouldApply)
+ return;
VertexConsumer vertexConsumer = CITEnchantment.GlintRenderLayer.GLINT.tryApply(null, provider);
if (vertexConsumer != null)
cir.setReturnValue(VertexConsumers.union(new OverlayVertexConsumer(vertexConsumer, entry.getModel(), entry.getNormal()), cir.getReturnValue()));
@@ -48,6 +59,8 @@ public class ItemRendererMixin {
@Inject(method = "getDirectCompassGlintConsumer", cancellable = true, at = @At("RETURN"))
private static void getDirectCompassGlintConsumer(VertexConsumerProvider provider, RenderLayer layer, MatrixStack.Entry entry, CallbackInfoReturnable<VertexConsumer> cir) {
+ if (!CITEnchantment.shouldApply)
+ return;
VertexConsumer vertexConsumer = CITEnchantment.GlintRenderLayer.DIRECT_GLINT.tryApply(null, provider);
if (vertexConsumer != null)
cir.setReturnValue(VertexConsumers.union(new OverlayVertexConsumer(vertexConsumer, entry.getModel(), entry.getNormal()), cir.getReturnValue()));
@@ -55,6 +68,8 @@ public class ItemRendererMixin {
@Inject(method = "getItemGlintConsumer", cancellable = true, at = @At("RETURN"))
private static void getItemGlintConsumer(VertexConsumerProvider provider, RenderLayer layer, boolean solid, boolean glint, CallbackInfoReturnable<VertexConsumer> cir) {
+ if (!CITEnchantment.shouldApply)
+ return;
VertexConsumer vertexConsumer = MinecraftClient.isFabulousGraphicsOrBetter() && layer == TexturedRenderLayers.getItemEntityTranslucentCull() ? CITEnchantment.GlintRenderLayer.GLINT_TRANSLUCENT.tryApply(cir.getReturnValue(), provider) : (solid ? CITEnchantment.GlintRenderLayer.GLINT.tryApply(cir.getReturnValue(), provider) : CITEnchantment.GlintRenderLayer.ENTITY_GLINT.tryApply(cir.getReturnValue(), provider));
if (vertexConsumer != null)
cir.setReturnValue(vertexConsumer);
@@ -62,6 +77,8 @@ public class ItemRendererMixin {
@Inject(method = "getDirectItemGlintConsumer", cancellable = true, at = @At("RETURN"))
private static void getDirectItemGlintConsumer(VertexConsumerProvider provider, RenderLayer layer, boolean solid, boolean glint, CallbackInfoReturnable<VertexConsumer> cir) {
+ if (!CITEnchantment.shouldApply)
+ return;
VertexConsumer vertexConsumer = solid ? CITEnchantment.GlintRenderLayer.DIRECT_GLINT.tryApply(cir.getReturnValue(), provider) : CITEnchantment.GlintRenderLayer.DIRECT_ENTITY_GLINT.tryApply(cir.getReturnValue(), provider);
if (vertexConsumer != null)
cir.setReturnValue(vertexConsumer);
diff --git a/src/main/java/shcm/shsupercm/fabric/citresewn/mixin/citenchantment/ItemStackMixin.java b/src/main/java/shcm/shsupercm/fabric/citresewn/mixin/citenchantment/ItemStackMixin.java
index 7ac7a3a..4834a76 100644
--- a/src/main/java/shcm/shsupercm/fabric/citresewn/mixin/citenchantment/ItemStackMixin.java
+++ b/src/main/java/shcm/shsupercm/fabric/citresewn/mixin/citenchantment/ItemStackMixin.java
@@ -29,7 +29,7 @@ public class ItemStackMixin implements CITEnchantment.Cached {
@Inject(method = "hasGlint", cancellable = true, at = @At("HEAD"))
private void disableDefaultGlint(CallbackInfoReturnable<Boolean> cir) {
- if (CITEnchantment.appliedContext != null && !CITEnchantment.appliedContext.get(0).useGlint)
+ if (CITEnchantment.shouldApply && CITEnchantment.appliedContext != null && !CITEnchantment.appliedContext.get(0).useGlint)
cir.setReturnValue(false);
}
}
diff --git a/src/main/java/shcm/shsupercm/fabric/citresewn/pack/cits/CITEnchantment.java b/src/main/java/shcm/shsupercm/fabric/citresewn/pack/cits/CITEnchantment.java
index 3c063db..cce2f29 100644
--- a/src/main/java/shcm/shsupercm/fabric/citresewn/pack/cits/CITEnchantment.java
+++ b/src/main/java/shcm/shsupercm/fabric/citresewn/pack/cits/CITEnchantment.java
@@ -2,13 +2,8 @@ package shcm.shsupercm.fabric.citresewn.pack.cits;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.*;
-import net.minecraft.entity.LivingEntity;
-import net.minecraft.item.ItemStack;
import net.minecraft.resource.ResourceType;
import net.minecraft.util.Identifier;
-import net.minecraft.world.World;
-import shcm.shsupercm.fabric.citresewn.ActiveCITs;
-import shcm.shsupercm.fabric.citresewn.CITResewn;
import shcm.shsupercm.fabric.citresewn.ex.CITParseException;
import shcm.shsupercm.fabric.citresewn.mixin.citenchantment.BufferBuilderStorageAccessor;
import shcm.shsupercm.fabric.citresewn.mixin.citenchantment.RenderPhaseAccessor;
@@ -20,6 +15,7 @@ import java.util.function.Supplier;
public class CITEnchantment extends CIT {
public static List<CITEnchantment> appliedContext = null;
+ public static boolean shouldApply = false;
public final Identifier textureIdentifier;
public final float speed, rotation, duration;
@@ -162,7 +158,7 @@ public class CITEnchantment extends CIT {
}
public VertexConsumer tryApply(VertexConsumer base, VertexConsumerProvider provider) {
- if (appliedContext == null)
+ if (!shouldApply || appliedContext == null)
return null;
VertexConsumer applied = VertexConsumers.union(appliedContext.stream()