From 281e2ba26ddff9a78ffc246fcd93fb1d4b3a6727 Mon Sep 17 00:00:00 2001 From: Sollace Date: Mon, 8 Apr 2024 19:18:56 +0100 Subject: [PATCH] Add unique gem designs for different spells --- .../ability/magic/spell/effect/SpellType.java | 24 ++++++++++ .../unicopia/client/URenderers.java | 3 +- .../datagen/providers/ModelOverrides.java | 7 +++ .../datagen/providers/UModelProvider.java | 5 ++- .../unicopia/item/GemstoneItem.java | 42 ++++++++++++++---- .../resources/assets/unicopia/lang/en_us.json | 2 +- .../unicopia/textures/item/gemstone_arrow.png | Bin 0 -> 8736 bytes .../unicopia/textures/item/gemstone_brush.png | Bin 0 -> 3034 bytes .../unicopia/textures/item/gemstone_cross.png | Bin 0 -> 2935 bytes .../unicopia/textures/item/gemstone_donut.png | Bin 0 -> 2876 bytes .../unicopia/textures/item/gemstone_flame.png | Bin 0 -> 2965 bytes .../unicopia/textures/item/gemstone_ice.png | Bin 0 -> 2992 bytes .../textures/item/gemstone_lambda.png | Bin 0 -> 6327 bytes .../unicopia/textures/item/gemstone_ring.png | Bin 0 -> 2911 bytes .../textures/item/gemstone_rocket.png | Bin 0 -> 2942 bytes .../{gemstone_pure.png => gemstone_round.png} | Bin .../textures/item/gemstone_shield.png | Bin 0 -> 2992 bytes .../unicopia/textures/item/gemstone_skull.png | Bin 0 -> 2944 bytes .../textures/item/gemstone_splint.png | Bin 0 -> 2866 bytes .../unicopia/textures/item/gemstone_star.png | Bin 0 -> 8917 bytes .../textures/item/gemstone_triangle.png | Bin 0 -> 8728 bytes .../textures/item/gemstone_vortex.png | Bin 0 -> 3007 bytes .../unicopia/textures/item/gemstone_wave.png | Bin 0 -> 2920 bytes 23 files changed, 70 insertions(+), 13 deletions(-) create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_arrow.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_brush.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_cross.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_donut.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_flame.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_ice.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_lambda.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_ring.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_rocket.png rename src/main/resources/assets/unicopia/textures/item/{gemstone_pure.png => gemstone_round.png} (100%) create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_shield.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_skull.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_splint.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_star.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_triangle.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_vortex.png create mode 100644 src/main/resources/assets/unicopia/textures/item/gemstone_wave.png diff --git a/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/effect/SpellType.java b/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/effect/SpellType.java index 90bbed43..2179eab1 100644 --- a/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/effect/SpellType.java +++ b/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/effect/SpellType.java @@ -20,6 +20,7 @@ import com.minelittlepony.unicopia.ability.magic.spell.Spell; import com.minelittlepony.unicopia.ability.magic.spell.ThrowableSpell; import com.minelittlepony.unicopia.ability.magic.spell.TimeControlAbilitySpell; import com.minelittlepony.unicopia.ability.magic.spell.trait.SpellTraits; +import com.minelittlepony.unicopia.item.GemstoneItem; import com.minelittlepony.unicopia.item.UItems; import com.minelittlepony.unicopia.util.RegistryUtils; import com.mojang.brigadier.context.CommandContext; @@ -133,6 +134,29 @@ public final class SpellType implements Affine, SpellPredicate< return affinity; } + public GemstoneItem.Shape getGemShape() { + if (this == NECROMANCY) return GemstoneItem.Shape.SKULL; + if (this == DARK_VORTEX) return GemstoneItem.Shape.VORTEX; + if (this == FROST || this == CHILLING_BREATH) return GemstoneItem.Shape.TRIANGLE; + if (this == SHIELD || this == ARCANE_PROTECTION) return GemstoneItem.Shape.SHIELD; + if (this == FLAME || this == SCORCH || this == INFERNAL || this == FIRE_BOLT) return GemstoneItem.Shape.FLAME; + if (this == MIMIC) return GemstoneItem.Shape.ARROW; + if (this == DISPEL_EVIL) return GemstoneItem.Shape.CROSS; + if (this == REVEALING) return GemstoneItem.Shape.CROSS; + if (this == SIPHONING) return GemstoneItem.Shape.LAMBDA; + if (this == VORTEX) return GemstoneItem.Shape.VORTEX; + if (this == FEATHER_FALL) return GemstoneItem.Shape.LAMBDA; + if (this == DISPLACEMENT) return GemstoneItem.Shape.BRUSH; + if (this == TRANSFORMATION) return GemstoneItem.Shape.BRUSH; + if (this == BUBBLE) return GemstoneItem.Shape.DONUT; + if (this == MIND_SWAP) return GemstoneItem.Shape.WAVE; + if (this == HYDROPHOBIC || this == CATAPULT) return GemstoneItem.Shape.ROCKET; + if (this == LIGHT) return GemstoneItem.Shape.STAR; + if (this == PORTAL) return GemstoneItem.Shape.RING; + if (this == AWKWARD) return GemstoneItem.Shape.ICE; + return GemstoneItem.Shape.ROUND; + } + public SpellTraits getTraits() { return traits; } diff --git a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java index 747465b5..704f90cb 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java +++ b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java @@ -122,7 +122,8 @@ public interface URenderers { register(URenderers::renderBedItem, UItems.CLOTH_BED, UItems.CLOUD_BED); register(URenderers::renderChestItem, UBlocks.CLOUD_CHEST.asItem()); PolearmRenderer.register(UItems.WOODEN_POLEARM, UItems.STONE_POLEARM, UItems.IRON_POLEARM, UItems.GOLDEN_POLEARM, UItems.DIAMOND_POLEARM, UItems.NETHERITE_POLEARM); - ModelPredicateProviderRegistry.register(UItems.GEMSTONE, new Identifier("affinity"), (stack, world, entity, seed) -> EnchantableItem.isEnchanted(stack) ? EnchantableItem.getSpellKey(stack).getAffinity().getAlignment() : 0); + ModelPredicateProviderRegistry.register(UItems.GEMSTONE, new Identifier("affinity"), (stack, world, entity, seed) -> EnchantableItem.getSpellKey(stack).getAffinity().getAlignment()); + ModelPredicateProviderRegistry.register(UItems.GEMSTONE, new Identifier("shape"), (stack, world, entity, seed) -> EnchantableItem.getSpellKey(stack).getGemShape().getId()); ModelPredicateProviderRegistry.register(UItems.ROCK_CANDY, new Identifier("count"), (stack, world, entity, seed) -> stack.getCount() / (float)stack.getMaxCount()); ModelPredicateProviderRegistry.register(UItems.BUTTERFLY, new Identifier("variant"), (stack, world, entity, seed) -> (float)ButterflyItem.getVariant(stack).ordinal() / ButterflyEntity.Variant.VALUES.length); ModelPredicateProviderRegistry.register(Unicopia.id("zap_cycle"), new ClampedModelPredicateProvider() { diff --git a/src/main/java/com/minelittlepony/unicopia/datagen/providers/ModelOverrides.java b/src/main/java/com/minelittlepony/unicopia/datagen/providers/ModelOverrides.java index d5ff1b05..c0744cbe 100644 --- a/src/main/java/com/minelittlepony/unicopia/datagen/providers/ModelOverrides.java +++ b/src/main/java/com/minelittlepony/unicopia/datagen/providers/ModelOverrides.java @@ -28,6 +28,13 @@ public final class ModelOverrides { this.model = model; } + public ModelOverrides addUniform(String key, Iterable values, Function idFunc, Function childModelSupplier) { + for (T t : values) { + addOverride(childModelSupplier.apply(t), key, idFunc.apply(t)); + } + return this; + } + public ModelOverrides addUniform(String key, int from, int to, Identifier model) { float step = 1F / to; for (int index = from; index <= to; index++) { diff --git a/src/main/java/com/minelittlepony/unicopia/datagen/providers/UModelProvider.java b/src/main/java/com/minelittlepony/unicopia/datagen/providers/UModelProvider.java index cc317eb5..6861d8ed 100644 --- a/src/main/java/com/minelittlepony/unicopia/datagen/providers/UModelProvider.java +++ b/src/main/java/com/minelittlepony/unicopia/datagen/providers/UModelProvider.java @@ -1,12 +1,14 @@ package com.minelittlepony.unicopia.datagen.providers; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.concurrent.CompletableFuture; import com.minelittlepony.unicopia.Race; import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.datagen.DataCollector; import com.minelittlepony.unicopia.item.BedsheetsItem; +import com.minelittlepony.unicopia.item.GemstoneItem; import com.minelittlepony.unicopia.item.UItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider; @@ -137,8 +139,7 @@ public class UModelProvider extends FabricModelProvider { // gemstone ModelOverrides.of(ItemModels.GENERATED) - .addOverride(ModelIds.getItemSubModelId(UItems.GEMSTONE, "_pure"), "affinity", 0) - .addOverride(ModelIds.getItemSubModelId(UItems.GEMSTONE, "_corrupted"), "affinity", 1) + .addUniform("shape", List.of(GemstoneItem.Shape.values()), GemstoneItem.Shape::getId, shape -> ModelIds.getItemSubModelId(UItems.GEMSTONE, "_" + shape.name().toLowerCase(Locale.ROOT))) .upload(UItems.GEMSTONE, itemModelGenerator); // fishing rod diff --git a/src/main/java/com/minelittlepony/unicopia/item/GemstoneItem.java b/src/main/java/com/minelittlepony/unicopia/item/GemstoneItem.java index dcc35a05..8cb17b77 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/GemstoneItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/GemstoneItem.java @@ -1,12 +1,10 @@ package com.minelittlepony.unicopia.item; -import java.util.Arrays; +import java.util.Comparator; import java.util.List; import java.util.function.Predicate; - import org.jetbrains.annotations.Nullable; -import com.minelittlepony.unicopia.Affinity; import com.minelittlepony.unicopia.Unicopia; import com.minelittlepony.unicopia.ability.magic.spell.effect.CustomisedSpellType; import com.minelittlepony.unicopia.ability.magic.spell.effect.SpellType; @@ -96,12 +94,13 @@ public class GemstoneItem extends Item implements MultiItem, EnchantableItem { @Override public List getDefaultStacks() { - return Arrays.stream(Affinity.VALUES) - .flatMap(i -> SpellType.byAffinity(i).stream() - .filter(type -> type.isObtainable()) - .map(type -> EnchantableItem.enchant(getDefaultStack(), type, i)) - ) - .toList(); + return SpellType.REGISTRY.stream() + .filter(SpellType::isObtainable) + .sorted( + Comparator., GemstoneItem.Shape>comparing(SpellType::getGemShape).thenComparing(Comparator.comparing(SpellType::getAffinity)) + ) + .map(type -> EnchantableItem.enchant(getDefaultStack(), type)) + .toList(); } @Override @@ -121,4 +120,29 @@ public class GemstoneItem extends Item implements MultiItem, EnchantableItem { return super.getName(); } + public enum Shape { + ARROW, + BRUSH, + CROSS, + DONUT, + FLAME, + ICE, + LAMBDA, + RING, + ROCKET, + ROUND, + SHIELD, + SKULL, + SPLINT, + STAR, + TRIANGLE, + VORTEX, + WAVE; + + public static final int LENGTH = values().length; + + public float getId() { + return ordinal() / (float)LENGTH; + } + } } diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index df8a8f2e..736626b1 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -544,7 +544,7 @@ "spell.unicopia.shield.lore": "Casts a protective shield around the user", "spell.unicopia.bubble": "Bubble", "spell.unicopia.bubble.lore": "Traps any creature it hits in a soap bubble", - "spell.unicopia.arcane_protection": "Arcane Protections", + "spell.unicopia.arcane_protection": "Arcane Protection", "spell.unicopia.arcane_protection.lore": "Creates a protective shroud over an area in which no other spells can be cast", "spell.unicopia.vortex": "Arcane Attraction", "spell.unicopia.vortex.lore": "Creates a magnetic force that pulls in other targets", diff --git a/src/main/resources/assets/unicopia/textures/item/gemstone_arrow.png b/src/main/resources/assets/unicopia/textures/item/gemstone_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..e51a73ae1d570e933728b9962db8537c66030a0d GIT binary patch literal 8736 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/item/gemstone_brush.png b/src/main/resources/assets/unicopia/textures/item/gemstone_brush.png new file mode 100644 index 0000000000000000000000000000000000000000..fb7ebb21e10dc44b35b524ab7425557c1ca95d49 GIT binary patch literal 3034 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/item/gemstone_cross.png b/src/main/resources/assets/unicopia/textures/item/gemstone_cross.png new file mode 100644 index 0000000000000000000000000000000000000000..c8670f004e30d8aa18c3cbd1d1bd9980fcf1c899 GIT binary patch literal 2935 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/item/gemstone_donut.png b/src/main/resources/assets/unicopia/textures/item/gemstone_donut.png new file mode 100644 index 0000000000000000000000000000000000000000..4a47ebf59d700d9da21d7529176372d4b93d7201 GIT binary patch literal 2876 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 B7)JmA literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/item/gemstone_ring.png b/src/main/resources/assets/unicopia/textures/item/gemstone_ring.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e4aebde20ddf827802c8a2ae62e786e3f01726 GIT binary patch literal 2911 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/item/gemstone_pure.png b/src/main/resources/assets/unicopia/textures/item/gemstone_round.png similarity index 100% rename from src/main/resources/assets/unicopia/textures/item/gemstone_pure.png rename to src/main/resources/assets/unicopia/textures/item/gemstone_round.png diff --git a/src/main/resources/assets/unicopia/textures/item/gemstone_shield.png b/src/main/resources/assets/unicopia/textures/item/gemstone_shield.png new file mode 100644 index 0000000000000000000000000000000000000000..2395fc6f51a89f91276914f668f3d41a253bf675 GIT binary patch literal 2992 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 QQ~&?~07*qoM6N<$g5*1Us{jB1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/item/gemstone_star.png b/src/main/resources/assets/unicopia/textures/item/gemstone_star.png new file mode 100644 index 0000000000000000000000000000000000000000..35d634247a37b0e6b70f3952f90301d3b7ee4884 GIT binary patch literal 8917 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/item/gemstone_triangle.png b/src/main/resources/assets/unicopia/textures/item/gemstone_triangle.png new file mode 100644 index 0000000000000000000000000000000000000000..e1cec73f71737f5a394b4f926317f329f6f48064 GIT binary patch literal 8728 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/item/gemstone_vortex.png b/src/main/resources/assets/unicopia/textures/item/gemstone_vortex.png new file mode 100644 index 0000000000000000000000000000000000000000..6554e9a9cbe0acf0d8a757f5f442b9a6075b105e GIT binary patch literal 3007 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 Sj)*A$0000