From 79030b43c79ac3da6f213b4822224af7e7bdb8f9 Mon Sep 17 00:00:00 2001 From: Sollace Date: Mon, 7 Oct 2024 21:53:08 +0100 Subject: [PATCH] Migrate conventional tags --- .../unicopia/UConventionalTags.java | 47 ++++----- .../com/minelittlepony/unicopia/UTags.java | 2 +- .../client/ModifierTooltipRenderer.java | 4 +- .../providers/FoodGroupsGenerator.java | 9 +- .../providers/recipe/URecipeProvider.java | 13 ++- .../providers/tag/UItemTagProvider.java | 38 ++++---- .../unicopia/diet/DietProfile.java | 22 ++--- .../minelittlepony/unicopia/diet/Effect.java | 9 +- .../unicopia/diet/FoodGroup.java | 5 +- .../unicopia/diet/FoodGroupEffects.java | 6 +- .../unicopia/diet/affliction/Affliction.java | 6 +- .../diet/affliction/CompoundAffliction.java | 3 +- .../unicopia/entity/ItemTracker.java | 4 +- .../unicopia/entity/Living.java | 2 +- .../unicopia/item/AlicornAmuletItem.java | 15 ++- .../resources/assets/unicopia/lang/en_us.json | 95 +++++++++++++++++++ .../tags/{items => item}/chest/necklace.json | 0 .../tags/{items => item}/hand/glove.json | 0 .../tags/{items => item}/head/face.json | 0 .../tags/{items => item}/offhand/glove.json | 0 20 files changed, 182 insertions(+), 98 deletions(-) rename src/main/resources/data/trinkets/tags/{items => item}/chest/necklace.json (100%) rename src/main/resources/data/trinkets/tags/{items => item}/hand/glove.json (100%) rename src/main/resources/data/trinkets/tags/{items => item}/head/face.json (100%) rename src/main/resources/data/trinkets/tags/{items => item}/offhand/glove.json (100%) diff --git a/src/main/java/com/minelittlepony/unicopia/UConventionalTags.java b/src/main/java/com/minelittlepony/unicopia/UConventionalTags.java index 6b4775e9..089dd2d3 100644 --- a/src/main/java/com/minelittlepony/unicopia/UConventionalTags.java +++ b/src/main/java/com/minelittlepony/unicopia/UConventionalTags.java @@ -1,6 +1,5 @@ package com.minelittlepony.unicopia; -import net.fabricmc.fabric.api.tag.convention.v2.ConventionalBlockTags; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.registry.RegistryKeys; @@ -10,8 +9,7 @@ import net.minecraft.util.Identifier; public interface UConventionalTags { interface Blocks { TagKey CONCRETE_POWDERS = block("concrete_powders"); - TagKey CONCRETES = ConventionalBlockTags.CONCRETES; - TagKey GLAZED_TERRACOTTAS = ConventionalBlockTags.GLAZED_TERRACOTTAS; + TagKey CORAL_BLOCKS = block("coral_blocks"); TagKey CORAL_FANS = block("coral_fans"); TagKey CORALS = block("corals"); @@ -22,45 +20,38 @@ public interface UConventionalTags { } interface Items { - TagKey CONCRETE_POWDERS = item("concrete_powders"); TagKey CONCRETES = item("concretes"); - TagKey GLAZED_TERRACOTTAS = item("glazed_terracottas"); TagKey CORAL_BLOCKS = item("coral_blocks"); TagKey CORAL_FANS = item("coral_fans"); TagKey CORALS = item("corals"); - TagKey APPLES = item("apples"); - TagKey ACORNS = item("acorns"); - TagKey PINECONES = item("pinecones"); - TagKey PINEAPPLES = item("pineapples"); - TagKey BANANAS = item("bananas"); - TagKey STICKS = item("sticks"); + TagKey APPLES = item("foods/apple"); + TagKey ACORNS = item("foods/acorn"); + TagKey PINECONES = item("foods/pinecone"); + TagKey PINEAPPLES = item("foods/pineapple"); + TagKey BANANAS = item("foods/banana"); + TagKey SEEDS = item("seeds"); TagKey GRAIN = item("grain"); TagKey NUTS = item("nuts"); - TagKey MUSHROOMS = item("mushrooms"); - TagKey MUFFINS = item("muffins"); - TagKey MANGOES = item("mangoes"); - TagKey OATMEALS = item("oatmeals"); - TagKey COOKIES = item("cookies"); + TagKey MUSHROOMS = item("foods/mushroom"); + TagKey MUFFINS = item("foods/muffin"); + TagKey MANGOES = item("foods/mango"); + TagKey OATMEALS = item("foods/oatmeal"); + TagKey COOKIES = item("foods/cookie"); - TagKey FRUITS = item("fruits"); TagKey WORMS = item("worms"); TagKey ROCKS = item("rocks"); TagKey GEMS = item("gems"); - TagKey RAW_INSECT = item("raw_insect"); - TagKey COOKED_INSECT = item("cooked_insect"); - TagKey ROTTEN_INSECT = item("rotten_insect"); + TagKey RAW_INSECT = item("foods/raw_insect"); + TagKey COOKED_INSECT = item("foods/cooked_insect"); + TagKey ROTTEN_INSECT = item("foods/rotten_insect"); - TagKey RAW_FISH = item("raw_fish"); - TagKey COOKED_FISH = item("cooked_fish"); - TagKey ROTTEN_FISH = item("rotten_fish"); - TagKey RAW_MEAT = item("raw_meat"); - TagKey COOKED_MEAT = item("cooked_meat"); - TagKey ROTTEN_MEAT = item("rotten_meat"); - TagKey DESSERTS = item("desserts"); - TagKey CANDY = item("candy"); + TagKey ROTTEN_FISH = item("foods/rotten_fish"); + + TagKey ROTTEN_MEAT = item("foods/rotten_meat"); + TagKey DESSERTS = item("foods/dessert"); TagKey CROPS_PEANUTS = item("crops/peanuts"); TagKey TOOL_KNIVES = item("tools/knives"); diff --git a/src/main/java/com/minelittlepony/unicopia/UTags.java b/src/main/java/com/minelittlepony/unicopia/UTags.java index b7f44a49..d1fca500 100644 --- a/src/main/java/com/minelittlepony/unicopia/UTags.java +++ b/src/main/java/com/minelittlepony/unicopia/UTags.java @@ -76,7 +76,7 @@ public interface UTags { TagKey FORAGE_PRICKLY = item("forage/prickly"); TagKey FORAGE_GLOWING = item("forage/glowing"); TagKey FORAGE_RISKY = item("forage/risky"); - TagKey FORAGE_STRENGHENING = item("forage/strenghtening"); + TagKey FORAGE_STRENGHENING = item("forage/strengthening"); TagKey FORAGE_SEVERE_NAUSEATING = item("forage/severe/nauseating"); TagKey FORAGE_SEVERE_PRICKLY = item("forage/severe/prickly"); diff --git a/src/main/java/com/minelittlepony/unicopia/client/ModifierTooltipRenderer.java b/src/main/java/com/minelittlepony/unicopia/client/ModifierTooltipRenderer.java index bafe8c4b..6d0f7edf 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/ModifierTooltipRenderer.java +++ b/src/main/java/com/minelittlepony/unicopia/client/ModifierTooltipRenderer.java @@ -38,11 +38,11 @@ public class ModifierTooltipRenderer { appendTooltip(stack, UDataComponentTypes.BUTTERFLY_VARIANT, context, textConsumer, type); EnchantableItem.getSpellEffect(stack).appendTooltip(context, textConsumer, type); if (GlowableItem.isGlowing(stack)) { - lines.add(Text.translatable("item.unicopia.friendship_bracelet.glowing").formatted(Formatting.ITALIC, Formatting.GRAY)); + textConsumer.accept(Text.translatable("item.unicopia.friendship_bracelet.glowing").formatted(Formatting.ITALIC, Formatting.GRAY)); } if (pony != null) { - PonyDiets.getInstance().getDiet(pony).appendTooltip(stack, pony, lines, type); + PonyDiets.getInstance().getDiet(pony).appendTooltip(stack, pony, textConsumer, type); } } diff --git a/src/main/java/com/minelittlepony/unicopia/datagen/providers/FoodGroupsGenerator.java b/src/main/java/com/minelittlepony/unicopia/datagen/providers/FoodGroupsGenerator.java index c2196b79..27679ec6 100644 --- a/src/main/java/com/minelittlepony/unicopia/datagen/providers/FoodGroupsGenerator.java +++ b/src/main/java/com/minelittlepony/unicopia/datagen/providers/FoodGroupsGenerator.java @@ -15,6 +15,7 @@ import com.minelittlepony.unicopia.diet.affliction.StatusEffectAffliction; import com.minelittlepony.unicopia.entity.effect.UEffects; import com.minelittlepony.unicopia.item.UFoodComponents; +import net.fabricmc.fabric.api.tag.convention.v2.ConventionalItemTags; import net.minecraft.component.type.FoodComponent; import net.minecraft.component.type.FoodComponents; import net.minecraft.entity.effect.StatusEffects; @@ -28,9 +29,9 @@ public class FoodGroupsGenerator { public void generate(BiConsumer exporter) { exporter.accept(Unicopia.id("baked_goods"), new FoodGroupEffects.Builder().tag(UTags.Items.BAKED_GOODS).food(FoodComponents.BREAD)); exporter.accept(Unicopia.id("bat_ponys_delight"), new FoodGroupEffects.Builder().tag(UConventionalTags.Items.MANGOES).food(UFoodComponents.MANGO)); - exporter.accept(Unicopia.id("candy"), new FoodGroupEffects.Builder().tag(UConventionalTags.Items.CANDY).food(UFoodComponents.CANDY)); + exporter.accept(Unicopia.id("candy"), new FoodGroupEffects.Builder().tag(ConventionalItemTags.CANDY_FOODS).food(UFoodComponents.CANDY)); exporter.accept(Unicopia.id("desserts"), new FoodGroupEffects.Builder().tag(UConventionalTags.Items.DESSERTS).food(FoodComponents.COOKIE)); - exporter.accept(Unicopia.id("fruit"), new FoodGroupEffects.Builder().tag(UConventionalTags.Items.FRUITS).food(UFoodComponents.BANANA)); + exporter.accept(Unicopia.id("fruit"), new FoodGroupEffects.Builder().tag(ConventionalItemTags.FRUIT_FOODS).food(UFoodComponents.BANANA)); exporter.accept(Unicopia.id("rocks"), new FoodGroupEffects.Builder().tag(UConventionalTags.Items.ROCKS).tag(UTags.Items.ROCK_STEWS).food(FoodComponents.MUSHROOM_STEW)); exporter.accept(Unicopia.id("gems"), new FoodGroupEffects.Builder().tag(UConventionalTags.Items.GEMS)); exporter.accept(Unicopia.id("shells"), new FoodGroupEffects.Builder().tag(UTags.Items.SHELLS).food(UFoodComponents.SHELL)); @@ -46,10 +47,10 @@ public class FoodGroupsGenerator { exporter.accept(Unicopia.id("pinecone"), new FoodGroupEffects.Builder().tag(UConventionalTags.Items.PINECONES).food(UFoodComponents.PINECONE).ailment(new HealingAffliction(1))); provideMeatCategory("fish", - UConventionalTags.Items.COOKED_FISH, UConventionalTags.Items.RAW_FISH, UConventionalTags.Items.ROTTEN_FISH, + ConventionalItemTags.COOKED_FISH_FOODS, ConventionalItemTags.RAW_FISH_FOODS, UConventionalTags.Items.ROTTEN_FISH, FoodComponents.COOKED_COD, FoodComponents.COD, FoodComponents.ROTTEN_FLESH, exporter); provideMeatCategory("meat", - UConventionalTags.Items.COOKED_MEAT, UConventionalTags.Items.RAW_MEAT, UConventionalTags.Items.ROTTEN_MEAT, + ConventionalItemTags.COOKED_MEAT_FOODS, ConventionalItemTags.RAW_MEAT_FOODS, UConventionalTags.Items.ROTTEN_MEAT, FoodComponents.COOKED_BEEF, FoodComponents.BEEF, FoodComponents.ROTTEN_FLESH, exporter); provideMeatCategory("insect", UConventionalTags.Items.COOKED_INSECT, UConventionalTags.Items.RAW_INSECT, UConventionalTags.Items.ROTTEN_INSECT, diff --git a/src/main/java/com/minelittlepony/unicopia/datagen/providers/recipe/URecipeProvider.java b/src/main/java/com/minelittlepony/unicopia/datagen/providers/recipe/URecipeProvider.java index ad85deb9..560d1e00 100644 --- a/src/main/java/com/minelittlepony/unicopia/datagen/providers/recipe/URecipeProvider.java +++ b/src/main/java/com/minelittlepony/unicopia/datagen/providers/recipe/URecipeProvider.java @@ -8,7 +8,6 @@ import java.util.concurrent.CompletableFuture; import java.util.stream.Stream; import org.jetbrains.annotations.Nullable; -import com.minelittlepony.unicopia.UConventionalTags; import com.minelittlepony.unicopia.UTags; import com.minelittlepony.unicopia.Unicopia; import com.minelittlepony.unicopia.ability.magic.spell.crafting.SpellDuplicatingRecipe; @@ -102,7 +101,7 @@ public class URecipeProvider extends FabricRecipeProvider { .input(UTags.Items.MAGIC_FEATHERS) .offerTo(exporter); ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, Items.ARROW, 4) - .input('#', UConventionalTags.Items.STICKS) + .input('#', ConventionalItemTags.WOODEN_RODS) .input('X', Items.FLINT).criterion("has_flint", conditionsFromItem(Items.FLINT)) .input('Y', UTags.Items.MAGIC_FEATHERS).criterion("has_feather", conditionsFromTag(UTags.Items.MAGIC_FEATHERS)) .pattern("X") @@ -227,7 +226,7 @@ public class URecipeProvider extends FabricRecipeProvider { // magic staff ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, UItems.MAGIC_STAFF) .input('*', UItems.GEMSTONE).criterion("has_gemstone", conditionsFromItem(UItems.GEMSTONE)) - .input('#', UConventionalTags.Items.STICKS).criterion("has_stick", conditionsFromTag(UConventionalTags.Items.STICKS)) + .input('#', ConventionalItemTags.WOODEN_RODS).criterion("has_stick", conditionsFromTag(ConventionalItemTags.WOODEN_RODS)) .pattern(" *") .pattern(" # ") .pattern("# ") @@ -269,7 +268,7 @@ public class URecipeProvider extends FabricRecipeProvider { // meadowbrook's staff ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, UItems.MEADOWBROOKS_STAFF) .input('*', UItems.GEMSTONE).criterion(hasItem(UItems.GEMSTONE), conditionsFromItem(UItems.GEMSTONE)) - .input('/', UConventionalTags.Items.STICKS).criterion(hasItem(Items.STICK), conditionsFromTag(UConventionalTags.Items.STICKS)) + .input('/', ConventionalItemTags.WOODEN_RODS).criterion(hasItem(Items.STICK), conditionsFromTag(ConventionalItemTags.WOODEN_RODS)) .pattern(" *") .pattern(" / ") .pattern("/ ") @@ -378,7 +377,7 @@ public class URecipeProvider extends FabricRecipeProvider { appendIngredients(ShapelessRecipeJsonBuilder.create(RecipeCategory.FOOD, UItems.MUFFIN), Items.SUGAR, Items.EGG, Items.POTATO, UItems.JUICE, UItems.WHEAT_WORMS).offerTo(exporter); ShapedRecipeJsonBuilder.create(RecipeCategory.MISC, UItems.MUG) .input('*', Items.IRON_NUGGET).criterion(hasItem(Items.IRON_NUGGET), conditionsFromItem(Items.IRON_NUGGET)) - .input('#', UConventionalTags.Items.STICKS).criterion(hasItem(Items.STICK), conditionsFromTag(UConventionalTags.Items.STICKS)) + .input('#', ConventionalItemTags.WOODEN_RODS).criterion(hasItem(Items.STICK), conditionsFromTag(ConventionalItemTags.WOODEN_RODS)) .pattern("# #") .pattern("* *") .pattern(" # ") @@ -442,7 +441,7 @@ public class URecipeProvider extends FabricRecipeProvider { .input(UItems.TOAST, 8) .offerTo(exporter); ShapelessRecipeJsonBuilder.create(RecipeCategory.FOOD, UItems.CANDIED_APPLE) - .input(UConventionalTags.Items.STICKS) + .input(ConventionalItemTags.WOODEN_RODS) .input(UTags.Items.FRESH_APPLES).criterion(hasItem(Items.APPLE), conditionsFromTag(UTags.Items.FRESH_APPLES)) .input(Items.SUGAR, 4) .offerTo(exporter); @@ -610,7 +609,7 @@ public class URecipeProvider extends FabricRecipeProvider { public static void offerPolearmRecipe(RecipeExporter exporter, ItemConvertible output, Either> input) { CraftingMaterialHelper .input(ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, output), 'o', input).criterion(CraftingMaterialHelper.hasEither(input), CraftingMaterialHelper.conditionsFromEither(input)) - .input('#', UConventionalTags.Items.STICKS) + .input('#', ConventionalItemTags.WOODEN_RODS) .pattern(" o") .pattern(" # ") .pattern("# ") diff --git a/src/main/java/com/minelittlepony/unicopia/datagen/providers/tag/UItemTagProvider.java b/src/main/java/com/minelittlepony/unicopia/datagen/providers/tag/UItemTagProvider.java index 0be7beac..93262d89 100644 --- a/src/main/java/com/minelittlepony/unicopia/datagen/providers/tag/UItemTagProvider.java +++ b/src/main/java/com/minelittlepony/unicopia/datagen/providers/tag/UItemTagProvider.java @@ -19,6 +19,7 @@ import com.minelittlepony.unicopia.server.world.UTreeGen; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; +import net.fabricmc.fabric.api.tag.convention.v2.ConventionalBlockTags; import net.fabricmc.fabric.api.tag.convention.v2.ConventionalItemTags; import net.minecraft.block.Block; import net.minecraft.data.family.BlockFamily; @@ -228,8 +229,8 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider { .toArray(Item[]::new)) .add(UBlocks.UNSTABLE_CLOUD.asItem(), UBlocks.CLOUD_PILLAR.asItem(), UBlocks.CLOUD_DOOR.asItem(), UBlocks.CLOUD_BED.asItem()) .forceAddTag(UTags.Items.BED_SHEETS) - .forceAddTag(UConventionalTags.Items.RAW_FISH) - .forceAddTag(UConventionalTags.Items.COOKED_FISH) + .forceAddTag(ConventionalItemTags.RAW_FISH_FOODS) + .forceAddTag(ConventionalItemTags.COOKED_FISH_FOODS) .forceAddTag(UConventionalTags.Items.ROTTEN_FISH) .forceAddTag(UTags.Items.CLOUD_JARS) .add(UItems.LIGHTNING_JAR) @@ -287,8 +288,8 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider { UBlocks.MYSTERIOUS_EGG.asItem(), UItems.GREEN_FRIED_EGG, UBlocks.HIVE.asItem() ) - .forceAddTag(UConventionalTags.Items.RAW_MEAT) - .forceAddTag(UConventionalTags.Items.COOKED_MEAT) + .forceAddTag(ConventionalItemTags.RAW_MEAT_FOODS) + .forceAddTag(ConventionalItemTags.COOKED_MEAT_FOODS) .forceAddTag(UConventionalTags.Items.ROTTEN_MEAT) .forceAddTag(UConventionalTags.Items.RAW_INSECT) .forceAddTag(UConventionalTags.Items.COOKED_INSECT) @@ -303,9 +304,7 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider { } private void exportConventionalTags() { - copy(UConventionalTags.Blocks.CONCRETES, UConventionalTags.Items.CONCRETES); - copy(UConventionalTags.Blocks.CONCRETE_POWDERS, UConventionalTags.Items.CONCRETE_POWDERS); - copy(UConventionalTags.Blocks.GLAZED_TERRACOTTAS, UConventionalTags.Items.GLAZED_TERRACOTTAS); + copy(ConventionalBlockTags.CONCRETES, UConventionalTags.Items.CONCRETES); copy(UConventionalTags.Blocks.CORAL_BLOCKS, UConventionalTags.Items.CORAL_BLOCKS); copy(UConventionalTags.Blocks.CORAL_FANS, UConventionalTags.Items.CORAL_FANS); copy(UConventionalTags.Blocks.CORALS, UConventionalTags.Items.CORALS); @@ -316,15 +315,14 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider { .addOptionalTag(Identifier.of("c", "pyrite_apples")) // no idea which mod add pyrite apples ; getOrCreateTagBuilder(UConventionalTags.Items.BANANAS).add(UItems.BANANA); - getOrCreateTagBuilder(UConventionalTags.Items.RAW_FISH).add(Items.COD, Items.SALMON, Items.PUFFERFISH, Items.TROPICAL_FISH).addOptionalTag(Identifier.of("c", "mollusks")); - getOrCreateTagBuilder(UConventionalTags.Items.COOKED_FISH).add(Items.COOKED_COD, Items.COOKED_SALMON, UItems.COOKED_TROPICAL_FISH, UItems.COOKED_PUFFERFISH, UItems.FRIED_AXOLOTL); + getOrCreateTagBuilder(ConventionalItemTags.RAW_FISH_FOODS).addOptionalTag(Identifier.of("c", "mollusks")); + getOrCreateTagBuilder(ConventionalItemTags.COOKED_FISH_FOODS).add(UItems.COOKED_TROPICAL_FISH, UItems.COOKED_PUFFERFISH, UItems.FRIED_AXOLOTL); getOrCreateTagBuilder(UConventionalTags.Items.ROTTEN_FISH).add(UItems.ROTTEN_COD, UItems.ROTTEN_TROPICAL_FISH, UItems.ROTTEN_SALMON, UItems.ROTTEN_PUFFERFISH); getOrCreateTagBuilder(ItemTags.FISHES).add( UItems.COOKED_TROPICAL_FISH, UItems.COOKED_PUFFERFISH, UItems.FRIED_AXOLOTL, UItems.ROTTEN_COD, UItems.ROTTEN_TROPICAL_FISH, UItems.ROTTEN_SALMON, UItems.ROTTEN_PUFFERFISH ); - getOrCreateTagBuilder(UConventionalTags.Items.COOKED_MEAT) - .add(Items.COOKED_PORKCHOP, Items.COOKED_BEEF, Items.COOKED_MUTTON, Items.COOKED_RABBIT, Items.COOKED_CHICKEN, Items.RABBIT_STEW) + getOrCreateTagBuilder(ConventionalItemTags.COOKED_MEAT_FOODS) .addOptionalTag(Identifier.of("c", "cooked_bacon")) .addOptionalTag(Identifier.of("c", "cooked_beef")) .addOptionalTag(Identifier.of("c", "cooked_chicken")) @@ -335,8 +333,7 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider { .addOptionalTag(Identifier.of("c", "pork_and_beans")) .addOptionalTag(Identifier.of("c", "pork_jerkies")) .addOptionalTag(Identifier.of("c", "protien")); - getOrCreateTagBuilder(UConventionalTags.Items.RAW_MEAT) - .add(Items.PORKCHOP, Items.BEEF, Items.MUTTON, Items.RABBIT, Items.CHICKEN) + getOrCreateTagBuilder(ConventionalItemTags.RAW_MEAT_FOODS) .addOptionalTag(Identifier.of("c", "raw_bacon")) .addOptionalTag(Identifier.of("c", "raw_beef")) .addOptionalTag(Identifier.of("c", "raw_chicken")) @@ -348,7 +345,6 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider { getOrCreateTagBuilder(UConventionalTags.Items.COOKED_INSECT).add(UItems.COOKED_FROG_LEGS); getOrCreateTagBuilder(UConventionalTags.Items.RAW_INSECT).add(Items.SPIDER_EYE, UItems.BUTTERFLY, UItems.FROG_LEGS, UItems.WHEAT_WORMS, UBlocks.WORM_BLOCK.asItem()); getOrCreateTagBuilder(UConventionalTags.Items.WORMS).add(UItems.WHEAT_WORMS); - getOrCreateTagBuilder(UConventionalTags.Items.STICKS).add(Items.STICK); getOrCreateTagBuilder(UConventionalTags.Items.ROCKS).add(UItems.ROCK); getOrCreateTagBuilder(UConventionalTags.Items.GEMS).add(UItems.GEMSTONE, UItems.BOTCHED_GEM); getOrCreateTagBuilder(UConventionalTags.Items.PINECONES).add(UItems.PINECONE); @@ -368,7 +364,7 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider { .addOptional(Identifier.of("garnished", "nuts")) .addOptional(Identifier.of("garnished", "nut_mix")) .addOptional(Identifier.of("garnished", "neverable_delecacies")); - getOrCreateTagBuilder(UConventionalTags.Items.FRUITS) + getOrCreateTagBuilder(ConventionalItemTags.FRUIT_FOODS) .add(Items.MELON_SLICE, Items.SWEET_BERRIES, Items.GLOW_BERRIES, Items.CHORUS_FRUIT) .add(UItems.JUICE, UItems.ZAP_APPLE, UItems.ZAP_BULB) .forceAddTag(UConventionalTags.Items.MANGOES) @@ -377,7 +373,7 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider { .forceAddTag(UConventionalTags.Items.BANANAS) .addOptionalTag(Identifier.of("garnished", "berries")); getOrCreateTagBuilder(UConventionalTags.Items.DESSERTS).add(Items.CAKE, UItems.APPLE_PIE_SLICE).forceAddTag(UTags.Items.PIES); - getOrCreateTagBuilder(UConventionalTags.Items.CANDY).add(Items.SUGAR, UItems.ROCK_CANDY, UItems.CANDIED_APPLE); + getOrCreateTagBuilder(ConventionalItemTags.CANDY_FOODS).add(Items.SUGAR, UItems.ROCK_CANDY, UItems.CANDIED_APPLE); getOrCreateTagBuilder(UTags.Items.BAKED_GOODS).add( Items.BREAD, Items.COOKIE, Items.PUMPKIN_PIE, UItems.MUFFIN, UItems.SCONE, UItems.COOKED_ZAP_APPLE, UItems.TOAST, UItems.BURNED_TOAST, UItems.JAM_TOAST, UItems.IMPORTED_OATS, @@ -392,18 +388,18 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider { .addOptional(Identifier.of("farmersdelight", "melon_juice")); getOrCreateTagBuilder(TagKey.of(RegistryKeys.ITEM, Identifier.of("farmersdelight", "cabbage_roll_ingredients"))).add(UItems.OATS, UItems.ROCK, UItems.WHEAT_WORMS); getOrCreateTagBuilder(TagKey.of(RegistryKeys.ITEM, Identifier.of("farmersdelight", "comfort_foods"))).add(UItems.OATMEAL, UItems.ROCK_STEW, UItems.MUFFIN); - getOrCreateTagBuilder(UConventionalTags.Items.RAW_FISH) + getOrCreateTagBuilder(ConventionalItemTags.RAW_FISH_FOODS) .addOptional(Identifier.of("farmersdelight", "cod_roll")) .addOptional(Identifier.of("farmersdelight", "salmon_roll")) .addOptional(Identifier.of("farmersdelight", "cod_slice")) .addOptional(Identifier.of("farmersdelight", "salmon_slice")); - getOrCreateTagBuilder(UConventionalTags.Items.COOKED_FISH) + getOrCreateTagBuilder(ConventionalItemTags.COOKED_FISH_FOODS) .addOptional(Identifier.of("farmersdelight", "fish_stew")) .addOptional(Identifier.of("farmersdelight", "baked_cod_stew")) .addOptional(Identifier.of("farmersdelight", "grilled_salmon")); - getOrCreateTagBuilder(UConventionalTags.Items.RAW_MEAT) + getOrCreateTagBuilder(ConventionalItemTags.RAW_MEAT_FOODS) .addOptional(Identifier.of("farmersdelight", "ham")); - getOrCreateTagBuilder(UConventionalTags.Items.COOKED_MEAT) + getOrCreateTagBuilder(ConventionalItemTags.COOKED_MEAT_FOODS) .addOptional(Identifier.of("farmersdelight", "chicken_soup")) .addOptional(Identifier.of("farmersdelight", "bacon_and_eggs")) .addOptional(Identifier.of("farmersdelight", "pasta_with_meatballs")) @@ -422,7 +418,7 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider { .addOptional(Identifier.of("farmersdelight", "steak_and_potatoes")) .addOptional(Identifier.of("farmersdelight", "roasted_mutton_chops")) .addOptional(Identifier.of("farmersdelight", "pasta_with_mutton_chop")); - getOrCreateTagBuilder(UConventionalTags.Items.FRUITS) + getOrCreateTagBuilder(ConventionalItemTags.FRUIT_FOODS) .addOptional(Identifier.of("farmersdelight", "pumpkin_slice")) .addOptional(Identifier.of("farmersdelight", "tomato")) .addOptional(Identifier.of("farmersdelight", "melon_juice")) diff --git a/src/main/java/com/minelittlepony/unicopia/diet/DietProfile.java b/src/main/java/com/minelittlepony/unicopia/diet/DietProfile.java index 642290ec..8bc2846f 100644 --- a/src/main/java/com/minelittlepony/unicopia/diet/DietProfile.java +++ b/src/main/java/com/minelittlepony/unicopia/diet/DietProfile.java @@ -25,7 +25,6 @@ import net.minecraft.network.codec.PacketCodecs; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; -import net.minecraft.util.UseAction; public record DietProfile( float defaultMultiplier, @@ -122,34 +121,31 @@ public record DietProfile( return Pair.of(hungerMultiplier, saturationMultiplier); } - public void appendTooltip(ItemStack stack, @Nullable Pony pony, List tooltip, TooltipType context) { + public void appendTooltip(ItemStack stack, @Nullable Pony pony, Consumer tooltip, TooltipType context) { if (this == EMPTY) { return; } - tooltip.add(Text.translatable("unicopia.diet.information").formatted(Formatting.DARK_PURPLE)); - findEffect(stack).orElseGet(() -> PonyDiets.getInstance().getEffects(stack)).appendTooltip(stack, tooltip, context); - var food = stack.get(DataComponentTypes.FOOD); var ratios = getRatios(stack); if (food == null || isInedible(ratios)) { - if (stack.getUseAction() != UseAction.DRINK) { - tooltip.add(Text.literal(" ").append(Text.translatable("unicopia.diet.not_edible")).formatted(Formatting.DARK_GRAY)); - } return; } + tooltip.accept(Text.translatable("unicopia.diet.information").formatted(Formatting.DARK_PURPLE)); + findEffect(stack).orElseGet(() -> PonyDiets.getInstance().getEffects(stack)).appendTooltip(stack, tooltip, context); + float baseMultiplier = (isForaged(stack) ? foragingMultiplier() : defaultMultiplier()); if (context.isAdvanced()) { var nonAdjustedFood = getNonAdjustedFoodComponent(stack, pony).orElse(food); - tooltip.add(Text.literal(" ").append(Text.translatable("unicopia.diet.base_multiplier", baseMultiplier).formatted(Formatting.DARK_GRAY))); - tooltip.add(Text.literal(" ").append(Text.translatable("unicopia.diet.hunger.detailed", food.nutrition(), nonAdjustedFood.nutrition(), (int)(ratios.getFirst() * 100))).formatted(Formatting.DARK_GRAY)); - tooltip.add(Text.literal(" ").append(Text.translatable("unicopia.diet.saturation.detailed", food.saturation(), nonAdjustedFood.saturation(), (int)(ratios.getSecond() * 100))).formatted(Formatting.DARK_GRAY)); + tooltip.accept(Text.literal(" ").append(Text.translatable("unicopia.diet.base_multiplier", baseMultiplier).formatted(Formatting.DARK_GRAY))); + tooltip.accept(Text.literal(" ").append(Text.translatable("unicopia.diet.hunger.detailed", food.nutrition(), nonAdjustedFood.nutrition(), (int)(ratios.getFirst() * 100))).formatted(Formatting.DARK_GRAY)); + tooltip.accept(Text.literal(" ").append(Text.translatable("unicopia.diet.saturation.detailed", food.saturation(), nonAdjustedFood.saturation(), (int)(ratios.getSecond() * 100))).formatted(Formatting.DARK_GRAY)); } else { - tooltip.add(Text.literal(" ").append(Text.translatable("unicopia.diet.hunger", (int)(ratios.getFirst() * 100))).formatted(Formatting.DARK_GRAY)); - tooltip.add(Text.literal(" ").append(Text.translatable("unicopia.diet.saturation", (int)(ratios.getSecond() * 100))).formatted(Formatting.DARK_GRAY)); + tooltip.accept(Text.literal(" ").append(Text.translatable("unicopia.diet.hunger", (int)(ratios.getFirst() * 100))).formatted(Formatting.DARK_GRAY)); + tooltip.accept(Text.literal(" ").append(Text.translatable("unicopia.diet.saturation", (int)(ratios.getSecond() * 100))).formatted(Formatting.DARK_GRAY)); } } diff --git a/src/main/java/com/minelittlepony/unicopia/diet/Effect.java b/src/main/java/com/minelittlepony/unicopia/diet/Effect.java index c34f9470..731095cd 100644 --- a/src/main/java/com/minelittlepony/unicopia/diet/Effect.java +++ b/src/main/java/com/minelittlepony/unicopia/diet/Effect.java @@ -2,6 +2,7 @@ package com.minelittlepony.unicopia.diet; import java.util.List; import java.util.Optional; +import java.util.function.Consumer; import java.util.function.Predicate; import net.minecraft.component.DataComponentTypes; @@ -21,18 +22,18 @@ public interface Effect extends Predicate { Ailment ailment(); - default void appendTooltip(ItemStack stack, List tooltip, TooltipType context) { + default void appendTooltip(ItemStack stack, Consumer tooltip, TooltipType context) { if (!test(stack)) { if (stack.contains(DataComponentTypes.FOOD)) { - tooltip.add(Text.literal(" ").append(Text.translatable("food_group.unicopia.misc")).formatted(Formatting.GRAY)); + tooltip.accept(Text.literal(" ").append(Text.translatable("food_group.unicopia.misc")).formatted(Formatting.GRAY)); } else if (stack.getUseAction() == UseAction.DRINK) { - tooltip.add(Text.literal(" ").append(Text.translatable("food_group.unicopia.drinks")).formatted(Formatting.GRAY)); + tooltip.accept(Text.literal(" ").append(Text.translatable("food_group.unicopia.drinks")).formatted(Formatting.GRAY)); } } if (context.isAdvanced() && stack.contains(DataComponentTypes.FOOD)) { if (!ailment().effects().isEmpty()) { - tooltip.add(Text.translatable("unicopia.diet.side_effects").formatted(Formatting.DARK_PURPLE)); + tooltip.accept(Text.translatable("unicopia.diet.side_effects").formatted(Formatting.DARK_PURPLE)); ailment().effects().appendTooltip(tooltip); } } diff --git a/src/main/java/com/minelittlepony/unicopia/diet/FoodGroup.java b/src/main/java/com/minelittlepony/unicopia/diet/FoodGroup.java index 56aa5245..16a7ed9f 100644 --- a/src/main/java/com/minelittlepony/unicopia/diet/FoodGroup.java +++ b/src/main/java/com/minelittlepony/unicopia/diet/FoodGroup.java @@ -2,6 +2,7 @@ package com.minelittlepony.unicopia.diet; import java.util.List; import java.util.Optional; +import java.util.function.Consumer; import com.mojang.serialization.Codec; import net.minecraft.component.type.FoodComponent; @@ -39,8 +40,8 @@ public record FoodGroup( return attributes.ailment(); } @Override - public void appendTooltip(ItemStack stack, List tooltip, TooltipType context) { - tooltip.add(Text.literal(" ").append(Text.translatable(Util.createTranslationKey("food_group", id()))).formatted(Formatting.GRAY)); + public void appendTooltip(ItemStack stack, Consumer tooltip, TooltipType context) { + tooltip.accept(Text.literal(" ").append(Text.translatable(Util.createTranslationKey("food_group", id()))).formatted(Formatting.GRAY)); Effect.super.appendTooltip(stack, tooltip, context); } } diff --git a/src/main/java/com/minelittlepony/unicopia/diet/FoodGroupEffects.java b/src/main/java/com/minelittlepony/unicopia/diet/FoodGroupEffects.java index 50e178de..20dc6a2c 100644 --- a/src/main/java/com/minelittlepony/unicopia/diet/FoodGroupEffects.java +++ b/src/main/java/com/minelittlepony/unicopia/diet/FoodGroupEffects.java @@ -3,6 +3,8 @@ package com.minelittlepony.unicopia.diet; import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.function.Consumer; + import com.minelittlepony.unicopia.diet.affliction.Affliction; import com.minelittlepony.unicopia.item.UFoodComponents; import com.mojang.serialization.Codec; @@ -45,10 +47,10 @@ public record FoodGroupEffects( } @Override - public void appendTooltip(ItemStack stack, List tooltip, TooltipType context) { + public void appendTooltip(ItemStack stack, Consumer tooltip, TooltipType context) { tags.forEach(tag -> { if (tag.contains(stack)) { - tooltip.add(Text.literal(" ").append(Text.translatable(Util.createTranslationKey("tag", tag.id()))).formatted(Formatting.GRAY)); + tooltip.accept(Text.literal(" ").append(Text.translatable(Util.createTranslationKey("tag", tag.id()))).formatted(Formatting.GRAY)); } }); Effect.super.appendTooltip(stack, tooltip, context); diff --git a/src/main/java/com/minelittlepony/unicopia/diet/affliction/Affliction.java b/src/main/java/com/minelittlepony/unicopia/diet/affliction/Affliction.java index 1c44fdeb..34070193 100644 --- a/src/main/java/com/minelittlepony/unicopia/diet/affliction/Affliction.java +++ b/src/main/java/com/minelittlepony/unicopia/diet/affliction/Affliction.java @@ -1,6 +1,6 @@ package com.minelittlepony.unicopia.diet.affliction; -import java.util.List; +import java.util.function.Consumer; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; @@ -14,8 +14,8 @@ public interface Affliction { return getType() == AfflictionType.EMPTY; } - default void appendTooltip(List tooltip) { - tooltip.add(Text.literal(" ").append(getName()).formatted(Formatting.DARK_GRAY)); + default void appendTooltip(Consumer tooltip) { + tooltip.accept(Text.literal(" ").append(getName()).formatted(Formatting.DARK_GRAY)); } default Text getName() { diff --git a/src/main/java/com/minelittlepony/unicopia/diet/affliction/CompoundAffliction.java b/src/main/java/com/minelittlepony/unicopia/diet/affliction/CompoundAffliction.java index 7580f6e8..5cedab77 100644 --- a/src/main/java/com/minelittlepony/unicopia/diet/affliction/CompoundAffliction.java +++ b/src/main/java/com/minelittlepony/unicopia/diet/affliction/CompoundAffliction.java @@ -1,6 +1,7 @@ package com.minelittlepony.unicopia.diet.affliction; import java.util.List; +import java.util.function.Consumer; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; @@ -36,7 +37,7 @@ public record CompoundAffliction (List afflictions) implements Affli } @Override - public void appendTooltip(List tooltip) { + public void appendTooltip(Consumer tooltip) { afflictions.forEach(i -> i.appendTooltip(tooltip)); } diff --git a/src/main/java/com/minelittlepony/unicopia/entity/ItemTracker.java b/src/main/java/com/minelittlepony/unicopia/entity/ItemTracker.java index 6877771f..a4dbc31a 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/ItemTracker.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/ItemTracker.java @@ -16,6 +16,7 @@ import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.util.Identifier; +import net.minecraft.util.math.MathHelper; import net.minecraft.registry.Registries; import net.minecraft.registry.RegistryWrapper.WrapperLookup; @@ -25,7 +26,8 @@ public class ItemTracker implements NbtSerialisable, Copyable, Tick public static final long HOURS = 1000 * TICKS; public static final long DAYS = 24 * HOURS; - public static String formatTicks(long ticks) { + public static String formatTicks(long ticks, float tickRate) { + ticks = MathHelper.floor(ticks / tickRate); long days = ticks / (SECONDS * 60 * 24); ticks %= (SECONDS * 60 * 60 * 24); long hours = ticks / (SECONDS * 60 * 60); diff --git a/src/main/java/com/minelittlepony/unicopia/entity/Living.java b/src/main/java/com/minelittlepony/unicopia/entity/Living.java index dc881d44..ad988d8a 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/Living.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/Living.java @@ -430,7 +430,7 @@ public abstract class Living implements Equine, Caste return Stream.of(entity.getStackInHand(Hand.MAIN_HAND), entity.getStackInHand(Hand.OFF_HAND)); } - protected Stream getArmourStacks() { + public Stream getArmourStacks() { if (!TrinketsDelegate.hasTrinkets()) { return StreamSupport.stream(entity.getArmorItems().spliterator(), false); } diff --git a/src/main/java/com/minelittlepony/unicopia/item/AlicornAmuletItem.java b/src/main/java/com/minelittlepony/unicopia/item/AlicornAmuletItem.java index 43dcf4b9..99be60f7 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/AlicornAmuletItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/AlicornAmuletItem.java @@ -27,7 +27,6 @@ import it.unimi.dsi.fastutil.objects.Object2FloatMaps; import it.unimi.dsi.fastutil.objects.Object2FloatOpenHashMap; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.client.MinecraftClient; import net.minecraft.component.EnchantmentEffectComponentTypes; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.enchantment.Enchantments; @@ -78,14 +77,14 @@ public class AlicornAmuletItem extends AmuletItem implements ItemTracker.Trackab @Environment(EnvType.CLIENT) @Override public void appendTooltip(ItemStack stack, TooltipContext context, List tooltip, TooltipType type) { - Pony pony = Pony.of(MinecraftClient.getInstance().player); - - if (pony != null) { - long ticks = pony.getArmour().getTicks(this); - if (ticks > 0) { - tooltip.add(Text.literal(ItemTracker.formatTicks(ticks).formatted(Formatting.GRAY))); + ItemStackDuck.of(stack).getTransientComponents().getCarrier().flatMap(Pony::of).ifPresent(pony -> { + if (pony.getArmourStacks().anyMatch(i -> i == stack)) { + long ticks = pony.getArmour().getTicks(this); + if (ticks > 0) { + tooltip.add(Text.literal(ItemTracker.formatTicks(ticks, context.getUpdateTickRate()).formatted(Formatting.GRAY))); + } } - } + }); } @Override diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index 6005597f..dfd7f4cf 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -788,6 +788,101 @@ "respawn.reason.joined_new_tribe": "%1$s was reborn as a %2$s", "respawn.reason.illegal_race": "The %s race is not permitted by your server's configuration.", + + "tag.item.unicopia.groups.foraging": "Creative Tabs: Foraging", + "tag.item.unicopia.groups.sea_pony": "Creative Tabs: Seapony", + "tag.item.unicopia.groups.earth_pony": "Creative Tabs: Earth Pony", + "tag.item.unicopia.groups.bat_pony": "Creative Tabs: Bat Pony", + "tag.item.unicopia.groups.changeling": "Creative Tabs: Changeling", + "tag.item.unicopia.groups.pegasus": "Creative Tabs: Pegasus", + "tag.item.unicopia.groups.unicorn": "Creative Tabs: Unicorn", + + "tag.item.unicopia.forage.severe.prickly": "Foraged with high chance of harming", + "tag.item.unicopia.forage.dangerous": "Dangerous to Forage", + "tag.item.unicopia.forage.blinding": "Foraged with chance to blinding", + "tag.item.unicopia.forage.nauseating": "Foraged with chance of nausea", + "tag.item.unicopia.forage.prickly": "Foraged with chance of harm", + "tag.item.unicopia.forage.severe.nauseating": "Foraged with high chance of nausea", + "tag.item.unicopia.forage.risky": "Foraged with Minor Risk", + "tag.item.unicopia.forage.safe": "Safe to Forage", + "tag.item.unicopia.forage.filling": "Safe to Forage (Filling)", + "tag.item.unicopia.forage.glowing": "Foraged with change of glowing", + "tag.item.unicopia.forage.strengthening": "Foraged with chance of strength", + + "tag.item.unicopia.food_types.high_quality_sea_vegetables": "High Quality Sea Vegetables", + "tag.item.unicopia.food_types.low_quality_sea_vegetables": "Low Quality Sea Vegetables", + + "tag.item.unicopia.polearms": "Polearms", + "tag.item.unicopia.magic_feathers": "Magic Feathers", + "tag.item.unicopia.can_cut_pie": "Can Cut Pie", + "tag.item.unicopia.cloud_jars": "Cloud Jars", + "tag.item.unicopia.baskets": "Baskets", + "tag.item.unicopia.shades": "Shades", + "tag.item.unicopia.shells": "Shells", + "tag.item.unicopia.zap_logs": "Apple Apple Logs", + "tag.item.unicopia.spooked_mob_drops": "Dropped by spooked mobs", + "tag.item.unicopia.wool_bed_sheets": "Wool bed Sheets", + "tag.item.unicopia.is_delivered_aggressively": "Aggressively Delivered", + "tag.item.unicopia.cools_off_kirins": "Cools off kirins", + "tag.item.unicopia.loot_bug_common_drops": "Common Loot Bug Drops", + "tag.item.unicopia.loot_bug_rare_drops": "Rare Loot Bug Drops", + "tag.item.unicopia.loot_bug_epic_drops": "Epic Loot Bug Drops", + "tag.item.unicopia.badges": "Tribe Badges", + "tag.item.unicopia.apple_seeds": "Apple Seeds", + "tag.item.unicopia.bed_sheets": "Bed Sheets", + "tag.item.unicopia.cloud_blocks": "Cloud Blocks", + "tag.item.unicopia.cloud_slabs": "Cloud Slabs", + "tag.item.unicopia.pies": "Pies", + "tag.item.unicopia.palm_logs": "Palm Logs", + "tag.item.unicopia.special_shells": "Special Shells", + "tag.item.unicopia.rock_stews": "Rock Stews", + "tag.item.unicopia.chitin_blocks": "Chitin Blocks", + "tag.item.unicopia.floats_on_clouds": "Floats on Clouds", + "tag.item.unicopia.falls_slowly": "Falls Slowly", + "tag.item.unicopia.container_with_love": "Filled Love Container", + "tag.item.unicopia.baked_goods": "Baked Goods", + "tag.item.unicopia.horse_shoes": "Horseshoes", + "tag.item.unicopia.cloud_beds": "Cloud beds", + "tag.item.unicopia.waxed_zap_logs": "Waxed Zap Logs", + "tag.item.unicopia.cloud_stairs": "Cloud Stairs", + "tag.item.unicopia.fresh_apples": "Fresh Apples", + "tag.item.unicopia.has_no_traits": "Has No Traits", + + "tag.item.c.foods.acorn": "Acorns", + "tag.item.c.foods.apple": "Apples", + "tag.item.c.foods.dessert": "Desserts", + "tag.item.c.foods.banana": "Bananas", + "tag.item.c.foods.pinecone": "Pinecones", + "tag.item.c.rocks": "Rocks", + "tag.item.c.nuts": "Nuts", + "tag.item.c.worms": "Worms", + "tag.item.c.foods.pineapple": "Pineapples", + "tag.item.c.foods.mushroom": "Mushrooms", + "tag.item.c.foods.raw_insect": "Raw Insects", + "tag.item.c.coral_blocks": "Coral Blocks", + "tag.item.c.foods.muffin": "Muffins", + "tag.item.c.foods.mango": "Mangoes", + "tag.item.c.foods.rotten_meat": "Rotten Meat", + "tag.item.c.coral_fans": "Coral Fans", + "tag.item.c.corals": "Corals", + "tag.item.c.foods.rotten_insect": "Rotten Insects", + "tag.item.c.foods.cooked_insect": "Cooked Incest", + "tag.item.c.foods.rotten_fish": "Rotten Fish", + "tag.item.c.foods.oatmeal": "Oatmeals", + "tag.item.c.grain": "Grain", + + "tag.item.farmersdelight.cabbage_roll_ingredients": "Farmer's Delight Cabbage Role Ingredients", + "tag.item.farmersdelight.comfort_foods": "Farmer's Delight Comfort Foods", + + "tag.item.trinkets.offhand.glove": "Offhand Glove Trinket", + "tag.item.trinkets.hand.glove": "Mainhand Glove Trinket", + "tag.item.trinkets.chest.necklace": "Necklace Trinket", + "tag.item.trinkets.head.face": "Face Trinket", + + "tag.item.sereneseasons.spring_crops": "Serene Seasons' Spring Crops", + "tag.item.sereneseasons.summer_crops": "Serene Seasons' Summer Crops", + "tag.item.sereneseasons.autumn_crops": "Serene Seasons' Autumn Crops", + "tag.item.sereneseasons.winter_crops": "Serene Seasons' Winter Crops", "gui.unicopia.tribe_selection.respawn": "You have died.", "gui.unicopia.tribe_selection.respawn.journey": "But the end is not all, for at the end of every end is another beginning.", diff --git a/src/main/resources/data/trinkets/tags/items/chest/necklace.json b/src/main/resources/data/trinkets/tags/item/chest/necklace.json similarity index 100% rename from src/main/resources/data/trinkets/tags/items/chest/necklace.json rename to src/main/resources/data/trinkets/tags/item/chest/necklace.json diff --git a/src/main/resources/data/trinkets/tags/items/hand/glove.json b/src/main/resources/data/trinkets/tags/item/hand/glove.json similarity index 100% rename from src/main/resources/data/trinkets/tags/items/hand/glove.json rename to src/main/resources/data/trinkets/tags/item/hand/glove.json diff --git a/src/main/resources/data/trinkets/tags/items/head/face.json b/src/main/resources/data/trinkets/tags/item/head/face.json similarity index 100% rename from src/main/resources/data/trinkets/tags/items/head/face.json rename to src/main/resources/data/trinkets/tags/item/head/face.json diff --git a/src/main/resources/data/trinkets/tags/items/offhand/glove.json b/src/main/resources/data/trinkets/tags/item/offhand/glove.json similarity index 100% rename from src/main/resources/data/trinkets/tags/items/offhand/glove.json rename to src/main/resources/data/trinkets/tags/item/offhand/glove.json