From 7713f461e7a8d026eb8db303d54a7c5605125d9d Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 25 May 2023 10:28:59 +0100 Subject: [PATCH] Fixed gemstones not changing texture to reflect their affinity --- .../java/com/minelittlepony/unicopia/Affinity.java | 14 ++++++++++---- .../minelittlepony/unicopia/client/URenderers.java | 3 ++- .../assets/unicopia/models/item/gemstone.json | 4 ++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/minelittlepony/unicopia/Affinity.java b/src/main/java/com/minelittlepony/unicopia/Affinity.java index fc0ec962..35285a76 100644 --- a/src/main/java/com/minelittlepony/unicopia/Affinity.java +++ b/src/main/java/com/minelittlepony/unicopia/Affinity.java @@ -3,19 +3,21 @@ package com.minelittlepony.unicopia; import net.minecraft.util.Formatting; public enum Affinity { - GOOD(Formatting.BLUE, -1), - NEUTRAL(Formatting.LIGHT_PURPLE, 0), - BAD(Formatting.RED, 1); + GOOD(Formatting.BLUE, -1, 0), + NEUTRAL(Formatting.LIGHT_PURPLE, 0, 0.5F), + BAD(Formatting.RED, 1, 1); private final Formatting color; private final int corruption; + private final float alignment; public static final Affinity[] VALUES = values(); - Affinity(Formatting color, int corruption) { + Affinity(Formatting color, int corruption, float alignment) { this.color = color; this.corruption = corruption; + this.alignment = alignment; } public Formatting getColor() { @@ -30,6 +32,10 @@ public enum Affinity { return corruption; } + public float getAlignment() { + return alignment; + } + public boolean isNeutral() { return this == NEUTRAL; } diff --git a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java index e9b1c9c0..23fa07b8 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java +++ b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java @@ -20,6 +20,7 @@ import com.minelittlepony.unicopia.item.ChameleonItem; import com.minelittlepony.unicopia.item.EnchantableItem; import com.minelittlepony.unicopia.item.UItems; import com.minelittlepony.unicopia.particle.UParticles; +import com.minelittlepony.unicopia.server.world.ZapAppleStageStore; import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.client.particle.v1.ParticleFactoryRegistry; @@ -117,7 +118,7 @@ public interface URenderers { PolearmRenderer.register(UItems.DIAMOND_POLEARM); PolearmRenderer.register(UItems.NETHERITE_POLEARM); ModelPredicateProviderRegistry.register(UItems.GEMSTONE, new Identifier("affinity"), (stack, world, entity, seed) -> { - return EnchantableItem.isEnchanted(stack) ? 1 + EnchantableItem.getSpellKey(stack).getAffinity().ordinal() : 0; + return EnchantableItem.isEnchanted(stack) ? EnchantableItem.getSpellKey(stack).getAffinity().getAlignment() : 0; }); ModelPredicateProviderRegistry.register(UBlocks.ZAP_LEAVES.asItem(), new Identifier("flowering"), (stack, world, entity, seed) -> { return ZapAppleStageStore.Stage.byStack(stack) == ZapAppleStageStore.Stage.FLOWERING ? 1 : 0; diff --git a/src/main/resources/assets/unicopia/models/item/gemstone.json b/src/main/resources/assets/unicopia/models/item/gemstone.json index c3865b7c..bc034c48 100644 --- a/src/main/resources/assets/unicopia/models/item/gemstone.json +++ b/src/main/resources/assets/unicopia/models/item/gemstone.json @@ -6,13 +6,13 @@ "overrides": [ { "predicate": { - "affinity": 1 + "affinity": 0 }, "model": "unicopia:item/gemstone_pure" }, { "predicate": { - "affinity": 3 + "affinity": 1 }, "model": "unicopia:item/gemstone_corrupted" }