From 4a41a14bbb787769ce0ecaa56697320e114a4aa1 Mon Sep 17 00:00:00 2001 From: secret_online Date: Mon, 15 Dec 2025 13:27:20 +1300 Subject: [PATCH 001/113] Add new data generation for tiny flower data --- .../tinyflowers/datagen/DataGenerator.java | 1 + .../datagen/TinyFlowersProvider.java | 37 ++++++++ .../datagen/data/DefaultTinyFlowerData.java | 86 +++++++++++++++++++ .../tiny_flowers/leaf_litter.json | 5 ++ .../tiny_flowers/pink_petals.json | 5 ++ .../tiny_flowers/tiny_allium.json | 9 ++ .../tiny_flowers/tiny_azure_bluet.json | 9 ++ .../tiny_flowers/tiny_blue_orchid.json | 9 ++ .../tiny_flowers/tiny_cactus_flower.json | 5 ++ .../tiny_flowers/tiny_closed_eyeblossom.json | 9 ++ .../tiny_flowers/tiny_cornflower.json | 9 ++ .../tiny_flowers/tiny_dandelion.json | 9 ++ .../tiny_flowers/tiny_lily_of_the_valley.json | 9 ++ .../tiny_flowers/tiny_open_eyeblossom.json | 9 ++ .../tiny_flowers/tiny_orange_tulip.json | 9 ++ .../tiny_flowers/tiny_oxeye_daisy.json | 9 ++ .../tiny_flowers/tiny_pink_tulip.json | 9 ++ .../tiny-flowers/tiny_flowers/tiny_poppy.json | 9 ++ .../tiny_flowers/tiny_red_tulip.json | 9 ++ .../tiny_flowers/tiny_torchflower.json | 9 ++ .../tiny_flowers/tiny_white_tulip.json | 9 ++ .../tiny_flowers/tiny_wither_rose.json | 9 ++ .../tiny_flowers/wildflowers.json | 5 ++ .../tinyflowers/TinyFlowerData.java | 20 +++++ 24 files changed, 308 insertions(+) create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/leaf_litter.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/pink_petals.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_allium.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_azure_bluet.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_blue_orchid.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cactus_flower.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_closed_eyeblossom.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cornflower.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_dandelion.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_lily_of_the_valley.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_open_eyeblossom.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_orange_tulip.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_oxeye_daisy.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_pink_tulip.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_poppy.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_red_tulip.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_torchflower.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_white_tulip.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_wither_rose.json create mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/wildflowers.json create mode 100644 src/main/java/co/secretonline/tinyflowers/TinyFlowerData.java diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java index 0a4cce84..12a3cfe5 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java @@ -13,6 +13,7 @@ public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { pack.addProvider(BlockLootTableProvider::new); pack.addProvider(ItemTagProvider::new); pack.addProvider(RecipeProvider::new); + pack.addProvider(TinyFlowersProvider::new); } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java new file mode 100644 index 00000000..25cd6cb9 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java @@ -0,0 +1,37 @@ +package co.secretonline.tinyflowers.datagen; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +import co.secretonline.tinyflowers.TinyFlowerData; +import co.secretonline.tinyflowers.datagen.data.DefaultTinyFlowerData; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.minecraft.data.CachedOutput; +import net.minecraft.data.DataProvider; +import net.minecraft.data.PackOutput.PathProvider; +import net.minecraft.data.PackOutput.Target; +import net.minecraft.resources.Identifier; + +public class TinyFlowersProvider implements DataProvider { + private final PathProvider tinyFlowersPathProvider; + + public TinyFlowersProvider(FabricDataOutput packOutput) { + this.tinyFlowersPathProvider = packOutput.createPathProvider(Target.DATA_PACK, "tiny_flowers"); + } + + @Override + public String getName() { + return "Tiny Flower Variants"; + } + + @Override + public CompletableFuture run(CachedOutput cachedOutput) { + Map flowerVariantItems = new HashMap<>(); + for (TinyFlowerData variant : DefaultTinyFlowerData.ALL_VARIANTS) { + flowerVariantItems.put(variant.id(), variant); + } + + return DataProvider.saveAll(cachedOutput, TinyFlowerData.CODEC, this.tinyFlowersPathProvider, flowerVariantItems); + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java b/src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java new file mode 100644 index 00000000..1f48803c --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java @@ -0,0 +1,86 @@ +package co.secretonline.tinyflowers.datagen.data; + +import java.util.ArrayList; +import java.util.List; + +import org.jetbrains.annotations.Nullable; + +import co.secretonline.tinyflowers.TinyFlowerData; +import co.secretonline.tinyflowers.TinyFlowers; +import net.minecraft.resources.Identifier; +import net.minecraft.util.Mth; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; + +public class DefaultTinyFlowerData { + + public static final List ALL_VARIANTS = new ArrayList<>(); + + private static TinyFlowerData register(Identifier id, Identifier originalId, boolean shouldCreateItem, + @Nullable Entry stewEffect) { + TinyFlowerData instance = new TinyFlowerData(id, originalId, shouldCreateItem, stewEffect); + ALL_VARIANTS.add(instance); + return instance; + } + + public static final TinyFlowerData PINK_PETALS = register(TinyFlowers.id("pink_petals"), + Identifier.withDefaultNamespace("pink_petals"), false, null); + public static final TinyFlowerData WILDFLOWERS = register(TinyFlowers.id("wildflowers"), + Identifier.withDefaultNamespace("wildflowers"), false, null); + public static final TinyFlowerData LEAF_LITTER = register(TinyFlowers.id("leaf_litter"), + Identifier.withDefaultNamespace("leaf_litter"), false, null); + public static final TinyFlowerData DANDELION = register(TinyFlowers.id("tiny_dandelion"), + Identifier.withDefaultNamespace("dandelion"), + true, new Entry(MobEffects.SATURATION, toTicks(0.35f))); + public static final TinyFlowerData POPPY = register(TinyFlowers.id("tiny_poppy"), + Identifier.withDefaultNamespace("poppy"), + true, new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f))); + public static final TinyFlowerData BLUE_ORCHID = register(TinyFlowers.id("tiny_blue_orchid"), + Identifier.withDefaultNamespace("blue_orchid"), + true, new Entry(MobEffects.SATURATION, toTicks(0.35f))); + public static final TinyFlowerData ALLIUM = register(TinyFlowers.id("tiny_allium"), + Identifier.withDefaultNamespace("allium"), + true, new Entry(MobEffects.FIRE_RESISTANCE, toTicks(3.0f))); + public static final TinyFlowerData AZURE_BLUET = register(TinyFlowers.id("tiny_azure_bluet"), + Identifier.withDefaultNamespace("azure_bluet"), + true, new Entry(MobEffects.BLINDNESS, toTicks(11.0f))); + public static final TinyFlowerData RED_TULIP = register(TinyFlowers.id("tiny_red_tulip"), + Identifier.withDefaultNamespace("red_tulip"), + true, new Entry(MobEffects.WEAKNESS, toTicks(7.0f))); + public static final TinyFlowerData ORANGE_TULIP = register(TinyFlowers.id("tiny_orange_tulip"), + Identifier.withDefaultNamespace("orange_tulip"), + true, new Entry(MobEffects.WEAKNESS, toTicks(7.0f))); + public static final TinyFlowerData WHITE_TULIP = register(TinyFlowers.id("tiny_white_tulip"), + Identifier.withDefaultNamespace("white_tulip"), + true, new Entry(MobEffects.WEAKNESS, toTicks(7.0f))); + public static final TinyFlowerData PINK_TULIP = register(TinyFlowers.id("tiny_pink_tulip"), + Identifier.withDefaultNamespace("pink_tulip"), + true, new Entry(MobEffects.WEAKNESS, toTicks(7.0f))); + public static final TinyFlowerData OXEYE_DAISY = register(TinyFlowers.id("tiny_oxeye_daisy"), + Identifier.withDefaultNamespace("oxeye_daisy"), + true, new Entry(MobEffects.REGENERATION, toTicks(7.0f))); + public static final TinyFlowerData CORNFLOWER = register(TinyFlowers.id("tiny_cornflower"), + Identifier.withDefaultNamespace("cornflower"), + true, new Entry(MobEffects.JUMP_BOOST, toTicks(5.0f))); + public static final TinyFlowerData LILY_OF_THE_VALLEY = register( + TinyFlowers.id("tiny_lily_of_the_valley"), Identifier.withDefaultNamespace("lily_of_the_valley"), + true, new Entry(MobEffects.POISON, toTicks(11.0f))); + public static final TinyFlowerData TORCHFLOWER = register(TinyFlowers.id("tiny_torchflower"), + Identifier.withDefaultNamespace("torchflower"), + true, new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f))); + public static final TinyFlowerData CLOSED_EYEBLOSSOM = register(TinyFlowers.id("tiny_closed_eyeblossom"), + Identifier.withDefaultNamespace("closed_eyeblossom"), + true, new Entry(MobEffects.NAUSEA, toTicks(7.0f))); + public static final TinyFlowerData OPEN_EYEBLOSSOM = register(TinyFlowers.id("tiny_open_eyeblossom"), + Identifier.withDefaultNamespace("open_eyeblossom"), + true, new Entry(MobEffects.BLINDNESS, toTicks(11.0f))); + public static final TinyFlowerData WITHER_ROSE = register(TinyFlowers.id("tiny_wither_rose"), + Identifier.withDefaultNamespace("wither_rose"), + true, new Entry(MobEffects.WITHER, toTicks(7.0f))); + public static final TinyFlowerData CACTUS_FLOWER = register(TinyFlowers.id("tiny_cactus_flower"), + Identifier.withDefaultNamespace("cactus_flower"), true, null); + + private static int toTicks(float seconds) { + return Mth.floor(seconds * 20.0f); + } +} diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/leaf_litter.json b/src/main/generated/data/tiny-flowers/tiny_flowers/leaf_litter.json new file mode 100644 index 00000000..728fb2a1 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/leaf_litter.json @@ -0,0 +1,5 @@ +{ + "id": "tiny-flowers:leaf_litter", + "original_id": "minecraft:leaf_litter", + "should_create_item": false +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/pink_petals.json b/src/main/generated/data/tiny-flowers/tiny_flowers/pink_petals.json new file mode 100644 index 00000000..07bec0cd --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/pink_petals.json @@ -0,0 +1,5 @@ +{ + "id": "tiny-flowers:pink_petals", + "original_id": "minecraft:pink_petals", + "should_create_item": false +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_allium.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_allium.json new file mode 100644 index 00000000..cdb0f0b1 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_allium.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_allium", + "original_id": "minecraft:allium", + "should_create_item": true, + "stew_effect": { + "duration": 60, + "id": "minecraft:fire_resistance" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_azure_bluet.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_azure_bluet.json new file mode 100644 index 00000000..4ba2d5d1 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_azure_bluet.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_azure_bluet", + "original_id": "minecraft:azure_bluet", + "should_create_item": true, + "stew_effect": { + "duration": 220, + "id": "minecraft:blindness" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_blue_orchid.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_blue_orchid.json new file mode 100644 index 00000000..70dae1c5 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_blue_orchid.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_blue_orchid", + "original_id": "minecraft:blue_orchid", + "should_create_item": true, + "stew_effect": { + "duration": 7, + "id": "minecraft:saturation" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cactus_flower.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cactus_flower.json new file mode 100644 index 00000000..1e7b01bc --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cactus_flower.json @@ -0,0 +1,5 @@ +{ + "id": "tiny-flowers:tiny_cactus_flower", + "original_id": "minecraft:cactus_flower", + "should_create_item": true +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_closed_eyeblossom.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_closed_eyeblossom.json new file mode 100644 index 00000000..bcc79b48 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_closed_eyeblossom.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_closed_eyeblossom", + "original_id": "minecraft:closed_eyeblossom", + "should_create_item": true, + "stew_effect": { + "duration": 140, + "id": "minecraft:nausea" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cornflower.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cornflower.json new file mode 100644 index 00000000..61ed760d --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cornflower.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_cornflower", + "original_id": "minecraft:cornflower", + "should_create_item": true, + "stew_effect": { + "duration": 100, + "id": "minecraft:jump_boost" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_dandelion.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_dandelion.json new file mode 100644 index 00000000..ca2cb1c9 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_dandelion.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_dandelion", + "original_id": "minecraft:dandelion", + "should_create_item": true, + "stew_effect": { + "duration": 7, + "id": "minecraft:saturation" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_lily_of_the_valley.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_lily_of_the_valley.json new file mode 100644 index 00000000..d7df94b3 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_lily_of_the_valley.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_lily_of_the_valley", + "original_id": "minecraft:lily_of_the_valley", + "should_create_item": true, + "stew_effect": { + "duration": 220, + "id": "minecraft:poison" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_open_eyeblossom.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_open_eyeblossom.json new file mode 100644 index 00000000..9ab08d6d --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_open_eyeblossom.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_open_eyeblossom", + "original_id": "minecraft:open_eyeblossom", + "should_create_item": true, + "stew_effect": { + "duration": 220, + "id": "minecraft:blindness" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_orange_tulip.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_orange_tulip.json new file mode 100644 index 00000000..bbc9a8b9 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_orange_tulip.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_orange_tulip", + "original_id": "minecraft:orange_tulip", + "should_create_item": true, + "stew_effect": { + "duration": 140, + "id": "minecraft:weakness" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_oxeye_daisy.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_oxeye_daisy.json new file mode 100644 index 00000000..131aac42 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_oxeye_daisy.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_oxeye_daisy", + "original_id": "minecraft:oxeye_daisy", + "should_create_item": true, + "stew_effect": { + "duration": 140, + "id": "minecraft:regeneration" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_pink_tulip.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_pink_tulip.json new file mode 100644 index 00000000..cf819fc0 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_pink_tulip.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_pink_tulip", + "original_id": "minecraft:pink_tulip", + "should_create_item": true, + "stew_effect": { + "duration": 140, + "id": "minecraft:weakness" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_poppy.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_poppy.json new file mode 100644 index 00000000..23909590 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_poppy.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_poppy", + "original_id": "minecraft:poppy", + "should_create_item": true, + "stew_effect": { + "duration": 100, + "id": "minecraft:night_vision" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_red_tulip.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_red_tulip.json new file mode 100644 index 00000000..f82ced78 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_red_tulip.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_red_tulip", + "original_id": "minecraft:red_tulip", + "should_create_item": true, + "stew_effect": { + "duration": 140, + "id": "minecraft:weakness" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_torchflower.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_torchflower.json new file mode 100644 index 00000000..cd43f2cd --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_torchflower.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_torchflower", + "original_id": "minecraft:torchflower", + "should_create_item": true, + "stew_effect": { + "duration": 100, + "id": "minecraft:night_vision" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_white_tulip.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_white_tulip.json new file mode 100644 index 00000000..a0f23a17 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_white_tulip.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_white_tulip", + "original_id": "minecraft:white_tulip", + "should_create_item": true, + "stew_effect": { + "duration": 140, + "id": "minecraft:weakness" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_wither_rose.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_wither_rose.json new file mode 100644 index 00000000..2c622bb3 --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_wither_rose.json @@ -0,0 +1,9 @@ +{ + "id": "tiny-flowers:tiny_wither_rose", + "original_id": "minecraft:wither_rose", + "should_create_item": true, + "stew_effect": { + "duration": 140, + "id": "minecraft:wither" + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/wildflowers.json b/src/main/generated/data/tiny-flowers/tiny_flowers/wildflowers.json new file mode 100644 index 00000000..7927bd0e --- /dev/null +++ b/src/main/generated/data/tiny-flowers/tiny_flowers/wildflowers.json @@ -0,0 +1,5 @@ +{ + "id": "tiny-flowers:wildflowers", + "original_id": "minecraft:wildflowers", + "should_create_item": false +} \ No newline at end of file diff --git a/src/main/java/co/secretonline/tinyflowers/TinyFlowerData.java b/src/main/java/co/secretonline/tinyflowers/TinyFlowerData.java new file mode 100644 index 00000000..34ca91b1 --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/TinyFlowerData.java @@ -0,0 +1,20 @@ +package co.secretonline.tinyflowers; + +import org.jetbrains.annotations.Nullable; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; + +import net.minecraft.resources.Identifier; +import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; + +public record TinyFlowerData(Identifier id, Identifier originalId, boolean shouldCreateItem, + @Nullable Entry stewEffect) { + + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerData::id), + Identifier.CODEC.fieldOf("original_id").forGetter(TinyFlowerData::originalId), + Codec.BOOL.fieldOf("should_create_item").forGetter(TinyFlowerData::shouldCreateItem), + Entry.CODEC.optionalFieldOf("stew_effect", null).forGetter(TinyFlowerData::stewEffect)) + .apply(instance, TinyFlowerData::new)); +} From 9026ff58ab561e0d166e0af4a38302535a4cb671 Mon Sep 17 00:00:00 2001 From: secret_online Date: Tue, 16 Dec 2025 11:19:59 +1300 Subject: [PATCH 002/113] Rename mod, and more datagen --- MODRINTH.md | 2 +- build.gradle | 2 +- gradle.properties | 2 +- package-lock.json | 4 +- package.json | 2 +- .../datagen/TinyFlowersProvider.java | 6 +- .../datagen/data/DefaultTinyFlowerData.java | 7 +- .../models/block/garden_1.json | 0 .../models/block/garden_2.json | 0 .../models/block/garden_3.json | 0 .../models/block/garden_4.json | 0 .../models/block/garden_double_1.json | 0 .../models/block/garden_double_2.json | 0 .../models/block/garden_double_3.json | 0 .../models/block/garden_double_4.json | 0 .../block/garden_double_untinted_1.json | 0 .../block/garden_double_untinted_2.json | 0 .../block/garden_double_untinted_3.json | 0 .../block/garden_double_untinted_4.json | 0 .../block/garden_double_untinted_glow_1.json | 0 .../block/garden_double_untinted_glow_2.json | 0 .../block/garden_double_untinted_glow_3.json | 0 .../block/garden_double_untinted_glow_4.json | 0 .../models/block/garden_leaf_litter_1.json | 0 .../models/block/garden_leaf_litter_2.json | 0 .../models/block/garden_leaf_litter_3.json | 0 .../models/block/garden_leaf_litter_4.json | 0 .../models/block/garden_low_untinted_1.json | 0 .../models/block/garden_low_untinted_2.json | 0 .../models/block/garden_low_untinted_3.json | 0 .../models/block/garden_low_untinted_4.json | 0 .../models/block/garden_tall_1.json | 0 .../models/block/garden_tall_2.json | 0 .../models/block/garden_tall_3.json | 0 .../models/block/garden_tall_4.json | 0 .../block/garden_triple_untinted_1.json | 0 .../block/garden_triple_untinted_2.json | 0 .../block/garden_triple_untinted_3.json | 0 .../block/garden_triple_untinted_4.json | 0 .../models/block/garden_untinted_1.json | 0 .../models/block/garden_untinted_2.json | 0 .../models/block/garden_untinted_3.json | 0 .../models/block/garden_untinted_4.json | 0 .../textures/block/tall_tiny_flower_stem.png | Bin .../textures/block/tiny_allium.png | Bin .../textures/block/tiny_azure_bluet.png | Bin .../textures/block/tiny_blue_orchid.png | Bin .../textures/block/tiny_blue_orchid_upper.png | Bin .../textures/block/tiny_cactus_flower.png | Bin .../block/tiny_cactus_flower_stem.png | Bin .../textures/block/tiny_closed_eyeblossom.png | Bin .../textures/block/tiny_cornflower.png | Bin .../textures/block/tiny_dandelion.png | Bin .../textures/block/tiny_eyeblossom_stem.png | Bin .../block/tiny_lily_of_the_valley.png | Bin .../block/tiny_lily_of_the_valley_upper.png | Bin .../textures/block/tiny_open_eyeblossom.png | Bin .../block/tiny_open_eyeblossom_upper.png | Bin .../textures/block/tiny_orange_tulip.png | Bin .../textures/block/tiny_oxeye_daisy.png | Bin .../textures/block/tiny_pink_tulip.png | Bin .../textures/block/tiny_poppy.png | Bin .../textures/block/tiny_red_tulip.png | Bin .../textures/block/tiny_torchflower.png | Bin .../block/tiny_torchflower_middle.png | Bin .../textures/block/tiny_torchflower_stem.png | Bin .../textures/block/tiny_torchflower_upper.png | Bin .../textures/block/tiny_white_tulip.png | Bin .../textures/block/tiny_wither_rose.png | Bin .../textures/block/tiny_wither_rose_stem.png | Bin .../textures/item/florists_shears.png | Bin .../textures/item/florists_shears_handle.png | Bin .../textures/item/tiny_allium.png | Bin .../textures/item/tiny_azure_bluet.png | Bin .../textures/item/tiny_blue_orchid.png | Bin .../textures/item/tiny_cactus_flower.png | Bin .../textures/item/tiny_closed_eyeblossom.png | Bin .../textures/item/tiny_cornflower.png | Bin .../textures/item/tiny_dandelion.png | Bin .../textures/item/tiny_garden.png | Bin .../textures/item/tiny_lily_of_the_valley.png | Bin .../textures/item/tiny_open_eyeblossom.png | Bin .../textures/item/tiny_orange_tulip.png | Bin .../textures/item/tiny_oxeye_daisy.png | Bin .../textures/item/tiny_pink_tulip.png | Bin .../textures/item/tiny_poppy.png | Bin .../textures/item/tiny_red_tulip.png | Bin .../textures/item/tiny_torchflower.png | Bin .../textures/item/tiny_white_tulip.png | Bin .../textures/item/tiny_wither_rose.png | Bin ...s.json => tiny_flowers.client.mixins.json} | 0 .../items/tiny_cactus_flower.json | 6 - .../items/tiny_closed_eyeblossom.json | 6 - .../items/tiny_lily_of_the_valley.json | 6 - .../items/tiny_open_eyeblossom.json | 6 - .../models/block/tiny_allium_1.json | 8 - .../models/block/tiny_allium_2.json | 8 - .../models/block/tiny_allium_3.json | 8 - .../models/block/tiny_allium_4.json | 8 - .../models/block/tiny_azure_bluet_1.json | 8 - .../models/block/tiny_azure_bluet_2.json | 8 - .../models/block/tiny_azure_bluet_3.json | 8 - .../models/block/tiny_azure_bluet_4.json | 8 - .../models/block/tiny_blue_orchid_1.json | 9 - .../models/block/tiny_blue_orchid_2.json | 9 - .../models/block/tiny_blue_orchid_3.json | 9 - .../models/block/tiny_blue_orchid_4.json | 9 - .../models/block/tiny_cactus_flower_1.json | 8 - .../models/block/tiny_cactus_flower_2.json | 8 - .../models/block/tiny_cactus_flower_3.json | 8 - .../models/block/tiny_cactus_flower_4.json | 8 - .../block/tiny_closed_eyeblossom_1.json | 8 - .../block/tiny_closed_eyeblossom_2.json | 8 - .../block/tiny_closed_eyeblossom_3.json | 8 - .../block/tiny_closed_eyeblossom_4.json | 8 - .../models/block/tiny_cornflower_1.json | 8 - .../models/block/tiny_cornflower_2.json | 8 - .../models/block/tiny_cornflower_3.json | 8 - .../models/block/tiny_cornflower_4.json | 8 - .../models/block/tiny_dandelion_1.json | 8 - .../models/block/tiny_dandelion_2.json | 8 - .../models/block/tiny_dandelion_3.json | 8 - .../models/block/tiny_dandelion_4.json | 8 - .../block/tiny_lily_of_the_valley_1.json | 9 - .../block/tiny_lily_of_the_valley_2.json | 9 - .../block/tiny_lily_of_the_valley_3.json | 9 - .../block/tiny_lily_of_the_valley_4.json | 9 - .../models/block/tiny_open_eyeblossom_1.json | 9 - .../models/block/tiny_open_eyeblossom_2.json | 9 - .../models/block/tiny_open_eyeblossom_3.json | 9 - .../models/block/tiny_open_eyeblossom_4.json | 9 - .../models/block/tiny_orange_tulip_1.json | 8 - .../models/block/tiny_orange_tulip_2.json | 8 - .../models/block/tiny_orange_tulip_3.json | 8 - .../models/block/tiny_orange_tulip_4.json | 8 - .../models/block/tiny_oxeye_daisy_1.json | 8 - .../models/block/tiny_oxeye_daisy_2.json | 8 - .../models/block/tiny_oxeye_daisy_3.json | 8 - .../models/block/tiny_oxeye_daisy_4.json | 8 - .../models/block/tiny_pink_tulip_1.json | 8 - .../models/block/tiny_pink_tulip_2.json | 8 - .../models/block/tiny_pink_tulip_3.json | 8 - .../models/block/tiny_pink_tulip_4.json | 8 - .../models/block/tiny_poppy_1.json | 8 - .../models/block/tiny_poppy_2.json | 8 - .../models/block/tiny_poppy_3.json | 8 - .../models/block/tiny_poppy_4.json | 8 - .../models/block/tiny_red_tulip_1.json | 8 - .../models/block/tiny_red_tulip_2.json | 8 - .../models/block/tiny_red_tulip_3.json | 8 - .../models/block/tiny_red_tulip_4.json | 8 - .../models/block/tiny_torchflower_1.json | 10 - .../models/block/tiny_torchflower_2.json | 10 - .../models/block/tiny_torchflower_3.json | 10 - .../models/block/tiny_torchflower_4.json | 10 - .../models/block/tiny_white_tulip_1.json | 8 - .../models/block/tiny_white_tulip_2.json | 8 - .../models/block/tiny_white_tulip_3.json | 8 - .../models/block/tiny_white_tulip_4.json | 8 - .../models/block/tiny_wither_rose_1.json | 8 - .../models/block/tiny_wither_rose_2.json | 8 - .../models/block/tiny_wither_rose_3.json | 8 - .../models/block/tiny_wither_rose_4.json | 8 - .../models/item/florists_shears.json | 7 - .../blockstates/tiny_garden.json | 576 +++++++++--------- .../items/florists_shears.json | 2 +- .../items/tiny_allium.json | 2 +- .../items/tiny_azure_bluet.json | 2 +- .../items/tiny_blue_orchid.json | 2 +- .../items/tiny_cactus_flower.json | 6 + .../items/tiny_closed_eyeblossom.json | 6 + .../items/tiny_cornflower.json | 2 +- .../items/tiny_dandelion.json | 2 +- .../items/tiny_garden.json | 2 +- .../items/tiny_lily_of_the_valley.json | 6 + .../items/tiny_open_eyeblossom.json | 6 + .../items/tiny_orange_tulip.json | 2 +- .../items/tiny_oxeye_daisy.json | 2 +- .../items/tiny_pink_tulip.json | 2 +- .../items/tiny_poppy.json | 2 +- .../items/tiny_red_tulip.json | 2 +- .../items/tiny_torchflower.json | 2 +- .../items/tiny_white_tulip.json | 2 +- .../items/tiny_wither_rose.json | 2 +- .../models/block/leaf_litter_1.json | 2 +- .../models/block/leaf_litter_2.json | 2 +- .../models/block/leaf_litter_3.json | 2 +- .../models/block/leaf_litter_4.json | 2 +- .../models/block/tiny_allium_1.json | 8 + .../models/block/tiny_allium_2.json | 8 + .../models/block/tiny_allium_3.json | 8 + .../models/block/tiny_allium_4.json | 8 + .../models/block/tiny_azure_bluet_1.json | 8 + .../models/block/tiny_azure_bluet_2.json | 8 + .../models/block/tiny_azure_bluet_3.json | 8 + .../models/block/tiny_azure_bluet_4.json | 8 + .../models/block/tiny_blue_orchid_1.json | 9 + .../models/block/tiny_blue_orchid_2.json | 9 + .../models/block/tiny_blue_orchid_3.json | 9 + .../models/block/tiny_blue_orchid_4.json | 9 + .../models/block/tiny_cactus_flower_1.json | 8 + .../models/block/tiny_cactus_flower_2.json | 8 + .../models/block/tiny_cactus_flower_3.json | 8 + .../models/block/tiny_cactus_flower_4.json | 8 + .../block/tiny_closed_eyeblossom_1.json | 8 + .../block/tiny_closed_eyeblossom_2.json | 8 + .../block/tiny_closed_eyeblossom_3.json | 8 + .../block/tiny_closed_eyeblossom_4.json | 8 + .../models/block/tiny_cornflower_1.json | 8 + .../models/block/tiny_cornflower_2.json | 8 + .../models/block/tiny_cornflower_3.json | 8 + .../models/block/tiny_cornflower_4.json | 8 + .../models/block/tiny_dandelion_1.json | 8 + .../models/block/tiny_dandelion_2.json | 8 + .../models/block/tiny_dandelion_3.json | 8 + .../models/block/tiny_dandelion_4.json | 8 + .../block/tiny_lily_of_the_valley_1.json | 9 + .../block/tiny_lily_of_the_valley_2.json | 9 + .../block/tiny_lily_of_the_valley_3.json | 9 + .../block/tiny_lily_of_the_valley_4.json | 9 + .../models/block/tiny_open_eyeblossom_1.json | 9 + .../models/block/tiny_open_eyeblossom_2.json | 9 + .../models/block/tiny_open_eyeblossom_3.json | 9 + .../models/block/tiny_open_eyeblossom_4.json | 9 + .../models/block/tiny_orange_tulip_1.json | 8 + .../models/block/tiny_orange_tulip_2.json | 8 + .../models/block/tiny_orange_tulip_3.json | 8 + .../models/block/tiny_orange_tulip_4.json | 8 + .../models/block/tiny_oxeye_daisy_1.json | 8 + .../models/block/tiny_oxeye_daisy_2.json | 8 + .../models/block/tiny_oxeye_daisy_3.json | 8 + .../models/block/tiny_oxeye_daisy_4.json | 8 + .../models/block/tiny_pink_tulip_1.json | 8 + .../models/block/tiny_pink_tulip_2.json | 8 + .../models/block/tiny_pink_tulip_3.json | 8 + .../models/block/tiny_pink_tulip_4.json | 8 + .../models/block/tiny_poppy_1.json | 8 + .../models/block/tiny_poppy_2.json | 8 + .../models/block/tiny_poppy_3.json | 8 + .../models/block/tiny_poppy_4.json | 8 + .../models/block/tiny_red_tulip_1.json | 8 + .../models/block/tiny_red_tulip_2.json | 8 + .../models/block/tiny_red_tulip_3.json | 8 + .../models/block/tiny_red_tulip_4.json | 8 + .../models/block/tiny_torchflower_1.json | 10 + .../models/block/tiny_torchflower_2.json | 10 + .../models/block/tiny_torchflower_3.json | 10 + .../models/block/tiny_torchflower_4.json | 10 + .../models/block/tiny_white_tulip_1.json | 8 + .../models/block/tiny_white_tulip_2.json | 8 + .../models/block/tiny_white_tulip_3.json | 8 + .../models/block/tiny_white_tulip_4.json | 8 + .../models/block/tiny_wither_rose_1.json | 8 + .../models/block/tiny_wither_rose_2.json | 8 + .../models/block/tiny_wither_rose_3.json | 8 + .../models/block/tiny_wither_rose_4.json | 8 + .../models/item/florists_shears.json | 7 + .../models/item/tiny_allium.json | 2 +- .../models/item/tiny_azure_bluet.json | 2 +- .../models/item/tiny_blue_orchid.json | 2 +- .../models/item/tiny_cactus_flower.json | 2 +- .../models/item/tiny_closed_eyeblossom.json | 2 +- .../models/item/tiny_cornflower.json | 2 +- .../models/item/tiny_dandelion.json | 2 +- .../models/item/tiny_garden.json | 2 +- .../models/item/tiny_lily_of_the_valley.json | 2 +- .../models/item/tiny_open_eyeblossom.json | 2 +- .../models/item/tiny_orange_tulip.json | 2 +- .../models/item/tiny_oxeye_daisy.json | 2 +- .../models/item/tiny_pink_tulip.json | 2 +- .../models/item/tiny_poppy.json | 2 +- .../models/item/tiny_red_tulip.json | 2 +- .../models/item/tiny_torchflower.json | 2 +- .../models/item/tiny_white_tulip.json | 2 +- .../models/item/tiny_wither_rose.json | 2 +- .../data/c/tags/item/tools/shear.json | 2 +- .../data/minecraft/tags/block/flowers.json | 2 +- .../tags/block/inside_step_sound_blocks.json | 2 +- .../minecraft/tags/block/sword_efficient.json | 2 +- .../data/minecraft/tags/item/bee_food.json | 2 +- .../tiny-flowers/tags/item/tiny_flowers.json | 24 - .../tiny_flowers/tiny_allium.json | 9 - .../tiny_flowers/tiny_azure_bluet.json | 9 - .../tiny_flowers/tiny_blue_orchid.json | 9 - .../tiny_flowers/tiny_cactus_flower.json | 5 - .../tiny_flowers/tiny_closed_eyeblossom.json | 9 - .../tiny_flowers/tiny_cornflower.json | 9 - .../tiny_flowers/tiny_dandelion.json | 9 - .../tiny_flowers/tiny_lily_of_the_valley.json | 9 - .../tiny_flowers/tiny_open_eyeblossom.json | 9 - .../tiny_flowers/tiny_orange_tulip.json | 9 - .../tiny_flowers/tiny_oxeye_daisy.json | 9 - .../tiny_flowers/tiny_pink_tulip.json | 9 - .../tiny-flowers/tiny_flowers/tiny_poppy.json | 9 - .../tiny_flowers/tiny_red_tulip.json | 9 - .../tiny_flowers/tiny_torchflower.json | 9 - .../tiny_flowers/tiny_white_tulip.json | 9 - .../tiny_flowers/tiny_wither_rose.json | 9 - .../recipes/decorations/tiny_allium.json | 6 +- .../recipes/decorations/tiny_azure_bluet.json | 6 +- .../recipes/decorations/tiny_blue_orchid.json | 6 +- .../decorations/tiny_cactus_flower.json | 6 +- .../decorations/tiny_closed_eyeblossom.json | 6 +- .../recipes/decorations/tiny_cornflower.json | 6 +- .../recipes/decorations/tiny_dandelion.json | 6 +- .../decorations/tiny_lily_of_the_valley.json | 6 +- .../decorations/tiny_open_eyeblossom.json | 6 +- .../decorations/tiny_orange_tulip.json | 6 +- .../recipes/decorations/tiny_oxeye_daisy.json | 6 +- .../recipes/decorations/tiny_pink_tulip.json | 6 +- .../recipes/decorations/tiny_poppy.json | 6 +- .../recipes/decorations/tiny_red_tulip.json | 6 +- .../recipes/decorations/tiny_torchflower.json | 6 +- .../recipes/decorations/tiny_white_tulip.json | 6 +- .../recipes/decorations/tiny_wither_rose.json | 6 +- .../suspicious_stew_from_tiny_allium.json | 6 +- ...suspicious_stew_from_tiny_azure_bluet.json | 6 +- ...suspicious_stew_from_tiny_blue_orchid.json | 6 +- ...ious_stew_from_tiny_closed_eyeblossom.json | 6 +- .../suspicious_stew_from_tiny_cornflower.json | 6 +- .../suspicious_stew_from_tiny_dandelion.json | 6 +- ...ous_stew_from_tiny_lily_of_the_valley.json | 6 +- ...icious_stew_from_tiny_open_eyeblossom.json | 6 +- ...uspicious_stew_from_tiny_orange_tulip.json | 6 +- ...suspicious_stew_from_tiny_oxeye_daisy.json | 6 +- .../suspicious_stew_from_tiny_pink_tulip.json | 6 +- .../food/suspicious_stew_from_tiny_poppy.json | 6 +- .../suspicious_stew_from_tiny_red_tulip.json | 6 +- ...suspicious_stew_from_tiny_torchflower.json | 6 +- ...suspicious_stew_from_tiny_white_tulip.json | 6 +- ...suspicious_stew_from_tiny_wither_rose.json | 6 +- .../recipes/tools/florists_shears_black.json | 4 +- .../recipes/tools/florists_shears_blue.json | 4 +- .../recipes/tools/florists_shears_brown.json | 4 +- .../recipes/tools/florists_shears_cyan.json | 4 +- .../recipes/tools/florists_shears_gray.json | 4 +- .../recipes/tools/florists_shears_green.json | 4 +- .../tools/florists_shears_light_blue.json | 4 +- .../tools/florists_shears_light_gray.json | 4 +- .../recipes/tools/florists_shears_lime.json | 4 +- .../tools/florists_shears_magenta.json | 4 +- .../recipes/tools/florists_shears_orange.json | 4 +- .../recipes/tools/florists_shears_pink.json | 4 +- .../recipes/tools/florists_shears_purple.json | 4 +- .../recipes/tools/florists_shears_red.json | 4 +- .../recipes/tools/florists_shears_white.json | 4 +- .../recipes/tools/florists_shears_yellow.json | 4 +- .../loot_table/blocks/tiny_garden.json | 296 ++++----- .../recipe/florists_shears_black.json | 2 +- .../recipe/florists_shears_blue.json | 2 +- .../recipe/florists_shears_brown.json | 2 +- .../recipe/florists_shears_cyan.json | 2 +- .../recipe/florists_shears_gray.json | 2 +- .../recipe/florists_shears_green.json | 2 +- .../recipe/florists_shears_light_blue.json | 2 +- .../recipe/florists_shears_light_gray.json | 2 +- .../recipe/florists_shears_lime.json | 2 +- .../recipe/florists_shears_magenta.json | 2 +- .../recipe/florists_shears_orange.json | 2 +- .../recipe/florists_shears_pink.json | 2 +- .../recipe/florists_shears_purple.json | 2 +- .../recipe/florists_shears_red.json | 2 +- .../recipe/florists_shears_white.json | 2 +- .../recipe/florists_shears_yellow.json | 2 +- .../suspicious_stew_from_tiny_allium.json | 4 +- ...suspicious_stew_from_tiny_azure_bluet.json | 4 +- ...suspicious_stew_from_tiny_blue_orchid.json | 4 +- ...ious_stew_from_tiny_closed_eyeblossom.json | 4 +- .../suspicious_stew_from_tiny_cornflower.json | 4 +- .../suspicious_stew_from_tiny_dandelion.json | 4 +- ...ous_stew_from_tiny_lily_of_the_valley.json | 4 +- ...icious_stew_from_tiny_open_eyeblossom.json | 4 +- ...uspicious_stew_from_tiny_orange_tulip.json | 4 +- ...suspicious_stew_from_tiny_oxeye_daisy.json | 4 +- .../suspicious_stew_from_tiny_pink_tulip.json | 4 +- .../suspicious_stew_from_tiny_poppy.json | 4 +- .../suspicious_stew_from_tiny_red_tulip.json | 4 +- ...suspicious_stew_from_tiny_torchflower.json | 4 +- ...suspicious_stew_from_tiny_white_tulip.json | 4 +- ...suspicious_stew_from_tiny_wither_rose.json | 4 +- .../recipe/tiny_allium.json | 4 +- .../recipe/tiny_azure_bluet.json | 4 +- .../recipe/tiny_blue_orchid.json | 4 +- .../recipe/tiny_cactus_flower.json | 4 +- .../recipe/tiny_closed_eyeblossom.json | 4 +- .../recipe/tiny_cornflower.json | 4 +- .../recipe/tiny_dandelion.json | 4 +- .../recipe/tiny_lily_of_the_valley.json | 4 +- .../recipe/tiny_open_eyeblossom.json | 4 +- .../recipe/tiny_orange_tulip.json | 4 +- .../recipe/tiny_oxeye_daisy.json | 4 +- .../recipe/tiny_pink_tulip.json | 4 +- .../recipe/tiny_poppy.json | 4 +- .../recipe/tiny_red_tulip.json | 4 +- .../recipe/tiny_torchflower.json | 4 +- .../recipe/tiny_white_tulip.json | 4 +- .../recipe/tiny_wither_rose.json | 4 +- .../tiny_flowers/tags/item/tiny_flowers.json | 24 + .../tiny_flower}/leaf_litter.json | 2 +- .../tiny_flower}/pink_petals.json | 2 +- .../tiny_flowers/tiny_flower/tiny_allium.json | 10 + .../tiny_flower/tiny_azure_bluet.json | 10 + .../tiny_flower/tiny_blue_orchid.json | 10 + .../tiny_flower/tiny_cactus_flower.json | 4 + .../tiny_flower/tiny_closed_eyeblossom.json | 10 + .../tiny_flower/tiny_cornflower.json | 10 + .../tiny_flower/tiny_dandelion.json | 10 + .../tiny_flower/tiny_lily_of_the_valley.json | 10 + .../tiny_flower/tiny_open_eyeblossom.json | 10 + .../tiny_flower/tiny_orange_tulip.json | 10 + .../tiny_flower/tiny_oxeye_daisy.json | 10 + .../tiny_flower/tiny_pink_tulip.json | 10 + .../tiny_flowers/tiny_flower/tiny_poppy.json | 10 + .../tiny_flower/tiny_red_tulip.json | 10 + .../tiny_flower/tiny_torchflower.json | 10 + .../tiny_flower/tiny_white_tulip.json | 10 + .../tiny_flower/tiny_wither_rose.json | 10 + .../tiny_flower}/wildflowers.json | 2 +- .../tinyflowers/TinyFlowerData.java | 20 - .../secretonline/tinyflowers/TinyFlowers.java | 4 +- .../tinyflowers/blocks/FlowerVariant.java | 2 +- .../tinyflowers/data/ModRegistries.java | 15 + .../tinyflowers/data/TinyFlowerData.java | 37 ++ .../assets/tiny-flowers/lang/de_at.json | 25 - .../assets/tiny-flowers/lang/de_ch.json | 25 - .../assets/tiny-flowers/lang/de_de.json | 25 - .../assets/tiny-flowers/lang/en_us.json | 25 - .../{tiny-flowers => tiny_flowers}/icon.png | Bin .../assets/tiny_flowers/lang/de_at.json | 25 + .../assets/tiny_flowers/lang/de_ch.json | 25 + .../assets/tiny_flowers/lang/de_de.json | 25 + .../assets/tiny_flowers/lang/en_us.json | 25 + src/main/resources/fabric.mod.json | 20 +- ...s.mixins.json => tiny_flowers.mixins.json} | 0 434 files changed, 1653 insertions(+), 1609 deletions(-) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_1.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_2.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_3.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_4.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_1.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_2.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_3.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_4.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_untinted_1.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_untinted_2.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_untinted_3.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_untinted_4.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_untinted_glow_1.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_untinted_glow_2.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_untinted_glow_3.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_double_untinted_glow_4.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_leaf_litter_1.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_leaf_litter_2.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_leaf_litter_3.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_leaf_litter_4.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_low_untinted_1.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_low_untinted_2.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_low_untinted_3.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_low_untinted_4.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_tall_1.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_tall_2.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_tall_3.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_tall_4.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_triple_untinted_1.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_triple_untinted_2.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_triple_untinted_3.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_triple_untinted_4.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_untinted_1.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_untinted_2.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_untinted_3.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/models/block/garden_untinted_4.json (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tall_tiny_flower_stem.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_allium.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_azure_bluet.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_blue_orchid.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_blue_orchid_upper.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_cactus_flower.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_cactus_flower_stem.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_closed_eyeblossom.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_cornflower.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_dandelion.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_eyeblossom_stem.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_lily_of_the_valley.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_lily_of_the_valley_upper.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_open_eyeblossom.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_open_eyeblossom_upper.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_orange_tulip.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_oxeye_daisy.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_pink_tulip.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_poppy.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_red_tulip.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_torchflower.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_torchflower_middle.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_torchflower_stem.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_torchflower_upper.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_white_tulip.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_wither_rose.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/block/tiny_wither_rose_stem.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/florists_shears.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/florists_shears_handle.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_allium.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_azure_bluet.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_blue_orchid.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_cactus_flower.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_closed_eyeblossom.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_cornflower.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_dandelion.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_garden.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_lily_of_the_valley.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_open_eyeblossom.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_orange_tulip.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_oxeye_daisy.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_pink_tulip.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_poppy.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_red_tulip.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_torchflower.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_white_tulip.png (100%) rename src/client/resources/assets/{tiny-flowers => tiny_flowers}/textures/item/tiny_wither_rose.png (100%) rename src/client/resources/{tiny-flowers.client.mixins.json => tiny_flowers.client.mixins.json} (100%) delete mode 100644 src/main/generated/assets/tiny-flowers/items/tiny_cactus_flower.json delete mode 100644 src/main/generated/assets/tiny-flowers/items/tiny_closed_eyeblossom.json delete mode 100644 src/main/generated/assets/tiny-flowers/items/tiny_lily_of_the_valley.json delete mode 100644 src/main/generated/assets/tiny-flowers/items/tiny_open_eyeblossom.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_allium_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_allium_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_allium_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_allium_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_1.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_2.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_3.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_4.json delete mode 100644 src/main/generated/assets/tiny-flowers/models/item/florists_shears.json rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/blockstates/tiny_garden.json (74%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/florists_shears.json (81%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_allium.json (53%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_azure_bluet.json (50%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_blue_orchid.json (50%) create mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_cactus_flower.json create mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_closed_eyeblossom.json rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_cornflower.json (51%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_dandelion.json (51%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_garden.json (53%) create mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_lily_of_the_valley.json create mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_open_eyeblossom.json rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_orange_tulip.json (50%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_oxeye_daisy.json (50%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_pink_tulip.json (51%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_poppy.json (53%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_red_tulip.json (51%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_torchflower.json (50%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_white_tulip.json (50%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/items/tiny_wither_rose.json (50%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/block/leaf_litter_1.json (68%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/block/leaf_litter_2.json (68%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/block/leaf_litter_3.json (68%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/block/leaf_litter_4.json (68%) create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_allium_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_allium_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_allium_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_allium_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/florists_shears.json rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_allium.json (57%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_azure_bluet.json (55%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_blue_orchid.json (55%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_cactus_flower.json (54%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_closed_eyeblossom.json (52%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_cornflower.json (55%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_dandelion.json (56%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_garden.json (57%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_lily_of_the_valley.json (52%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_open_eyeblossom.json (53%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_orange_tulip.json (54%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_oxeye_daisy.json (55%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_pink_tulip.json (55%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_poppy.json (58%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_red_tulip.json (56%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_torchflower.json (55%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_white_tulip.json (55%) rename src/main/generated/assets/{tiny-flowers => tiny_flowers}/models/item/tiny_wither_rose.json (55%) delete mode 100644 src/main/generated/data/tiny-flowers/tags/item/tiny_flowers.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_allium.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_azure_bluet.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_blue_orchid.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cactus_flower.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_closed_eyeblossom.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cornflower.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_dandelion.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_lily_of_the_valley.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_open_eyeblossom.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_orange_tulip.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_oxeye_daisy.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_pink_tulip.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_poppy.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_red_tulip.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_torchflower.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_white_tulip.json delete mode 100644 src/main/generated/data/tiny-flowers/tiny_flowers/tiny_wither_rose.json rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_allium.json (78%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_azure_bluet.json (76%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_blue_orchid.json (76%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_cactus_flower.json (76%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_closed_eyeblossom.json (75%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_cornflower.json (77%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_dandelion.json (77%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_lily_of_the_valley.json (75%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_open_eyeblossom.json (75%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_orange_tulip.json (76%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_oxeye_daisy.json (76%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_pink_tulip.json (77%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_poppy.json (78%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_red_tulip.json (77%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_torchflower.json (76%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_white_tulip.json (76%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/decorations/tiny_wither_rose.json (76%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_allium.json (73%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_azure_bluet.json (72%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_blue_orchid.json (72%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_closed_eyeblossom.json (72%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_cornflower.json (73%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_dandelion.json (73%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_lily_of_the_valley.json (72%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_open_eyeblossom.json (72%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_orange_tulip.json (72%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_oxeye_daisy.json (72%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_pink_tulip.json (73%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_poppy.json (73%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_red_tulip.json (73%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_torchflower.json (72%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_white_tulip.json (72%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/food/suspicious_stew_from_tiny_wither_rose.json (72%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_black.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_blue.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_brown.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_cyan.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_gray.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_green.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_light_blue.json (81%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_light_gray.json (81%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_lime.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_magenta.json (82%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_orange.json (82%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_pink.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_purple.json (82%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_red.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_white.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/advancement/recipes/tools/florists_shears_yellow.json (82%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/loot_table/blocks/tiny_garden.json (79%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_black.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_blue.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_brown.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_cyan.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_gray.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_green.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_light_blue.json (87%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_light_gray.json (87%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_lime.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_magenta.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_orange.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_pink.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_purple.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_red.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_white.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/florists_shears_yellow.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_allium.json (87%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_azure_bluet.json (85%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_blue_orchid.json (85%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_closed_eyeblossom.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_cornflower.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_dandelion.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_lily_of_the_valley.json (83%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_open_eyeblossom.json (84%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_orange_tulip.json (85%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_oxeye_daisy.json (85%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_pink_tulip.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_poppy.json (87%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_red_tulip.json (86%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_torchflower.json (85%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_white_tulip.json (85%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/suspicious_stew_from_tiny_wither_rose.json (85%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_allium.json (70%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_azure_bluet.json (69%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_blue_orchid.json (69%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_cactus_flower.json (69%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_closed_eyeblossom.json (68%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_cornflower.json (69%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_dandelion.json (70%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_lily_of_the_valley.json (68%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_open_eyeblossom.json (69%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_orange_tulip.json (69%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_oxeye_daisy.json (69%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_pink_tulip.json (69%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_poppy.json (70%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_red_tulip.json (70%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_torchflower.json (69%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_white_tulip.json (69%) rename src/main/generated/data/{tiny-flowers => tiny_flowers}/recipe/tiny_wither_rose.json (69%) create mode 100644 src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json rename src/main/generated/data/{tiny-flowers/tiny_flowers => tiny_flowers/tiny_flowers/tiny_flower}/leaf_litter.json (67%) rename src/main/generated/data/{tiny-flowers/tiny_flowers => tiny_flowers/tiny_flowers/tiny_flower}/pink_petals.json (67%) create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json create mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json rename src/main/generated/data/{tiny-flowers/tiny_flowers => tiny_flowers/tiny_flowers/tiny_flower}/wildflowers.json (67%) delete mode 100644 src/main/java/co/secretonline/tinyflowers/TinyFlowerData.java create mode 100644 src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java create mode 100644 src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java delete mode 100644 src/main/resources/assets/tiny-flowers/lang/de_at.json delete mode 100644 src/main/resources/assets/tiny-flowers/lang/de_ch.json delete mode 100644 src/main/resources/assets/tiny-flowers/lang/de_de.json delete mode 100644 src/main/resources/assets/tiny-flowers/lang/en_us.json rename src/main/resources/assets/{tiny-flowers => tiny_flowers}/icon.png (100%) create mode 100644 src/main/resources/assets/tiny_flowers/lang/de_at.json create mode 100644 src/main/resources/assets/tiny_flowers/lang/de_ch.json create mode 100644 src/main/resources/assets/tiny_flowers/lang/de_de.json create mode 100644 src/main/resources/assets/tiny_flowers/lang/en_us.json rename src/main/resources/{tiny-flowers.mixins.json => tiny_flowers.mixins.json} (100%) diff --git a/MODRINTH.md b/MODRINTH.md index 7dff280d..c29fac0a 100644 --- a/MODRINTH.md +++ b/MODRINTH.md @@ -46,7 +46,7 @@ A big thank you to the following people for their work: - [Lucanoria](https://github.com/Lucanoria) - German (German, Austrian, and Swiss) -If you want to help make this mod easier to use for everyone, then please don't hesitate to create a pull request adding/updating [the language files](https://github.com/SecretOnline/tiny-flowers/tree/main/src/main/resources/assets/tiny-flowers/lang) on GitHub. +If you want to help make this mod easier to use for everyone, then please don't hesitate to create a pull request adding/updating [the language files](https://github.com/SecretOnline/tiny-flowers/tree/main/src/main/resources/assets/tiny_flowers/lang) on GitHub. ## License diff --git a/build.gradle b/build.gradle index b615acdb..5cbf6e92 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ loom { splitEnvironmentSourceSets() mods { - "tiny-flowers" { + "tiny_flowers" { sourceSet sourceSets.main sourceSet sourceSets.client } diff --git a/gradle.properties b/gradle.properties index 2d672d02..71ded1e0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ loader_version=0.18.4 # Note: this version number is updated during release mod_version=0.0.0 maven_group=co.secretonline.tinyflowers -archives_base_name=tiny-flowers +archives_base_name=tiny_flowers # Dependencies fabric_version=0.141.2+1.21.11 diff --git a/package-lock.json b/package-lock.json index c049a2f4..9a3c92c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "tiny-flowers", + "name": "tiny_flowers", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "tiny-flowers", + "name": "tiny_flowers", "version": "1.0.0", "license": "MPL-2.0", "dependencies": { diff --git a/package.json b/package.json index 18a522af..368de017 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "tiny-flowers", + "name": "tiny_flowers", "version": "1.0.0", "description": "Adds stackable tiny variants of all Vanilla flowers.", "type": "module", diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java index 25cd6cb9..b7857f64 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java @@ -4,20 +4,20 @@ import java.util.Map; import java.util.concurrent.CompletableFuture; -import co.secretonline.tinyflowers.TinyFlowerData; +import co.secretonline.tinyflowers.data.ModRegistries; +import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.datagen.data.DefaultTinyFlowerData; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.data.CachedOutput; import net.minecraft.data.DataProvider; import net.minecraft.data.PackOutput.PathProvider; -import net.minecraft.data.PackOutput.Target; import net.minecraft.resources.Identifier; public class TinyFlowersProvider implements DataProvider { private final PathProvider tinyFlowersPathProvider; public TinyFlowersProvider(FabricDataOutput packOutput) { - this.tinyFlowersPathProvider = packOutput.createPathProvider(Target.DATA_PACK, "tiny_flowers"); + this.tinyFlowersPathProvider = packOutput.createRegistryElementsPathProvider(ModRegistries.TINY_FLOWER); } @Override diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java b/src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java index 1f48803c..2da64fd4 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java @@ -5,8 +5,8 @@ import org.jetbrains.annotations.Nullable; -import co.secretonline.tinyflowers.TinyFlowerData; import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.data.TinyFlowerData; import net.minecraft.resources.Identifier; import net.minecraft.util.Mth; import net.minecraft.world.effect.MobEffects; @@ -17,8 +17,9 @@ public class DefaultTinyFlowerData { public static final List ALL_VARIANTS = new ArrayList<>(); private static TinyFlowerData register(Identifier id, Identifier originalId, boolean shouldCreateItem, - @Nullable Entry stewEffect) { - TinyFlowerData instance = new TinyFlowerData(id, originalId, shouldCreateItem, stewEffect); + @Nullable Entry suspiciousStewEffect) { + TinyFlowerData instance = new TinyFlowerData(id, originalId, shouldCreateItem, + suspiciousStewEffect == null ? List.of() : List.of(suspiciousStewEffect)); ALL_VARIANTS.add(instance); return instance; } diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_1.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_1.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_1.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_2.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_2.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_2.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_3.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_3.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_3.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_4.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_4.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_4.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_1.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_1.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_1.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_2.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_2.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_2.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_3.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_3.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_3.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_4.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_4.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_4.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_1.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_1.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_1.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_2.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_2.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_2.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_3.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_3.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_3.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_4.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_4.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_4.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_glow_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_1.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_glow_1.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_1.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_glow_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_2.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_glow_2.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_2.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_glow_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_3.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_glow_3.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_3.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_glow_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_4.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_double_untinted_glow_4.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_4.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_leaf_litter_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_1.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_leaf_litter_1.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_1.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_leaf_litter_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_2.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_leaf_litter_2.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_2.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_leaf_litter_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_3.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_leaf_litter_3.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_3.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_leaf_litter_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_4.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_leaf_litter_4.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_4.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_low_untinted_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_1.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_low_untinted_1.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_1.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_low_untinted_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_2.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_low_untinted_2.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_2.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_low_untinted_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_3.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_low_untinted_3.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_3.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_low_untinted_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_4.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_low_untinted_4.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_4.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_tall_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_1.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_tall_1.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_tall_1.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_tall_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_2.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_tall_2.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_tall_2.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_tall_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_3.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_tall_3.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_tall_3.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_tall_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_4.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_tall_4.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_tall_4.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_triple_untinted_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_1.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_triple_untinted_1.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_1.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_triple_untinted_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_2.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_triple_untinted_2.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_2.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_triple_untinted_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_3.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_triple_untinted_3.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_3.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_triple_untinted_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_4.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_triple_untinted_4.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_4.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_untinted_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_1.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_untinted_1.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_untinted_1.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_untinted_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_2.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_untinted_2.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_untinted_2.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_untinted_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_3.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_untinted_3.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_untinted_3.json diff --git a/src/client/resources/assets/tiny-flowers/models/block/garden_untinted_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_4.json similarity index 100% rename from src/client/resources/assets/tiny-flowers/models/block/garden_untinted_4.json rename to src/client/resources/assets/tiny_flowers/models/block/garden_untinted_4.json diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tall_tiny_flower_stem.png b/src/client/resources/assets/tiny_flowers/textures/block/tall_tiny_flower_stem.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tall_tiny_flower_stem.png rename to src/client/resources/assets/tiny_flowers/textures/block/tall_tiny_flower_stem.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_allium.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_allium.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_allium.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_allium.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_azure_bluet.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_azure_bluet.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_azure_bluet.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_azure_bluet.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_blue_orchid.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_blue_orchid.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_blue_orchid.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_blue_orchid.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_blue_orchid_upper.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_blue_orchid_upper.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_blue_orchid_upper.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_blue_orchid_upper.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_cactus_flower.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_cactus_flower.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_cactus_flower.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_cactus_flower.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_cactus_flower_stem.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_cactus_flower_stem.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_cactus_flower_stem.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_cactus_flower_stem.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_closed_eyeblossom.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_closed_eyeblossom.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_closed_eyeblossom.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_closed_eyeblossom.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_cornflower.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_cornflower.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_cornflower.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_cornflower.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_dandelion.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_dandelion.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_dandelion.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_dandelion.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_eyeblossom_stem.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_eyeblossom_stem.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_eyeblossom_stem.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_eyeblossom_stem.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_lily_of_the_valley.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_lily_of_the_valley.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_lily_of_the_valley.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_lily_of_the_valley.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_lily_of_the_valley_upper.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_lily_of_the_valley_upper.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_lily_of_the_valley_upper.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_lily_of_the_valley_upper.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_open_eyeblossom.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_open_eyeblossom.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_open_eyeblossom.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_open_eyeblossom.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_open_eyeblossom_upper.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_open_eyeblossom_upper.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_open_eyeblossom_upper.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_open_eyeblossom_upper.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_orange_tulip.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_orange_tulip.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_orange_tulip.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_orange_tulip.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_oxeye_daisy.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_oxeye_daisy.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_oxeye_daisy.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_oxeye_daisy.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_pink_tulip.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_pink_tulip.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_pink_tulip.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_pink_tulip.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_poppy.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_poppy.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_poppy.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_poppy.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_red_tulip.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_red_tulip.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_red_tulip.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_red_tulip.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_torchflower.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_torchflower.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_torchflower.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_torchflower.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_torchflower_middle.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_torchflower_middle.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_torchflower_middle.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_torchflower_middle.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_torchflower_stem.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_torchflower_stem.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_torchflower_stem.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_torchflower_stem.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_torchflower_upper.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_torchflower_upper.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_torchflower_upper.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_torchflower_upper.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_white_tulip.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_white_tulip.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_white_tulip.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_white_tulip.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_wither_rose.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_wither_rose.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_wither_rose.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_wither_rose.png diff --git a/src/client/resources/assets/tiny-flowers/textures/block/tiny_wither_rose_stem.png b/src/client/resources/assets/tiny_flowers/textures/block/tiny_wither_rose_stem.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/block/tiny_wither_rose_stem.png rename to src/client/resources/assets/tiny_flowers/textures/block/tiny_wither_rose_stem.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/florists_shears.png b/src/client/resources/assets/tiny_flowers/textures/item/florists_shears.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/florists_shears.png rename to src/client/resources/assets/tiny_flowers/textures/item/florists_shears.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/florists_shears_handle.png b/src/client/resources/assets/tiny_flowers/textures/item/florists_shears_handle.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/florists_shears_handle.png rename to src/client/resources/assets/tiny_flowers/textures/item/florists_shears_handle.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_allium.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_allium.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_allium.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_allium.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_azure_bluet.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_azure_bluet.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_azure_bluet.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_azure_bluet.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_blue_orchid.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_blue_orchid.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_blue_orchid.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_blue_orchid.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_cactus_flower.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_cactus_flower.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_cactus_flower.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_cactus_flower.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_closed_eyeblossom.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_closed_eyeblossom.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_closed_eyeblossom.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_closed_eyeblossom.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_cornflower.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_cornflower.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_cornflower.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_cornflower.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_dandelion.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_dandelion.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_dandelion.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_dandelion.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_garden.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_garden.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_garden.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_garden.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_lily_of_the_valley.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_lily_of_the_valley.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_lily_of_the_valley.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_lily_of_the_valley.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_open_eyeblossom.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_open_eyeblossom.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_open_eyeblossom.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_open_eyeblossom.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_orange_tulip.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_orange_tulip.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_orange_tulip.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_orange_tulip.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_oxeye_daisy.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_oxeye_daisy.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_oxeye_daisy.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_oxeye_daisy.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_pink_tulip.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_pink_tulip.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_pink_tulip.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_pink_tulip.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_poppy.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_poppy.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_poppy.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_poppy.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_red_tulip.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_red_tulip.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_red_tulip.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_red_tulip.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_torchflower.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_torchflower.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_torchflower.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_torchflower.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_white_tulip.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_white_tulip.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_white_tulip.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_white_tulip.png diff --git a/src/client/resources/assets/tiny-flowers/textures/item/tiny_wither_rose.png b/src/client/resources/assets/tiny_flowers/textures/item/tiny_wither_rose.png similarity index 100% rename from src/client/resources/assets/tiny-flowers/textures/item/tiny_wither_rose.png rename to src/client/resources/assets/tiny_flowers/textures/item/tiny_wither_rose.png diff --git a/src/client/resources/tiny-flowers.client.mixins.json b/src/client/resources/tiny_flowers.client.mixins.json similarity index 100% rename from src/client/resources/tiny-flowers.client.mixins.json rename to src/client/resources/tiny_flowers.client.mixins.json diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_cactus_flower.json b/src/main/generated/assets/tiny-flowers/items/tiny_cactus_flower.json deleted file mode 100644 index ce70f894..00000000 --- a/src/main/generated/assets/tiny-flowers/items/tiny_cactus_flower.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_cactus_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny-flowers/items/tiny_closed_eyeblossom.json deleted file mode 100644 index f01222d4..00000000 --- a/src/main/generated/assets/tiny-flowers/items/tiny_closed_eyeblossom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_closed_eyeblossom" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny-flowers/items/tiny_lily_of_the_valley.json deleted file mode 100644 index e0590452..00000000 --- a/src/main/generated/assets/tiny-flowers/items/tiny_lily_of_the_valley.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_lily_of_the_valley" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny-flowers/items/tiny_open_eyeblossom.json deleted file mode 100644 index f77402c6..00000000 --- a/src/main/generated/assets/tiny-flowers/items/tiny_open_eyeblossom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_open_eyeblossom" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_1.json deleted file mode 100644 index 1294b413..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_allium", - "particle": "tiny-flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_2.json deleted file mode 100644 index d499fc09..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_allium", - "particle": "tiny-flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_3.json deleted file mode 100644 index 2c7fad46..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_allium", - "particle": "tiny-flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_4.json deleted file mode 100644 index 248c53e1..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_allium_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_allium", - "particle": "tiny-flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_1.json deleted file mode 100644 index 2fe2cfef..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_azure_bluet", - "particle": "tiny-flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_2.json deleted file mode 100644 index f25f3f26..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_azure_bluet", - "particle": "tiny-flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_3.json deleted file mode 100644 index 08501302..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_azure_bluet", - "particle": "tiny-flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_4.json deleted file mode 100644 index 4693fe1b..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_azure_bluet_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_azure_bluet", - "particle": "tiny-flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_1.json deleted file mode 100644 index 4c553467..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_1.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny-flowers:block/tiny_blue_orchid_upper", - "particle": "tiny-flowers:block/tiny_blue_orchid", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_2.json deleted file mode 100644 index f53331f0..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_2.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny-flowers:block/tiny_blue_orchid_upper", - "particle": "tiny-flowers:block/tiny_blue_orchid", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_3.json deleted file mode 100644 index dadd0a2f..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_3.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny-flowers:block/tiny_blue_orchid_upper", - "particle": "tiny-flowers:block/tiny_blue_orchid", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_4.json deleted file mode 100644 index f7694c92..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_blue_orchid_4.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny-flowers:block/tiny_blue_orchid_upper", - "particle": "tiny-flowers:block/tiny_blue_orchid", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_1.json deleted file mode 100644 index d22ed784..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_low_untinted_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_cactus_flower", - "particle": "tiny-flowers:block/tiny_cactus_flower", - "stem": "tiny-flowers:block/tiny_cactus_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_2.json deleted file mode 100644 index 14f3239b..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_low_untinted_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_cactus_flower", - "particle": "tiny-flowers:block/tiny_cactus_flower", - "stem": "tiny-flowers:block/tiny_cactus_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_3.json deleted file mode 100644 index 235142d1..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_low_untinted_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_cactus_flower", - "particle": "tiny-flowers:block/tiny_cactus_flower", - "stem": "tiny-flowers:block/tiny_cactus_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_4.json deleted file mode 100644 index bcf0b72b..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_cactus_flower_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_low_untinted_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_cactus_flower", - "particle": "tiny-flowers:block/tiny_cactus_flower", - "stem": "tiny-flowers:block/tiny_cactus_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_1.json deleted file mode 100644 index 6bf3ab49..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_untinted_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_closed_eyeblossom", - "particle": "tiny-flowers:block/tiny_closed_eyeblossom", - "stem": "tiny-flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_2.json deleted file mode 100644 index 3122c952..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_untinted_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_closed_eyeblossom", - "particle": "tiny-flowers:block/tiny_closed_eyeblossom", - "stem": "tiny-flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_3.json deleted file mode 100644 index eade8ffc..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_untinted_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_closed_eyeblossom", - "particle": "tiny-flowers:block/tiny_closed_eyeblossom", - "stem": "tiny-flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_4.json deleted file mode 100644 index 5f7f52b1..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_closed_eyeblossom_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_untinted_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_closed_eyeblossom", - "particle": "tiny-flowers:block/tiny_closed_eyeblossom", - "stem": "tiny-flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_1.json deleted file mode 100644 index 31968aa3..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_cornflower", - "particle": "tiny-flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_2.json deleted file mode 100644 index 58663d34..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_cornflower", - "particle": "tiny-flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_3.json deleted file mode 100644 index b89616d8..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_cornflower", - "particle": "tiny-flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_4.json deleted file mode 100644 index f3b04565..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_cornflower_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_cornflower", - "particle": "tiny-flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_1.json deleted file mode 100644 index 957001d9..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_dandelion", - "particle": "tiny-flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_2.json deleted file mode 100644 index b6313dac..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_dandelion", - "particle": "tiny-flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_3.json deleted file mode 100644 index f6d98e19..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_dandelion", - "particle": "tiny-flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_4.json deleted file mode 100644 index 00b6e9eb..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_dandelion_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_dandelion", - "particle": "tiny-flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_1.json deleted file mode 100644 index 4e9a1eff..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_1.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny-flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny-flowers:block/tiny_lily_of_the_valley", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_2.json deleted file mode 100644 index 410bd9ee..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_2.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny-flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny-flowers:block/tiny_lily_of_the_valley", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_3.json deleted file mode 100644 index b3557063..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_3.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny-flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny-flowers:block/tiny_lily_of_the_valley", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_4.json deleted file mode 100644 index 3a58b0da..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_lily_of_the_valley_4.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny-flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny-flowers:block/tiny_lily_of_the_valley", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_1.json deleted file mode 100644 index ecc1dc7d..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_1.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_untinted_glow_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny-flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny-flowers:block/tiny_open_eyeblossom", - "stem": "tiny-flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_2.json deleted file mode 100644 index 6e3c376d..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_2.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_untinted_glow_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny-flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny-flowers:block/tiny_open_eyeblossom", - "stem": "tiny-flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_3.json deleted file mode 100644 index a833f369..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_3.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_untinted_glow_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny-flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny-flowers:block/tiny_open_eyeblossom", - "stem": "tiny-flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_4.json deleted file mode 100644 index e3a7334f..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_open_eyeblossom_4.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_double_untinted_glow_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny-flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny-flowers:block/tiny_open_eyeblossom", - "stem": "tiny-flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_1.json deleted file mode 100644 index 81c135fb..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_orange_tulip", - "particle": "tiny-flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_2.json deleted file mode 100644 index 61b06060..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_orange_tulip", - "particle": "tiny-flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_3.json deleted file mode 100644 index d987d8d7..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_orange_tulip", - "particle": "tiny-flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_4.json deleted file mode 100644 index a3ce6322..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_orange_tulip_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_orange_tulip", - "particle": "tiny-flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_1.json deleted file mode 100644 index d3ab6c5b..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_oxeye_daisy", - "particle": "tiny-flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_2.json deleted file mode 100644 index 9812659f..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_oxeye_daisy", - "particle": "tiny-flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_3.json deleted file mode 100644 index 7238d5e6..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_oxeye_daisy", - "particle": "tiny-flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_4.json deleted file mode 100644 index e7d17e02..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_oxeye_daisy_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_oxeye_daisy", - "particle": "tiny-flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_1.json deleted file mode 100644 index a88c22f8..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_pink_tulip", - "particle": "tiny-flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_2.json deleted file mode 100644 index 1c533a28..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_pink_tulip", - "particle": "tiny-flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_3.json deleted file mode 100644 index d016e904..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_pink_tulip", - "particle": "tiny-flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_4.json deleted file mode 100644 index 466d99b3..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_pink_tulip_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_pink_tulip", - "particle": "tiny-flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_1.json deleted file mode 100644 index dae732fa..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_tall_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_poppy", - "particle": "tiny-flowers:block/tiny_poppy", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_2.json deleted file mode 100644 index 7b00f29a..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_tall_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_poppy", - "particle": "tiny-flowers:block/tiny_poppy", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_3.json deleted file mode 100644 index 0508ab3a..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_tall_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_poppy", - "particle": "tiny-flowers:block/tiny_poppy", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_4.json deleted file mode 100644 index 86bc10f0..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_poppy_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_tall_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_poppy", - "particle": "tiny-flowers:block/tiny_poppy", - "stem": "tiny-flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_1.json deleted file mode 100644 index 679fbe99..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_red_tulip", - "particle": "tiny-flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_2.json deleted file mode 100644 index 4d50ded3..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_red_tulip", - "particle": "tiny-flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_3.json deleted file mode 100644 index 0ba8d962..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_red_tulip", - "particle": "tiny-flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_4.json deleted file mode 100644 index acc50ac4..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_red_tulip_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_red_tulip", - "particle": "tiny-flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_1.json deleted file mode 100644 index 8a35aa5b..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_1.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_triple_untinted_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny-flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny-flowers:block/tiny_torchflower_upper", - "particle": "tiny-flowers:block/tiny_torchflower", - "stem": "tiny-flowers:block/tiny_torchflower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_2.json deleted file mode 100644 index 9a037be5..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_2.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_triple_untinted_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny-flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny-flowers:block/tiny_torchflower_upper", - "particle": "tiny-flowers:block/tiny_torchflower", - "stem": "tiny-flowers:block/tiny_torchflower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_3.json deleted file mode 100644 index 5730c6f9..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_3.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_triple_untinted_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny-flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny-flowers:block/tiny_torchflower_upper", - "particle": "tiny-flowers:block/tiny_torchflower", - "stem": "tiny-flowers:block/tiny_torchflower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_4.json deleted file mode 100644 index 8869624a..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_torchflower_4.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_triple_untinted_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny-flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny-flowers:block/tiny_torchflower_upper", - "particle": "tiny-flowers:block/tiny_torchflower", - "stem": "tiny-flowers:block/tiny_torchflower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_1.json deleted file mode 100644 index 1944cb05..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_white_tulip", - "particle": "tiny-flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_2.json deleted file mode 100644 index c6bc5eba..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_white_tulip", - "particle": "tiny-flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_3.json deleted file mode 100644 index 9ba3fdc8..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_white_tulip", - "particle": "tiny-flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_4.json deleted file mode 100644 index 3a2eed7e..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_white_tulip_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_white_tulip", - "particle": "tiny-flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_1.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_1.json deleted file mode 100644 index 93b9e7ab..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_untinted_1", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_wither_rose", - "particle": "tiny-flowers:block/tiny_wither_rose", - "stem": "tiny-flowers:block/tiny_wither_rose_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_2.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_2.json deleted file mode 100644 index ebdaab25..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_untinted_2", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_wither_rose", - "particle": "tiny-flowers:block/tiny_wither_rose", - "stem": "tiny-flowers:block/tiny_wither_rose_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_3.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_3.json deleted file mode 100644 index f0bb2b7a..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_untinted_3", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_wither_rose", - "particle": "tiny-flowers:block/tiny_wither_rose", - "stem": "tiny-flowers:block/tiny_wither_rose_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_4.json b/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_4.json deleted file mode 100644 index 095b9e49..00000000 --- a/src/main/generated/assets/tiny-flowers/models/block/tiny_wither_rose_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny-flowers:block/garden_untinted_4", - "textures": { - "flowerbed": "tiny-flowers:block/tiny_wither_rose", - "particle": "tiny-flowers:block/tiny_wither_rose", - "stem": "tiny-flowers:block/tiny_wither_rose_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/florists_shears.json b/src/main/generated/assets/tiny-flowers/models/item/florists_shears.json deleted file mode 100644 index c647f425..00000000 --- a/src/main/generated/assets/tiny-flowers/models/item/florists_shears.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny-flowers:item/florists_shears", - "layer1": "tiny-flowers:item/florists_shears_handle" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/blockstates/tiny_garden.json b/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json similarity index 74% rename from src/main/generated/assets/tiny-flowers/blockstates/tiny_garden.json rename to src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json index 7f477e42..6d22a73e 100644 --- a/src/main/generated/assets/tiny-flowers/blockstates/tiny_garden.json +++ b/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json @@ -314,7 +314,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_1" + "model": "tiny_flowers:block/leaf_litter_1" }, "when": { "facing": "north", @@ -323,7 +323,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_1", + "model": "tiny_flowers:block/leaf_litter_1", "y": 90 }, "when": { @@ -333,7 +333,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_1", + "model": "tiny_flowers:block/leaf_litter_1", "y": 180 }, "when": { @@ -343,7 +343,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_1", + "model": "tiny_flowers:block/leaf_litter_1", "y": 270 }, "when": { @@ -353,7 +353,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_2" + "model": "tiny_flowers:block/leaf_litter_2" }, "when": { "facing": "north", @@ -362,7 +362,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_2", + "model": "tiny_flowers:block/leaf_litter_2", "y": 90 }, "when": { @@ -372,7 +372,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_2", + "model": "tiny_flowers:block/leaf_litter_2", "y": 180 }, "when": { @@ -382,7 +382,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_2", + "model": "tiny_flowers:block/leaf_litter_2", "y": 270 }, "when": { @@ -392,7 +392,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_3" + "model": "tiny_flowers:block/leaf_litter_3" }, "when": { "facing": "north", @@ -401,7 +401,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_3", + "model": "tiny_flowers:block/leaf_litter_3", "y": 90 }, "when": { @@ -411,7 +411,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_3", + "model": "tiny_flowers:block/leaf_litter_3", "y": 180 }, "when": { @@ -421,7 +421,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_3", + "model": "tiny_flowers:block/leaf_litter_3", "y": 270 }, "when": { @@ -431,7 +431,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_4" + "model": "tiny_flowers:block/leaf_litter_4" }, "when": { "facing": "north", @@ -440,7 +440,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_4", + "model": "tiny_flowers:block/leaf_litter_4", "y": 90 }, "when": { @@ -450,7 +450,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_4", + "model": "tiny_flowers:block/leaf_litter_4", "y": 180 }, "when": { @@ -460,7 +460,7 @@ }, { "apply": { - "model": "tiny-flowers:block/leaf_litter_4", + "model": "tiny_flowers:block/leaf_litter_4", "y": 270 }, "when": { @@ -470,7 +470,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_1" + "model": "tiny_flowers:block/tiny_dandelion_1" }, "when": { "facing": "north", @@ -479,7 +479,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_1", + "model": "tiny_flowers:block/tiny_dandelion_1", "y": 90 }, "when": { @@ -489,7 +489,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_1", + "model": "tiny_flowers:block/tiny_dandelion_1", "y": 180 }, "when": { @@ -499,7 +499,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_1", + "model": "tiny_flowers:block/tiny_dandelion_1", "y": 270 }, "when": { @@ -509,7 +509,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_2" + "model": "tiny_flowers:block/tiny_dandelion_2" }, "when": { "facing": "north", @@ -518,7 +518,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_2", + "model": "tiny_flowers:block/tiny_dandelion_2", "y": 90 }, "when": { @@ -528,7 +528,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_2", + "model": "tiny_flowers:block/tiny_dandelion_2", "y": 180 }, "when": { @@ -538,7 +538,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_2", + "model": "tiny_flowers:block/tiny_dandelion_2", "y": 270 }, "when": { @@ -548,7 +548,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_3" + "model": "tiny_flowers:block/tiny_dandelion_3" }, "when": { "facing": "north", @@ -557,7 +557,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_3", + "model": "tiny_flowers:block/tiny_dandelion_3", "y": 90 }, "when": { @@ -567,7 +567,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_3", + "model": "tiny_flowers:block/tiny_dandelion_3", "y": 180 }, "when": { @@ -577,7 +577,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_3", + "model": "tiny_flowers:block/tiny_dandelion_3", "y": 270 }, "when": { @@ -587,7 +587,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_4" + "model": "tiny_flowers:block/tiny_dandelion_4" }, "when": { "facing": "north", @@ -596,7 +596,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_4", + "model": "tiny_flowers:block/tiny_dandelion_4", "y": 90 }, "when": { @@ -606,7 +606,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_4", + "model": "tiny_flowers:block/tiny_dandelion_4", "y": 180 }, "when": { @@ -616,7 +616,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_dandelion_4", + "model": "tiny_flowers:block/tiny_dandelion_4", "y": 270 }, "when": { @@ -626,7 +626,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_1" + "model": "tiny_flowers:block/tiny_poppy_1" }, "when": { "facing": "north", @@ -635,7 +635,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_1", + "model": "tiny_flowers:block/tiny_poppy_1", "y": 90 }, "when": { @@ -645,7 +645,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_1", + "model": "tiny_flowers:block/tiny_poppy_1", "y": 180 }, "when": { @@ -655,7 +655,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_1", + "model": "tiny_flowers:block/tiny_poppy_1", "y": 270 }, "when": { @@ -665,7 +665,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_2" + "model": "tiny_flowers:block/tiny_poppy_2" }, "when": { "facing": "north", @@ -674,7 +674,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_2", + "model": "tiny_flowers:block/tiny_poppy_2", "y": 90 }, "when": { @@ -684,7 +684,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_2", + "model": "tiny_flowers:block/tiny_poppy_2", "y": 180 }, "when": { @@ -694,7 +694,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_2", + "model": "tiny_flowers:block/tiny_poppy_2", "y": 270 }, "when": { @@ -704,7 +704,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_3" + "model": "tiny_flowers:block/tiny_poppy_3" }, "when": { "facing": "north", @@ -713,7 +713,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_3", + "model": "tiny_flowers:block/tiny_poppy_3", "y": 90 }, "when": { @@ -723,7 +723,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_3", + "model": "tiny_flowers:block/tiny_poppy_3", "y": 180 }, "when": { @@ -733,7 +733,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_3", + "model": "tiny_flowers:block/tiny_poppy_3", "y": 270 }, "when": { @@ -743,7 +743,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_4" + "model": "tiny_flowers:block/tiny_poppy_4" }, "when": { "facing": "north", @@ -752,7 +752,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_4", + "model": "tiny_flowers:block/tiny_poppy_4", "y": 90 }, "when": { @@ -762,7 +762,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_4", + "model": "tiny_flowers:block/tiny_poppy_4", "y": 180 }, "when": { @@ -772,7 +772,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_poppy_4", + "model": "tiny_flowers:block/tiny_poppy_4", "y": 270 }, "when": { @@ -782,7 +782,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_1" + "model": "tiny_flowers:block/tiny_blue_orchid_1" }, "when": { "facing": "north", @@ -791,7 +791,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_1", + "model": "tiny_flowers:block/tiny_blue_orchid_1", "y": 90 }, "when": { @@ -801,7 +801,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_1", + "model": "tiny_flowers:block/tiny_blue_orchid_1", "y": 180 }, "when": { @@ -811,7 +811,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_1", + "model": "tiny_flowers:block/tiny_blue_orchid_1", "y": 270 }, "when": { @@ -821,7 +821,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_2" + "model": "tiny_flowers:block/tiny_blue_orchid_2" }, "when": { "facing": "north", @@ -830,7 +830,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_2", + "model": "tiny_flowers:block/tiny_blue_orchid_2", "y": 90 }, "when": { @@ -840,7 +840,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_2", + "model": "tiny_flowers:block/tiny_blue_orchid_2", "y": 180 }, "when": { @@ -850,7 +850,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_2", + "model": "tiny_flowers:block/tiny_blue_orchid_2", "y": 270 }, "when": { @@ -860,7 +860,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_3" + "model": "tiny_flowers:block/tiny_blue_orchid_3" }, "when": { "facing": "north", @@ -869,7 +869,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_3", + "model": "tiny_flowers:block/tiny_blue_orchid_3", "y": 90 }, "when": { @@ -879,7 +879,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_3", + "model": "tiny_flowers:block/tiny_blue_orchid_3", "y": 180 }, "when": { @@ -889,7 +889,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_3", + "model": "tiny_flowers:block/tiny_blue_orchid_3", "y": 270 }, "when": { @@ -899,7 +899,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_4" + "model": "tiny_flowers:block/tiny_blue_orchid_4" }, "when": { "facing": "north", @@ -908,7 +908,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_4", + "model": "tiny_flowers:block/tiny_blue_orchid_4", "y": 90 }, "when": { @@ -918,7 +918,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_4", + "model": "tiny_flowers:block/tiny_blue_orchid_4", "y": 180 }, "when": { @@ -928,7 +928,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_blue_orchid_4", + "model": "tiny_flowers:block/tiny_blue_orchid_4", "y": 270 }, "when": { @@ -938,7 +938,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_1" + "model": "tiny_flowers:block/tiny_allium_1" }, "when": { "facing": "north", @@ -947,7 +947,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_1", + "model": "tiny_flowers:block/tiny_allium_1", "y": 90 }, "when": { @@ -957,7 +957,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_1", + "model": "tiny_flowers:block/tiny_allium_1", "y": 180 }, "when": { @@ -967,7 +967,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_1", + "model": "tiny_flowers:block/tiny_allium_1", "y": 270 }, "when": { @@ -977,7 +977,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_2" + "model": "tiny_flowers:block/tiny_allium_2" }, "when": { "facing": "north", @@ -986,7 +986,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_2", + "model": "tiny_flowers:block/tiny_allium_2", "y": 90 }, "when": { @@ -996,7 +996,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_2", + "model": "tiny_flowers:block/tiny_allium_2", "y": 180 }, "when": { @@ -1006,7 +1006,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_2", + "model": "tiny_flowers:block/tiny_allium_2", "y": 270 }, "when": { @@ -1016,7 +1016,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_3" + "model": "tiny_flowers:block/tiny_allium_3" }, "when": { "facing": "north", @@ -1025,7 +1025,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_3", + "model": "tiny_flowers:block/tiny_allium_3", "y": 90 }, "when": { @@ -1035,7 +1035,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_3", + "model": "tiny_flowers:block/tiny_allium_3", "y": 180 }, "when": { @@ -1045,7 +1045,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_3", + "model": "tiny_flowers:block/tiny_allium_3", "y": 270 }, "when": { @@ -1055,7 +1055,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_4" + "model": "tiny_flowers:block/tiny_allium_4" }, "when": { "facing": "north", @@ -1064,7 +1064,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_4", + "model": "tiny_flowers:block/tiny_allium_4", "y": 90 }, "when": { @@ -1074,7 +1074,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_4", + "model": "tiny_flowers:block/tiny_allium_4", "y": 180 }, "when": { @@ -1084,7 +1084,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_allium_4", + "model": "tiny_flowers:block/tiny_allium_4", "y": 270 }, "when": { @@ -1094,7 +1094,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_1" + "model": "tiny_flowers:block/tiny_azure_bluet_1" }, "when": { "facing": "north", @@ -1103,7 +1103,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_1", + "model": "tiny_flowers:block/tiny_azure_bluet_1", "y": 90 }, "when": { @@ -1113,7 +1113,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_1", + "model": "tiny_flowers:block/tiny_azure_bluet_1", "y": 180 }, "when": { @@ -1123,7 +1123,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_1", + "model": "tiny_flowers:block/tiny_azure_bluet_1", "y": 270 }, "when": { @@ -1133,7 +1133,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_2" + "model": "tiny_flowers:block/tiny_azure_bluet_2" }, "when": { "facing": "north", @@ -1142,7 +1142,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_2", + "model": "tiny_flowers:block/tiny_azure_bluet_2", "y": 90 }, "when": { @@ -1152,7 +1152,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_2", + "model": "tiny_flowers:block/tiny_azure_bluet_2", "y": 180 }, "when": { @@ -1162,7 +1162,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_2", + "model": "tiny_flowers:block/tiny_azure_bluet_2", "y": 270 }, "when": { @@ -1172,7 +1172,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_3" + "model": "tiny_flowers:block/tiny_azure_bluet_3" }, "when": { "facing": "north", @@ -1181,7 +1181,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_3", + "model": "tiny_flowers:block/tiny_azure_bluet_3", "y": 90 }, "when": { @@ -1191,7 +1191,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_3", + "model": "tiny_flowers:block/tiny_azure_bluet_3", "y": 180 }, "when": { @@ -1201,7 +1201,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_3", + "model": "tiny_flowers:block/tiny_azure_bluet_3", "y": 270 }, "when": { @@ -1211,7 +1211,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_4" + "model": "tiny_flowers:block/tiny_azure_bluet_4" }, "when": { "facing": "north", @@ -1220,7 +1220,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_4", + "model": "tiny_flowers:block/tiny_azure_bluet_4", "y": 90 }, "when": { @@ -1230,7 +1230,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_4", + "model": "tiny_flowers:block/tiny_azure_bluet_4", "y": 180 }, "when": { @@ -1240,7 +1240,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_azure_bluet_4", + "model": "tiny_flowers:block/tiny_azure_bluet_4", "y": 270 }, "when": { @@ -1250,7 +1250,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_1" + "model": "tiny_flowers:block/tiny_red_tulip_1" }, "when": { "facing": "north", @@ -1259,7 +1259,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_1", + "model": "tiny_flowers:block/tiny_red_tulip_1", "y": 90 }, "when": { @@ -1269,7 +1269,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_1", + "model": "tiny_flowers:block/tiny_red_tulip_1", "y": 180 }, "when": { @@ -1279,7 +1279,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_1", + "model": "tiny_flowers:block/tiny_red_tulip_1", "y": 270 }, "when": { @@ -1289,7 +1289,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_2" + "model": "tiny_flowers:block/tiny_red_tulip_2" }, "when": { "facing": "north", @@ -1298,7 +1298,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_2", + "model": "tiny_flowers:block/tiny_red_tulip_2", "y": 90 }, "when": { @@ -1308,7 +1308,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_2", + "model": "tiny_flowers:block/tiny_red_tulip_2", "y": 180 }, "when": { @@ -1318,7 +1318,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_2", + "model": "tiny_flowers:block/tiny_red_tulip_2", "y": 270 }, "when": { @@ -1328,7 +1328,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_3" + "model": "tiny_flowers:block/tiny_red_tulip_3" }, "when": { "facing": "north", @@ -1337,7 +1337,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_3", + "model": "tiny_flowers:block/tiny_red_tulip_3", "y": 90 }, "when": { @@ -1347,7 +1347,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_3", + "model": "tiny_flowers:block/tiny_red_tulip_3", "y": 180 }, "when": { @@ -1357,7 +1357,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_3", + "model": "tiny_flowers:block/tiny_red_tulip_3", "y": 270 }, "when": { @@ -1367,7 +1367,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_4" + "model": "tiny_flowers:block/tiny_red_tulip_4" }, "when": { "facing": "north", @@ -1376,7 +1376,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_4", + "model": "tiny_flowers:block/tiny_red_tulip_4", "y": 90 }, "when": { @@ -1386,7 +1386,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_4", + "model": "tiny_flowers:block/tiny_red_tulip_4", "y": 180 }, "when": { @@ -1396,7 +1396,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_red_tulip_4", + "model": "tiny_flowers:block/tiny_red_tulip_4", "y": 270 }, "when": { @@ -1406,7 +1406,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_1" + "model": "tiny_flowers:block/tiny_orange_tulip_1" }, "when": { "facing": "north", @@ -1415,7 +1415,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_1", + "model": "tiny_flowers:block/tiny_orange_tulip_1", "y": 90 }, "when": { @@ -1425,7 +1425,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_1", + "model": "tiny_flowers:block/tiny_orange_tulip_1", "y": 180 }, "when": { @@ -1435,7 +1435,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_1", + "model": "tiny_flowers:block/tiny_orange_tulip_1", "y": 270 }, "when": { @@ -1445,7 +1445,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_2" + "model": "tiny_flowers:block/tiny_orange_tulip_2" }, "when": { "facing": "north", @@ -1454,7 +1454,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_2", + "model": "tiny_flowers:block/tiny_orange_tulip_2", "y": 90 }, "when": { @@ -1464,7 +1464,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_2", + "model": "tiny_flowers:block/tiny_orange_tulip_2", "y": 180 }, "when": { @@ -1474,7 +1474,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_2", + "model": "tiny_flowers:block/tiny_orange_tulip_2", "y": 270 }, "when": { @@ -1484,7 +1484,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_3" + "model": "tiny_flowers:block/tiny_orange_tulip_3" }, "when": { "facing": "north", @@ -1493,7 +1493,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_3", + "model": "tiny_flowers:block/tiny_orange_tulip_3", "y": 90 }, "when": { @@ -1503,7 +1503,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_3", + "model": "tiny_flowers:block/tiny_orange_tulip_3", "y": 180 }, "when": { @@ -1513,7 +1513,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_3", + "model": "tiny_flowers:block/tiny_orange_tulip_3", "y": 270 }, "when": { @@ -1523,7 +1523,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_4" + "model": "tiny_flowers:block/tiny_orange_tulip_4" }, "when": { "facing": "north", @@ -1532,7 +1532,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_4", + "model": "tiny_flowers:block/tiny_orange_tulip_4", "y": 90 }, "when": { @@ -1542,7 +1542,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_4", + "model": "tiny_flowers:block/tiny_orange_tulip_4", "y": 180 }, "when": { @@ -1552,7 +1552,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_orange_tulip_4", + "model": "tiny_flowers:block/tiny_orange_tulip_4", "y": 270 }, "when": { @@ -1562,7 +1562,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_1" + "model": "tiny_flowers:block/tiny_white_tulip_1" }, "when": { "facing": "north", @@ -1571,7 +1571,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_1", + "model": "tiny_flowers:block/tiny_white_tulip_1", "y": 90 }, "when": { @@ -1581,7 +1581,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_1", + "model": "tiny_flowers:block/tiny_white_tulip_1", "y": 180 }, "when": { @@ -1591,7 +1591,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_1", + "model": "tiny_flowers:block/tiny_white_tulip_1", "y": 270 }, "when": { @@ -1601,7 +1601,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_2" + "model": "tiny_flowers:block/tiny_white_tulip_2" }, "when": { "facing": "north", @@ -1610,7 +1610,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_2", + "model": "tiny_flowers:block/tiny_white_tulip_2", "y": 90 }, "when": { @@ -1620,7 +1620,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_2", + "model": "tiny_flowers:block/tiny_white_tulip_2", "y": 180 }, "when": { @@ -1630,7 +1630,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_2", + "model": "tiny_flowers:block/tiny_white_tulip_2", "y": 270 }, "when": { @@ -1640,7 +1640,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_3" + "model": "tiny_flowers:block/tiny_white_tulip_3" }, "when": { "facing": "north", @@ -1649,7 +1649,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_3", + "model": "tiny_flowers:block/tiny_white_tulip_3", "y": 90 }, "when": { @@ -1659,7 +1659,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_3", + "model": "tiny_flowers:block/tiny_white_tulip_3", "y": 180 }, "when": { @@ -1669,7 +1669,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_3", + "model": "tiny_flowers:block/tiny_white_tulip_3", "y": 270 }, "when": { @@ -1679,7 +1679,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_4" + "model": "tiny_flowers:block/tiny_white_tulip_4" }, "when": { "facing": "north", @@ -1688,7 +1688,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_4", + "model": "tiny_flowers:block/tiny_white_tulip_4", "y": 90 }, "when": { @@ -1698,7 +1698,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_4", + "model": "tiny_flowers:block/tiny_white_tulip_4", "y": 180 }, "when": { @@ -1708,7 +1708,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_white_tulip_4", + "model": "tiny_flowers:block/tiny_white_tulip_4", "y": 270 }, "when": { @@ -1718,7 +1718,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_1" + "model": "tiny_flowers:block/tiny_pink_tulip_1" }, "when": { "facing": "north", @@ -1727,7 +1727,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_1", + "model": "tiny_flowers:block/tiny_pink_tulip_1", "y": 90 }, "when": { @@ -1737,7 +1737,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_1", + "model": "tiny_flowers:block/tiny_pink_tulip_1", "y": 180 }, "when": { @@ -1747,7 +1747,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_1", + "model": "tiny_flowers:block/tiny_pink_tulip_1", "y": 270 }, "when": { @@ -1757,7 +1757,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_2" + "model": "tiny_flowers:block/tiny_pink_tulip_2" }, "when": { "facing": "north", @@ -1766,7 +1766,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_2", + "model": "tiny_flowers:block/tiny_pink_tulip_2", "y": 90 }, "when": { @@ -1776,7 +1776,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_2", + "model": "tiny_flowers:block/tiny_pink_tulip_2", "y": 180 }, "when": { @@ -1786,7 +1786,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_2", + "model": "tiny_flowers:block/tiny_pink_tulip_2", "y": 270 }, "when": { @@ -1796,7 +1796,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_3" + "model": "tiny_flowers:block/tiny_pink_tulip_3" }, "when": { "facing": "north", @@ -1805,7 +1805,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_3", + "model": "tiny_flowers:block/tiny_pink_tulip_3", "y": 90 }, "when": { @@ -1815,7 +1815,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_3", + "model": "tiny_flowers:block/tiny_pink_tulip_3", "y": 180 }, "when": { @@ -1825,7 +1825,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_3", + "model": "tiny_flowers:block/tiny_pink_tulip_3", "y": 270 }, "when": { @@ -1835,7 +1835,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_4" + "model": "tiny_flowers:block/tiny_pink_tulip_4" }, "when": { "facing": "north", @@ -1844,7 +1844,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_4", + "model": "tiny_flowers:block/tiny_pink_tulip_4", "y": 90 }, "when": { @@ -1854,7 +1854,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_4", + "model": "tiny_flowers:block/tiny_pink_tulip_4", "y": 180 }, "when": { @@ -1864,7 +1864,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_pink_tulip_4", + "model": "tiny_flowers:block/tiny_pink_tulip_4", "y": 270 }, "when": { @@ -1874,7 +1874,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_1" + "model": "tiny_flowers:block/tiny_oxeye_daisy_1" }, "when": { "facing": "north", @@ -1883,7 +1883,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_1", + "model": "tiny_flowers:block/tiny_oxeye_daisy_1", "y": 90 }, "when": { @@ -1893,7 +1893,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_1", + "model": "tiny_flowers:block/tiny_oxeye_daisy_1", "y": 180 }, "when": { @@ -1903,7 +1903,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_1", + "model": "tiny_flowers:block/tiny_oxeye_daisy_1", "y": 270 }, "when": { @@ -1913,7 +1913,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_2" + "model": "tiny_flowers:block/tiny_oxeye_daisy_2" }, "when": { "facing": "north", @@ -1922,7 +1922,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_2", + "model": "tiny_flowers:block/tiny_oxeye_daisy_2", "y": 90 }, "when": { @@ -1932,7 +1932,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_2", + "model": "tiny_flowers:block/tiny_oxeye_daisy_2", "y": 180 }, "when": { @@ -1942,7 +1942,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_2", + "model": "tiny_flowers:block/tiny_oxeye_daisy_2", "y": 270 }, "when": { @@ -1952,7 +1952,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_3" + "model": "tiny_flowers:block/tiny_oxeye_daisy_3" }, "when": { "facing": "north", @@ -1961,7 +1961,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_3", + "model": "tiny_flowers:block/tiny_oxeye_daisy_3", "y": 90 }, "when": { @@ -1971,7 +1971,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_3", + "model": "tiny_flowers:block/tiny_oxeye_daisy_3", "y": 180 }, "when": { @@ -1981,7 +1981,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_3", + "model": "tiny_flowers:block/tiny_oxeye_daisy_3", "y": 270 }, "when": { @@ -1991,7 +1991,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_4" + "model": "tiny_flowers:block/tiny_oxeye_daisy_4" }, "when": { "facing": "north", @@ -2000,7 +2000,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_4", + "model": "tiny_flowers:block/tiny_oxeye_daisy_4", "y": 90 }, "when": { @@ -2010,7 +2010,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_4", + "model": "tiny_flowers:block/tiny_oxeye_daisy_4", "y": 180 }, "when": { @@ -2020,7 +2020,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_oxeye_daisy_4", + "model": "tiny_flowers:block/tiny_oxeye_daisy_4", "y": 270 }, "when": { @@ -2030,7 +2030,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_1" + "model": "tiny_flowers:block/tiny_cornflower_1" }, "when": { "facing": "north", @@ -2039,7 +2039,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_1", + "model": "tiny_flowers:block/tiny_cornflower_1", "y": 90 }, "when": { @@ -2049,7 +2049,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_1", + "model": "tiny_flowers:block/tiny_cornflower_1", "y": 180 }, "when": { @@ -2059,7 +2059,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_1", + "model": "tiny_flowers:block/tiny_cornflower_1", "y": 270 }, "when": { @@ -2069,7 +2069,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_2" + "model": "tiny_flowers:block/tiny_cornflower_2" }, "when": { "facing": "north", @@ -2078,7 +2078,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_2", + "model": "tiny_flowers:block/tiny_cornflower_2", "y": 90 }, "when": { @@ -2088,7 +2088,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_2", + "model": "tiny_flowers:block/tiny_cornflower_2", "y": 180 }, "when": { @@ -2098,7 +2098,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_2", + "model": "tiny_flowers:block/tiny_cornflower_2", "y": 270 }, "when": { @@ -2108,7 +2108,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_3" + "model": "tiny_flowers:block/tiny_cornflower_3" }, "when": { "facing": "north", @@ -2117,7 +2117,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_3", + "model": "tiny_flowers:block/tiny_cornflower_3", "y": 90 }, "when": { @@ -2127,7 +2127,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_3", + "model": "tiny_flowers:block/tiny_cornflower_3", "y": 180 }, "when": { @@ -2137,7 +2137,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_3", + "model": "tiny_flowers:block/tiny_cornflower_3", "y": 270 }, "when": { @@ -2147,7 +2147,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_4" + "model": "tiny_flowers:block/tiny_cornflower_4" }, "when": { "facing": "north", @@ -2156,7 +2156,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_4", + "model": "tiny_flowers:block/tiny_cornflower_4", "y": 90 }, "when": { @@ -2166,7 +2166,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_4", + "model": "tiny_flowers:block/tiny_cornflower_4", "y": 180 }, "when": { @@ -2176,7 +2176,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cornflower_4", + "model": "tiny_flowers:block/tiny_cornflower_4", "y": 270 }, "when": { @@ -2186,7 +2186,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_1" + "model": "tiny_flowers:block/tiny_lily_of_the_valley_1" }, "when": { "facing": "north", @@ -2195,7 +2195,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_1", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_1", "y": 90 }, "when": { @@ -2205,7 +2205,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_1", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_1", "y": 180 }, "when": { @@ -2215,7 +2215,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_1", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_1", "y": 270 }, "when": { @@ -2225,7 +2225,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_2" + "model": "tiny_flowers:block/tiny_lily_of_the_valley_2" }, "when": { "facing": "north", @@ -2234,7 +2234,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_2", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_2", "y": 90 }, "when": { @@ -2244,7 +2244,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_2", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_2", "y": 180 }, "when": { @@ -2254,7 +2254,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_2", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_2", "y": 270 }, "when": { @@ -2264,7 +2264,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_3" + "model": "tiny_flowers:block/tiny_lily_of_the_valley_3" }, "when": { "facing": "north", @@ -2273,7 +2273,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_3", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_3", "y": 90 }, "when": { @@ -2283,7 +2283,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_3", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_3", "y": 180 }, "when": { @@ -2293,7 +2293,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_3", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_3", "y": 270 }, "when": { @@ -2303,7 +2303,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_4" + "model": "tiny_flowers:block/tiny_lily_of_the_valley_4" }, "when": { "facing": "north", @@ -2312,7 +2312,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_4", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_4", "y": 90 }, "when": { @@ -2322,7 +2322,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_4", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_4", "y": 180 }, "when": { @@ -2332,7 +2332,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_lily_of_the_valley_4", + "model": "tiny_flowers:block/tiny_lily_of_the_valley_4", "y": 270 }, "when": { @@ -2342,7 +2342,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_1" + "model": "tiny_flowers:block/tiny_torchflower_1" }, "when": { "facing": "north", @@ -2351,7 +2351,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_1", + "model": "tiny_flowers:block/tiny_torchflower_1", "y": 90 }, "when": { @@ -2361,7 +2361,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_1", + "model": "tiny_flowers:block/tiny_torchflower_1", "y": 180 }, "when": { @@ -2371,7 +2371,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_1", + "model": "tiny_flowers:block/tiny_torchflower_1", "y": 270 }, "when": { @@ -2381,7 +2381,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_2" + "model": "tiny_flowers:block/tiny_torchflower_2" }, "when": { "facing": "north", @@ -2390,7 +2390,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_2", + "model": "tiny_flowers:block/tiny_torchflower_2", "y": 90 }, "when": { @@ -2400,7 +2400,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_2", + "model": "tiny_flowers:block/tiny_torchflower_2", "y": 180 }, "when": { @@ -2410,7 +2410,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_2", + "model": "tiny_flowers:block/tiny_torchflower_2", "y": 270 }, "when": { @@ -2420,7 +2420,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_3" + "model": "tiny_flowers:block/tiny_torchflower_3" }, "when": { "facing": "north", @@ -2429,7 +2429,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_3", + "model": "tiny_flowers:block/tiny_torchflower_3", "y": 90 }, "when": { @@ -2439,7 +2439,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_3", + "model": "tiny_flowers:block/tiny_torchflower_3", "y": 180 }, "when": { @@ -2449,7 +2449,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_3", + "model": "tiny_flowers:block/tiny_torchflower_3", "y": 270 }, "when": { @@ -2459,7 +2459,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_4" + "model": "tiny_flowers:block/tiny_torchflower_4" }, "when": { "facing": "north", @@ -2468,7 +2468,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_4", + "model": "tiny_flowers:block/tiny_torchflower_4", "y": 90 }, "when": { @@ -2478,7 +2478,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_4", + "model": "tiny_flowers:block/tiny_torchflower_4", "y": 180 }, "when": { @@ -2488,7 +2488,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_torchflower_4", + "model": "tiny_flowers:block/tiny_torchflower_4", "y": 270 }, "when": { @@ -2498,7 +2498,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_1" + "model": "tiny_flowers:block/tiny_closed_eyeblossom_1" }, "when": { "facing": "north", @@ -2507,7 +2507,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_1", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_1", "y": 90 }, "when": { @@ -2517,7 +2517,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_1", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_1", "y": 180 }, "when": { @@ -2527,7 +2527,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_1", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_1", "y": 270 }, "when": { @@ -2537,7 +2537,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_2" + "model": "tiny_flowers:block/tiny_closed_eyeblossom_2" }, "when": { "facing": "north", @@ -2546,7 +2546,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_2", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_2", "y": 90 }, "when": { @@ -2556,7 +2556,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_2", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_2", "y": 180 }, "when": { @@ -2566,7 +2566,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_2", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_2", "y": 270 }, "when": { @@ -2576,7 +2576,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_3" + "model": "tiny_flowers:block/tiny_closed_eyeblossom_3" }, "when": { "facing": "north", @@ -2585,7 +2585,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_3", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_3", "y": 90 }, "when": { @@ -2595,7 +2595,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_3", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_3", "y": 180 }, "when": { @@ -2605,7 +2605,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_3", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_3", "y": 270 }, "when": { @@ -2615,7 +2615,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_4" + "model": "tiny_flowers:block/tiny_closed_eyeblossom_4" }, "when": { "facing": "north", @@ -2624,7 +2624,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_4", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_4", "y": 90 }, "when": { @@ -2634,7 +2634,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_4", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_4", "y": 180 }, "when": { @@ -2644,7 +2644,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_closed_eyeblossom_4", + "model": "tiny_flowers:block/tiny_closed_eyeblossom_4", "y": 270 }, "when": { @@ -2654,7 +2654,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_1" + "model": "tiny_flowers:block/tiny_open_eyeblossom_1" }, "when": { "facing": "north", @@ -2663,7 +2663,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_1", + "model": "tiny_flowers:block/tiny_open_eyeblossom_1", "y": 90 }, "when": { @@ -2673,7 +2673,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_1", + "model": "tiny_flowers:block/tiny_open_eyeblossom_1", "y": 180 }, "when": { @@ -2683,7 +2683,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_1", + "model": "tiny_flowers:block/tiny_open_eyeblossom_1", "y": 270 }, "when": { @@ -2693,7 +2693,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_2" + "model": "tiny_flowers:block/tiny_open_eyeblossom_2" }, "when": { "facing": "north", @@ -2702,7 +2702,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_2", + "model": "tiny_flowers:block/tiny_open_eyeblossom_2", "y": 90 }, "when": { @@ -2712,7 +2712,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_2", + "model": "tiny_flowers:block/tiny_open_eyeblossom_2", "y": 180 }, "when": { @@ -2722,7 +2722,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_2", + "model": "tiny_flowers:block/tiny_open_eyeblossom_2", "y": 270 }, "when": { @@ -2732,7 +2732,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_3" + "model": "tiny_flowers:block/tiny_open_eyeblossom_3" }, "when": { "facing": "north", @@ -2741,7 +2741,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_3", + "model": "tiny_flowers:block/tiny_open_eyeblossom_3", "y": 90 }, "when": { @@ -2751,7 +2751,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_3", + "model": "tiny_flowers:block/tiny_open_eyeblossom_3", "y": 180 }, "when": { @@ -2761,7 +2761,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_3", + "model": "tiny_flowers:block/tiny_open_eyeblossom_3", "y": 270 }, "when": { @@ -2771,7 +2771,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_4" + "model": "tiny_flowers:block/tiny_open_eyeblossom_4" }, "when": { "facing": "north", @@ -2780,7 +2780,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_4", + "model": "tiny_flowers:block/tiny_open_eyeblossom_4", "y": 90 }, "when": { @@ -2790,7 +2790,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_4", + "model": "tiny_flowers:block/tiny_open_eyeblossom_4", "y": 180 }, "when": { @@ -2800,7 +2800,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_open_eyeblossom_4", + "model": "tiny_flowers:block/tiny_open_eyeblossom_4", "y": 270 }, "when": { @@ -2810,7 +2810,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_1" + "model": "tiny_flowers:block/tiny_wither_rose_1" }, "when": { "facing": "north", @@ -2819,7 +2819,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_1", + "model": "tiny_flowers:block/tiny_wither_rose_1", "y": 90 }, "when": { @@ -2829,7 +2829,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_1", + "model": "tiny_flowers:block/tiny_wither_rose_1", "y": 180 }, "when": { @@ -2839,7 +2839,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_1", + "model": "tiny_flowers:block/tiny_wither_rose_1", "y": 270 }, "when": { @@ -2849,7 +2849,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_2" + "model": "tiny_flowers:block/tiny_wither_rose_2" }, "when": { "facing": "north", @@ -2858,7 +2858,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_2", + "model": "tiny_flowers:block/tiny_wither_rose_2", "y": 90 }, "when": { @@ -2868,7 +2868,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_2", + "model": "tiny_flowers:block/tiny_wither_rose_2", "y": 180 }, "when": { @@ -2878,7 +2878,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_2", + "model": "tiny_flowers:block/tiny_wither_rose_2", "y": 270 }, "when": { @@ -2888,7 +2888,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_3" + "model": "tiny_flowers:block/tiny_wither_rose_3" }, "when": { "facing": "north", @@ -2897,7 +2897,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_3", + "model": "tiny_flowers:block/tiny_wither_rose_3", "y": 90 }, "when": { @@ -2907,7 +2907,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_3", + "model": "tiny_flowers:block/tiny_wither_rose_3", "y": 180 }, "when": { @@ -2917,7 +2917,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_3", + "model": "tiny_flowers:block/tiny_wither_rose_3", "y": 270 }, "when": { @@ -2927,7 +2927,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_4" + "model": "tiny_flowers:block/tiny_wither_rose_4" }, "when": { "facing": "north", @@ -2936,7 +2936,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_4", + "model": "tiny_flowers:block/tiny_wither_rose_4", "y": 90 }, "when": { @@ -2946,7 +2946,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_4", + "model": "tiny_flowers:block/tiny_wither_rose_4", "y": 180 }, "when": { @@ -2956,7 +2956,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_wither_rose_4", + "model": "tiny_flowers:block/tiny_wither_rose_4", "y": 270 }, "when": { @@ -2966,7 +2966,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_1" + "model": "tiny_flowers:block/tiny_cactus_flower_1" }, "when": { "facing": "north", @@ -2975,7 +2975,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_1", + "model": "tiny_flowers:block/tiny_cactus_flower_1", "y": 90 }, "when": { @@ -2985,7 +2985,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_1", + "model": "tiny_flowers:block/tiny_cactus_flower_1", "y": 180 }, "when": { @@ -2995,7 +2995,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_1", + "model": "tiny_flowers:block/tiny_cactus_flower_1", "y": 270 }, "when": { @@ -3005,7 +3005,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_2" + "model": "tiny_flowers:block/tiny_cactus_flower_2" }, "when": { "facing": "north", @@ -3014,7 +3014,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_2", + "model": "tiny_flowers:block/tiny_cactus_flower_2", "y": 90 }, "when": { @@ -3024,7 +3024,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_2", + "model": "tiny_flowers:block/tiny_cactus_flower_2", "y": 180 }, "when": { @@ -3034,7 +3034,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_2", + "model": "tiny_flowers:block/tiny_cactus_flower_2", "y": 270 }, "when": { @@ -3044,7 +3044,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_3" + "model": "tiny_flowers:block/tiny_cactus_flower_3" }, "when": { "facing": "north", @@ -3053,7 +3053,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_3", + "model": "tiny_flowers:block/tiny_cactus_flower_3", "y": 90 }, "when": { @@ -3063,7 +3063,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_3", + "model": "tiny_flowers:block/tiny_cactus_flower_3", "y": 180 }, "when": { @@ -3073,7 +3073,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_3", + "model": "tiny_flowers:block/tiny_cactus_flower_3", "y": 270 }, "when": { @@ -3083,7 +3083,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_4" + "model": "tiny_flowers:block/tiny_cactus_flower_4" }, "when": { "facing": "north", @@ -3092,7 +3092,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_4", + "model": "tiny_flowers:block/tiny_cactus_flower_4", "y": 90 }, "when": { @@ -3102,7 +3102,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_4", + "model": "tiny_flowers:block/tiny_cactus_flower_4", "y": 180 }, "when": { @@ -3112,7 +3112,7 @@ }, { "apply": { - "model": "tiny-flowers:block/tiny_cactus_flower_4", + "model": "tiny_flowers:block/tiny_cactus_flower_4", "y": 270 }, "when": { diff --git a/src/main/generated/assets/tiny-flowers/items/florists_shears.json b/src/main/generated/assets/tiny_flowers/items/florists_shears.json similarity index 81% rename from src/main/generated/assets/tiny-flowers/items/florists_shears.json rename to src/main/generated/assets/tiny_flowers/items/florists_shears.json index e0a7eea0..cfb0ffed 100644 --- a/src/main/generated/assets/tiny-flowers/items/florists_shears.json +++ b/src/main/generated/assets/tiny_flowers/items/florists_shears.json @@ -1,7 +1,7 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/florists_shears", + "model": "tiny_flowers:item/florists_shears", "tints": [ { "type": "minecraft:constant", diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_allium.json b/src/main/generated/assets/tiny_flowers/items/tiny_allium.json similarity index 53% rename from src/main/generated/assets/tiny-flowers/items/tiny_allium.json rename to src/main/generated/assets/tiny_flowers/items/tiny_allium.json index c1278bf2..82da59ca 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_allium.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_allium.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_allium" + "model": "tiny_flowers:item/tiny_allium" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_azure_bluet.json b/src/main/generated/assets/tiny_flowers/items/tiny_azure_bluet.json similarity index 50% rename from src/main/generated/assets/tiny-flowers/items/tiny_azure_bluet.json rename to src/main/generated/assets/tiny_flowers/items/tiny_azure_bluet.json index 4cbb5ed5..9001c4bb 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_azure_bluet.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_azure_bluet.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_azure_bluet" + "model": "tiny_flowers:item/tiny_azure_bluet" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_blue_orchid.json b/src/main/generated/assets/tiny_flowers/items/tiny_blue_orchid.json similarity index 50% rename from src/main/generated/assets/tiny-flowers/items/tiny_blue_orchid.json rename to src/main/generated/assets/tiny_flowers/items/tiny_blue_orchid.json index 9cf6771f..e1d24335 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_blue_orchid.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_blue_orchid.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_blue_orchid" + "model": "tiny_flowers:item/tiny_blue_orchid" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_cactus_flower.json b/src/main/generated/assets/tiny_flowers/items/tiny_cactus_flower.json new file mode 100644 index 00000000..9b7997e2 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/items/tiny_cactus_flower.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_cactus_flower" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny_flowers/items/tiny_closed_eyeblossom.json new file mode 100644 index 00000000..ecd1c5f0 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/items/tiny_closed_eyeblossom.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_closed_eyeblossom" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_cornflower.json b/src/main/generated/assets/tiny_flowers/items/tiny_cornflower.json similarity index 51% rename from src/main/generated/assets/tiny-flowers/items/tiny_cornflower.json rename to src/main/generated/assets/tiny_flowers/items/tiny_cornflower.json index fb65ae7c..2350def4 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_cornflower.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_cornflower.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_cornflower" + "model": "tiny_flowers:item/tiny_cornflower" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_dandelion.json b/src/main/generated/assets/tiny_flowers/items/tiny_dandelion.json similarity index 51% rename from src/main/generated/assets/tiny-flowers/items/tiny_dandelion.json rename to src/main/generated/assets/tiny_flowers/items/tiny_dandelion.json index 644d422f..3c5f4343 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_dandelion.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_dandelion.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_dandelion" + "model": "tiny_flowers:item/tiny_dandelion" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_garden.json b/src/main/generated/assets/tiny_flowers/items/tiny_garden.json similarity index 53% rename from src/main/generated/assets/tiny-flowers/items/tiny_garden.json rename to src/main/generated/assets/tiny_flowers/items/tiny_garden.json index 572b9aa7..817a75e8 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_garden.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_garden.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_garden" + "model": "tiny_flowers:item/tiny_garden" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny_flowers/items/tiny_lily_of_the_valley.json new file mode 100644 index 00000000..0b1ed1f7 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/items/tiny_lily_of_the_valley.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_lily_of_the_valley" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny_flowers/items/tiny_open_eyeblossom.json new file mode 100644 index 00000000..e33e0ffc --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/items/tiny_open_eyeblossom.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_open_eyeblossom" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_orange_tulip.json b/src/main/generated/assets/tiny_flowers/items/tiny_orange_tulip.json similarity index 50% rename from src/main/generated/assets/tiny-flowers/items/tiny_orange_tulip.json rename to src/main/generated/assets/tiny_flowers/items/tiny_orange_tulip.json index 185936d9..55078c6a 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_orange_tulip.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_orange_tulip.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_orange_tulip" + "model": "tiny_flowers:item/tiny_orange_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_oxeye_daisy.json b/src/main/generated/assets/tiny_flowers/items/tiny_oxeye_daisy.json similarity index 50% rename from src/main/generated/assets/tiny-flowers/items/tiny_oxeye_daisy.json rename to src/main/generated/assets/tiny_flowers/items/tiny_oxeye_daisy.json index a8af7aae..c72f6c57 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_oxeye_daisy.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_oxeye_daisy.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_oxeye_daisy" + "model": "tiny_flowers:item/tiny_oxeye_daisy" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_pink_tulip.json b/src/main/generated/assets/tiny_flowers/items/tiny_pink_tulip.json similarity index 51% rename from src/main/generated/assets/tiny-flowers/items/tiny_pink_tulip.json rename to src/main/generated/assets/tiny_flowers/items/tiny_pink_tulip.json index 1aa10c2f..ddf0525d 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_pink_tulip.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_pink_tulip.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_pink_tulip" + "model": "tiny_flowers:item/tiny_pink_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_poppy.json b/src/main/generated/assets/tiny_flowers/items/tiny_poppy.json similarity index 53% rename from src/main/generated/assets/tiny-flowers/items/tiny_poppy.json rename to src/main/generated/assets/tiny_flowers/items/tiny_poppy.json index 8c6b3a31..545c9d98 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_poppy.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_poppy.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_poppy" + "model": "tiny_flowers:item/tiny_poppy" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_red_tulip.json b/src/main/generated/assets/tiny_flowers/items/tiny_red_tulip.json similarity index 51% rename from src/main/generated/assets/tiny-flowers/items/tiny_red_tulip.json rename to src/main/generated/assets/tiny_flowers/items/tiny_red_tulip.json index 0a886edc..78eeea1f 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_red_tulip.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_red_tulip.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_red_tulip" + "model": "tiny_flowers:item/tiny_red_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_torchflower.json b/src/main/generated/assets/tiny_flowers/items/tiny_torchflower.json similarity index 50% rename from src/main/generated/assets/tiny-flowers/items/tiny_torchflower.json rename to src/main/generated/assets/tiny_flowers/items/tiny_torchflower.json index 7a54f12f..2274dd22 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_torchflower.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_torchflower.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_torchflower" + "model": "tiny_flowers:item/tiny_torchflower" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_white_tulip.json b/src/main/generated/assets/tiny_flowers/items/tiny_white_tulip.json similarity index 50% rename from src/main/generated/assets/tiny-flowers/items/tiny_white_tulip.json rename to src/main/generated/assets/tiny_flowers/items/tiny_white_tulip.json index 339a81d6..af3d90f6 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_white_tulip.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_white_tulip.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_white_tulip" + "model": "tiny_flowers:item/tiny_white_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/items/tiny_wither_rose.json b/src/main/generated/assets/tiny_flowers/items/tiny_wither_rose.json similarity index 50% rename from src/main/generated/assets/tiny-flowers/items/tiny_wither_rose.json rename to src/main/generated/assets/tiny_flowers/items/tiny_wither_rose.json index ad7c606a..25a1bf9f 100644 --- a/src/main/generated/assets/tiny-flowers/items/tiny_wither_rose.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_wither_rose.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "tiny-flowers:item/tiny_wither_rose" + "model": "tiny_flowers:item/tiny_wither_rose" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/block/leaf_litter_1.json b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_1.json similarity index 68% rename from src/main/generated/assets/tiny-flowers/models/block/leaf_litter_1.json rename to src/main/generated/assets/tiny_flowers/models/block/leaf_litter_1.json index 17c254cb..af3910bb 100644 --- a/src/main/generated/assets/tiny-flowers/models/block/leaf_litter_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_1.json @@ -1,5 +1,5 @@ { - "parent": "tiny-flowers:block/garden_leaf_litter_1", + "parent": "tiny_flowers:block/garden_leaf_litter_1", "textures": { "flowerbed": "minecraft:block/leaf_litter", "particle": "minecraft:block/leaf_litter" diff --git a/src/main/generated/assets/tiny-flowers/models/block/leaf_litter_2.json b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_2.json similarity index 68% rename from src/main/generated/assets/tiny-flowers/models/block/leaf_litter_2.json rename to src/main/generated/assets/tiny_flowers/models/block/leaf_litter_2.json index 979617f2..34084b4f 100644 --- a/src/main/generated/assets/tiny-flowers/models/block/leaf_litter_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_2.json @@ -1,5 +1,5 @@ { - "parent": "tiny-flowers:block/garden_leaf_litter_2", + "parent": "tiny_flowers:block/garden_leaf_litter_2", "textures": { "flowerbed": "minecraft:block/leaf_litter", "particle": "minecraft:block/leaf_litter" diff --git a/src/main/generated/assets/tiny-flowers/models/block/leaf_litter_3.json b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_3.json similarity index 68% rename from src/main/generated/assets/tiny-flowers/models/block/leaf_litter_3.json rename to src/main/generated/assets/tiny_flowers/models/block/leaf_litter_3.json index eebc6d92..5587e293 100644 --- a/src/main/generated/assets/tiny-flowers/models/block/leaf_litter_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_3.json @@ -1,5 +1,5 @@ { - "parent": "tiny-flowers:block/garden_leaf_litter_3", + "parent": "tiny_flowers:block/garden_leaf_litter_3", "textures": { "flowerbed": "minecraft:block/leaf_litter", "particle": "minecraft:block/leaf_litter" diff --git a/src/main/generated/assets/tiny-flowers/models/block/leaf_litter_4.json b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_4.json similarity index 68% rename from src/main/generated/assets/tiny-flowers/models/block/leaf_litter_4.json rename to src/main/generated/assets/tiny_flowers/models/block/leaf_litter_4.json index cd670a32..1feef887 100644 --- a/src/main/generated/assets/tiny-flowers/models/block/leaf_litter_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_4.json @@ -1,5 +1,5 @@ { - "parent": "tiny-flowers:block/garden_leaf_litter_4", + "parent": "tiny_flowers:block/garden_leaf_litter_4", "textures": { "flowerbed": "minecraft:block/leaf_litter", "particle": "minecraft:block/leaf_litter" diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_1.json new file mode 100644 index 00000000..ea6b6ca0 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_2.json new file mode 100644 index 00000000..4b7d74d9 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_3.json new file mode 100644 index 00000000..0b52f4db --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_4.json new file mode 100644 index 00000000..49096e3b --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_1.json new file mode 100644 index 00000000..3f30e4db --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_2.json new file mode 100644 index 00000000..a426b3df --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_3.json new file mode 100644 index 00000000..0483491a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_4.json new file mode 100644 index 00000000..5f74df90 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_1.json new file mode 100644 index 00000000..4c7c8ff8 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_1.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_2.json new file mode 100644 index 00000000..a36b101d --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_2.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_3.json new file mode 100644 index 00000000..477eee28 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_3.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_4.json new file mode 100644 index 00000000..a7870708 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_4.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_1.json new file mode 100644 index 00000000..10cd18ab --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_low_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_2.json new file mode 100644 index 00000000..6e614476 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_low_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_3.json new file mode 100644 index 00000000..6fb71aef --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_low_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_4.json new file mode 100644 index 00000000..b48d97f9 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_low_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_1.json new file mode 100644 index 00000000..15591232 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_2.json new file mode 100644 index 00000000..acf25406 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_3.json new file mode 100644 index 00000000..54448fa0 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_4.json new file mode 100644 index 00000000..4d111137 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_1.json new file mode 100644 index 00000000..34c30ff6 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_2.json new file mode 100644 index 00000000..79247819 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_3.json new file mode 100644 index 00000000..09112a1c --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_4.json new file mode 100644 index 00000000..eb3321db --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_1.json new file mode 100644 index 00000000..f359bc87 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_2.json new file mode 100644 index 00000000..305efc43 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_3.json new file mode 100644 index 00000000..dea5daff --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_4.json new file mode 100644 index 00000000..37d8211a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_1.json new file mode 100644 index 00000000..3af1e010 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_1.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_2.json new file mode 100644 index 00000000..1ed913c9 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_2.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_3.json new file mode 100644 index 00000000..f4e41326 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_3.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_4.json new file mode 100644 index 00000000..a95f7ee0 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_4.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_1.json new file mode 100644 index 00000000..37f701d2 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_1.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_glow_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_2.json new file mode 100644 index 00000000..9eac4a3a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_2.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_glow_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_3.json new file mode 100644 index 00000000..6cb4e327 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_3.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_glow_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_4.json new file mode 100644 index 00000000..67c7d714 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_4.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_glow_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_1.json new file mode 100644 index 00000000..6f300104 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_2.json new file mode 100644 index 00000000..d1c81ecf --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_3.json new file mode 100644 index 00000000..3d83be38 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_4.json new file mode 100644 index 00000000..f5babf53 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_1.json new file mode 100644 index 00000000..279bc943 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_2.json new file mode 100644 index 00000000..d4007512 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_3.json new file mode 100644 index 00000000..dbe495a0 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_4.json new file mode 100644 index 00000000..e6a8392c --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_1.json new file mode 100644 index 00000000..c3c90269 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_2.json new file mode 100644 index 00000000..1478f55b --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_3.json new file mode 100644 index 00000000..3039a2c1 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_4.json new file mode 100644 index 00000000..2bd4e8ec --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_1.json new file mode 100644 index 00000000..990703a4 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_tall_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_2.json new file mode 100644 index 00000000..af62e9b6 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_tall_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_3.json new file mode 100644 index 00000000..6cf3d356 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_tall_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_4.json new file mode 100644 index 00000000..c50695bf --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_tall_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_1.json new file mode 100644 index 00000000..a9e8961d --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_2.json new file mode 100644 index 00000000..ac809398 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_3.json new file mode 100644 index 00000000..8ae8d706 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_4.json new file mode 100644 index 00000000..5d320e4c --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_1.json new file mode 100644 index 00000000..c5b8d0cd --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_1.json @@ -0,0 +1,10 @@ +{ + "parent": "tiny_flowers:block/garden_triple_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_2.json new file mode 100644 index 00000000..ef8272ad --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_2.json @@ -0,0 +1,10 @@ +{ + "parent": "tiny_flowers:block/garden_triple_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_3.json new file mode 100644 index 00000000..86193e9a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_3.json @@ -0,0 +1,10 @@ +{ + "parent": "tiny_flowers:block/garden_triple_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_4.json new file mode 100644 index 00000000..4bb8a1c2 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_4.json @@ -0,0 +1,10 @@ +{ + "parent": "tiny_flowers:block/garden_triple_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_1.json new file mode 100644 index 00000000..7976a815 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_2.json new file mode 100644 index 00000000..83866a5a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_3.json new file mode 100644 index 00000000..9f066cbb --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_4.json new file mode 100644 index 00000000..2f01184a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_1.json new file mode 100644 index 00000000..d3659fc1 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_2.json new file mode 100644 index 00000000..d8ace383 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_3.json new file mode 100644 index 00000000..e2c6ad1b --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_4.json new file mode 100644 index 00000000..2e50fa73 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/florists_shears.json b/src/main/generated/assets/tiny_flowers/models/item/florists_shears.json new file mode 100644 index 00000000..f5687db0 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/florists_shears.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/florists_shears", + "layer1": "tiny_flowers:item/florists_shears_handle" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_allium.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_allium.json similarity index 57% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_allium.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_allium.json index 3bb71e50..7203632b 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_allium.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_allium.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_allium" + "layer0": "tiny_flowers:item/tiny_allium" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_azure_bluet.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_azure_bluet.json similarity index 55% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_azure_bluet.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_azure_bluet.json index 0c50f76e..35490b90 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_azure_bluet.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_azure_bluet.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_azure_bluet" + "layer0": "tiny_flowers:item/tiny_azure_bluet" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_blue_orchid.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_blue_orchid.json similarity index 55% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_blue_orchid.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_blue_orchid.json index e60b4a26..548f45bd 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_blue_orchid.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_blue_orchid.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_blue_orchid" + "layer0": "tiny_flowers:item/tiny_blue_orchid" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_cactus_flower.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_cactus_flower.json similarity index 54% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_cactus_flower.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_cactus_flower.json index d54553d0..f10e3100 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_cactus_flower.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_cactus_flower.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_cactus_flower" + "layer0": "tiny_flowers:item/tiny_cactus_flower" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_closed_eyeblossom.json similarity index 52% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_closed_eyeblossom.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_closed_eyeblossom.json index 9d6aba23..68db64a5 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_closed_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_closed_eyeblossom.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_closed_eyeblossom" + "layer0": "tiny_flowers:item/tiny_closed_eyeblossom" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_cornflower.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_cornflower.json similarity index 55% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_cornflower.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_cornflower.json index b212b289..d04d5990 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_cornflower.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_cornflower.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_cornflower" + "layer0": "tiny_flowers:item/tiny_cornflower" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_dandelion.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_dandelion.json similarity index 56% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_dandelion.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_dandelion.json index 1ec2717d..1220da9d 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_dandelion.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_dandelion.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_dandelion" + "layer0": "tiny_flowers:item/tiny_dandelion" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_garden.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_garden.json similarity index 57% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_garden.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_garden.json index a15272b2..e9eaec2a 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_garden.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_garden.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_garden" + "layer0": "tiny_flowers:item/tiny_garden" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_lily_of_the_valley.json similarity index 52% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_lily_of_the_valley.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_lily_of_the_valley.json index fff926b2..8130511f 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_lily_of_the_valley.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_lily_of_the_valley.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_lily_of_the_valley" + "layer0": "tiny_flowers:item/tiny_lily_of_the_valley" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_open_eyeblossom.json similarity index 53% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_open_eyeblossom.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_open_eyeblossom.json index ff010068..8f524882 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_open_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_open_eyeblossom.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_open_eyeblossom" + "layer0": "tiny_flowers:item/tiny_open_eyeblossom" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_orange_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_orange_tulip.json similarity index 54% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_orange_tulip.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_orange_tulip.json index 8eb13e5f..5ac75668 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_orange_tulip.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_orange_tulip.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_orange_tulip" + "layer0": "tiny_flowers:item/tiny_orange_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_oxeye_daisy.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_oxeye_daisy.json similarity index 55% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_oxeye_daisy.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_oxeye_daisy.json index 2235fed2..337ed4ef 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_oxeye_daisy.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_oxeye_daisy.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_oxeye_daisy" + "layer0": "tiny_flowers:item/tiny_oxeye_daisy" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_pink_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_pink_tulip.json similarity index 55% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_pink_tulip.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_pink_tulip.json index 159c36a8..26f46632 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_pink_tulip.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_pink_tulip.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_pink_tulip" + "layer0": "tiny_flowers:item/tiny_pink_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_poppy.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_poppy.json similarity index 58% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_poppy.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_poppy.json index 61b47688..74b0010f 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_poppy.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_poppy.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_poppy" + "layer0": "tiny_flowers:item/tiny_poppy" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_red_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_red_tulip.json similarity index 56% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_red_tulip.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_red_tulip.json index 109331ab..c1ede6f4 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_red_tulip.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_red_tulip.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_red_tulip" + "layer0": "tiny_flowers:item/tiny_red_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_torchflower.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_torchflower.json similarity index 55% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_torchflower.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_torchflower.json index d820ef43..c4de06d6 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_torchflower.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_torchflower.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_torchflower" + "layer0": "tiny_flowers:item/tiny_torchflower" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_white_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_white_tulip.json similarity index 55% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_white_tulip.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_white_tulip.json index 49a2fee2..2b7db320 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_white_tulip.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_white_tulip.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_white_tulip" + "layer0": "tiny_flowers:item/tiny_white_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny-flowers/models/item/tiny_wither_rose.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_wither_rose.json similarity index 55% rename from src/main/generated/assets/tiny-flowers/models/item/tiny_wither_rose.json rename to src/main/generated/assets/tiny_flowers/models/item/tiny_wither_rose.json index 3970eba7..a633ea95 100644 --- a/src/main/generated/assets/tiny-flowers/models/item/tiny_wither_rose.json +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_wither_rose.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "tiny-flowers:item/tiny_wither_rose" + "layer0": "tiny_flowers:item/tiny_wither_rose" } } \ No newline at end of file diff --git a/src/main/generated/data/c/tags/item/tools/shear.json b/src/main/generated/data/c/tags/item/tools/shear.json index 428553ca..ca1c98e4 100644 --- a/src/main/generated/data/c/tags/item/tools/shear.json +++ b/src/main/generated/data/c/tags/item/tools/shear.json @@ -1,5 +1,5 @@ { "values": [ - "tiny-flowers:florists_shears" + "tiny_flowers:florists_shears" ] } \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/flowers.json b/src/main/generated/data/minecraft/tags/block/flowers.json index cc4ba250..4ad68040 100644 --- a/src/main/generated/data/minecraft/tags/block/flowers.json +++ b/src/main/generated/data/minecraft/tags/block/flowers.json @@ -1,5 +1,5 @@ { "values": [ - "tiny-flowers:tiny_garden" + "tiny_flowers:tiny_garden" ] } \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/inside_step_sound_blocks.json b/src/main/generated/data/minecraft/tags/block/inside_step_sound_blocks.json index cc4ba250..4ad68040 100644 --- a/src/main/generated/data/minecraft/tags/block/inside_step_sound_blocks.json +++ b/src/main/generated/data/minecraft/tags/block/inside_step_sound_blocks.json @@ -1,5 +1,5 @@ { "values": [ - "tiny-flowers:tiny_garden" + "tiny_flowers:tiny_garden" ] } \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/sword_efficient.json b/src/main/generated/data/minecraft/tags/block/sword_efficient.json index cc4ba250..4ad68040 100644 --- a/src/main/generated/data/minecraft/tags/block/sword_efficient.json +++ b/src/main/generated/data/minecraft/tags/block/sword_efficient.json @@ -1,5 +1,5 @@ { "values": [ - "tiny-flowers:tiny_garden" + "tiny_flowers:tiny_garden" ] } \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/item/bee_food.json b/src/main/generated/data/minecraft/tags/item/bee_food.json index 07d9aa27..78b0852f 100644 --- a/src/main/generated/data/minecraft/tags/item/bee_food.json +++ b/src/main/generated/data/minecraft/tags/item/bee_food.json @@ -1,5 +1,5 @@ { "values": [ - "#tiny-flowers:tiny_flowers" + "#tiny_flowers:tiny_flowers" ] } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tags/item/tiny_flowers.json b/src/main/generated/data/tiny-flowers/tags/item/tiny_flowers.json deleted file mode 100644 index a0268500..00000000 --- a/src/main/generated/data/tiny-flowers/tags/item/tiny_flowers.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "values": [ - "minecraft:pink_petals", - "minecraft:wildflowers", - "minecraft:leaf_litter", - "tiny-flowers:tiny_dandelion", - "tiny-flowers:tiny_poppy", - "tiny-flowers:tiny_blue_orchid", - "tiny-flowers:tiny_allium", - "tiny-flowers:tiny_azure_bluet", - "tiny-flowers:tiny_red_tulip", - "tiny-flowers:tiny_orange_tulip", - "tiny-flowers:tiny_white_tulip", - "tiny-flowers:tiny_pink_tulip", - "tiny-flowers:tiny_oxeye_daisy", - "tiny-flowers:tiny_cornflower", - "tiny-flowers:tiny_lily_of_the_valley", - "tiny-flowers:tiny_torchflower", - "tiny-flowers:tiny_closed_eyeblossom", - "tiny-flowers:tiny_open_eyeblossom", - "tiny-flowers:tiny_wither_rose", - "tiny-flowers:tiny_cactus_flower" - ] -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_allium.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_allium.json deleted file mode 100644 index cdb0f0b1..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_allium.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_allium", - "original_id": "minecraft:allium", - "should_create_item": true, - "stew_effect": { - "duration": 60, - "id": "minecraft:fire_resistance" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_azure_bluet.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_azure_bluet.json deleted file mode 100644 index 4ba2d5d1..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_azure_bluet.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_azure_bluet", - "original_id": "minecraft:azure_bluet", - "should_create_item": true, - "stew_effect": { - "duration": 220, - "id": "minecraft:blindness" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_blue_orchid.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_blue_orchid.json deleted file mode 100644 index 70dae1c5..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_blue_orchid.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_blue_orchid", - "original_id": "minecraft:blue_orchid", - "should_create_item": true, - "stew_effect": { - "duration": 7, - "id": "minecraft:saturation" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cactus_flower.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cactus_flower.json deleted file mode 100644 index 1e7b01bc..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cactus_flower.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "id": "tiny-flowers:tiny_cactus_flower", - "original_id": "minecraft:cactus_flower", - "should_create_item": true -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_closed_eyeblossom.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_closed_eyeblossom.json deleted file mode 100644 index bcc79b48..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_closed_eyeblossom.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_closed_eyeblossom", - "original_id": "minecraft:closed_eyeblossom", - "should_create_item": true, - "stew_effect": { - "duration": 140, - "id": "minecraft:nausea" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cornflower.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cornflower.json deleted file mode 100644 index 61ed760d..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_cornflower.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_cornflower", - "original_id": "minecraft:cornflower", - "should_create_item": true, - "stew_effect": { - "duration": 100, - "id": "minecraft:jump_boost" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_dandelion.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_dandelion.json deleted file mode 100644 index ca2cb1c9..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_dandelion.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_dandelion", - "original_id": "minecraft:dandelion", - "should_create_item": true, - "stew_effect": { - "duration": 7, - "id": "minecraft:saturation" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_lily_of_the_valley.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_lily_of_the_valley.json deleted file mode 100644 index d7df94b3..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_lily_of_the_valley.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_lily_of_the_valley", - "original_id": "minecraft:lily_of_the_valley", - "should_create_item": true, - "stew_effect": { - "duration": 220, - "id": "minecraft:poison" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_open_eyeblossom.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_open_eyeblossom.json deleted file mode 100644 index 9ab08d6d..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_open_eyeblossom.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_open_eyeblossom", - "original_id": "minecraft:open_eyeblossom", - "should_create_item": true, - "stew_effect": { - "duration": 220, - "id": "minecraft:blindness" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_orange_tulip.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_orange_tulip.json deleted file mode 100644 index bbc9a8b9..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_orange_tulip.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_orange_tulip", - "original_id": "minecraft:orange_tulip", - "should_create_item": true, - "stew_effect": { - "duration": 140, - "id": "minecraft:weakness" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_oxeye_daisy.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_oxeye_daisy.json deleted file mode 100644 index 131aac42..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_oxeye_daisy.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_oxeye_daisy", - "original_id": "minecraft:oxeye_daisy", - "should_create_item": true, - "stew_effect": { - "duration": 140, - "id": "minecraft:regeneration" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_pink_tulip.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_pink_tulip.json deleted file mode 100644 index cf819fc0..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_pink_tulip.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_pink_tulip", - "original_id": "minecraft:pink_tulip", - "should_create_item": true, - "stew_effect": { - "duration": 140, - "id": "minecraft:weakness" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_poppy.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_poppy.json deleted file mode 100644 index 23909590..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_poppy.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_poppy", - "original_id": "minecraft:poppy", - "should_create_item": true, - "stew_effect": { - "duration": 100, - "id": "minecraft:night_vision" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_red_tulip.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_red_tulip.json deleted file mode 100644 index f82ced78..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_red_tulip.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_red_tulip", - "original_id": "minecraft:red_tulip", - "should_create_item": true, - "stew_effect": { - "duration": 140, - "id": "minecraft:weakness" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_torchflower.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_torchflower.json deleted file mode 100644 index cd43f2cd..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_torchflower.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_torchflower", - "original_id": "minecraft:torchflower", - "should_create_item": true, - "stew_effect": { - "duration": 100, - "id": "minecraft:night_vision" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_white_tulip.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_white_tulip.json deleted file mode 100644 index a0f23a17..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_white_tulip.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_white_tulip", - "original_id": "minecraft:white_tulip", - "should_create_item": true, - "stew_effect": { - "duration": 140, - "id": "minecraft:weakness" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_wither_rose.json b/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_wither_rose.json deleted file mode 100644 index 2c622bb3..00000000 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/tiny_wither_rose.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "tiny-flowers:tiny_wither_rose", - "original_id": "minecraft:wither_rose", - "should_create_item": true, - "stew_effect": { - "duration": 140, - "id": "minecraft:wither" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_allium.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_allium.json similarity index 78% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_allium.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_allium.json index 55c1c101..cc54c790 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_allium.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_allium.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_allium" + "recipe": "tiny_flowers:tiny_allium" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_allium" + "tiny_flowers:tiny_allium" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_azure_bluet.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_azure_bluet.json similarity index 76% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_azure_bluet.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_azure_bluet.json index 6396c52a..766b2c65 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_azure_bluet.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_azure_bluet.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_azure_bluet" + "recipe": "tiny_flowers:tiny_azure_bluet" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_azure_bluet" + "tiny_flowers:tiny_azure_bluet" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_blue_orchid.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_blue_orchid.json similarity index 76% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_blue_orchid.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_blue_orchid.json index 3e35f1ed..a175581c 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_blue_orchid.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_blue_orchid.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_blue_orchid" + "recipe": "tiny_flowers:tiny_blue_orchid" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_blue_orchid" + "tiny_flowers:tiny_blue_orchid" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_cactus_flower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cactus_flower.json similarity index 76% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_cactus_flower.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cactus_flower.json index 31671a05..3babcd20 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_cactus_flower.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cactus_flower.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_cactus_flower" + "recipe": "tiny_flowers:tiny_cactus_flower" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_cactus_flower" + "tiny_flowers:tiny_cactus_flower" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_closed_eyeblossom.json similarity index 75% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_closed_eyeblossom.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_closed_eyeblossom.json index e7c0ad28..86affe32 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_closed_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_closed_eyeblossom.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_closed_eyeblossom" + "recipe": "tiny_flowers:tiny_closed_eyeblossom" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_closed_eyeblossom" + "tiny_flowers:tiny_closed_eyeblossom" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_cornflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cornflower.json similarity index 77% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_cornflower.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cornflower.json index 2ca13d74..8aeee085 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_cornflower.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cornflower.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_cornflower" + "recipe": "tiny_flowers:tiny_cornflower" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_cornflower" + "tiny_flowers:tiny_cornflower" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_dandelion.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_dandelion.json similarity index 77% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_dandelion.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_dandelion.json index 11fa7a2a..344f4ec3 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_dandelion.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_dandelion.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_dandelion" + "recipe": "tiny_flowers:tiny_dandelion" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_dandelion" + "tiny_flowers:tiny_dandelion" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_lily_of_the_valley.json similarity index 75% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_lily_of_the_valley.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_lily_of_the_valley.json index d1d3ab99..d56c8839 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_lily_of_the_valley.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_lily_of_the_valley.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_lily_of_the_valley" + "recipe": "tiny_flowers:tiny_lily_of_the_valley" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_lily_of_the_valley" + "tiny_flowers:tiny_lily_of_the_valley" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_open_eyeblossom.json similarity index 75% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_open_eyeblossom.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_open_eyeblossom.json index b7757063..3ce3107a 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_open_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_open_eyeblossom.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_open_eyeblossom" + "recipe": "tiny_flowers:tiny_open_eyeblossom" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_open_eyeblossom" + "tiny_flowers:tiny_open_eyeblossom" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_orange_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_orange_tulip.json similarity index 76% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_orange_tulip.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_orange_tulip.json index afcd5c9b..395754e6 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_orange_tulip.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_orange_tulip.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_orange_tulip" + "recipe": "tiny_flowers:tiny_orange_tulip" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_orange_tulip" + "tiny_flowers:tiny_orange_tulip" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_oxeye_daisy.json similarity index 76% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_oxeye_daisy.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_oxeye_daisy.json index 6e90ba29..a01732bd 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_oxeye_daisy.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_oxeye_daisy.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_oxeye_daisy" + "recipe": "tiny_flowers:tiny_oxeye_daisy" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_oxeye_daisy" + "tiny_flowers:tiny_oxeye_daisy" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_pink_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_pink_tulip.json similarity index 77% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_pink_tulip.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_pink_tulip.json index 7b44caa5..3fc4256a 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_pink_tulip.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_pink_tulip.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_pink_tulip" + "recipe": "tiny_flowers:tiny_pink_tulip" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_pink_tulip" + "tiny_flowers:tiny_pink_tulip" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_poppy.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_poppy.json similarity index 78% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_poppy.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_poppy.json index 9d2ad086..15601790 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_poppy.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_poppy.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_poppy" + "recipe": "tiny_flowers:tiny_poppy" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_poppy" + "tiny_flowers:tiny_poppy" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_red_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_red_tulip.json similarity index 77% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_red_tulip.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_red_tulip.json index 0308d2a2..ec62ec3f 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_red_tulip.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_red_tulip.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_red_tulip" + "recipe": "tiny_flowers:tiny_red_tulip" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_red_tulip" + "tiny_flowers:tiny_red_tulip" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_torchflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_torchflower.json similarity index 76% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_torchflower.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_torchflower.json index 93557ba3..bec267ee 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_torchflower.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_torchflower.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_torchflower" + "recipe": "tiny_flowers:tiny_torchflower" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_torchflower" + "tiny_flowers:tiny_torchflower" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_white_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_white_tulip.json similarity index 76% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_white_tulip.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_white_tulip.json index ef52152f..e0a9ff6a 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_white_tulip.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_white_tulip.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_white_tulip" + "recipe": "tiny_flowers:tiny_white_tulip" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_white_tulip" + "tiny_flowers:tiny_white_tulip" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_wither_rose.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_wither_rose.json similarity index 76% rename from src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_wither_rose.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_wither_rose.json index 11c8b92b..3465afa8 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/decorations/tiny_wither_rose.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_wither_rose.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:florists_shears" + "items": "tiny_flowers:florists_shears" } ] }, @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:tiny_wither_rose" + "recipe": "tiny_flowers:tiny_wither_rose" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:tiny_wither_rose" + "tiny_flowers:tiny_wither_rose" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_allium.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_allium.json similarity index 73% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_allium.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_allium.json index d48e5fd1..7eaceaa8 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_allium.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_allium.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_allium" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_allium" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_allium" + "items": "tiny_flowers:tiny_allium" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_allium" + "tiny_flowers:suspicious_stew_from_tiny_allium" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_azure_bluet.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_azure_bluet.json similarity index 72% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_azure_bluet.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_azure_bluet.json index ab613073..bf7b541a 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_azure_bluet.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_azure_bluet.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_azure_bluet" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_azure_bluet" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_azure_bluet" + "items": "tiny_flowers:tiny_azure_bluet" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_azure_bluet" + "tiny_flowers:suspicious_stew_from_tiny_azure_bluet" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_blue_orchid.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_blue_orchid.json similarity index 72% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_blue_orchid.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_blue_orchid.json index b21829d1..bcf94a49 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_blue_orchid.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_blue_orchid.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_blue_orchid" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_blue_orchid" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_blue_orchid" + "items": "tiny_flowers:tiny_blue_orchid" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_blue_orchid" + "tiny_flowers:suspicious_stew_from_tiny_blue_orchid" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_closed_eyeblossom.json similarity index 72% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_closed_eyeblossom.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_closed_eyeblossom.json index 323817c4..2ecab486 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_closed_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_closed_eyeblossom.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_closed_eyeblossom" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_closed_eyeblossom" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_closed_eyeblossom" + "items": "tiny_flowers:tiny_closed_eyeblossom" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_closed_eyeblossom" + "tiny_flowers:suspicious_stew_from_tiny_closed_eyeblossom" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_cornflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_cornflower.json similarity index 73% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_cornflower.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_cornflower.json index 7aac09f4..f0460fd7 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_cornflower.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_cornflower.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_cornflower" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_cornflower" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_cornflower" + "items": "tiny_flowers:tiny_cornflower" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_cornflower" + "tiny_flowers:suspicious_stew_from_tiny_cornflower" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_dandelion.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_dandelion.json similarity index 73% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_dandelion.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_dandelion.json index 3749c172..b36bedd5 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_dandelion.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_dandelion.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_dandelion" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_dandelion" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_dandelion" + "items": "tiny_flowers:tiny_dandelion" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_dandelion" + "tiny_flowers:suspicious_stew_from_tiny_dandelion" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_lily_of_the_valley.json similarity index 72% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_lily_of_the_valley.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_lily_of_the_valley.json index 2d178e9f..61080cac 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_lily_of_the_valley.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_lily_of_the_valley.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_lily_of_the_valley" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_lily_of_the_valley" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_lily_of_the_valley" + "items": "tiny_flowers:tiny_lily_of_the_valley" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_lily_of_the_valley" + "tiny_flowers:suspicious_stew_from_tiny_lily_of_the_valley" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_open_eyeblossom.json similarity index 72% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_open_eyeblossom.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_open_eyeblossom.json index 51a27194..1dfdf7c1 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_open_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_open_eyeblossom.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_open_eyeblossom" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_open_eyeblossom" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_open_eyeblossom" + "items": "tiny_flowers:tiny_open_eyeblossom" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_open_eyeblossom" + "tiny_flowers:suspicious_stew_from_tiny_open_eyeblossom" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_orange_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_orange_tulip.json similarity index 72% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_orange_tulip.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_orange_tulip.json index ba679791..f26892c4 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_orange_tulip.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_orange_tulip.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_orange_tulip" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_orange_tulip" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_orange_tulip" + "items": "tiny_flowers:tiny_orange_tulip" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_orange_tulip" + "tiny_flowers:suspicious_stew_from_tiny_orange_tulip" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_oxeye_daisy.json similarity index 72% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_oxeye_daisy.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_oxeye_daisy.json index c3149266..86b92c4a 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_oxeye_daisy.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_oxeye_daisy.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_oxeye_daisy" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_oxeye_daisy" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_oxeye_daisy" + "items": "tiny_flowers:tiny_oxeye_daisy" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_oxeye_daisy" + "tiny_flowers:suspicious_stew_from_tiny_oxeye_daisy" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_pink_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_pink_tulip.json similarity index 73% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_pink_tulip.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_pink_tulip.json index 6d0e97d3..9412515a 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_pink_tulip.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_pink_tulip.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_pink_tulip" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_pink_tulip" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_pink_tulip" + "items": "tiny_flowers:tiny_pink_tulip" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_pink_tulip" + "tiny_flowers:suspicious_stew_from_tiny_pink_tulip" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_poppy.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_poppy.json similarity index 73% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_poppy.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_poppy.json index cbb543cc..073d027b 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_poppy.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_poppy.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_poppy" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_poppy" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_poppy" + "items": "tiny_flowers:tiny_poppy" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_poppy" + "tiny_flowers:suspicious_stew_from_tiny_poppy" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_red_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_red_tulip.json similarity index 73% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_red_tulip.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_red_tulip.json index 0f53928f..659a270b 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_red_tulip.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_red_tulip.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_red_tulip" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_red_tulip" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_red_tulip" + "items": "tiny_flowers:tiny_red_tulip" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_red_tulip" + "tiny_flowers:suspicious_stew_from_tiny_red_tulip" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_torchflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_torchflower.json similarity index 72% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_torchflower.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_torchflower.json index 6485b668..04a1d8b8 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_torchflower.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_torchflower.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_torchflower" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_torchflower" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_torchflower" + "items": "tiny_flowers:tiny_torchflower" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_torchflower" + "tiny_flowers:suspicious_stew_from_tiny_torchflower" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_white_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_white_tulip.json similarity index 72% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_white_tulip.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_white_tulip.json index ebd09a39..fc864451 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_white_tulip.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_white_tulip.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_white_tulip" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_white_tulip" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_white_tulip" + "items": "tiny_flowers:tiny_white_tulip" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_white_tulip" + "tiny_flowers:suspicious_stew_from_tiny_white_tulip" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_wither_rose.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_wither_rose.json similarity index 72% rename from src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_wither_rose.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_wither_rose.json index cea41375..8f7e1e38 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/food/suspicious_stew_from_tiny_wither_rose.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_wither_rose.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:suspicious_stew_from_tiny_wither_rose" + "recipe": "tiny_flowers:suspicious_stew_from_tiny_wither_rose" }, "trigger": "minecraft:recipe_unlocked" }, @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "items": "tiny-flowers:tiny_wither_rose" + "items": "tiny_flowers:tiny_wither_rose" } ] }, @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:suspicious_stew_from_tiny_wither_rose" + "tiny_flowers:suspicious_stew_from_tiny_wither_rose" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_black.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_black.json similarity index 83% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_black.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_black.json index ecb94cc0..fdddac57 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_black.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_black.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_black" + "recipe": "tiny_flowers:florists_shears_black" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_black" + "tiny_flowers:florists_shears_black" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_blue.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_blue.json similarity index 83% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_blue.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_blue.json index bbd2d89a..fe84302b 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_blue.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_blue.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_blue" + "recipe": "tiny_flowers:florists_shears_blue" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_blue" + "tiny_flowers:florists_shears_blue" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_brown.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_brown.json similarity index 83% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_brown.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_brown.json index f14d31dd..5eebf202 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_brown.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_brown.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_brown" + "recipe": "tiny_flowers:florists_shears_brown" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_brown" + "tiny_flowers:florists_shears_brown" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_cyan.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_cyan.json similarity index 83% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_cyan.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_cyan.json index 62e29b32..1a6fd9ab 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_cyan.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_cyan.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_cyan" + "recipe": "tiny_flowers:florists_shears_cyan" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_cyan" + "tiny_flowers:florists_shears_cyan" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_gray.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_gray.json similarity index 83% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_gray.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_gray.json index 31441598..03dd04f0 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_gray.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_gray.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_gray" + "recipe": "tiny_flowers:florists_shears_gray" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_gray" + "tiny_flowers:florists_shears_gray" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_green.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_green.json similarity index 83% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_green.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_green.json index 26fab54f..b6fb26cc 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_green.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_green.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_green" + "recipe": "tiny_flowers:florists_shears_green" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_green" + "tiny_flowers:florists_shears_green" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_light_blue.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_light_blue.json similarity index 81% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_light_blue.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_light_blue.json index 458489f7..da38bf4a 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_light_blue.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_light_blue.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_light_blue" + "recipe": "tiny_flowers:florists_shears_light_blue" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_light_blue" + "tiny_flowers:florists_shears_light_blue" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_light_gray.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_light_gray.json similarity index 81% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_light_gray.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_light_gray.json index 2ee04643..930a05c8 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_light_gray.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_light_gray.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_light_gray" + "recipe": "tiny_flowers:florists_shears_light_gray" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_light_gray" + "tiny_flowers:florists_shears_light_gray" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_lime.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_lime.json similarity index 83% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_lime.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_lime.json index 5c7e9d1e..8f91972b 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_lime.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_lime.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_lime" + "recipe": "tiny_flowers:florists_shears_lime" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_lime" + "tiny_flowers:florists_shears_lime" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_magenta.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_magenta.json similarity index 82% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_magenta.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_magenta.json index 577ff651..2edcab53 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_magenta.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_magenta.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_magenta" + "recipe": "tiny_flowers:florists_shears_magenta" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_magenta" + "tiny_flowers:florists_shears_magenta" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_orange.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_orange.json similarity index 82% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_orange.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_orange.json index c7b147bc..33e6e955 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_orange.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_orange.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_orange" + "recipe": "tiny_flowers:florists_shears_orange" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_orange" + "tiny_flowers:florists_shears_orange" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_pink.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_pink.json similarity index 83% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_pink.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_pink.json index 948c2869..ff34ec6d 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_pink.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_pink.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_pink" + "recipe": "tiny_flowers:florists_shears_pink" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_pink" + "tiny_flowers:florists_shears_pink" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_purple.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_purple.json similarity index 82% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_purple.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_purple.json index 6d030a5c..fc3d7c21 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_purple.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_purple.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_purple" + "recipe": "tiny_flowers:florists_shears_purple" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_purple" + "tiny_flowers:florists_shears_purple" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_red.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_red.json similarity index 83% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_red.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_red.json index af86346e..b392b1c5 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_red.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_red.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_red" + "recipe": "tiny_flowers:florists_shears_red" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_red" + "tiny_flowers:florists_shears_red" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_white.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_white.json similarity index 83% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_white.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_white.json index 5ad85bc6..f24a1020 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_white.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_white.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_white" + "recipe": "tiny_flowers:florists_shears_white" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_white" + "tiny_flowers:florists_shears_white" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_yellow.json b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_yellow.json similarity index 82% rename from src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_yellow.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_yellow.json index 4eea322d..c80f402e 100644 --- a/src/main/generated/data/tiny-flowers/advancement/recipes/tools/florists_shears_yellow.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/tools/florists_shears_yellow.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny-flowers:florists_shears_yellow" + "recipe": "tiny_flowers:florists_shears_yellow" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny-flowers:florists_shears_yellow" + "tiny_flowers:florists_shears_yellow" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/loot_table/blocks/tiny_garden.json b/src/main/generated/data/tiny_flowers/loot_table/blocks/tiny_garden.json similarity index 79% rename from src/main/generated/data/tiny-flowers/loot_table/blocks/tiny_garden.json rename to src/main/generated/data/tiny_flowers/loot_table/blocks/tiny_garden.json index e5ee57ae..9ab332a0 100644 --- a/src/main/generated/data/tiny-flowers/loot_table/blocks/tiny_garden.json +++ b/src/main/generated/data/tiny_flowers/loot_table/blocks/tiny_garden.json @@ -5,7 +5,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "pink_petals" @@ -24,7 +24,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "pink_petals" @@ -43,7 +43,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "pink_petals" @@ -62,7 +62,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "pink_petals" @@ -81,7 +81,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "wildflowers" @@ -100,7 +100,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "wildflowers" @@ -119,7 +119,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "wildflowers" @@ -138,7 +138,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "wildflowers" @@ -157,7 +157,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "leaf_litter" @@ -176,7 +176,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "leaf_litter" @@ -195,7 +195,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "leaf_litter" @@ -214,7 +214,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "leaf_litter" @@ -233,7 +233,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "dandelion" @@ -243,7 +243,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_dandelion" + "name": "tiny_flowers:tiny_dandelion" } ], "rolls": 1.0 @@ -252,7 +252,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "dandelion" @@ -262,7 +262,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_dandelion" + "name": "tiny_flowers:tiny_dandelion" } ], "rolls": 1.0 @@ -271,7 +271,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "dandelion" @@ -281,7 +281,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_dandelion" + "name": "tiny_flowers:tiny_dandelion" } ], "rolls": 1.0 @@ -290,7 +290,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "dandelion" @@ -300,7 +300,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_dandelion" + "name": "tiny_flowers:tiny_dandelion" } ], "rolls": 1.0 @@ -309,7 +309,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "poppy" @@ -319,7 +319,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_poppy" + "name": "tiny_flowers:tiny_poppy" } ], "rolls": 1.0 @@ -328,7 +328,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "poppy" @@ -338,7 +338,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_poppy" + "name": "tiny_flowers:tiny_poppy" } ], "rolls": 1.0 @@ -347,7 +347,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "poppy" @@ -357,7 +357,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_poppy" + "name": "tiny_flowers:tiny_poppy" } ], "rolls": 1.0 @@ -366,7 +366,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "poppy" @@ -376,7 +376,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_poppy" + "name": "tiny_flowers:tiny_poppy" } ], "rolls": 1.0 @@ -385,7 +385,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "blue_orchid" @@ -395,7 +395,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_blue_orchid" + "name": "tiny_flowers:tiny_blue_orchid" } ], "rolls": 1.0 @@ -404,7 +404,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "blue_orchid" @@ -414,7 +414,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_blue_orchid" + "name": "tiny_flowers:tiny_blue_orchid" } ], "rolls": 1.0 @@ -423,7 +423,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "blue_orchid" @@ -433,7 +433,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_blue_orchid" + "name": "tiny_flowers:tiny_blue_orchid" } ], "rolls": 1.0 @@ -442,7 +442,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "blue_orchid" @@ -452,7 +452,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_blue_orchid" + "name": "tiny_flowers:tiny_blue_orchid" } ], "rolls": 1.0 @@ -461,7 +461,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "allium" @@ -471,7 +471,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_allium" + "name": "tiny_flowers:tiny_allium" } ], "rolls": 1.0 @@ -480,7 +480,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "allium" @@ -490,7 +490,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_allium" + "name": "tiny_flowers:tiny_allium" } ], "rolls": 1.0 @@ -499,7 +499,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "allium" @@ -509,7 +509,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_allium" + "name": "tiny_flowers:tiny_allium" } ], "rolls": 1.0 @@ -518,7 +518,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "allium" @@ -528,7 +528,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_allium" + "name": "tiny_flowers:tiny_allium" } ], "rolls": 1.0 @@ -537,7 +537,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "azure_bluet" @@ -547,7 +547,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_azure_bluet" + "name": "tiny_flowers:tiny_azure_bluet" } ], "rolls": 1.0 @@ -556,7 +556,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "azure_bluet" @@ -566,7 +566,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_azure_bluet" + "name": "tiny_flowers:tiny_azure_bluet" } ], "rolls": 1.0 @@ -575,7 +575,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "azure_bluet" @@ -585,7 +585,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_azure_bluet" + "name": "tiny_flowers:tiny_azure_bluet" } ], "rolls": 1.0 @@ -594,7 +594,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "azure_bluet" @@ -604,7 +604,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_azure_bluet" + "name": "tiny_flowers:tiny_azure_bluet" } ], "rolls": 1.0 @@ -613,7 +613,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "red_tulip" @@ -623,7 +623,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_red_tulip" + "name": "tiny_flowers:tiny_red_tulip" } ], "rolls": 1.0 @@ -632,7 +632,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "red_tulip" @@ -642,7 +642,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_red_tulip" + "name": "tiny_flowers:tiny_red_tulip" } ], "rolls": 1.0 @@ -651,7 +651,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "red_tulip" @@ -661,7 +661,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_red_tulip" + "name": "tiny_flowers:tiny_red_tulip" } ], "rolls": 1.0 @@ -670,7 +670,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "red_tulip" @@ -680,7 +680,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_red_tulip" + "name": "tiny_flowers:tiny_red_tulip" } ], "rolls": 1.0 @@ -689,7 +689,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "orange_tulip" @@ -699,7 +699,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_orange_tulip" + "name": "tiny_flowers:tiny_orange_tulip" } ], "rolls": 1.0 @@ -708,7 +708,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "orange_tulip" @@ -718,7 +718,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_orange_tulip" + "name": "tiny_flowers:tiny_orange_tulip" } ], "rolls": 1.0 @@ -727,7 +727,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "orange_tulip" @@ -737,7 +737,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_orange_tulip" + "name": "tiny_flowers:tiny_orange_tulip" } ], "rolls": 1.0 @@ -746,7 +746,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "orange_tulip" @@ -756,7 +756,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_orange_tulip" + "name": "tiny_flowers:tiny_orange_tulip" } ], "rolls": 1.0 @@ -765,7 +765,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "white_tulip" @@ -775,7 +775,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_white_tulip" + "name": "tiny_flowers:tiny_white_tulip" } ], "rolls": 1.0 @@ -784,7 +784,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "white_tulip" @@ -794,7 +794,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_white_tulip" + "name": "tiny_flowers:tiny_white_tulip" } ], "rolls": 1.0 @@ -803,7 +803,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "white_tulip" @@ -813,7 +813,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_white_tulip" + "name": "tiny_flowers:tiny_white_tulip" } ], "rolls": 1.0 @@ -822,7 +822,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "white_tulip" @@ -832,7 +832,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_white_tulip" + "name": "tiny_flowers:tiny_white_tulip" } ], "rolls": 1.0 @@ -841,7 +841,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "pink_tulip" @@ -851,7 +851,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_pink_tulip" + "name": "tiny_flowers:tiny_pink_tulip" } ], "rolls": 1.0 @@ -860,7 +860,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "pink_tulip" @@ -870,7 +870,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_pink_tulip" + "name": "tiny_flowers:tiny_pink_tulip" } ], "rolls": 1.0 @@ -879,7 +879,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "pink_tulip" @@ -889,7 +889,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_pink_tulip" + "name": "tiny_flowers:tiny_pink_tulip" } ], "rolls": 1.0 @@ -898,7 +898,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "pink_tulip" @@ -908,7 +908,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_pink_tulip" + "name": "tiny_flowers:tiny_pink_tulip" } ], "rolls": 1.0 @@ -917,7 +917,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "oxeye_daisy" @@ -927,7 +927,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_oxeye_daisy" + "name": "tiny_flowers:tiny_oxeye_daisy" } ], "rolls": 1.0 @@ -936,7 +936,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "oxeye_daisy" @@ -946,7 +946,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_oxeye_daisy" + "name": "tiny_flowers:tiny_oxeye_daisy" } ], "rolls": 1.0 @@ -955,7 +955,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "oxeye_daisy" @@ -965,7 +965,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_oxeye_daisy" + "name": "tiny_flowers:tiny_oxeye_daisy" } ], "rolls": 1.0 @@ -974,7 +974,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "oxeye_daisy" @@ -984,7 +984,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_oxeye_daisy" + "name": "tiny_flowers:tiny_oxeye_daisy" } ], "rolls": 1.0 @@ -993,7 +993,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "cornflower" @@ -1003,7 +1003,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_cornflower" + "name": "tiny_flowers:tiny_cornflower" } ], "rolls": 1.0 @@ -1012,7 +1012,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "cornflower" @@ -1022,7 +1022,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_cornflower" + "name": "tiny_flowers:tiny_cornflower" } ], "rolls": 1.0 @@ -1031,7 +1031,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "cornflower" @@ -1041,7 +1041,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_cornflower" + "name": "tiny_flowers:tiny_cornflower" } ], "rolls": 1.0 @@ -1050,7 +1050,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "cornflower" @@ -1060,7 +1060,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_cornflower" + "name": "tiny_flowers:tiny_cornflower" } ], "rolls": 1.0 @@ -1069,7 +1069,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "lily_of_the_valley" @@ -1079,7 +1079,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_lily_of_the_valley" + "name": "tiny_flowers:tiny_lily_of_the_valley" } ], "rolls": 1.0 @@ -1088,7 +1088,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "lily_of_the_valley" @@ -1098,7 +1098,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_lily_of_the_valley" + "name": "tiny_flowers:tiny_lily_of_the_valley" } ], "rolls": 1.0 @@ -1107,7 +1107,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "lily_of_the_valley" @@ -1117,7 +1117,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_lily_of_the_valley" + "name": "tiny_flowers:tiny_lily_of_the_valley" } ], "rolls": 1.0 @@ -1126,7 +1126,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "lily_of_the_valley" @@ -1136,7 +1136,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_lily_of_the_valley" + "name": "tiny_flowers:tiny_lily_of_the_valley" } ], "rolls": 1.0 @@ -1145,7 +1145,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "torchflower" @@ -1155,7 +1155,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_torchflower" + "name": "tiny_flowers:tiny_torchflower" } ], "rolls": 1.0 @@ -1164,7 +1164,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "torchflower" @@ -1174,7 +1174,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_torchflower" + "name": "tiny_flowers:tiny_torchflower" } ], "rolls": 1.0 @@ -1183,7 +1183,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "torchflower" @@ -1193,7 +1193,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_torchflower" + "name": "tiny_flowers:tiny_torchflower" } ], "rolls": 1.0 @@ -1202,7 +1202,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "torchflower" @@ -1212,7 +1212,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_torchflower" + "name": "tiny_flowers:tiny_torchflower" } ], "rolls": 1.0 @@ -1221,7 +1221,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "closed_eyeblossom" @@ -1231,7 +1231,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_closed_eyeblossom" + "name": "tiny_flowers:tiny_closed_eyeblossom" } ], "rolls": 1.0 @@ -1240,7 +1240,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "closed_eyeblossom" @@ -1250,7 +1250,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_closed_eyeblossom" + "name": "tiny_flowers:tiny_closed_eyeblossom" } ], "rolls": 1.0 @@ -1259,7 +1259,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "closed_eyeblossom" @@ -1269,7 +1269,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_closed_eyeblossom" + "name": "tiny_flowers:tiny_closed_eyeblossom" } ], "rolls": 1.0 @@ -1278,7 +1278,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "closed_eyeblossom" @@ -1288,7 +1288,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_closed_eyeblossom" + "name": "tiny_flowers:tiny_closed_eyeblossom" } ], "rolls": 1.0 @@ -1297,7 +1297,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "open_eyeblossom" @@ -1307,7 +1307,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_open_eyeblossom" + "name": "tiny_flowers:tiny_open_eyeblossom" } ], "rolls": 1.0 @@ -1316,7 +1316,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "open_eyeblossom" @@ -1326,7 +1326,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_open_eyeblossom" + "name": "tiny_flowers:tiny_open_eyeblossom" } ], "rolls": 1.0 @@ -1335,7 +1335,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "open_eyeblossom" @@ -1345,7 +1345,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_open_eyeblossom" + "name": "tiny_flowers:tiny_open_eyeblossom" } ], "rolls": 1.0 @@ -1354,7 +1354,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "open_eyeblossom" @@ -1364,7 +1364,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_open_eyeblossom" + "name": "tiny_flowers:tiny_open_eyeblossom" } ], "rolls": 1.0 @@ -1373,7 +1373,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "wither_rose" @@ -1383,7 +1383,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_wither_rose" + "name": "tiny_flowers:tiny_wither_rose" } ], "rolls": 1.0 @@ -1392,7 +1392,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "wither_rose" @@ -1402,7 +1402,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_wither_rose" + "name": "tiny_flowers:tiny_wither_rose" } ], "rolls": 1.0 @@ -1411,7 +1411,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "wither_rose" @@ -1421,7 +1421,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_wither_rose" + "name": "tiny_flowers:tiny_wither_rose" } ], "rolls": 1.0 @@ -1430,7 +1430,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "wither_rose" @@ -1440,7 +1440,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_wither_rose" + "name": "tiny_flowers:tiny_wither_rose" } ], "rolls": 1.0 @@ -1449,7 +1449,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_1": "cactus_flower" @@ -1459,7 +1459,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_cactus_flower" + "name": "tiny_flowers:tiny_cactus_flower" } ], "rolls": 1.0 @@ -1468,7 +1468,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_2": "cactus_flower" @@ -1478,7 +1478,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_cactus_flower" + "name": "tiny_flowers:tiny_cactus_flower" } ], "rolls": 1.0 @@ -1487,7 +1487,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_3": "cactus_flower" @@ -1497,7 +1497,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_cactus_flower" + "name": "tiny_flowers:tiny_cactus_flower" } ], "rolls": 1.0 @@ -1506,7 +1506,7 @@ "bonus_rolls": 0.0, "conditions": [ { - "block": "tiny-flowers:tiny_garden", + "block": "tiny_flowers:tiny_garden", "condition": "minecraft:block_state_property", "properties": { "flower_variant_4": "cactus_flower" @@ -1516,7 +1516,7 @@ "entries": [ { "type": "minecraft:item", - "name": "tiny-flowers:tiny_cactus_flower" + "name": "tiny_flowers:tiny_cactus_flower" } ], "rolls": 1.0 diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_black.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_black.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_black.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_black.json index e9f8ba4d..d6daa4a2 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_black.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_black.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -14869215 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_blue.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_blue.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_blue.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_blue.json index a2094445..430e33bb 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_blue.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_blue.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -12827478 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_brown.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_brown.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_brown.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_brown.json index 0549dabf..0908a25f 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_brown.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_brown.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -8170446 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_cyan.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_cyan.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_cyan.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_cyan.json index 8c1a636c..bcfe480d 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_cyan.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_cyan.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -15295332 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_gray.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_gray.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_gray.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_gray.json index 91647527..2d7fd510 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_gray.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_gray.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -12103854 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_green.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_green.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_green.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_green.json index dea12ba5..eda9cac0 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_green.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_green.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -10585066 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_light_blue.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_light_blue.json similarity index 87% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_light_blue.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_light_blue.json index bc2a362c..e5518fdf 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_light_blue.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_light_blue.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -12930086 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_light_gray.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_light_gray.json similarity index 87% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_light_gray.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_light_gray.json index 707c0b45..20ca0614 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_light_gray.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_light_gray.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -6447721 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_lime.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_lime.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_lime.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_lime.json index 0157bf8b..ff056277 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_lime.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_lime.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -8337633 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_magenta.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_magenta.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_magenta.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_magenta.json index ef0faa8c..a93c7c4c 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_magenta.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_magenta.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -3715395 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_orange.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_orange.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_orange.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_orange.json index c86cc607..68366db0 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_orange.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_orange.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -425955 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_pink.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_pink.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_pink.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_pink.json index 5701894a..b0d3617c 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_pink.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_pink.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -816214 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_purple.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_purple.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_purple.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_purple.json index 01288c21..ed1d629d 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_purple.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_purple.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -7785800 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_red.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_red.json similarity index 83% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_red.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_red.json index d8aec3e7..d170d524 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_red.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_red.json @@ -8,6 +8,6 @@ ], "result": { "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_white.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_white.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_white.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_white.json index 7c651ec2..ae6d504f 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_white.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_white.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -393218 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/florists_shears_yellow.json b/src/main/generated/data/tiny_flowers/recipe/florists_shears_yellow.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/florists_shears_yellow.json rename to src/main/generated/data/tiny_flowers/recipe/florists_shears_yellow.json index 9dfdc439..4cf2305e 100644 --- a/src/main/generated/data/tiny-flowers/recipe/florists_shears_yellow.json +++ b/src/main/generated/data/tiny_flowers/recipe/florists_shears_yellow.json @@ -11,6 +11,6 @@ "minecraft:dyed_color": -75715 }, "count": 1, - "id": "tiny-flowers:florists_shears" + "id": "tiny_flowers:florists_shears" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_allium.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_allium.json similarity index 87% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_allium.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_allium.json index 3b17a760..184256e6 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_allium.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_allium.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_allium", - "tiny-flowers:tiny_allium" + "tiny_flowers:tiny_allium", + "tiny_flowers:tiny_allium" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_azure_bluet.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_azure_bluet.json similarity index 85% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_azure_bluet.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_azure_bluet.json index 28daa065..e8f25c3c 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_azure_bluet.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_azure_bluet.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_azure_bluet", - "tiny-flowers:tiny_azure_bluet" + "tiny_flowers:tiny_azure_bluet", + "tiny_flowers:tiny_azure_bluet" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_blue_orchid.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_blue_orchid.json similarity index 85% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_blue_orchid.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_blue_orchid.json index 2af3d412..199b6682 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_blue_orchid.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_blue_orchid.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_blue_orchid", - "tiny-flowers:tiny_blue_orchid" + "tiny_flowers:tiny_blue_orchid", + "tiny_flowers:tiny_blue_orchid" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_closed_eyeblossom.json similarity index 83% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_closed_eyeblossom.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_closed_eyeblossom.json index ced1338c..24084ef9 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_closed_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_closed_eyeblossom.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_closed_eyeblossom", - "tiny-flowers:tiny_closed_eyeblossom" + "tiny_flowers:tiny_closed_eyeblossom", + "tiny_flowers:tiny_closed_eyeblossom" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_cornflower.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_cornflower.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_cornflower.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_cornflower.json index 73ef920c..b919ce0a 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_cornflower.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_cornflower.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_cornflower", - "tiny-flowers:tiny_cornflower" + "tiny_flowers:tiny_cornflower", + "tiny_flowers:tiny_cornflower" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_dandelion.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_dandelion.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_dandelion.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_dandelion.json index 1a261c24..a7ca39c4 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_dandelion.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_dandelion.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_dandelion", - "tiny-flowers:tiny_dandelion" + "tiny_flowers:tiny_dandelion", + "tiny_flowers:tiny_dandelion" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_lily_of_the_valley.json similarity index 83% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_lily_of_the_valley.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_lily_of_the_valley.json index c018fd08..9f96e731 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_lily_of_the_valley.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_lily_of_the_valley.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_lily_of_the_valley", - "tiny-flowers:tiny_lily_of_the_valley" + "tiny_flowers:tiny_lily_of_the_valley", + "tiny_flowers:tiny_lily_of_the_valley" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_open_eyeblossom.json similarity index 84% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_open_eyeblossom.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_open_eyeblossom.json index 982c2768..7d08b929 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_open_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_open_eyeblossom.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_open_eyeblossom", - "tiny-flowers:tiny_open_eyeblossom" + "tiny_flowers:tiny_open_eyeblossom", + "tiny_flowers:tiny_open_eyeblossom" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_orange_tulip.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_orange_tulip.json similarity index 85% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_orange_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_orange_tulip.json index e03ad161..50a41980 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_orange_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_orange_tulip.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_orange_tulip", - "tiny-flowers:tiny_orange_tulip" + "tiny_flowers:tiny_orange_tulip", + "tiny_flowers:tiny_orange_tulip" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_oxeye_daisy.json similarity index 85% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_oxeye_daisy.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_oxeye_daisy.json index 3a5c9679..811748ae 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_oxeye_daisy.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_oxeye_daisy.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_oxeye_daisy", - "tiny-flowers:tiny_oxeye_daisy" + "tiny_flowers:tiny_oxeye_daisy", + "tiny_flowers:tiny_oxeye_daisy" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_pink_tulip.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_pink_tulip.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_pink_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_pink_tulip.json index 1e96594c..b90cb13a 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_pink_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_pink_tulip.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_pink_tulip", - "tiny-flowers:tiny_pink_tulip" + "tiny_flowers:tiny_pink_tulip", + "tiny_flowers:tiny_pink_tulip" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_poppy.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_poppy.json similarity index 87% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_poppy.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_poppy.json index 4b02a856..d62befa7 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_poppy.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_poppy.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_poppy", - "tiny-flowers:tiny_poppy" + "tiny_flowers:tiny_poppy", + "tiny_flowers:tiny_poppy" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_red_tulip.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_red_tulip.json similarity index 86% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_red_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_red_tulip.json index 4f4f34ad..f6f6398c 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_red_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_red_tulip.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_red_tulip", - "tiny-flowers:tiny_red_tulip" + "tiny_flowers:tiny_red_tulip", + "tiny_flowers:tiny_red_tulip" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_torchflower.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_torchflower.json similarity index 85% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_torchflower.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_torchflower.json index e5e76299..21affb9e 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_torchflower.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_torchflower.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_torchflower", - "tiny-flowers:tiny_torchflower" + "tiny_flowers:tiny_torchflower", + "tiny_flowers:tiny_torchflower" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_white_tulip.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_white_tulip.json similarity index 85% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_white_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_white_tulip.json index 34f8dc43..fb336b8b 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_white_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_white_tulip.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_white_tulip", - "tiny-flowers:tiny_white_tulip" + "tiny_flowers:tiny_white_tulip", + "tiny_flowers:tiny_white_tulip" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_wither_rose.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_wither_rose.json similarity index 85% rename from src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_wither_rose.json rename to src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_wither_rose.json index e0efdd5c..8df89bf1 100644 --- a/src/main/generated/data/tiny-flowers/recipe/suspicious_stew_from_tiny_wither_rose.json +++ b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_wither_rose.json @@ -6,8 +6,8 @@ "minecraft:bowl", "minecraft:brown_mushroom", "minecraft:red_mushroom", - "tiny-flowers:tiny_wither_rose", - "tiny-flowers:tiny_wither_rose" + "tiny_flowers:tiny_wither_rose", + "tiny_flowers:tiny_wither_rose" ], "result": { "components": { diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_allium.json b/src/main/generated/data/tiny_flowers/recipe/tiny_allium.json similarity index 70% rename from src/main/generated/data/tiny-flowers/recipe/tiny_allium.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_allium.json index ced7e252..d36a6abc 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_allium.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_allium.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:allium" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_allium" + "id": "tiny_flowers:tiny_allium" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_azure_bluet.json b/src/main/generated/data/tiny_flowers/recipe/tiny_azure_bluet.json similarity index 69% rename from src/main/generated/data/tiny-flowers/recipe/tiny_azure_bluet.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_azure_bluet.json index 296f0959..a6019c1c 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_azure_bluet.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_azure_bluet.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:azure_bluet" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_azure_bluet" + "id": "tiny_flowers:tiny_azure_bluet" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_blue_orchid.json b/src/main/generated/data/tiny_flowers/recipe/tiny_blue_orchid.json similarity index 69% rename from src/main/generated/data/tiny-flowers/recipe/tiny_blue_orchid.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_blue_orchid.json index 0f44543d..f51b4cbb 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_blue_orchid.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_blue_orchid.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:blue_orchid" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_blue_orchid" + "id": "tiny_flowers:tiny_blue_orchid" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_cactus_flower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_cactus_flower.json similarity index 69% rename from src/main/generated/data/tiny-flowers/recipe/tiny_cactus_flower.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_cactus_flower.json index a26e302a..8cc71520 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_cactus_flower.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_cactus_flower.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:cactus_flower" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_cactus_flower" + "id": "tiny_flowers:tiny_cactus_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/tiny_closed_eyeblossom.json similarity index 68% rename from src/main/generated/data/tiny-flowers/recipe/tiny_closed_eyeblossom.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_closed_eyeblossom.json index 2f007901..c8e94957 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_closed_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_closed_eyeblossom.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:closed_eyeblossom" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_closed_eyeblossom" + "id": "tiny_flowers:tiny_closed_eyeblossom" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_cornflower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_cornflower.json similarity index 69% rename from src/main/generated/data/tiny-flowers/recipe/tiny_cornflower.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_cornflower.json index a0e96f1c..9c5fe9ea 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_cornflower.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_cornflower.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:cornflower" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_cornflower" + "id": "tiny_flowers:tiny_cornflower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_dandelion.json b/src/main/generated/data/tiny_flowers/recipe/tiny_dandelion.json similarity index 70% rename from src/main/generated/data/tiny-flowers/recipe/tiny_dandelion.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_dandelion.json index 95e33f5b..4220d00f 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_dandelion.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_dandelion.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:dandelion" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_dandelion" + "id": "tiny_flowers:tiny_dandelion" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/recipe/tiny_lily_of_the_valley.json similarity index 68% rename from src/main/generated/data/tiny-flowers/recipe/tiny_lily_of_the_valley.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_lily_of_the_valley.json index 891ca9d8..d3cbbd62 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_lily_of_the_valley.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_lily_of_the_valley.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:lily_of_the_valley" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_lily_of_the_valley" + "id": "tiny_flowers:tiny_lily_of_the_valley" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/tiny_open_eyeblossom.json similarity index 69% rename from src/main/generated/data/tiny-flowers/recipe/tiny_open_eyeblossom.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_open_eyeblossom.json index 212d270c..968dc5c1 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_open_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_open_eyeblossom.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:open_eyeblossom" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_open_eyeblossom" + "id": "tiny_flowers:tiny_open_eyeblossom" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_orange_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_orange_tulip.json similarity index 69% rename from src/main/generated/data/tiny-flowers/recipe/tiny_orange_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_orange_tulip.json index e1e43bf4..ed1e969b 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_orange_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_orange_tulip.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:orange_tulip" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_orange_tulip" + "id": "tiny_flowers:tiny_orange_tulip" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/recipe/tiny_oxeye_daisy.json similarity index 69% rename from src/main/generated/data/tiny-flowers/recipe/tiny_oxeye_daisy.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_oxeye_daisy.json index 2f210e92..48b9f4fd 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_oxeye_daisy.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_oxeye_daisy.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:oxeye_daisy" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_oxeye_daisy" + "id": "tiny_flowers:tiny_oxeye_daisy" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_pink_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_pink_tulip.json similarity index 69% rename from src/main/generated/data/tiny-flowers/recipe/tiny_pink_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_pink_tulip.json index d58ed405..dd497cda 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_pink_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_pink_tulip.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:pink_tulip" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_pink_tulip" + "id": "tiny_flowers:tiny_pink_tulip" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_poppy.json b/src/main/generated/data/tiny_flowers/recipe/tiny_poppy.json similarity index 70% rename from src/main/generated/data/tiny-flowers/recipe/tiny_poppy.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_poppy.json index 761da347..71b0b7db 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_poppy.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_poppy.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:poppy" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_poppy" + "id": "tiny_flowers:tiny_poppy" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_red_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_red_tulip.json similarity index 70% rename from src/main/generated/data/tiny-flowers/recipe/tiny_red_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_red_tulip.json index 863f8d23..d8cab195 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_red_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_red_tulip.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:red_tulip" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_red_tulip" + "id": "tiny_flowers:tiny_red_tulip" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_torchflower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_torchflower.json similarity index 69% rename from src/main/generated/data/tiny-flowers/recipe/tiny_torchflower.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_torchflower.json index 79ff5356..4afa072c 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_torchflower.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_torchflower.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:torchflower" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_torchflower" + "id": "tiny_flowers:tiny_torchflower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_white_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_white_tulip.json similarity index 69% rename from src/main/generated/data/tiny-flowers/recipe/tiny_white_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_white_tulip.json index 6e52b062..f421532c 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_white_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_white_tulip.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:white_tulip" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_white_tulip" + "id": "tiny_flowers:tiny_white_tulip" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/recipe/tiny_wither_rose.json b/src/main/generated/data/tiny_flowers/recipe/tiny_wither_rose.json similarity index 69% rename from src/main/generated/data/tiny-flowers/recipe/tiny_wither_rose.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_wither_rose.json index e388eeec..ae6c86ac 100644 --- a/src/main/generated/data/tiny-flowers/recipe/tiny_wither_rose.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_wither_rose.json @@ -3,11 +3,11 @@ "category": "misc", "group": "tiny_flowers", "ingredients": [ - "tiny-flowers:florists_shears", + "tiny_flowers:florists_shears", "minecraft:wither_rose" ], "result": { "count": 4, - "id": "tiny-flowers:tiny_wither_rose" + "id": "tiny_flowers:tiny_wither_rose" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json b/src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json new file mode 100644 index 00000000..23a83663 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json @@ -0,0 +1,24 @@ +{ + "values": [ + "minecraft:pink_petals", + "minecraft:wildflowers", + "minecraft:leaf_litter", + "tiny_flowers:tiny_dandelion", + "tiny_flowers:tiny_poppy", + "tiny_flowers:tiny_blue_orchid", + "tiny_flowers:tiny_allium", + "tiny_flowers:tiny_azure_bluet", + "tiny_flowers:tiny_red_tulip", + "tiny_flowers:tiny_orange_tulip", + "tiny_flowers:tiny_white_tulip", + "tiny_flowers:tiny_pink_tulip", + "tiny_flowers:tiny_oxeye_daisy", + "tiny_flowers:tiny_cornflower", + "tiny_flowers:tiny_lily_of_the_valley", + "tiny_flowers:tiny_torchflower", + "tiny_flowers:tiny_closed_eyeblossom", + "tiny_flowers:tiny_open_eyeblossom", + "tiny_flowers:tiny_wither_rose", + "tiny_flowers:tiny_cactus_flower" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/leaf_litter.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/leaf_litter.json similarity index 67% rename from src/main/generated/data/tiny-flowers/tiny_flowers/leaf_litter.json rename to src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/leaf_litter.json index 728fb2a1..b0c7a121 100644 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/leaf_litter.json +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/leaf_litter.json @@ -1,5 +1,5 @@ { - "id": "tiny-flowers:leaf_litter", + "id": "tiny_flowers:leaf_litter", "original_id": "minecraft:leaf_litter", "should_create_item": false } \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/pink_petals.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/pink_petals.json similarity index 67% rename from src/main/generated/data/tiny-flowers/tiny_flowers/pink_petals.json rename to src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/pink_petals.json index 07bec0cd..a0387bd1 100644 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/pink_petals.json +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/pink_petals.json @@ -1,5 +1,5 @@ { - "id": "tiny-flowers:pink_petals", + "id": "tiny_flowers:pink_petals", "original_id": "minecraft:pink_petals", "should_create_item": false } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json new file mode 100644 index 00000000..85eafce5 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_allium", + "original_id": "minecraft:allium", + "suspicious_stew_effects": [ + { + "duration": 60, + "id": "minecraft:fire_resistance" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json new file mode 100644 index 00000000..b059bbf7 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_azure_bluet", + "original_id": "minecraft:azure_bluet", + "suspicious_stew_effects": [ + { + "duration": 220, + "id": "minecraft:blindness" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json new file mode 100644 index 00000000..071f8758 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_blue_orchid", + "original_id": "minecraft:blue_orchid", + "suspicious_stew_effects": [ + { + "duration": 7, + "id": "minecraft:saturation" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json new file mode 100644 index 00000000..0f692f64 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json @@ -0,0 +1,4 @@ +{ + "id": "tiny_flowers:tiny_cactus_flower", + "original_id": "minecraft:cactus_flower" +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json new file mode 100644 index 00000000..9e7172b4 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_closed_eyeblossom", + "original_id": "minecraft:closed_eyeblossom", + "suspicious_stew_effects": [ + { + "duration": 140, + "id": "minecraft:nausea" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json new file mode 100644 index 00000000..2f38171d --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_cornflower", + "original_id": "minecraft:cornflower", + "suspicious_stew_effects": [ + { + "duration": 100, + "id": "minecraft:jump_boost" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json new file mode 100644 index 00000000..ef8560ef --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_dandelion", + "original_id": "minecraft:dandelion", + "suspicious_stew_effects": [ + { + "duration": 7, + "id": "minecraft:saturation" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json new file mode 100644 index 00000000..3c822b6f --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_lily_of_the_valley", + "original_id": "minecraft:lily_of_the_valley", + "suspicious_stew_effects": [ + { + "duration": 220, + "id": "minecraft:poison" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json new file mode 100644 index 00000000..5414b143 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_open_eyeblossom", + "original_id": "minecraft:open_eyeblossom", + "suspicious_stew_effects": [ + { + "duration": 220, + "id": "minecraft:blindness" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json new file mode 100644 index 00000000..4ec1d048 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_orange_tulip", + "original_id": "minecraft:orange_tulip", + "suspicious_stew_effects": [ + { + "duration": 140, + "id": "minecraft:weakness" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json new file mode 100644 index 00000000..00ef33ed --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_oxeye_daisy", + "original_id": "minecraft:oxeye_daisy", + "suspicious_stew_effects": [ + { + "duration": 140, + "id": "minecraft:regeneration" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json new file mode 100644 index 00000000..e49c50b3 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_pink_tulip", + "original_id": "minecraft:pink_tulip", + "suspicious_stew_effects": [ + { + "duration": 140, + "id": "minecraft:weakness" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json new file mode 100644 index 00000000..cb9e651f --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_poppy", + "original_id": "minecraft:poppy", + "suspicious_stew_effects": [ + { + "duration": 100, + "id": "minecraft:night_vision" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json new file mode 100644 index 00000000..024e2999 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_red_tulip", + "original_id": "minecraft:red_tulip", + "suspicious_stew_effects": [ + { + "duration": 140, + "id": "minecraft:weakness" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json new file mode 100644 index 00000000..155ccd12 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_torchflower", + "original_id": "minecraft:torchflower", + "suspicious_stew_effects": [ + { + "duration": 100, + "id": "minecraft:night_vision" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json new file mode 100644 index 00000000..bf1fc221 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_white_tulip", + "original_id": "minecraft:white_tulip", + "suspicious_stew_effects": [ + { + "duration": 140, + "id": "minecraft:weakness" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json new file mode 100644 index 00000000..a92fd833 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_flowers:tiny_wither_rose", + "original_id": "minecraft:wither_rose", + "suspicious_stew_effects": [ + { + "duration": 140, + "id": "minecraft:wither" + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny-flowers/tiny_flowers/wildflowers.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/wildflowers.json similarity index 67% rename from src/main/generated/data/tiny-flowers/tiny_flowers/wildflowers.json rename to src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/wildflowers.json index 7927bd0e..6b9f0654 100644 --- a/src/main/generated/data/tiny-flowers/tiny_flowers/wildflowers.json +++ b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/wildflowers.json @@ -1,5 +1,5 @@ { - "id": "tiny-flowers:wildflowers", + "id": "tiny_flowers:wildflowers", "original_id": "minecraft:wildflowers", "should_create_item": false } \ No newline at end of file diff --git a/src/main/java/co/secretonline/tinyflowers/TinyFlowerData.java b/src/main/java/co/secretonline/tinyflowers/TinyFlowerData.java deleted file mode 100644 index 34ca91b1..00000000 --- a/src/main/java/co/secretonline/tinyflowers/TinyFlowerData.java +++ /dev/null @@ -1,20 +0,0 @@ -package co.secretonline.tinyflowers; - -import org.jetbrains.annotations.Nullable; - -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; - -import net.minecraft.resources.Identifier; -import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; - -public record TinyFlowerData(Identifier id, Identifier originalId, boolean shouldCreateItem, - @Nullable Entry stewEffect) { - - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( - Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerData::id), - Identifier.CODEC.fieldOf("original_id").forGetter(TinyFlowerData::originalId), - Codec.BOOL.fieldOf("should_create_item").forGetter(TinyFlowerData::shouldCreateItem), - Entry.CODEC.optionalFieldOf("stew_effect", null).forGetter(TinyFlowerData::stewEffect)) - .apply(instance, TinyFlowerData::new)); -} diff --git a/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java b/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java index 69d47ff6..6892b128 100644 --- a/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java +++ b/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java @@ -7,10 +7,11 @@ import co.secretonline.tinyflowers.blocks.ModBlocks; import co.secretonline.tinyflowers.components.ModComponents; +import co.secretonline.tinyflowers.data.ModRegistries; import co.secretonline.tinyflowers.items.ModItems; public class TinyFlowers implements ModInitializer { - public static final String MOD_ID = "tiny-flowers"; + public static final String MOD_ID = "tiny_flowers"; public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); @@ -23,5 +24,6 @@ public void onInitialize() { ModComponents.initialize(); ModBlocks.initialize(); ModItems.initialize(); + ModRegistries.initialize(); } } diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java b/src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java index 12fe2749..c88f504a 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java @@ -142,7 +142,7 @@ public Identifier getItemIdentifier() { public String getTranslationKey() { if (this.isEmpty()) { - return "item.tiny-flowers.tiny_garden.empty"; + return "item.tiny_flowers.tiny_garden.empty"; } return this.asItem().getDescriptionId(); diff --git a/src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java b/src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java new file mode 100644 index 00000000..f17526d5 --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java @@ -0,0 +1,15 @@ +package co.secretonline.tinyflowers.data; + +import co.secretonline.tinyflowers.TinyFlowers; +import net.fabricmc.fabric.api.event.registry.DynamicRegistries; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; + +public class ModRegistries { + public static ResourceKey> TINY_FLOWER = ResourceKey + .createRegistryKey(TinyFlowers.id("tiny_flower")); + + public static void initialize() { + DynamicRegistries.registerSynced(TINY_FLOWER, TinyFlowerData.CODEC); + } +} diff --git a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java new file mode 100644 index 00000000..939fdda4 --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java @@ -0,0 +1,37 @@ +package co.secretonline.tinyflowers.data; + +import java.util.List; + +import org.jetbrains.annotations.Nullable; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; + +import net.minecraft.resources.Identifier; +import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; + +/** + * Data for a tiny flower variant. + * + * @param id A unique identifier for this vatiant. Usually matches + * the pack namespace and file name. Used for getting + * textures, models, and other things. + * @param originalId The original plant block that is used to create the + * tiny flowers. + * @param shouldCreateItem Whether an entry should be added into the Creative + * menu for this variant. Defaults to true. Set to false + * if this is already a segmentable block like Pink + * Petals or Wildflowers. + * @param stewEffect A potion effect for Suspicious Stew. + */ +public record TinyFlowerData(Identifier id, Identifier originalId, boolean shouldCreateItem, + @Nullable List suspiciousStewEffects) { + + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerData::id), + Identifier.CODEC.fieldOf("original_id").forGetter(TinyFlowerData::originalId), + Codec.BOOL.optionalFieldOf("should_create_item", true).forGetter(TinyFlowerData::shouldCreateItem), + Entry.CODEC.listOf().optionalFieldOf("suspicious_stew_effects", List.of()) + .forGetter(TinyFlowerData::suspiciousStewEffects)) + .apply(instance, TinyFlowerData::new)); +} diff --git a/src/main/resources/assets/tiny-flowers/lang/de_at.json b/src/main/resources/assets/tiny-flowers/lang/de_at.json deleted file mode 100644 index 24f4418d..00000000 --- a/src/main/resources/assets/tiny-flowers/lang/de_at.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "modmenu.descriptionTranslation.tiny-flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", - "block.tiny-flowers.tiny_garden": "Winziger Garten", - "item.tiny-flowers.florists_shears": "Floristenschere", - "item.tiny-flowers.tiny_garden": "Winziger Garten", - "item.tiny-flowers.tiny_garden.empty": "Leer", - "item.tiny-flowers.tiny_cactus_flower": "Winzige Kaktusblüte", - "item.tiny-flowers.tiny_dandelion": "Winziger Löwenzahn", - "item.tiny-flowers.tiny_poppy": "Winziger Mohn", - "item.tiny-flowers.tiny_blue_orchid": "Winzige blaue Orchidee", - "item.tiny-flowers.tiny_allium": "Winziger Zierlauch", - "item.tiny-flowers.tiny_azure_bluet": "Winzige Porzellansternchen", - "item.tiny-flowers.tiny_red_tulip": "Winzige rote Tulpe", - "item.tiny-flowers.tiny_orange_tulip": "Winzige orange Tulpe", - "item.tiny-flowers.tiny_white_tulip": "Winzige weiße Tulpe", - "item.tiny-flowers.tiny_pink_tulip": "Winzige rosa Tulpe", - "item.tiny-flowers.tiny_oxeye_daisy": "Winzige Margerite", - "item.tiny-flowers.tiny_cornflower": "Winzige Kornblume", - "item.tiny-flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", - "item.tiny-flowers.tiny_torchflower": "Winzige Fackellilie", - "item.tiny-flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", - "item.tiny-flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", - "item.tiny-flowers.tiny_wither_rose": "Winzige Wither-Rose", - "tag.item.tiny-flowers.tiny_flowers": "Winzige Blumen" -} diff --git a/src/main/resources/assets/tiny-flowers/lang/de_ch.json b/src/main/resources/assets/tiny-flowers/lang/de_ch.json deleted file mode 100644 index 24f4418d..00000000 --- a/src/main/resources/assets/tiny-flowers/lang/de_ch.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "modmenu.descriptionTranslation.tiny-flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", - "block.tiny-flowers.tiny_garden": "Winziger Garten", - "item.tiny-flowers.florists_shears": "Floristenschere", - "item.tiny-flowers.tiny_garden": "Winziger Garten", - "item.tiny-flowers.tiny_garden.empty": "Leer", - "item.tiny-flowers.tiny_cactus_flower": "Winzige Kaktusblüte", - "item.tiny-flowers.tiny_dandelion": "Winziger Löwenzahn", - "item.tiny-flowers.tiny_poppy": "Winziger Mohn", - "item.tiny-flowers.tiny_blue_orchid": "Winzige blaue Orchidee", - "item.tiny-flowers.tiny_allium": "Winziger Zierlauch", - "item.tiny-flowers.tiny_azure_bluet": "Winzige Porzellansternchen", - "item.tiny-flowers.tiny_red_tulip": "Winzige rote Tulpe", - "item.tiny-flowers.tiny_orange_tulip": "Winzige orange Tulpe", - "item.tiny-flowers.tiny_white_tulip": "Winzige weiße Tulpe", - "item.tiny-flowers.tiny_pink_tulip": "Winzige rosa Tulpe", - "item.tiny-flowers.tiny_oxeye_daisy": "Winzige Margerite", - "item.tiny-flowers.tiny_cornflower": "Winzige Kornblume", - "item.tiny-flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", - "item.tiny-flowers.tiny_torchflower": "Winzige Fackellilie", - "item.tiny-flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", - "item.tiny-flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", - "item.tiny-flowers.tiny_wither_rose": "Winzige Wither-Rose", - "tag.item.tiny-flowers.tiny_flowers": "Winzige Blumen" -} diff --git a/src/main/resources/assets/tiny-flowers/lang/de_de.json b/src/main/resources/assets/tiny-flowers/lang/de_de.json deleted file mode 100644 index 24f4418d..00000000 --- a/src/main/resources/assets/tiny-flowers/lang/de_de.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "modmenu.descriptionTranslation.tiny-flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", - "block.tiny-flowers.tiny_garden": "Winziger Garten", - "item.tiny-flowers.florists_shears": "Floristenschere", - "item.tiny-flowers.tiny_garden": "Winziger Garten", - "item.tiny-flowers.tiny_garden.empty": "Leer", - "item.tiny-flowers.tiny_cactus_flower": "Winzige Kaktusblüte", - "item.tiny-flowers.tiny_dandelion": "Winziger Löwenzahn", - "item.tiny-flowers.tiny_poppy": "Winziger Mohn", - "item.tiny-flowers.tiny_blue_orchid": "Winzige blaue Orchidee", - "item.tiny-flowers.tiny_allium": "Winziger Zierlauch", - "item.tiny-flowers.tiny_azure_bluet": "Winzige Porzellansternchen", - "item.tiny-flowers.tiny_red_tulip": "Winzige rote Tulpe", - "item.tiny-flowers.tiny_orange_tulip": "Winzige orange Tulpe", - "item.tiny-flowers.tiny_white_tulip": "Winzige weiße Tulpe", - "item.tiny-flowers.tiny_pink_tulip": "Winzige rosa Tulpe", - "item.tiny-flowers.tiny_oxeye_daisy": "Winzige Margerite", - "item.tiny-flowers.tiny_cornflower": "Winzige Kornblume", - "item.tiny-flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", - "item.tiny-flowers.tiny_torchflower": "Winzige Fackellilie", - "item.tiny-flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", - "item.tiny-flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", - "item.tiny-flowers.tiny_wither_rose": "Winzige Wither-Rose", - "tag.item.tiny-flowers.tiny_flowers": "Winzige Blumen" -} diff --git a/src/main/resources/assets/tiny-flowers/lang/en_us.json b/src/main/resources/assets/tiny-flowers/lang/en_us.json deleted file mode 100644 index 2d001ec7..00000000 --- a/src/main/resources/assets/tiny-flowers/lang/en_us.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "modmenu.descriptionTranslation.tiny-flowers": "Add tiny variants of all Vanilla flowers.", - "block.tiny-flowers.tiny_garden": "Tiny Garden", - "item.tiny-flowers.florists_shears": "Florists' Shears", - "item.tiny-flowers.tiny_garden": "Tiny Garden", - "item.tiny-flowers.tiny_garden.empty": "Empty", - "item.tiny-flowers.tiny_cactus_flower": "Tiny Cactus Flower", - "item.tiny-flowers.tiny_dandelion": "Tiny Dandelion", - "item.tiny-flowers.tiny_poppy": "Tiny Poppy", - "item.tiny-flowers.tiny_blue_orchid": "Tiny Blue Orchid", - "item.tiny-flowers.tiny_allium": "Tiny Allium", - "item.tiny-flowers.tiny_azure_bluet": "Tiny Azure Bluet", - "item.tiny-flowers.tiny_red_tulip": "Tiny Red Tulip", - "item.tiny-flowers.tiny_orange_tulip": "Tiny Orange Tulip", - "item.tiny-flowers.tiny_white_tulip": "Tiny White Tulip", - "item.tiny-flowers.tiny_pink_tulip": "Tiny Pink Tulip", - "item.tiny-flowers.tiny_oxeye_daisy": "Tiny Oxeye Daisy", - "item.tiny-flowers.tiny_cornflower": "Tiny Cornflower", - "item.tiny-flowers.tiny_lily_of_the_valley": "Tiny Lily of the Valley", - "item.tiny-flowers.tiny_torchflower": "Tiny Torchflower", - "item.tiny-flowers.tiny_open_eyeblossom": "Tiny Open Eyeblossom", - "item.tiny-flowers.tiny_closed_eyeblossom": "Tiny Closed Eyeblossom", - "item.tiny-flowers.tiny_wither_rose": "Tiny Wither Rose", - "tag.item.tiny-flowers.tiny_flowers": "Tiny Flowers" -} diff --git a/src/main/resources/assets/tiny-flowers/icon.png b/src/main/resources/assets/tiny_flowers/icon.png similarity index 100% rename from src/main/resources/assets/tiny-flowers/icon.png rename to src/main/resources/assets/tiny_flowers/icon.png diff --git a/src/main/resources/assets/tiny_flowers/lang/de_at.json b/src/main/resources/assets/tiny_flowers/lang/de_at.json new file mode 100644 index 00000000..d0809ba3 --- /dev/null +++ b/src/main/resources/assets/tiny_flowers/lang/de_at.json @@ -0,0 +1,25 @@ +{ + "modmenu.descriptionTranslation.tiny_flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", + "block.tiny_flowers.tiny_garden": "Winziger Garten", + "item.tiny_flowers.florists_shears": "Floristenschere", + "item.tiny_flowers.tiny_garden": "Winziger Garten", + "item.tiny_flowers.tiny_garden.empty": "Leer", + "item.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", + "item.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", + "item.tiny_flowers.tiny_poppy": "Winziger Mohn", + "item.tiny_flowers.tiny_blue_orchid": "Winzige blaue Orchidee", + "item.tiny_flowers.tiny_allium": "Winziger Zierlauch", + "item.tiny_flowers.tiny_azure_bluet": "Winzige Porzellansternchen", + "item.tiny_flowers.tiny_red_tulip": "Winzige rote Tulpe", + "item.tiny_flowers.tiny_orange_tulip": "Winzige orange Tulpe", + "item.tiny_flowers.tiny_white_tulip": "Winzige weiße Tulpe", + "item.tiny_flowers.tiny_pink_tulip": "Winzige rosa Tulpe", + "item.tiny_flowers.tiny_oxeye_daisy": "Winzige Margerite", + "item.tiny_flowers.tiny_cornflower": "Winzige Kornblume", + "item.tiny_flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", + "item.tiny_flowers.tiny_torchflower": "Winzige Fackellilie", + "item.tiny_flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", + "item.tiny_flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", + "item.tiny_flowers.tiny_wither_rose": "Winzige Wither-Rose", + "tag.item.tiny_flowers.tiny_flowers": "Winzige Blumen" +} diff --git a/src/main/resources/assets/tiny_flowers/lang/de_ch.json b/src/main/resources/assets/tiny_flowers/lang/de_ch.json new file mode 100644 index 00000000..d0809ba3 --- /dev/null +++ b/src/main/resources/assets/tiny_flowers/lang/de_ch.json @@ -0,0 +1,25 @@ +{ + "modmenu.descriptionTranslation.tiny_flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", + "block.tiny_flowers.tiny_garden": "Winziger Garten", + "item.tiny_flowers.florists_shears": "Floristenschere", + "item.tiny_flowers.tiny_garden": "Winziger Garten", + "item.tiny_flowers.tiny_garden.empty": "Leer", + "item.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", + "item.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", + "item.tiny_flowers.tiny_poppy": "Winziger Mohn", + "item.tiny_flowers.tiny_blue_orchid": "Winzige blaue Orchidee", + "item.tiny_flowers.tiny_allium": "Winziger Zierlauch", + "item.tiny_flowers.tiny_azure_bluet": "Winzige Porzellansternchen", + "item.tiny_flowers.tiny_red_tulip": "Winzige rote Tulpe", + "item.tiny_flowers.tiny_orange_tulip": "Winzige orange Tulpe", + "item.tiny_flowers.tiny_white_tulip": "Winzige weiße Tulpe", + "item.tiny_flowers.tiny_pink_tulip": "Winzige rosa Tulpe", + "item.tiny_flowers.tiny_oxeye_daisy": "Winzige Margerite", + "item.tiny_flowers.tiny_cornflower": "Winzige Kornblume", + "item.tiny_flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", + "item.tiny_flowers.tiny_torchflower": "Winzige Fackellilie", + "item.tiny_flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", + "item.tiny_flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", + "item.tiny_flowers.tiny_wither_rose": "Winzige Wither-Rose", + "tag.item.tiny_flowers.tiny_flowers": "Winzige Blumen" +} diff --git a/src/main/resources/assets/tiny_flowers/lang/de_de.json b/src/main/resources/assets/tiny_flowers/lang/de_de.json new file mode 100644 index 00000000..d0809ba3 --- /dev/null +++ b/src/main/resources/assets/tiny_flowers/lang/de_de.json @@ -0,0 +1,25 @@ +{ + "modmenu.descriptionTranslation.tiny_flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", + "block.tiny_flowers.tiny_garden": "Winziger Garten", + "item.tiny_flowers.florists_shears": "Floristenschere", + "item.tiny_flowers.tiny_garden": "Winziger Garten", + "item.tiny_flowers.tiny_garden.empty": "Leer", + "item.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", + "item.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", + "item.tiny_flowers.tiny_poppy": "Winziger Mohn", + "item.tiny_flowers.tiny_blue_orchid": "Winzige blaue Orchidee", + "item.tiny_flowers.tiny_allium": "Winziger Zierlauch", + "item.tiny_flowers.tiny_azure_bluet": "Winzige Porzellansternchen", + "item.tiny_flowers.tiny_red_tulip": "Winzige rote Tulpe", + "item.tiny_flowers.tiny_orange_tulip": "Winzige orange Tulpe", + "item.tiny_flowers.tiny_white_tulip": "Winzige weiße Tulpe", + "item.tiny_flowers.tiny_pink_tulip": "Winzige rosa Tulpe", + "item.tiny_flowers.tiny_oxeye_daisy": "Winzige Margerite", + "item.tiny_flowers.tiny_cornflower": "Winzige Kornblume", + "item.tiny_flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", + "item.tiny_flowers.tiny_torchflower": "Winzige Fackellilie", + "item.tiny_flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", + "item.tiny_flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", + "item.tiny_flowers.tiny_wither_rose": "Winzige Wither-Rose", + "tag.item.tiny_flowers.tiny_flowers": "Winzige Blumen" +} diff --git a/src/main/resources/assets/tiny_flowers/lang/en_us.json b/src/main/resources/assets/tiny_flowers/lang/en_us.json new file mode 100644 index 00000000..e6875658 --- /dev/null +++ b/src/main/resources/assets/tiny_flowers/lang/en_us.json @@ -0,0 +1,25 @@ +{ + "modmenu.descriptionTranslation.tiny_flowers": "Add tiny variants of all Vanilla flowers.", + "block.tiny_flowers.tiny_garden": "Tiny Garden", + "item.tiny_flowers.florists_shears": "Florists' Shears", + "item.tiny_flowers.tiny_garden": "Tiny Garden", + "item.tiny_flowers.tiny_garden.empty": "Empty", + "item.tiny_flowers.tiny_cactus_flower": "Tiny Cactus Flower", + "item.tiny_flowers.tiny_dandelion": "Tiny Dandelion", + "item.tiny_flowers.tiny_poppy": "Tiny Poppy", + "item.tiny_flowers.tiny_blue_orchid": "Tiny Blue Orchid", + "item.tiny_flowers.tiny_allium": "Tiny Allium", + "item.tiny_flowers.tiny_azure_bluet": "Tiny Azure Bluet", + "item.tiny_flowers.tiny_red_tulip": "Tiny Red Tulip", + "item.tiny_flowers.tiny_orange_tulip": "Tiny Orange Tulip", + "item.tiny_flowers.tiny_white_tulip": "Tiny White Tulip", + "item.tiny_flowers.tiny_pink_tulip": "Tiny Pink Tulip", + "item.tiny_flowers.tiny_oxeye_daisy": "Tiny Oxeye Daisy", + "item.tiny_flowers.tiny_cornflower": "Tiny Cornflower", + "item.tiny_flowers.tiny_lily_of_the_valley": "Tiny Lily of the Valley", + "item.tiny_flowers.tiny_torchflower": "Tiny Torchflower", + "item.tiny_flowers.tiny_open_eyeblossom": "Tiny Open Eyeblossom", + "item.tiny_flowers.tiny_closed_eyeblossom": "Tiny Closed Eyeblossom", + "item.tiny_flowers.tiny_wither_rose": "Tiny Wither Rose", + "tag.item.tiny_flowers.tiny_flowers": "Tiny Flowers" +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index d3edcde2..d9337284 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,6 +1,6 @@ { "schemaVersion": 1, - "id": "tiny-flowers", + "id": "tiny_flowers", "version": "${version}", "name": "Tiny Flowers", "description": "Add tiny variants of all Vanilla flowers.", @@ -38,23 +38,17 @@ "issues": "https://github.com/SecretOnline/tiny-flowers/issues" }, "license": "MPL-2.0", - "icon": "assets/tiny-flowers/icon.png", + "icon": "assets/tiny_flowers/icon.png", "environment": "*", "entrypoints": { - "main": [ - "co.secretonline.tinyflowers.TinyFlowers" - ], - "client": [ - "co.secretonline.tinyflowers.TinyFlowersClient" - ], - "fabric-datagen": [ - "co.secretonline.tinyflowers.datagen.DataGenerator" - ] + "main": ["co.secretonline.tinyflowers.TinyFlowers"], + "client": ["co.secretonline.tinyflowers.TinyFlowersClient"], + "fabric-datagen": ["co.secretonline.tinyflowers.datagen.DataGenerator"] }, "mixins": [ - "tiny-flowers.mixins.json", + "tiny_flowers.mixins.json", { - "config": "tiny-flowers.client.mixins.json", + "config": "tiny_flowers.client.mixins.json", "environment": "client" } ], diff --git a/src/main/resources/tiny-flowers.mixins.json b/src/main/resources/tiny_flowers.mixins.json similarity index 100% rename from src/main/resources/tiny-flowers.mixins.json rename to src/main/resources/tiny_flowers.mixins.json From d68b0132502f8e06929e6b42ae0fee99b65c6225 Mon Sep 17 00:00:00 2001 From: secret_online Date: Tue, 16 Dec 2025 14:39:45 +1300 Subject: [PATCH 003/113] New recipe generation --- .../tinyflowers/datagen/DataGenerator.java | 12 +- ...java => FloristsShearsRecipeProvider.java} | 53 +- .../tinyflowers/datagen/ItemTagProvider.java | 1 + .../datagen/TinyFlowersProvider.java | 13 +- .../datagen/TinyFlowersRecipeProvider.java | 70 + .../tiny_flowers/blockstates/tiny_garden.json | 3124 ----------------- .../tiny_flowers/items/florists_shears.json | 16 - .../tiny_flowers/items/tiny_allium.json | 6 - .../tiny_flowers/items/tiny_azure_bluet.json | 6 - .../tiny_flowers/items/tiny_blue_orchid.json | 6 - .../items/tiny_cactus_flower.json | 6 - .../items/tiny_closed_eyeblossom.json | 6 - .../tiny_flowers/items/tiny_cornflower.json | 6 - .../tiny_flowers/items/tiny_dandelion.json | 6 - .../tiny_flowers/items/tiny_garden.json | 6 - .../items/tiny_lily_of_the_valley.json | 6 - .../items/tiny_open_eyeblossom.json | 6 - .../tiny_flowers/items/tiny_orange_tulip.json | 6 - .../tiny_flowers/items/tiny_oxeye_daisy.json | 6 - .../tiny_flowers/items/tiny_pink_tulip.json | 6 - .../assets/tiny_flowers/items/tiny_poppy.json | 6 - .../tiny_flowers/items/tiny_red_tulip.json | 6 - .../tiny_flowers/items/tiny_torchflower.json | 6 - .../tiny_flowers/items/tiny_white_tulip.json | 6 - .../tiny_flowers/items/tiny_wither_rose.json | 6 - .../models/block/leaf_litter_1.json | 7 - .../models/block/leaf_litter_2.json | 7 - .../models/block/leaf_litter_3.json | 7 - .../models/block/leaf_litter_4.json | 7 - .../models/block/tiny_allium_1.json | 8 - .../models/block/tiny_allium_2.json | 8 - .../models/block/tiny_allium_3.json | 8 - .../models/block/tiny_allium_4.json | 8 - .../models/block/tiny_azure_bluet_1.json | 8 - .../models/block/tiny_azure_bluet_2.json | 8 - .../models/block/tiny_azure_bluet_3.json | 8 - .../models/block/tiny_azure_bluet_4.json | 8 - .../models/block/tiny_blue_orchid_1.json | 9 - .../models/block/tiny_blue_orchid_2.json | 9 - .../models/block/tiny_blue_orchid_3.json | 9 - .../models/block/tiny_blue_orchid_4.json | 9 - .../models/block/tiny_cactus_flower_1.json | 8 - .../models/block/tiny_cactus_flower_2.json | 8 - .../models/block/tiny_cactus_flower_3.json | 8 - .../models/block/tiny_cactus_flower_4.json | 8 - .../block/tiny_closed_eyeblossom_1.json | 8 - .../block/tiny_closed_eyeblossom_2.json | 8 - .../block/tiny_closed_eyeblossom_3.json | 8 - .../block/tiny_closed_eyeblossom_4.json | 8 - .../models/block/tiny_cornflower_1.json | 8 - .../models/block/tiny_cornflower_2.json | 8 - .../models/block/tiny_cornflower_3.json | 8 - .../models/block/tiny_cornflower_4.json | 8 - .../models/block/tiny_dandelion_1.json | 8 - .../models/block/tiny_dandelion_2.json | 8 - .../models/block/tiny_dandelion_3.json | 8 - .../models/block/tiny_dandelion_4.json | 8 - .../block/tiny_lily_of_the_valley_1.json | 9 - .../block/tiny_lily_of_the_valley_2.json | 9 - .../block/tiny_lily_of_the_valley_3.json | 9 - .../block/tiny_lily_of_the_valley_4.json | 9 - .../models/block/tiny_open_eyeblossom_1.json | 9 - .../models/block/tiny_open_eyeblossom_2.json | 9 - .../models/block/tiny_open_eyeblossom_3.json | 9 - .../models/block/tiny_open_eyeblossom_4.json | 9 - .../models/block/tiny_orange_tulip_1.json | 8 - .../models/block/tiny_orange_tulip_2.json | 8 - .../models/block/tiny_orange_tulip_3.json | 8 - .../models/block/tiny_orange_tulip_4.json | 8 - .../models/block/tiny_oxeye_daisy_1.json | 8 - .../models/block/tiny_oxeye_daisy_2.json | 8 - .../models/block/tiny_oxeye_daisy_3.json | 8 - .../models/block/tiny_oxeye_daisy_4.json | 8 - .../models/block/tiny_pink_tulip_1.json | 8 - .../models/block/tiny_pink_tulip_2.json | 8 - .../models/block/tiny_pink_tulip_3.json | 8 - .../models/block/tiny_pink_tulip_4.json | 8 - .../models/block/tiny_poppy_1.json | 8 - .../models/block/tiny_poppy_2.json | 8 - .../models/block/tiny_poppy_3.json | 8 - .../models/block/tiny_poppy_4.json | 8 - .../models/block/tiny_red_tulip_1.json | 8 - .../models/block/tiny_red_tulip_2.json | 8 - .../models/block/tiny_red_tulip_3.json | 8 - .../models/block/tiny_red_tulip_4.json | 8 - .../models/block/tiny_torchflower_1.json | 10 - .../models/block/tiny_torchflower_2.json | 10 - .../models/block/tiny_torchflower_3.json | 10 - .../models/block/tiny_torchflower_4.json | 10 - .../models/block/tiny_white_tulip_1.json | 8 - .../models/block/tiny_white_tulip_2.json | 8 - .../models/block/tiny_white_tulip_3.json | 8 - .../models/block/tiny_white_tulip_4.json | 8 - .../models/block/tiny_wither_rose_1.json | 8 - .../models/block/tiny_wither_rose_2.json | 8 - .../models/block/tiny_wither_rose_3.json | 8 - .../models/block/tiny_wither_rose_4.json | 8 - .../models/item/florists_shears.json | 7 - .../tiny_flowers/models/item/tiny_allium.json | 6 - .../models/item/tiny_azure_bluet.json | 6 - .../models/item/tiny_blue_orchid.json | 6 - .../models/item/tiny_cactus_flower.json | 6 - .../models/item/tiny_closed_eyeblossom.json | 6 - .../models/item/tiny_cornflower.json | 6 - .../models/item/tiny_dandelion.json | 6 - .../tiny_flowers/models/item/tiny_garden.json | 6 - .../models/item/tiny_lily_of_the_valley.json | 6 - .../models/item/tiny_open_eyeblossom.json | 6 - .../models/item/tiny_orange_tulip.json | 6 - .../models/item/tiny_oxeye_daisy.json | 6 - .../models/item/tiny_pink_tulip.json | 6 - .../tiny_flowers/models/item/tiny_poppy.json | 6 - .../models/item/tiny_red_tulip.json | 6 - .../models/item/tiny_torchflower.json | 6 - .../models/item/tiny_white_tulip.json | 6 - .../models/item/tiny_wither_rose.json | 6 - .../data/minecraft/tags/block/flowers.json | 5 - .../tags/block/inside_step_sound_blocks.json | 5 - .../minecraft/tags/block/sword_efficient.json | 5 - .../decorations/tiny_closed_eyeblossom.json | 32 - .../recipes/decorations/tiny_cornflower.json | 32 - .../recipes/decorations/tiny_dandelion.json | 32 - ...luet.json => tiny_flower_from_allium.json} | 4 +- .../tiny_flower_from_azure_bluet.json | 32 + .../tiny_flower_from_blue_orchid.json | 32 + .../tiny_flower_from_cactus_flower.json | 32 + .../tiny_flower_from_closed_eyeblossom.json | 32 + .../tiny_flower_from_cornflower.json | 32 + ...d.json => tiny_flower_from_dandelion.json} | 4 +- .../tiny_flower_from_lily_of_the_valley.json | 32 + .../tiny_flower_from_open_eyeblossom.json | 32 + .../tiny_flower_from_orange_tulip.json | 32 + .../tiny_flower_from_oxeye_daisy.json | 32 + .../tiny_flower_from_pink_tulip.json | 32 + ...llium.json => tiny_flower_from_poppy.json} | 4 +- ...r.json => tiny_flower_from_red_tulip.json} | 4 +- .../tiny_flower_from_torchflower.json | 32 + .../tiny_flower_from_white_tulip.json | 32 + .../tiny_flower_from_wither_rose.json | 32 + .../decorations/tiny_lily_of_the_valley.json | 32 - .../decorations/tiny_open_eyeblossom.json | 32 - .../decorations/tiny_orange_tulip.json | 32 - .../recipes/decorations/tiny_oxeye_daisy.json | 32 - .../recipes/decorations/tiny_pink_tulip.json | 32 - .../recipes/decorations/tiny_poppy.json | 32 - .../recipes/decorations/tiny_red_tulip.json | 32 - .../recipes/decorations/tiny_torchflower.json | 32 - .../recipes/decorations/tiny_white_tulip.json | 32 - .../recipes/decorations/tiny_wither_rose.json | 32 - .../suspicious_stew_from_tiny_allium.json | 32 - ...suspicious_stew_from_tiny_azure_bluet.json | 32 - ...suspicious_stew_from_tiny_blue_orchid.json | 32 - ...ious_stew_from_tiny_closed_eyeblossom.json | 32 - .../suspicious_stew_from_tiny_cornflower.json | 32 - .../suspicious_stew_from_tiny_dandelion.json | 32 - ...ous_stew_from_tiny_lily_of_the_valley.json | 32 - ...icious_stew_from_tiny_open_eyeblossom.json | 32 - ...uspicious_stew_from_tiny_orange_tulip.json | 32 - ...suspicious_stew_from_tiny_oxeye_daisy.json | 32 - .../suspicious_stew_from_tiny_pink_tulip.json | 32 - .../food/suspicious_stew_from_tiny_poppy.json | 32 - .../suspicious_stew_from_tiny_red_tulip.json | 32 - ...suspicious_stew_from_tiny_torchflower.json | 32 - ...suspicious_stew_from_tiny_white_tulip.json | 32 - ...suspicious_stew_from_tiny_wither_rose.json | 32 - .../loot_table/blocks/tiny_garden.json | 1525 -------- .../suspicious_stew_from_tiny_allium.json | 24 - ...suspicious_stew_from_tiny_azure_bluet.json | 24 - ...suspicious_stew_from_tiny_blue_orchid.json | 24 - ...ious_stew_from_tiny_closed_eyeblossom.json | 24 - .../suspicious_stew_from_tiny_cornflower.json | 24 - .../suspicious_stew_from_tiny_dandelion.json | 24 - ...ous_stew_from_tiny_lily_of_the_valley.json | 24 - ...icious_stew_from_tiny_open_eyeblossom.json | 24 - ...uspicious_stew_from_tiny_orange_tulip.json | 24 - ...suspicious_stew_from_tiny_oxeye_daisy.json | 24 - .../suspicious_stew_from_tiny_pink_tulip.json | 24 - .../suspicious_stew_from_tiny_poppy.json | 24 - .../suspicious_stew_from_tiny_red_tulip.json | 24 - ...suspicious_stew_from_tiny_torchflower.json | 24 - ...suspicious_stew_from_tiny_white_tulip.json | 24 - ...suspicious_stew_from_tiny_wither_rose.json | 24 - ...lium.json => tiny_flower_from_allium.json} | 7 +- ...json => tiny_flower_from_azure_bluet.json} | 7 +- ...json => tiny_flower_from_blue_orchid.json} | 7 +- ...on => tiny_flower_from_cactus_flower.json} | 7 +- ...> tiny_flower_from_closed_eyeblossom.json} | 7 +- ....json => tiny_flower_from_cornflower.json} | 7 +- ...n.json => tiny_flower_from_dandelion.json} | 7 +- ... tiny_flower_from_lily_of_the_valley.json} | 7 +- ... => tiny_flower_from_open_eyeblossom.json} | 7 +- ...son => tiny_flower_from_orange_tulip.json} | 7 +- ...json => tiny_flower_from_oxeye_daisy.json} | 7 +- ....json => tiny_flower_from_pink_tulip.json} | 7 +- ...poppy.json => tiny_flower_from_poppy.json} | 7 +- ...p.json => tiny_flower_from_red_tulip.json} | 7 +- ...json => tiny_flower_from_torchflower.json} | 7 +- ...json => tiny_flower_from_white_tulip.json} | 7 +- ...json => tiny_flower_from_wither_rose.json} | 7 +- .../tiny_flowers/tags/item/tiny_flowers.json | 35 +- .../secretonline/tinyflowers/TinyFlowers.java | 2 + .../tinyflowers/components/ModComponents.java | 5 + .../components/TinyFlowerComponent.java | 19 + .../tinyflowers/data/TinyFlowerData.java | 13 +- .../tinyflowers/items/ModItems.java | 57 +- .../tinyflowers/items/TinyFlowerItem.java | 25 + .../items/crafting/ModRecipeSerializers.java | 13 + .../items/crafting/TinyFlowerStewRecipe.java | 130 + .../suspicious_stew_from_tiny_flowers.json | 4 + 209 files changed, 855 insertions(+), 6955 deletions(-) rename src/client/java/co/secretonline/tinyflowers/datagen/{RecipeProvider.java => FloristsShearsRecipeProvider.java} (63%) create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersRecipeProvider.java delete mode 100644 src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/florists_shears.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_allium.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_azure_bluet.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_blue_orchid.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_cactus_flower.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_closed_eyeblossom.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_cornflower.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_dandelion.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_garden.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_lily_of_the_valley.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_open_eyeblossom.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_orange_tulip.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_oxeye_daisy.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_pink_tulip.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_poppy.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_red_tulip.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_torchflower.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_white_tulip.json delete mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_wither_rose.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/leaf_litter_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/leaf_litter_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/leaf_litter_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/leaf_litter_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_allium_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_allium_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_allium_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_allium_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_1.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_2.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_3.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_4.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/florists_shears.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_allium.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_azure_bluet.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_blue_orchid.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_cactus_flower.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_closed_eyeblossom.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_cornflower.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_dandelion.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_garden.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_lily_of_the_valley.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_open_eyeblossom.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_orange_tulip.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_oxeye_daisy.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_pink_tulip.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_poppy.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_red_tulip.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_torchflower.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_white_tulip.json delete mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_wither_rose.json delete mode 100644 src/main/generated/data/minecraft/tags/block/flowers.json delete mode 100644 src/main/generated/data/minecraft/tags/block/inside_step_sound_blocks.json delete mode 100644 src/main/generated/data/minecraft/tags/block/sword_efficient.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_closed_eyeblossom.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cornflower.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_dandelion.json rename src/main/generated/data/tiny_flowers/advancement/recipes/decorations/{tiny_azure_bluet.json => tiny_flower_from_allium.json} (83%) create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_azure_bluet.json create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_blue_orchid.json create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cactus_flower.json create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_closed_eyeblossom.json create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cornflower.json rename src/main/generated/data/tiny_flowers/advancement/recipes/decorations/{tiny_blue_orchid.json => tiny_flower_from_dandelion.json} (82%) create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_lily_of_the_valley.json create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_open_eyeblossom.json create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_orange_tulip.json create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_oxeye_daisy.json create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_pink_tulip.json rename src/main/generated/data/tiny_flowers/advancement/recipes/decorations/{tiny_allium.json => tiny_flower_from_poppy.json} (83%) rename src/main/generated/data/tiny_flowers/advancement/recipes/decorations/{tiny_cactus_flower.json => tiny_flower_from_red_tulip.json} (82%) create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_torchflower.json create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_white_tulip.json create mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_wither_rose.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_lily_of_the_valley.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_open_eyeblossom.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_orange_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_oxeye_daisy.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_pink_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_poppy.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_red_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_torchflower.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_white_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_wither_rose.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_allium.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_azure_bluet.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_blue_orchid.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_closed_eyeblossom.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_cornflower.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_dandelion.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_lily_of_the_valley.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_open_eyeblossom.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_orange_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_oxeye_daisy.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_pink_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_poppy.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_red_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_torchflower.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_white_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_wither_rose.json delete mode 100644 src/main/generated/data/tiny_flowers/loot_table/blocks/tiny_garden.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_allium.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_azure_bluet.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_blue_orchid.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_closed_eyeblossom.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_cornflower.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_dandelion.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_lily_of_the_valley.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_open_eyeblossom.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_orange_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_oxeye_daisy.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_pink_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_poppy.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_red_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_torchflower.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_white_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_wither_rose.json rename src/main/generated/data/tiny_flowers/recipe/{tiny_allium.json => tiny_flower_from_allium.json} (57%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_azure_bluet.json => tiny_flower_from_azure_bluet.json} (56%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_blue_orchid.json => tiny_flower_from_blue_orchid.json} (56%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_cactus_flower.json => tiny_flower_from_cactus_flower.json} (56%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_closed_eyeblossom.json => tiny_flower_from_closed_eyeblossom.json} (56%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_cornflower.json => tiny_flower_from_cornflower.json} (57%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_dandelion.json => tiny_flower_from_dandelion.json} (57%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_lily_of_the_valley.json => tiny_flower_from_lily_of_the_valley.json} (56%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_open_eyeblossom.json => tiny_flower_from_open_eyeblossom.json} (56%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_orange_tulip.json => tiny_flower_from_orange_tulip.json} (56%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_oxeye_daisy.json => tiny_flower_from_oxeye_daisy.json} (56%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_pink_tulip.json => tiny_flower_from_pink_tulip.json} (57%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_poppy.json => tiny_flower_from_poppy.json} (57%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_red_tulip.json => tiny_flower_from_red_tulip.json} (57%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_torchflower.json => tiny_flower_from_torchflower.json} (56%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_white_tulip.json => tiny_flower_from_white_tulip.json} (56%) rename src/main/generated/data/tiny_flowers/recipe/{tiny_wither_rose.json => tiny_flower_from_wither_rose.json} (56%) create mode 100644 src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java create mode 100644 src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java create mode 100644 src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java create mode 100644 src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java create mode 100644 src/main/resources/data/tiny_flowers/recipe/suspicious_stew_from_tiny_flowers.json diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java index 12a3cfe5..e04c1d2c 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java @@ -1,5 +1,6 @@ package co.secretonline.tinyflowers.datagen; +import co.secretonline.tinyflowers.datagen.data.DefaultTinyFlowerData; import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; @@ -8,12 +9,13 @@ public class DataGenerator implements DataGeneratorEntrypoint { public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { FabricDataGenerator.Pack pack = fabricDataGenerator.createPack(); - pack.addProvider(BlockModelProvider::new); - pack.addProvider(BlockTagProvider::new); - pack.addProvider(BlockLootTableProvider::new); + // pack.addProvider(BlockModelProvider::new); + // pack.addProvider(BlockTagProvider::new); + // pack.addProvider(BlockLootTableProvider::new); pack.addProvider(ItemTagProvider::new); - pack.addProvider(RecipeProvider::new); - pack.addProvider(TinyFlowersProvider::new); + pack.addProvider(FloristsShearsRecipeProvider::new); + pack.addProvider(TinyFlowersRecipeProvider.factoryFor(DefaultTinyFlowerData.ALL_VARIANTS)); + pack.addProvider(TinyFlowersProvider.factoryFor(DefaultTinyFlowerData.ALL_VARIANTS)); } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/RecipeProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsRecipeProvider.java similarity index 63% rename from src/client/java/co/secretonline/tinyflowers/datagen/RecipeProvider.java rename to src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsRecipeProvider.java index faf92c83..3b16e500 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/RecipeProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsRecipeProvider.java @@ -3,8 +3,6 @@ import java.util.Map; import java.util.concurrent.CompletableFuture; -import co.secretonline.tinyflowers.TinyFlowers; -import co.secretonline.tinyflowers.blocks.FlowerVariant; import co.secretonline.tinyflowers.items.ModItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; @@ -16,8 +14,9 @@ import net.minecraft.core.registries.Registries; import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeOutput; -import net.minecraft.resources.ResourceKey; +import net.minecraft.data.recipes.RecipeProvider; import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; import net.minecraft.tags.TagKey; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; @@ -26,8 +25,7 @@ import net.minecraft.world.item.component.DyedItemColor; import net.minecraft.world.item.crafting.Recipe; -public class RecipeProvider extends FabricRecipeProvider { - +public class FloristsShearsRecipeProvider extends FabricRecipeProvider { private static Map> COLOR_TAGS = Map.ofEntries( Map.entry(DyeColor.WHITE, ConventionalItemTags.WHITE_DYES), Map.entry(DyeColor.ORANGE, ConventionalItemTags.ORANGE_DYES), @@ -46,54 +44,17 @@ public class RecipeProvider extends FabricRecipeProvider { Map.entry(DyeColor.RED, ConventionalItemTags.RED_DYES), Map.entry(DyeColor.BLACK, ConventionalItemTags.BLACK_DYES)); - public RecipeProvider(FabricDataOutput output, CompletableFuture registriesFuture) { + public FloristsShearsRecipeProvider(FabricDataOutput output, + CompletableFuture registriesFuture) { super(output, registriesFuture); } @Override - protected net.minecraft.data.recipes.RecipeProvider createRecipeProvider(HolderLookup.Provider registryLookup, + protected RecipeProvider createRecipeProvider(HolderLookup.Provider registryLookup, RecipeOutput exporter) { return new net.minecraft.data.recipes.RecipeProvider(registryLookup, exporter) { @Override public void buildRecipes() { - Identifier stewId = BuiltInRegistries.ITEM.getKey(Items.SUSPICIOUS_STEW); - - // Generate recipes for each flower variant - for (FlowerVariant flowerVariant : FlowerVariant.values()) { - // Create tiny flower items for variants that need them. - if (flowerVariant.shouldCreateItem()) { - shapeless(RecipeCategory.DECORATIONS, flowerVariant, 4) - .requires(ModItems.FLORISTS_SHEARS_ITEM).requires(flowerVariant.getOriginalBlock()) - .group("tiny_flowers") - .unlockedBy(getHasName(ModItems.FLORISTS_SHEARS_ITEM), has(ModItems.FLORISTS_SHEARS_ITEM)) - .save(output); - } - - // Create recipes for the flower variants that can be used in suspicious stew. - if (flowerVariant.getSuspiciousEffects() != null) { - ItemStack stack = new ItemStack( - BuiltInRegistries.ITEM.wrapAsHolder(Items.SUSPICIOUS_STEW), - 1, - DataComponentPatch.builder() - .set(DataComponents.SUSPICIOUS_STEW_EFFECTS, flowerVariant.getSuspiciousEffects()) - .build()); - - ResourceKey> recipeKey = ResourceKey.create( - Registries.RECIPE, - TinyFlowers.id(stewId.getPath() + "_from_" + flowerVariant.getItemIdentifier().getPath())); - - shapeless(RecipeCategory.FOOD, stack) - .requires(Items.BOWL) - .requires(Items.BROWN_MUSHROOM) - .requires(Items.RED_MUSHROOM) - .requires(flowerVariant) - .requires(flowerVariant) - .group("suspicious_stew") - .unlockedBy(getHasName(flowerVariant), this.has(flowerVariant)) - .save(output, recipeKey); - } - } - // Generate recipes for each colour of shears. Identifier shearsId = BuiltInRegistries.ITEM.getKey(ModItems.FLORISTS_SHEARS_ITEM); for (var entry : COLOR_TAGS.entrySet()) { @@ -124,6 +85,6 @@ public void buildRecipes() { @Override public String getName() { - return "TinyFlowersRecipeProvider"; + return "FloristsShearsRecipeProvider"; } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java index 11c313bd..5dac1d3a 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java @@ -20,6 +20,7 @@ public ItemTagProvider(FabricDataOutput output, CompletableFuture builder = valueLookupBuilder(ModItemTags.TINY_FLOWERS); // Add all items/blocks that correspond to tiny flower variants to tag diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java index b7857f64..27039783 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java @@ -1,12 +1,13 @@ package co.secretonline.tinyflowers.datagen; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.concurrent.CompletableFuture; import co.secretonline.tinyflowers.data.ModRegistries; import co.secretonline.tinyflowers.data.TinyFlowerData; -import co.secretonline.tinyflowers.datagen.data.DefaultTinyFlowerData; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.data.CachedOutput; import net.minecraft.data.DataProvider; @@ -15,9 +16,15 @@ public class TinyFlowersProvider implements DataProvider { private final PathProvider tinyFlowersPathProvider; + private final List flowers; - public TinyFlowersProvider(FabricDataOutput packOutput) { + public TinyFlowersProvider(List flowers, FabricDataOutput packOutput) { this.tinyFlowersPathProvider = packOutput.createRegistryElementsPathProvider(ModRegistries.TINY_FLOWER); + this.flowers = flowers; + } + + public static Pack.Factory factoryFor(List flowers) { + return (FabricDataOutput output) -> new TinyFlowersProvider(flowers, output); } @Override @@ -28,7 +35,7 @@ public String getName() { @Override public CompletableFuture run(CachedOutput cachedOutput) { Map flowerVariantItems = new HashMap<>(); - for (TinyFlowerData variant : DefaultTinyFlowerData.ALL_VARIANTS) { + for (TinyFlowerData variant : this.flowers) { flowerVariantItems.put(variant.id(), variant); } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersRecipeProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersRecipeProvider.java new file mode 100644 index 00000000..f5b1fd49 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersRecipeProvider.java @@ -0,0 +1,70 @@ +package co.secretonline.tinyflowers.datagen; + +import java.util.List; +import java.util.concurrent.CompletableFuture; + +import co.secretonline.tinyflowers.components.ModComponents; +import co.secretonline.tinyflowers.components.TinyFlowerComponent; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.items.ModItems; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack.RegistryDependentFactory; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponentPatch; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.data.recipes.RecipeCategory; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.world.item.ItemStack; + +public class TinyFlowersRecipeProvider extends FabricRecipeProvider { + private final List flowers; + + public TinyFlowersRecipeProvider(List flowers, FabricDataOutput output, + CompletableFuture registriesFuture) { + super(output, registriesFuture); + + this.flowers = flowers; + } + + public static RegistryDependentFactory factoryFor(List flowers) { + return (FabricDataOutput output, + CompletableFuture registriesFuture) -> new TinyFlowersRecipeProvider(flowers, output, + registriesFuture); + } + + @Override + protected RecipeProvider createRecipeProvider(HolderLookup.Provider registryLookup, + RecipeOutput exporter) { + return new net.minecraft.data.recipes.RecipeProvider(registryLookup, exporter) { + @Override + public void buildRecipes() { + // Generate recipes for each flower variant + for (TinyFlowerData flowerData : flowers) { + // Create tiny flower items for variants that need them. + if (flowerData.shouldCreateItem()) { + ItemStack craftResult = new ItemStack( + BuiltInRegistries.ITEM.wrapAsHolder(ModItems.TINY_FLOWER_ITEM), + 4, + DataComponentPatch.builder() + .set(ModComponents.TINY_FLOWER, new TinyFlowerComponent(flowerData.id())) + .build()); + + shapeless(RecipeCategory.DECORATIONS, craftResult) + .requires(ModItems.FLORISTS_SHEARS_ITEM) + .requires(BuiltInRegistries.ITEM.getValue(flowerData.originalId())) + .group("tiny_flowers") + .unlockedBy(getHasName(ModItems.FLORISTS_SHEARS_ITEM), has(ModItems.FLORISTS_SHEARS_ITEM)) + .save(output, "tiny_flower_from_" + flowerData.originalId().getPath()); + } + } + } + }; + } + + @Override + public String getName() { + return "TinyFlowersRecipeProvider"; + } +} diff --git a/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json b/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json deleted file mode 100644 index 6d22a73e..00000000 --- a/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json +++ /dev/null @@ -1,3124 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "minecraft:block/pink_petals_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/pink_petals_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "pink_petals" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "wildflowers" - } - }, - { - "apply": { - "model": "minecraft:block/wildflowers_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "wildflowers" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/leaf_litter_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "leaf_litter" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_dandelion_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "dandelion" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_poppy_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "poppy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_blue_orchid_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "blue_orchid" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_allium_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "allium" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_azure_bluet_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "azure_bluet" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_red_tulip_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "red_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_orange_tulip_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "orange_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_white_tulip_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "white_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_pink_tulip_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "pink_tulip" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_oxeye_daisy_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "oxeye_daisy" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cornflower_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "cornflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_lily_of_the_valley_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "lily_of_the_valley" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_torchflower_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "torchflower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_closed_eyeblossom_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "closed_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_open_eyeblossom_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "open_eyeblossom" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_wither_rose_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "wither_rose" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_1" - }, - "when": { - "facing": "north", - "flower_variant_1": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_1", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_1": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_1", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_1": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_1", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_1": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_2" - }, - "when": { - "facing": "north", - "flower_variant_2": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_2", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_2": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_2", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_2": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_2", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_2": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_3" - }, - "when": { - "facing": "north", - "flower_variant_3": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_3", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_3": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_3", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_3": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_3", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_3": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_4" - }, - "when": { - "facing": "north", - "flower_variant_4": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_4", - "y": 90 - }, - "when": { - "facing": "east", - "flower_variant_4": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_4", - "y": 180 - }, - "when": { - "facing": "south", - "flower_variant_4": "cactus_flower" - } - }, - { - "apply": { - "model": "tiny_flowers:block/tiny_cactus_flower_4", - "y": 270 - }, - "when": { - "facing": "west", - "flower_variant_4": "cactus_flower" - } - } - ] -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/florists_shears.json b/src/main/generated/assets/tiny_flowers/items/florists_shears.json deleted file mode 100644 index cfb0ffed..00000000 --- a/src/main/generated/assets/tiny_flowers/items/florists_shears.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/florists_shears", - "tints": [ - { - "type": "minecraft:constant", - "value": -1 - }, - { - "type": "minecraft:dye", - "default": -5231066 - } - ] - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_allium.json b/src/main/generated/assets/tiny_flowers/items/tiny_allium.json deleted file mode 100644 index 82da59ca..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_allium.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_allium" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_azure_bluet.json b/src/main/generated/assets/tiny_flowers/items/tiny_azure_bluet.json deleted file mode 100644 index 9001c4bb..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_azure_bluet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_azure_bluet" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_blue_orchid.json b/src/main/generated/assets/tiny_flowers/items/tiny_blue_orchid.json deleted file mode 100644 index e1d24335..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_blue_orchid.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_blue_orchid" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_cactus_flower.json b/src/main/generated/assets/tiny_flowers/items/tiny_cactus_flower.json deleted file mode 100644 index 9b7997e2..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_cactus_flower.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_cactus_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny_flowers/items/tiny_closed_eyeblossom.json deleted file mode 100644 index ecd1c5f0..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_closed_eyeblossom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_closed_eyeblossom" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_cornflower.json b/src/main/generated/assets/tiny_flowers/items/tiny_cornflower.json deleted file mode 100644 index 2350def4..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_cornflower.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_cornflower" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_dandelion.json b/src/main/generated/assets/tiny_flowers/items/tiny_dandelion.json deleted file mode 100644 index 3c5f4343..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_dandelion.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_dandelion" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_garden.json b/src/main/generated/assets/tiny_flowers/items/tiny_garden.json deleted file mode 100644 index 817a75e8..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_garden.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_garden" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny_flowers/items/tiny_lily_of_the_valley.json deleted file mode 100644 index 0b1ed1f7..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_lily_of_the_valley.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_lily_of_the_valley" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny_flowers/items/tiny_open_eyeblossom.json deleted file mode 100644 index e33e0ffc..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_open_eyeblossom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_open_eyeblossom" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_orange_tulip.json b/src/main/generated/assets/tiny_flowers/items/tiny_orange_tulip.json deleted file mode 100644 index 55078c6a..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_orange_tulip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_orange_tulip" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_oxeye_daisy.json b/src/main/generated/assets/tiny_flowers/items/tiny_oxeye_daisy.json deleted file mode 100644 index c72f6c57..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_oxeye_daisy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_oxeye_daisy" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_pink_tulip.json b/src/main/generated/assets/tiny_flowers/items/tiny_pink_tulip.json deleted file mode 100644 index ddf0525d..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_pink_tulip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_pink_tulip" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_poppy.json b/src/main/generated/assets/tiny_flowers/items/tiny_poppy.json deleted file mode 100644 index 545c9d98..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_poppy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_poppy" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_red_tulip.json b/src/main/generated/assets/tiny_flowers/items/tiny_red_tulip.json deleted file mode 100644 index 78eeea1f..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_red_tulip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_red_tulip" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_torchflower.json b/src/main/generated/assets/tiny_flowers/items/tiny_torchflower.json deleted file mode 100644 index 2274dd22..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_torchflower.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_torchflower" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_white_tulip.json b/src/main/generated/assets/tiny_flowers/items/tiny_white_tulip.json deleted file mode 100644 index af3d90f6..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_white_tulip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_white_tulip" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_wither_rose.json b/src/main/generated/assets/tiny_flowers/items/tiny_wither_rose.json deleted file mode 100644 index 25a1bf9f..00000000 --- a/src/main/generated/assets/tiny_flowers/items/tiny_wither_rose.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "tiny_flowers:item/tiny_wither_rose" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_1.json b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_1.json deleted file mode 100644 index af3910bb..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_1.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_leaf_litter_1", - "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_2.json b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_2.json deleted file mode 100644 index 34084b4f..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_2.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_leaf_litter_2", - "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_3.json b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_3.json deleted file mode 100644 index 5587e293..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_3.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_leaf_litter_3", - "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_4.json b/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_4.json deleted file mode 100644 index 1feef887..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/leaf_litter_4.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_leaf_litter_4", - "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_1.json deleted file mode 100644 index ea6b6ca0..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_2.json deleted file mode 100644 index 4b7d74d9..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_3.json deleted file mode 100644 index 0b52f4db..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_4.json deleted file mode 100644 index 49096e3b..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_allium_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_1.json deleted file mode 100644 index 3f30e4db..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_2.json deleted file mode 100644 index a426b3df..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_3.json deleted file mode 100644 index 0483491a..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_4.json deleted file mode 100644 index 5f74df90..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_azure_bluet_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_1.json deleted file mode 100644 index 4c7c8ff8..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_1.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_2.json deleted file mode 100644 index a36b101d..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_2.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_3.json deleted file mode 100644 index 477eee28..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_3.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_4.json deleted file mode 100644 index a7870708..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_blue_orchid_4.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_1.json deleted file mode 100644 index 10cd18ab..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_low_untinted_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", - "stem": "tiny_flowers:block/tiny_cactus_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_2.json deleted file mode 100644 index 6e614476..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_low_untinted_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", - "stem": "tiny_flowers:block/tiny_cactus_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_3.json deleted file mode 100644 index 6fb71aef..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_low_untinted_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", - "stem": "tiny_flowers:block/tiny_cactus_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_4.json deleted file mode 100644 index b48d97f9..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_cactus_flower_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_low_untinted_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", - "stem": "tiny_flowers:block/tiny_cactus_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_1.json deleted file mode 100644 index 15591232..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_untinted_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_2.json deleted file mode 100644 index acf25406..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_untinted_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_3.json deleted file mode 100644 index 54448fa0..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_untinted_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_4.json deleted file mode 100644 index 4d111137..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_closed_eyeblossom_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_untinted_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_1.json deleted file mode 100644 index 34c30ff6..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_2.json deleted file mode 100644 index 79247819..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_3.json deleted file mode 100644 index 09112a1c..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_4.json deleted file mode 100644 index eb3321db..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_cornflower_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_1.json deleted file mode 100644 index f359bc87..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_2.json deleted file mode 100644 index 305efc43..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_3.json deleted file mode 100644 index dea5daff..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_4.json deleted file mode 100644 index 37d8211a..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_dandelion_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_1.json deleted file mode 100644 index 3af1e010..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_1.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_2.json deleted file mode 100644 index 1ed913c9..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_2.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_3.json deleted file mode 100644 index f4e41326..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_3.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_4.json deleted file mode 100644 index a95f7ee0..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_lily_of_the_valley_4.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_1.json deleted file mode 100644 index 37f701d2..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_1.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_untinted_glow_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_2.json deleted file mode 100644 index 9eac4a3a..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_2.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_untinted_glow_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_3.json deleted file mode 100644 index 6cb4e327..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_3.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_untinted_glow_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_4.json deleted file mode 100644 index 67c7d714..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_open_eyeblossom_4.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_double_untinted_glow_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_1.json deleted file mode 100644 index 6f300104..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_2.json deleted file mode 100644 index d1c81ecf..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_3.json deleted file mode 100644 index 3d83be38..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_4.json deleted file mode 100644 index f5babf53..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_orange_tulip_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_1.json deleted file mode 100644 index 279bc943..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_2.json deleted file mode 100644 index d4007512..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_3.json deleted file mode 100644 index dbe495a0..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_4.json deleted file mode 100644 index e6a8392c..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_oxeye_daisy_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_1.json deleted file mode 100644 index c3c90269..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_2.json deleted file mode 100644 index 1478f55b..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_3.json deleted file mode 100644 index 3039a2c1..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_4.json deleted file mode 100644 index 2bd4e8ec..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_pink_tulip_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_1.json deleted file mode 100644 index 990703a4..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_tall_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_2.json deleted file mode 100644 index af62e9b6..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_tall_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_3.json deleted file mode 100644 index 6cf3d356..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_tall_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_4.json deleted file mode 100644 index c50695bf..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_poppy_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_tall_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tall_tiny_flower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_1.json deleted file mode 100644 index a9e8961d..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_2.json deleted file mode 100644 index ac809398..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_3.json deleted file mode 100644 index 8ae8d706..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_4.json deleted file mode 100644 index 5d320e4c..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_red_tulip_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_1.json deleted file mode 100644 index c5b8d0cd..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_1.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_triple_untinted_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", - "stem": "tiny_flowers:block/tiny_torchflower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_2.json deleted file mode 100644 index ef8272ad..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_2.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_triple_untinted_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", - "stem": "tiny_flowers:block/tiny_torchflower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_3.json deleted file mode 100644 index 86193e9a..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_3.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_triple_untinted_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", - "stem": "tiny_flowers:block/tiny_torchflower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_4.json deleted file mode 100644 index 4bb8a1c2..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_torchflower_4.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_triple_untinted_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", - "stem": "tiny_flowers:block/tiny_torchflower_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_1.json deleted file mode 100644 index 7976a815..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_2.json deleted file mode 100644 index 83866a5a..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_3.json deleted file mode 100644 index 9f066cbb..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_4.json deleted file mode 100644 index 2f01184a..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_white_tulip_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_1.json deleted file mode 100644 index d3659fc1..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_untinted_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", - "stem": "tiny_flowers:block/tiny_wither_rose_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_2.json deleted file mode 100644 index d8ace383..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_untinted_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", - "stem": "tiny_flowers:block/tiny_wither_rose_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_3.json deleted file mode 100644 index e2c6ad1b..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_untinted_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", - "stem": "tiny_flowers:block/tiny_wither_rose_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_4.json deleted file mode 100644 index 2e50fa73..00000000 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_wither_rose_4.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "tiny_flowers:block/garden_untinted_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", - "stem": "tiny_flowers:block/tiny_wither_rose_stem" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/florists_shears.json b/src/main/generated/assets/tiny_flowers/models/item/florists_shears.json deleted file mode 100644 index f5687db0..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/florists_shears.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/florists_shears", - "layer1": "tiny_flowers:item/florists_shears_handle" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_allium.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_allium.json deleted file mode 100644 index 7203632b..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_allium.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_allium" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_azure_bluet.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_azure_bluet.json deleted file mode 100644 index 35490b90..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_azure_bluet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_azure_bluet" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_blue_orchid.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_blue_orchid.json deleted file mode 100644 index 548f45bd..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_blue_orchid.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_blue_orchid" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_cactus_flower.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_cactus_flower.json deleted file mode 100644 index f10e3100..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_cactus_flower.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_cactus_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_closed_eyeblossom.json deleted file mode 100644 index 68db64a5..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_closed_eyeblossom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_closed_eyeblossom" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_cornflower.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_cornflower.json deleted file mode 100644 index d04d5990..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_cornflower.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_cornflower" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_dandelion.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_dandelion.json deleted file mode 100644 index 1220da9d..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_dandelion.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_dandelion" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_garden.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_garden.json deleted file mode 100644 index e9eaec2a..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_garden.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_garden" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_lily_of_the_valley.json deleted file mode 100644 index 8130511f..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_lily_of_the_valley.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_lily_of_the_valley" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_open_eyeblossom.json deleted file mode 100644 index 8f524882..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_open_eyeblossom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_open_eyeblossom" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_orange_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_orange_tulip.json deleted file mode 100644 index 5ac75668..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_orange_tulip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_orange_tulip" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_oxeye_daisy.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_oxeye_daisy.json deleted file mode 100644 index 337ed4ef..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_oxeye_daisy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_oxeye_daisy" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_pink_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_pink_tulip.json deleted file mode 100644 index 26f46632..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_pink_tulip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_pink_tulip" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_poppy.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_poppy.json deleted file mode 100644 index 74b0010f..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_poppy.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_poppy" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_red_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_red_tulip.json deleted file mode 100644 index c1ede6f4..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_red_tulip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_red_tulip" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_torchflower.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_torchflower.json deleted file mode 100644 index c4de06d6..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_torchflower.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_torchflower" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_white_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_white_tulip.json deleted file mode 100644 index 2b7db320..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_white_tulip.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_white_tulip" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_wither_rose.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_wither_rose.json deleted file mode 100644 index a633ea95..00000000 --- a/src/main/generated/assets/tiny_flowers/models/item/tiny_wither_rose.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "tiny_flowers:item/tiny_wither_rose" - } -} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/flowers.json b/src/main/generated/data/minecraft/tags/block/flowers.json deleted file mode 100644 index 4ad68040..00000000 --- a/src/main/generated/data/minecraft/tags/block/flowers.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "tiny_flowers:tiny_garden" - ] -} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/inside_step_sound_blocks.json b/src/main/generated/data/minecraft/tags/block/inside_step_sound_blocks.json deleted file mode 100644 index 4ad68040..00000000 --- a/src/main/generated/data/minecraft/tags/block/inside_step_sound_blocks.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "tiny_flowers:tiny_garden" - ] -} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/sword_efficient.json b/src/main/generated/data/minecraft/tags/block/sword_efficient.json deleted file mode 100644 index 4ad68040..00000000 --- a/src/main/generated/data/minecraft/tags/block/sword_efficient.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "tiny_flowers:tiny_garden" - ] -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_closed_eyeblossom.json deleted file mode 100644 index 86affe32..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_closed_eyeblossom.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_closed_eyeblossom" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_closed_eyeblossom" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cornflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cornflower.json deleted file mode 100644 index 8aeee085..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cornflower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_cornflower" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_cornflower" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_dandelion.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_dandelion.json deleted file mode 100644 index 344f4ec3..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_dandelion.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_dandelion" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_dandelion" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_azure_bluet.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_allium.json similarity index 83% rename from src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_azure_bluet.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_allium.json index 766b2c65..6e3ab38f 100644 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_azure_bluet.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_allium.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny_flowers:tiny_azure_bluet" + "recipe": "tiny_flowers:tiny_flower_from_allium" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny_flowers:tiny_azure_bluet" + "tiny_flowers:tiny_flower_from_allium" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_azure_bluet.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_azure_bluet.json new file mode 100644 index 00000000..ef2424ec --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_azure_bluet.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_azure_bluet" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_azure_bluet" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_blue_orchid.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_blue_orchid.json new file mode 100644 index 00000000..66e9a84d --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_blue_orchid.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_blue_orchid" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_blue_orchid" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cactus_flower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cactus_flower.json new file mode 100644 index 00000000..4874fac2 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cactus_flower.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_cactus_flower" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_cactus_flower" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_closed_eyeblossom.json new file mode 100644 index 00000000..3fff11cc --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_closed_eyeblossom.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_closed_eyeblossom" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_closed_eyeblossom" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cornflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cornflower.json new file mode 100644 index 00000000..f24326c1 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cornflower.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_cornflower" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_cornflower" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_blue_orchid.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_dandelion.json similarity index 82% rename from src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_blue_orchid.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_dandelion.json index a175581c..ff9c8de7 100644 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_blue_orchid.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_dandelion.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny_flowers:tiny_blue_orchid" + "recipe": "tiny_flowers:tiny_flower_from_dandelion" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny_flowers:tiny_blue_orchid" + "tiny_flowers:tiny_flower_from_dandelion" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_lily_of_the_valley.json new file mode 100644 index 00000000..eefff8e7 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_lily_of_the_valley.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_lily_of_the_valley" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_lily_of_the_valley" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_open_eyeblossom.json new file mode 100644 index 00000000..f5e182d3 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_open_eyeblossom.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_open_eyeblossom" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_open_eyeblossom" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_orange_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_orange_tulip.json new file mode 100644 index 00000000..c44d163e --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_orange_tulip.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_orange_tulip" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_orange_tulip" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_oxeye_daisy.json new file mode 100644 index 00000000..65016def --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_oxeye_daisy.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_oxeye_daisy" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_oxeye_daisy" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_pink_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_pink_tulip.json new file mode 100644 index 00000000..17f1cba8 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_pink_tulip.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_pink_tulip" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_pink_tulip" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_allium.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_poppy.json similarity index 83% rename from src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_allium.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_poppy.json index cc54c790..b5516e98 100644 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_allium.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_poppy.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny_flowers:tiny_allium" + "recipe": "tiny_flowers:tiny_flower_from_poppy" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny_flowers:tiny_allium" + "tiny_flowers:tiny_flower_from_poppy" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cactus_flower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_red_tulip.json similarity index 82% rename from src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cactus_flower.json rename to src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_red_tulip.json index 3babcd20..e67106fe 100644 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_cactus_flower.json +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_red_tulip.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "tiny_flowers:tiny_cactus_flower" + "recipe": "tiny_flowers:tiny_flower_from_red_tulip" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "tiny_flowers:tiny_cactus_flower" + "tiny_flowers:tiny_flower_from_red_tulip" ] } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_torchflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_torchflower.json new file mode 100644 index 00000000..df23594f --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_torchflower.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_torchflower" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_torchflower" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_white_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_white_tulip.json new file mode 100644 index 00000000..09d7a657 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_white_tulip.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_white_tulip" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_white_tulip" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_wither_rose.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_wither_rose.json new file mode 100644 index 00000000..0a4b6807 --- /dev/null +++ b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_wither_rose.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_florists_shears": { + "conditions": { + "items": [ + { + "items": "tiny_flowers:florists_shears" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "tiny_flowers:tiny_flower_from_wither_rose" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_florists_shears" + ] + ], + "rewards": { + "recipes": [ + "tiny_flowers:tiny_flower_from_wither_rose" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_lily_of_the_valley.json deleted file mode 100644 index d56c8839..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_lily_of_the_valley.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_lily_of_the_valley" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_lily_of_the_valley" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_open_eyeblossom.json deleted file mode 100644 index 3ce3107a..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_open_eyeblossom.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_open_eyeblossom" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_open_eyeblossom" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_orange_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_orange_tulip.json deleted file mode 100644 index 395754e6..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_orange_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_orange_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_orange_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_oxeye_daisy.json deleted file mode 100644 index a01732bd..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_oxeye_daisy.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_oxeye_daisy" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_oxeye_daisy" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_pink_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_pink_tulip.json deleted file mode 100644 index 3fc4256a..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_pink_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_pink_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_pink_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_poppy.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_poppy.json deleted file mode 100644 index 15601790..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_poppy.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_poppy" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_poppy" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_red_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_red_tulip.json deleted file mode 100644 index ec62ec3f..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_red_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_red_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_red_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_torchflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_torchflower.json deleted file mode 100644 index bec267ee..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_torchflower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_torchflower" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_torchflower" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_white_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_white_tulip.json deleted file mode 100644 index e0a9ff6a..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_white_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_white_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_white_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_wither_rose.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_wither_rose.json deleted file mode 100644 index 3465afa8..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_wither_rose.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_wither_rose" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_wither_rose" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_allium.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_allium.json deleted file mode 100644 index 7eaceaa8..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_allium.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_allium" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_allium": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_allium" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_allium" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_allium" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_azure_bluet.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_azure_bluet.json deleted file mode 100644 index bf7b541a..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_azure_bluet.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_azure_bluet" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_azure_bluet": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_azure_bluet" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_azure_bluet" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_azure_bluet" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_blue_orchid.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_blue_orchid.json deleted file mode 100644 index bcf94a49..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_blue_orchid.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_blue_orchid" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_blue_orchid": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_blue_orchid" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_blue_orchid" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_blue_orchid" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_closed_eyeblossom.json deleted file mode 100644 index 2ecab486..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_closed_eyeblossom.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_closed_eyeblossom" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_closed_eyeblossom": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_closed_eyeblossom" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_closed_eyeblossom" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_closed_eyeblossom" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_cornflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_cornflower.json deleted file mode 100644 index f0460fd7..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_cornflower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_cornflower" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_cornflower": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_cornflower" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_cornflower" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_cornflower" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_dandelion.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_dandelion.json deleted file mode 100644 index b36bedd5..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_dandelion.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_dandelion" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_dandelion": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_dandelion" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_dandelion" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_dandelion" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_lily_of_the_valley.json deleted file mode 100644 index 61080cac..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_lily_of_the_valley.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_lily_of_the_valley" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_lily_of_the_valley": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_lily_of_the_valley" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_lily_of_the_valley" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_lily_of_the_valley" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_open_eyeblossom.json deleted file mode 100644 index 1dfdf7c1..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_open_eyeblossom.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_open_eyeblossom" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_open_eyeblossom": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_open_eyeblossom" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_open_eyeblossom" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_open_eyeblossom" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_orange_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_orange_tulip.json deleted file mode 100644 index f26892c4..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_orange_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_orange_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_orange_tulip": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_orange_tulip" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_orange_tulip" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_orange_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_oxeye_daisy.json deleted file mode 100644 index 86b92c4a..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_oxeye_daisy.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_oxeye_daisy" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_oxeye_daisy": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_oxeye_daisy" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_oxeye_daisy" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_oxeye_daisy" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_pink_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_pink_tulip.json deleted file mode 100644 index 9412515a..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_pink_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_pink_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_pink_tulip": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_pink_tulip" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_pink_tulip" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_pink_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_poppy.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_poppy.json deleted file mode 100644 index 073d027b..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_poppy.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_poppy" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_poppy": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_poppy" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_poppy" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_poppy" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_red_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_red_tulip.json deleted file mode 100644 index 659a270b..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_red_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_red_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_red_tulip": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_red_tulip" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_red_tulip" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_red_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_torchflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_torchflower.json deleted file mode 100644 index 04a1d8b8..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_torchflower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_torchflower" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_torchflower": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_torchflower" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_torchflower" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_torchflower" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_white_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_white_tulip.json deleted file mode 100644 index fc864451..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_white_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_white_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_white_tulip": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_white_tulip" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_white_tulip" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_white_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_wither_rose.json b/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_wither_rose.json deleted file mode 100644 index 8f7e1e38..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/food/suspicious_stew_from_tiny_wither_rose.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:suspicious_stew_from_tiny_wither_rose" - }, - "trigger": "minecraft:recipe_unlocked" - }, - "has_tiny_wither_rose": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:tiny_wither_rose" - } - ] - }, - "trigger": "minecraft:inventory_changed" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_tiny_wither_rose" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:suspicious_stew_from_tiny_wither_rose" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/loot_table/blocks/tiny_garden.json b/src/main/generated/data/tiny_flowers/loot_table/blocks/tiny_garden.json deleted file mode 100644 index 9ab332a0..00000000 --- a/src/main/generated/data/tiny_flowers/loot_table/blocks/tiny_garden.json +++ /dev/null @@ -1,1525 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "pink_petals" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:pink_petals" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "pink_petals" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:pink_petals" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "pink_petals" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:pink_petals" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "pink_petals" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:pink_petals" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "wildflowers" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:wildflowers" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "wildflowers" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:wildflowers" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "wildflowers" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:wildflowers" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "wildflowers" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:wildflowers" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "leaf_litter" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:leaf_litter" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "leaf_litter" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:leaf_litter" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "leaf_litter" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:leaf_litter" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "leaf_litter" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:leaf_litter" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "dandelion" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_dandelion" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "dandelion" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_dandelion" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "dandelion" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_dandelion" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "dandelion" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_dandelion" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "poppy" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_poppy" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "poppy" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_poppy" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "poppy" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_poppy" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "poppy" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_poppy" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "blue_orchid" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_blue_orchid" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "blue_orchid" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_blue_orchid" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "blue_orchid" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_blue_orchid" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "blue_orchid" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_blue_orchid" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "allium" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_allium" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "allium" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_allium" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "allium" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_allium" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "allium" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_allium" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "azure_bluet" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_azure_bluet" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "azure_bluet" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_azure_bluet" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "azure_bluet" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_azure_bluet" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "azure_bluet" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_azure_bluet" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "red_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_red_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "red_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_red_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "red_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_red_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "red_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_red_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "orange_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_orange_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "orange_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_orange_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "orange_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_orange_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "orange_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_orange_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "white_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_white_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "white_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_white_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "white_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_white_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "white_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_white_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "pink_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_pink_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "pink_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_pink_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "pink_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_pink_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "pink_tulip" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_pink_tulip" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "oxeye_daisy" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_oxeye_daisy" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "oxeye_daisy" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_oxeye_daisy" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "oxeye_daisy" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_oxeye_daisy" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "oxeye_daisy" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_oxeye_daisy" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "cornflower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_cornflower" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "cornflower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_cornflower" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "cornflower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_cornflower" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "cornflower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_cornflower" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "lily_of_the_valley" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_lily_of_the_valley" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "lily_of_the_valley" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_lily_of_the_valley" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "lily_of_the_valley" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_lily_of_the_valley" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "lily_of_the_valley" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_lily_of_the_valley" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "torchflower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_torchflower" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "torchflower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_torchflower" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "torchflower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_torchflower" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "torchflower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_torchflower" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "closed_eyeblossom" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_closed_eyeblossom" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "closed_eyeblossom" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_closed_eyeblossom" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "closed_eyeblossom" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_closed_eyeblossom" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "closed_eyeblossom" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_closed_eyeblossom" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "open_eyeblossom" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_open_eyeblossom" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "open_eyeblossom" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_open_eyeblossom" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "open_eyeblossom" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_open_eyeblossom" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "open_eyeblossom" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_open_eyeblossom" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "wither_rose" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_wither_rose" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "wither_rose" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_wither_rose" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "wither_rose" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_wither_rose" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "wither_rose" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_wither_rose" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_1": "cactus_flower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_cactus_flower" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_2": "cactus_flower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_cactus_flower" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_3": "cactus_flower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_cactus_flower" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "block": "tiny_flowers:tiny_garden", - "condition": "minecraft:block_state_property", - "properties": { - "flower_variant_4": "cactus_flower" - } - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "tiny_flowers:tiny_cactus_flower" - } - ], - "rolls": 1.0 - } - ] -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_allium.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_allium.json deleted file mode 100644 index 184256e6..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_allium.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_allium", - "tiny_flowers:tiny_allium" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 60, - "id": "minecraft:fire_resistance" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_azure_bluet.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_azure_bluet.json deleted file mode 100644 index e8f25c3c..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_azure_bluet.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_azure_bluet", - "tiny_flowers:tiny_azure_bluet" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 220, - "id": "minecraft:blindness" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_blue_orchid.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_blue_orchid.json deleted file mode 100644 index 199b6682..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_blue_orchid.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_blue_orchid", - "tiny_flowers:tiny_blue_orchid" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 7, - "id": "minecraft:saturation" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_closed_eyeblossom.json deleted file mode 100644 index 24084ef9..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_closed_eyeblossom.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_closed_eyeblossom", - "tiny_flowers:tiny_closed_eyeblossom" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 140, - "id": "minecraft:nausea" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_cornflower.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_cornflower.json deleted file mode 100644 index b919ce0a..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_cornflower.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_cornflower", - "tiny_flowers:tiny_cornflower" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 100, - "id": "minecraft:jump_boost" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_dandelion.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_dandelion.json deleted file mode 100644 index a7ca39c4..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_dandelion.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_dandelion", - "tiny_flowers:tiny_dandelion" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 7, - "id": "minecraft:saturation" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_lily_of_the_valley.json deleted file mode 100644 index 9f96e731..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_lily_of_the_valley.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_lily_of_the_valley", - "tiny_flowers:tiny_lily_of_the_valley" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 220, - "id": "minecraft:poison" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_open_eyeblossom.json deleted file mode 100644 index 7d08b929..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_open_eyeblossom.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_open_eyeblossom", - "tiny_flowers:tiny_open_eyeblossom" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 220, - "id": "minecraft:blindness" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_orange_tulip.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_orange_tulip.json deleted file mode 100644 index 50a41980..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_orange_tulip.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_orange_tulip", - "tiny_flowers:tiny_orange_tulip" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 140, - "id": "minecraft:weakness" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_oxeye_daisy.json deleted file mode 100644 index 811748ae..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_oxeye_daisy.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_oxeye_daisy", - "tiny_flowers:tiny_oxeye_daisy" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 140, - "id": "minecraft:regeneration" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_pink_tulip.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_pink_tulip.json deleted file mode 100644 index b90cb13a..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_pink_tulip.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_pink_tulip", - "tiny_flowers:tiny_pink_tulip" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 140, - "id": "minecraft:weakness" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_poppy.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_poppy.json deleted file mode 100644 index d62befa7..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_poppy.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_poppy", - "tiny_flowers:tiny_poppy" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 100, - "id": "minecraft:night_vision" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_red_tulip.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_red_tulip.json deleted file mode 100644 index f6f6398c..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_red_tulip.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_red_tulip", - "tiny_flowers:tiny_red_tulip" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 140, - "id": "minecraft:weakness" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_torchflower.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_torchflower.json deleted file mode 100644 index 21affb9e..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_torchflower.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_torchflower", - "tiny_flowers:tiny_torchflower" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 100, - "id": "minecraft:night_vision" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_white_tulip.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_white_tulip.json deleted file mode 100644 index fb336b8b..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_white_tulip.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_white_tulip", - "tiny_flowers:tiny_white_tulip" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 140, - "id": "minecraft:weakness" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_wither_rose.json b/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_wither_rose.json deleted file mode 100644 index 8df89bf1..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/suspicious_stew_from_tiny_wither_rose.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "suspicious_stew", - "ingredients": [ - "minecraft:bowl", - "minecraft:brown_mushroom", - "minecraft:red_mushroom", - "tiny_flowers:tiny_wither_rose", - "tiny_flowers:tiny_wither_rose" - ], - "result": { - "components": { - "minecraft:suspicious_stew_effects": [ - { - "duration": 140, - "id": "minecraft:wither" - } - ] - }, - "count": 1, - "id": "minecraft:suspicious_stew" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_allium.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_allium.json similarity index 57% rename from src/main/generated/data/tiny_flowers/recipe/tiny_allium.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_allium.json index d36a6abc..af772a41 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_allium.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_allium.json @@ -7,7 +7,12 @@ "minecraft:allium" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_allium" + } + }, "count": 4, - "id": "tiny_flowers:tiny_allium" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_azure_bluet.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_azure_bluet.json similarity index 56% rename from src/main/generated/data/tiny_flowers/recipe/tiny_azure_bluet.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_azure_bluet.json index a6019c1c..910f8214 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_azure_bluet.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_azure_bluet.json @@ -7,7 +7,12 @@ "minecraft:azure_bluet" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_azure_bluet" + } + }, "count": 4, - "id": "tiny_flowers:tiny_azure_bluet" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_blue_orchid.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_blue_orchid.json similarity index 56% rename from src/main/generated/data/tiny_flowers/recipe/tiny_blue_orchid.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_blue_orchid.json index f51b4cbb..bf4f6bb3 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_blue_orchid.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_blue_orchid.json @@ -7,7 +7,12 @@ "minecraft:blue_orchid" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_blue_orchid" + } + }, "count": 4, - "id": "tiny_flowers:tiny_blue_orchid" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_cactus_flower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cactus_flower.json similarity index 56% rename from src/main/generated/data/tiny_flowers/recipe/tiny_cactus_flower.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cactus_flower.json index 8cc71520..819fa4ef 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_cactus_flower.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cactus_flower.json @@ -7,7 +7,12 @@ "minecraft:cactus_flower" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_cactus_flower" + } + }, "count": 4, - "id": "tiny_flowers:tiny_cactus_flower" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_closed_eyeblossom.json similarity index 56% rename from src/main/generated/data/tiny_flowers/recipe/tiny_closed_eyeblossom.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_closed_eyeblossom.json index c8e94957..7a17479f 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_closed_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_closed_eyeblossom.json @@ -7,7 +7,12 @@ "minecraft:closed_eyeblossom" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_closed_eyeblossom" + } + }, "count": 4, - "id": "tiny_flowers:tiny_closed_eyeblossom" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_cornflower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cornflower.json similarity index 57% rename from src/main/generated/data/tiny_flowers/recipe/tiny_cornflower.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cornflower.json index 9c5fe9ea..5c002e04 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_cornflower.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cornflower.json @@ -7,7 +7,12 @@ "minecraft:cornflower" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_cornflower" + } + }, "count": 4, - "id": "tiny_flowers:tiny_cornflower" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_dandelion.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_dandelion.json similarity index 57% rename from src/main/generated/data/tiny_flowers/recipe/tiny_dandelion.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_dandelion.json index 4220d00f..126cd236 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_dandelion.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_dandelion.json @@ -7,7 +7,12 @@ "minecraft:dandelion" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_dandelion" + } + }, "count": 4, - "id": "tiny_flowers:tiny_dandelion" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_lily_of_the_valley.json similarity index 56% rename from src/main/generated/data/tiny_flowers/recipe/tiny_lily_of_the_valley.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_lily_of_the_valley.json index d3cbbd62..3aeaae05 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_lily_of_the_valley.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_lily_of_the_valley.json @@ -7,7 +7,12 @@ "minecraft:lily_of_the_valley" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_lily_of_the_valley" + } + }, "count": 4, - "id": "tiny_flowers:tiny_lily_of_the_valley" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_open_eyeblossom.json similarity index 56% rename from src/main/generated/data/tiny_flowers/recipe/tiny_open_eyeblossom.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_open_eyeblossom.json index 968dc5c1..321f39eb 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_open_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_open_eyeblossom.json @@ -7,7 +7,12 @@ "minecraft:open_eyeblossom" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_open_eyeblossom" + } + }, "count": 4, - "id": "tiny_flowers:tiny_open_eyeblossom" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_orange_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_orange_tulip.json similarity index 56% rename from src/main/generated/data/tiny_flowers/recipe/tiny_orange_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_orange_tulip.json index ed1e969b..d3446f85 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_orange_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_orange_tulip.json @@ -7,7 +7,12 @@ "minecraft:orange_tulip" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_orange_tulip" + } + }, "count": 4, - "id": "tiny_flowers:tiny_orange_tulip" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_oxeye_daisy.json similarity index 56% rename from src/main/generated/data/tiny_flowers/recipe/tiny_oxeye_daisy.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_oxeye_daisy.json index 48b9f4fd..da4f7e45 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_oxeye_daisy.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_oxeye_daisy.json @@ -7,7 +7,12 @@ "minecraft:oxeye_daisy" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_oxeye_daisy" + } + }, "count": 4, - "id": "tiny_flowers:tiny_oxeye_daisy" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_pink_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_pink_tulip.json similarity index 57% rename from src/main/generated/data/tiny_flowers/recipe/tiny_pink_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_pink_tulip.json index dd497cda..7bb5ec03 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_pink_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_pink_tulip.json @@ -7,7 +7,12 @@ "minecraft:pink_tulip" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_pink_tulip" + } + }, "count": 4, - "id": "tiny_flowers:tiny_pink_tulip" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_poppy.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_poppy.json similarity index 57% rename from src/main/generated/data/tiny_flowers/recipe/tiny_poppy.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_poppy.json index 71b0b7db..5f9f95ad 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_poppy.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_poppy.json @@ -7,7 +7,12 @@ "minecraft:poppy" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_poppy" + } + }, "count": 4, - "id": "tiny_flowers:tiny_poppy" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_red_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_red_tulip.json similarity index 57% rename from src/main/generated/data/tiny_flowers/recipe/tiny_red_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_red_tulip.json index d8cab195..610852c1 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_red_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_red_tulip.json @@ -7,7 +7,12 @@ "minecraft:red_tulip" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_red_tulip" + } + }, "count": 4, - "id": "tiny_flowers:tiny_red_tulip" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_torchflower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_torchflower.json similarity index 56% rename from src/main/generated/data/tiny_flowers/recipe/tiny_torchflower.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_torchflower.json index 4afa072c..d599012f 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_torchflower.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_torchflower.json @@ -7,7 +7,12 @@ "minecraft:torchflower" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_torchflower" + } + }, "count": 4, - "id": "tiny_flowers:tiny_torchflower" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_white_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_white_tulip.json similarity index 56% rename from src/main/generated/data/tiny_flowers/recipe/tiny_white_tulip.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_white_tulip.json index f421532c..011c87e5 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_white_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_white_tulip.json @@ -7,7 +7,12 @@ "minecraft:white_tulip" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_white_tulip" + } + }, "count": 4, - "id": "tiny_flowers:tiny_white_tulip" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_wither_rose.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_wither_rose.json similarity index 56% rename from src/main/generated/data/tiny_flowers/recipe/tiny_wither_rose.json rename to src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_wither_rose.json index ae6c86ac..b46626ac 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_wither_rose.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_wither_rose.json @@ -7,7 +7,12 @@ "minecraft:wither_rose" ], "result": { + "components": { + "tiny_flowers:tiny_flower": { + "tiny_flower": "tiny_flowers:tiny_wither_rose" + } + }, "count": 4, - "id": "tiny_flowers:tiny_wither_rose" + "id": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json b/src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json index 23a83663..5ff44999 100644 --- a/src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json +++ b/src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json @@ -1,24 +1,25 @@ { "values": [ + "tiny_flowers:tiny_flower", "minecraft:pink_petals", "minecraft:wildflowers", "minecraft:leaf_litter", - "tiny_flowers:tiny_dandelion", - "tiny_flowers:tiny_poppy", - "tiny_flowers:tiny_blue_orchid", - "tiny_flowers:tiny_allium", - "tiny_flowers:tiny_azure_bluet", - "tiny_flowers:tiny_red_tulip", - "tiny_flowers:tiny_orange_tulip", - "tiny_flowers:tiny_white_tulip", - "tiny_flowers:tiny_pink_tulip", - "tiny_flowers:tiny_oxeye_daisy", - "tiny_flowers:tiny_cornflower", - "tiny_flowers:tiny_lily_of_the_valley", - "tiny_flowers:tiny_torchflower", - "tiny_flowers:tiny_closed_eyeblossom", - "tiny_flowers:tiny_open_eyeblossom", - "tiny_flowers:tiny_wither_rose", - "tiny_flowers:tiny_cactus_flower" + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air", + "minecraft:air" ] } \ No newline at end of file diff --git a/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java b/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java index 6892b128..4f05856b 100644 --- a/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java +++ b/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java @@ -9,6 +9,7 @@ import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.data.ModRegistries; import co.secretonline.tinyflowers.items.ModItems; +import co.secretonline.tinyflowers.items.crafting.ModRecipeSerializers; public class TinyFlowers implements ModInitializer { public static final String MOD_ID = "tiny_flowers"; @@ -25,5 +26,6 @@ public void onInitialize() { ModBlocks.initialize(); ModItems.initialize(); ModRegistries.initialize(); + ModRecipeSerializers.initialize(); } } diff --git a/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java b/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java index d9ab83bd..e0d1f255 100644 --- a/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java +++ b/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java @@ -6,6 +6,11 @@ import net.minecraft.core.registries.BuiltInRegistries; public class ModComponents { + public static final DataComponentType TINY_FLOWER = Registry.register( + BuiltInRegistries.DATA_COMPONENT_TYPE, + TinyFlowers.id("tiny_flower"), + DataComponentType.builder().persistent(TinyFlowerComponent.CODEC).build()); + public static final DataComponentType TINY_FLOWERS_COMPONENT_TYPE = Registry.register( BuiltInRegistries.DATA_COMPONENT_TYPE, TinyFlowers.id("tiny_flowers"), diff --git a/src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java b/src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java new file mode 100644 index 00000000..58ec5840 --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java @@ -0,0 +1,19 @@ +package co.secretonline.tinyflowers.components; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; + +import net.minecraft.resources.Identifier; +import net.minecraft.util.Util; + +public record TinyFlowerComponent(Identifier id) { + public String getTranslationKey() { + return Util.makeDescriptionId("item", this.id()); + } + + public static final Codec CODEC = RecordCodecBuilder.create(builder -> { + return builder.group( + Identifier.CODEC.fieldOf("tiny_flower").forGetter(TinyFlowerComponent::id)) + .apply(builder, TinyFlowerComponent::new); + }); +} diff --git a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java index 939fdda4..8a8ff916 100644 --- a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java +++ b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java @@ -8,7 +8,9 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.resources.Identifier; +import net.minecraft.world.item.component.SuspiciousStewEffects; import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; +import net.minecraft.world.level.block.SuspiciousEffectHolder; /** * Data for a tiny flower variant. @@ -25,7 +27,16 @@ * @param stewEffect A potion effect for Suspicious Stew. */ public record TinyFlowerData(Identifier id, Identifier originalId, boolean shouldCreateItem, - @Nullable List suspiciousStewEffects) { + @Nullable List suspiciousStewEffects) implements SuspiciousEffectHolder { + + @Override + public SuspiciousStewEffects getSuspiciousEffects() { + if (this.suspiciousStewEffects() == null) { + return new SuspiciousStewEffects(List.of()); + } + + return new SuspiciousStewEffects(this.suspiciousStewEffects()); + } public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerData::id), diff --git a/src/main/java/co/secretonline/tinyflowers/items/ModItems.java b/src/main/java/co/secretonline/tinyflowers/items/ModItems.java index b9fb0a46..cb2fdae7 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/ModItems.java +++ b/src/main/java/co/secretonline/tinyflowers/items/ModItems.java @@ -1,21 +1,12 @@ package co.secretonline.tinyflowers.items; -import java.util.HashMap; -import java.util.Map; -import java.util.function.Function; - import co.secretonline.tinyflowers.TinyFlowers; -import co.secretonline.tinyflowers.blocks.FlowerVariant; -import co.secretonline.tinyflowers.blocks.ModBlocks; -import co.secretonline.tinyflowers.components.ModComponents; -import co.secretonline.tinyflowers.components.TinyFlowersComponent; import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; import net.minecraft.core.Registry; import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; -import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTabs; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; @@ -23,17 +14,6 @@ import net.minecraft.world.item.component.DyedItemColor; public class ModItems { - - // This mod defines a bunch of duplicate block items of the tiny_garden block so - // that placing one of them will always place one. This does get a little weird - // in places, as it definitely does not feel intended, but it works so I'm not - // complaining. - private static final Map FLOWER_VARIANT_ITEMS = registerFlowerVariantItems(); - // This declaration MUST be last to keep the Block/Item mappings correct. - public static final Item TINY_GARDEN_ITEM = registerGardenBlockItem("tiny_garden", - // Add a default component so tooltips work for older items - (settings) -> settings.component(ModComponents.TINY_FLOWERS_COMPONENT_TYPE, TinyFlowersComponent.EMPTY)); - public static final ResourceKey FLORISTS_SHEARS_ITEM_KEY = ResourceKey.create(Registries.ITEM, TinyFlowers.id("florists_shears")); public static final Item FLORISTS_SHEARS_ITEM = Registry.register(BuiltInRegistries.ITEM, FLORISTS_SHEARS_ITEM_KEY, @@ -46,39 +26,14 @@ public class ModItems { .component(DataComponents.DYED_COLOR, new DyedItemColor(DyeColor.RED.getTextureDiffuseColor())))); - private static Map registerFlowerVariantItems() { - Map flowerVariantItems = new HashMap<>(); - - for (FlowerVariant variant : FlowerVariant.values()) { - if (!variant.shouldCreateItem()) { - continue; - } - - Item item = registerGardenBlockItem(variant.getItemIdentifier().getPath()); - flowerVariantItems.put(variant, item); - } - - return flowerVariantItems; - } - - public static Item registerGardenBlockItem(String path) { - return registerGardenBlockItem(path, Function.identity()); - } - - public static Item registerGardenBlockItem(String path, Function settings) { - ResourceKey itemKey = ResourceKey.create(Registries.ITEM, TinyFlowers.id(path)); - return Registry.register(BuiltInRegistries.ITEM, itemKey, - new BlockItem( - ModBlocks.TINY_GARDEN, - settings.apply(new Item.Properties().setId(itemKey)))); - } + public static final ResourceKey TINY_FLOWER_ITEM_KEY = ResourceKey.create(Registries.ITEM, + TinyFlowers.id("tiny_flower")); + public static final Item TINY_FLOWER_ITEM = Registry.register(BuiltInRegistries.ITEM, TINY_FLOWER_ITEM_KEY, + new TinyFlowerItem( + new Item.Properties() + .setId(TINY_FLOWER_ITEM_KEY))); public static void initialize() { - ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.NATURAL_BLOCKS).register((itemGroup) -> { - for (Map.Entry entry : FLOWER_VARIANT_ITEMS.entrySet()) { - itemGroup.accept(entry.getValue()); - } - }); ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.TOOLS_AND_UTILITIES).register((itemGroup) -> { itemGroup.accept(FLORISTS_SHEARS_ITEM); }); diff --git a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java new file mode 100644 index 00000000..6e74bc41 --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java @@ -0,0 +1,25 @@ +package co.secretonline.tinyflowers.items; + +import co.secretonline.tinyflowers.blocks.ModBlocks; +import co.secretonline.tinyflowers.components.ModComponents; +import co.secretonline.tinyflowers.components.TinyFlowerComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; + +public class TinyFlowerItem extends BlockItem { + public TinyFlowerItem(Item.Properties properties) { + super(ModBlocks.TINY_GARDEN, properties); + } + + @Override + public Component getName(ItemStack itemStack) { + TinyFlowerComponent tinyFlowerComponent = itemStack.getComponents().get(ModComponents.TINY_FLOWER); + if (tinyFlowerComponent == null) { + return super.getName(itemStack); + } + + return Component.translatable(tinyFlowerComponent.getTranslationKey()); + } +} diff --git a/src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java b/src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java new file mode 100644 index 00000000..d67ea870 --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java @@ -0,0 +1,13 @@ +package co.secretonline.tinyflowers.items.crafting; + +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; + +public class ModRecipeSerializers { + public static RecipeSerializer TINY_FLOWER_STEW = RecipeSerializer + .register("crafting_special_tiny_flower_stew", + new CustomRecipe.Serializer(TinyFlowerStewRecipe::new)); + + public static void initialize() { + } +} diff --git a/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java b/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java new file mode 100644 index 00000000..bf38a947 --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java @@ -0,0 +1,130 @@ +package co.secretonline.tinyflowers.items.crafting; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; + +import co.secretonline.tinyflowers.components.ModComponents; +import co.secretonline.tinyflowers.components.TinyFlowerComponent; +import co.secretonline.tinyflowers.data.ModRegistries; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.items.ModItems; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderLookup.Provider; +import net.minecraft.core.Registry; +import net.minecraft.core.component.DataComponentPatch; +import net.minecraft.core.component.DataComponents; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.component.SuspiciousStewEffects; +import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.CraftingInput; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.Level; + +public class TinyFlowerStewRecipe extends CustomRecipe { + public TinyFlowerStewRecipe(CraftingBookCategory craftingBookCategory) { + super(craftingBookCategory); + } + + @Override + public boolean matches(CraftingInput recipeInput, Level level) { + // Quick size check, since the recipe needs a bowl, the two shrooms, and at + // least one tiny flower. + if (recipeInput.size() < 4) { + return false; + } + + boolean hasBowl = false; + boolean hasBrownMushroom = false; + boolean hasRedMushroom = false; + boolean hasAtLeastOneTinyFlower = false; + + for (ItemStack itemStack : recipeInput.items()) { + // Ensure exactly one of each of bowl, red shroom, and brown shroom are in the + // list. + if (itemStack.is(Items.BOWL)) { + if (hasBowl) { + return false; + } + + hasBowl = true; + continue; + } + if (itemStack.is(Items.BROWN_MUSHROOM)) { + if (hasBrownMushroom) { + return false; + } + + hasBrownMushroom = true; + continue; + } + if (itemStack.is(Items.RED_MUSHROOM)) { + if (hasRedMushroom) { + return false; + } + + hasRedMushroom = true; + continue; + } + + if (!itemStack.is(ModItems.TINY_FLOWER_ITEM)) { + return false; + } + + hasAtLeastOneTinyFlower = true; + } + + return hasBowl && hasBrownMushroom && hasRedMushroom && hasAtLeastOneTinyFlower; + } + + @Override + public ItemStack assemble(CraftingInput recipeInput, Provider provider) { + Registry registry = provider.getOrThrow(ModRegistries.TINY_FLOWER).value(); + Map, Integer> effectMap = new HashMap<>(); + + for (ItemStack itemStack : recipeInput.items()) { + if (!itemStack.is(ModItems.TINY_FLOWER_ITEM)) { + continue; + } + + TinyFlowerComponent tinyFlowerComponent = itemStack.getComponents().get(ModComponents.TINY_FLOWER); + if (tinyFlowerComponent == null) { + continue; + } + + Optional result = registry.getOptional(tinyFlowerComponent.id()); + if (result.isEmpty()) { + continue; + } + + TinyFlowerData tinyFlowerData = result.get(); + for (Entry entry : tinyFlowerData.getSuspiciousEffects().effects()) { + effectMap.merge(entry.effect(), entry.duration(), Integer::sum); + } + } + + List effectList = effectMap.entrySet() + .stream() + .map((entry) -> new Entry(entry.getKey(), entry.getValue())) + .collect(Collectors.toList()); + SuspiciousStewEffects effects = new SuspiciousStewEffects(effectList); + + ItemStack output = new ItemStack(Items.SUSPICIOUS_STEW); + output.applyComponents(DataComponentPatch.builder() + .set(DataComponents.SUSPICIOUS_STEW_EFFECTS, effects) + .build()); + + return output; + } + + @Override + public RecipeSerializer getSerializer() { + return ModRecipeSerializers.TINY_FLOWER_STEW; + } +} diff --git a/src/main/resources/data/tiny_flowers/recipe/suspicious_stew_from_tiny_flowers.json b/src/main/resources/data/tiny_flowers/recipe/suspicious_stew_from_tiny_flowers.json new file mode 100644 index 00000000..b76ec84d --- /dev/null +++ b/src/main/resources/data/tiny_flowers/recipe/suspicious_stew_from_tiny_flowers.json @@ -0,0 +1,4 @@ +{ + "type": "tiny_flowers:crafting_special_tiny_flower_stew", + "category": "misc" +} From 3df8e40bf5162485bf35ce89d60166c99c6de224 Mon Sep 17 00:00:00 2001 From: secret_online Date: Tue, 16 Dec 2025 14:59:47 +1300 Subject: [PATCH 004/113] Comment out a lot of block code --- .../tinyflowers/TinyFlowersClient.java | 63 +-- .../datagen/BlockLootTableProvider.java | 54 --- .../datagen/BlockModelProvider.java | 219 --------- .../tinyflowers/datagen/BlockTagProvider.java | 23 - .../mixin/TerrainParticleMixin.java | 60 +-- .../tinyflowers/blocks/GardenBlock.java | 417 ------------------ .../tinyflowers/blocks/ModBlocks.java | 45 +- .../tinyflowers/components/ModComponents.java | 5 - .../components/TinyFlowersComponent.java | 90 ---- .../tinyflowers/helper/EyeblossomHelper.java | 29 +- .../helper/SegmentedMixinHelper.java | 87 ++-- .../tinyflowers/items/FloristsShearsItem.java | 207 +++++---- .../tinyflowers/items/TinyFlowerItem.java | 6 +- .../tinyflowers/mixin/ItemStackMixin.java | 14 +- 14 files changed, 254 insertions(+), 1065 deletions(-) delete mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/BlockLootTableProvider.java delete mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/BlockModelProvider.java delete mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/BlockTagProvider.java delete mode 100644 src/main/java/co/secretonline/tinyflowers/blocks/GardenBlock.java delete mode 100644 src/main/java/co/secretonline/tinyflowers/components/TinyFlowersComponent.java diff --git a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java index 8344e7bd..c053eb49 100644 --- a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java +++ b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java @@ -1,15 +1,15 @@ package co.secretonline.tinyflowers; -import co.secretonline.tinyflowers.blocks.ModBlocks; +// import co.secretonline.tinyflowers.blocks.ModBlocks; import net.fabricmc.api.ClientModInitializer; -import net.fabricmc.fabric.api.client.rendering.v1.BlockRenderLayerMap; -import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; -import net.minecraft.client.renderer.BiomeColors; -import net.minecraft.client.renderer.chunk.ChunkSectionLayer; +// import net.fabricmc.fabric.api.client.rendering.v1.BlockRenderLayerMap; +// import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; +// import net.minecraft.client.renderer.BiomeColors; +// import net.minecraft.client.renderer.chunk.ChunkSectionLayer; import net.minecraft.client.renderer.item.ItemStackRenderState; import net.minecraft.util.RandomSource; -import net.minecraft.world.level.DryFoliageColor; -import net.minecraft.world.level.GrassColor; +// import net.minecraft.world.level.DryFoliageColor; +// import net.minecraft.world.level.GrassColor; public class TinyFlowersClient implements ClientModInitializer { public static final RandomSource RANDOM = RandomSource.create(); @@ -17,31 +17,32 @@ public class TinyFlowersClient implements ClientModInitializer { @Override public void onInitializeClient() { - BlockRenderLayerMap.putBlock(ModBlocks.TINY_GARDEN, ChunkSectionLayer.CUTOUT); + // BlockRenderLayerMap.putBlock(ModBlocks.TINY_GARDEN, + // ChunkSectionLayer.CUTOUT); - // See Pink Petals in net.minecraft.client.color.block.BlockColors - ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> { - boolean hasWorld = world == null || pos == null; + // // See Pink Petals in net.minecraft.client.color.block.BlockColors + // ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> { + // boolean hasWorld = world == null || pos == null; - switch (tintIndex) { - case 1 -> { - if (hasWorld) { - return GrassColor.getDefaultColor(); - } else { - return BiomeColors.getAverageGrassColor(world, pos); - } - } - case 2 -> { - if (hasWorld) { - return DryFoliageColor.get(0.5, 1.0); - } else { - return BiomeColors.getAverageDryFoliageColor(world, pos); - } - } - default -> { - return -1; - } - } - }, ModBlocks.TINY_GARDEN); + // switch (tintIndex) { + // case 1 -> { + // if (hasWorld) { + // return GrassColor.getDefaultColor(); + // } else { + // return BiomeColors.getAverageGrassColor(world, pos); + // } + // } + // case 2 -> { + // if (hasWorld) { + // return DryFoliageColor.get(0.5, 1.0); + // } else { + // return BiomeColors.getAverageDryFoliageColor(world, pos); + // } + // } + // default -> { + // return -1; + // } + // } + // }, ModBlocks.TINY_GARDEN); } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/BlockLootTableProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/BlockLootTableProvider.java deleted file mode 100644 index 7ac605da..00000000 --- a/src/client/java/co/secretonline/tinyflowers/datagen/BlockLootTableProvider.java +++ /dev/null @@ -1,54 +0,0 @@ -package co.secretonline.tinyflowers.datagen; - -import java.util.concurrent.CompletableFuture; - -import co.secretonline.tinyflowers.TinyFlowers; -import co.secretonline.tinyflowers.blocks.FlowerVariant; -import co.secretonline.tinyflowers.blocks.GardenBlock; -import co.secretonline.tinyflowers.blocks.ModBlocks; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider; -import net.minecraft.advancements.criterion.StatePropertiesPredicate; -import net.minecraft.core.HolderLookup; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.Identifier; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.storage.loot.LootPool; -import net.minecraft.world.level.storage.loot.LootTable; -import net.minecraft.world.level.storage.loot.entries.LootItem; -import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition; - -public class BlockLootTableProvider extends FabricBlockLootTableProvider { - protected BlockLootTableProvider(FabricDataOutput dataOutput, - CompletableFuture registryLookup) { - super(dataOutput, registryLookup); - } - - @Override - public void generate() { - LootTable.Builder lootTableBuilder = LootTable.lootTable(); - - for (FlowerVariant variant : FlowerVariant.values()) { - if (variant.isEmpty()) { - continue; - } - - Item item = variant.asItem(); - if (BuiltInRegistries.ITEM.getKey(item).equals(Identifier.parse("air"))) { - TinyFlowers.LOGGER.error( - "Variant {} has an invalid item id: {}", - variant.getItemIdentifier(), BuiltInRegistries.ITEM.getKey(item)); - } - - for (var property : GardenBlock.FLOWER_VARIANT_PROPERTIES) { - lootTableBuilder.withPool(LootPool.lootPool() - .add(LootItem.lootTableItem(item)) - .when(LootItemBlockStatePropertyCondition.hasBlockStateProperties(ModBlocks.TINY_GARDEN) - .setProperties( - StatePropertiesPredicate.Builder.properties().hasProperty(property, variant)))); - } - } - - add(ModBlocks.TINY_GARDEN, lootTableBuilder); - } -} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/BlockModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/BlockModelProvider.java deleted file mode 100644 index 3f42c373..00000000 --- a/src/client/java/co/secretonline/tinyflowers/datagen/BlockModelProvider.java +++ /dev/null @@ -1,219 +0,0 @@ -package co.secretonline.tinyflowers.datagen; - -import java.util.function.BiConsumer; -import java.util.function.Function; - -import co.secretonline.tinyflowers.TinyFlowers; -import co.secretonline.tinyflowers.blocks.FlowerVariant; -import co.secretonline.tinyflowers.blocks.GardenBlock; -import co.secretonline.tinyflowers.blocks.ModBlocks; -import co.secretonline.tinyflowers.datagen.data.ModModels; -import co.secretonline.tinyflowers.datagen.data.ModTextureMap; -import co.secretonline.tinyflowers.items.ModItems; -import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.minecraft.client.color.item.Dye; -import net.minecraft.client.data.models.BlockModelGenerators; -import net.minecraft.client.data.models.ItemModelGenerators; -import net.minecraft.client.data.models.blockstates.MultiPartGenerator; -import net.minecraft.client.data.models.model.ModelInstance; -import net.minecraft.client.data.models.model.ModelTemplates; -import net.minecraft.client.data.models.model.TextureMapping; -import net.minecraft.client.renderer.block.model.VariantMutator; -import net.minecraft.core.Direction; -import net.minecraft.resources.Identifier; -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraft.world.level.block.state.properties.EnumProperty; - -public class BlockModelProvider extends FabricModelProvider { - private final static Direction[] DIRECTIONS = new Direction[] { - Direction.NORTH, Direction.EAST, - Direction.SOUTH, Direction.WEST, }; - - private final static ModelGroup[] MODEL_GROUPS = new ModelGroup[] { - // Single layer, tinted stem - new ModelGroup(ModModels.Quartet.GARDEN, - ModTextureMap.flowerbed(), - new FlowerVariant[] { - FlowerVariant.DANDELION, - FlowerVariant.ALLIUM, - FlowerVariant.AZURE_BLUET, - FlowerVariant.RED_TULIP, - FlowerVariant.ORANGE_TULIP, - FlowerVariant.WHITE_TULIP, - FlowerVariant.PINK_TULIP, - FlowerVariant.OXEYE_DAISY, - FlowerVariant.CORNFLOWER, - }), - // Single layer, wither rose stem - new ModelGroup(ModModels.Quartet.GARDEN_UNTINTED, - ModTextureMap.flowerbed(TinyFlowers.id("block/tiny_wither_rose_stem")), - new FlowerVariant[] { - FlowerVariant.WITHER_ROSE, - }), - // Single layer, eyeblossom stem - new ModelGroup(ModModels.Quartet.GARDEN_UNTINTED, - ModTextureMap.flowerbed(TinyFlowers.id("block/tiny_eyeblossom_stem")), - new FlowerVariant[] { - FlowerVariant.CLOSED_EYEBLOSSOM, - }), - // Single layer, cactus flower stem - new ModelGroup(ModModels.Quartet.GARDEN_LOW_UNTINTED, - ModTextureMap.flowerbed(TinyFlowers.id("block/tiny_cactus_flower_stem")), - new FlowerVariant[] { - FlowerVariant.CACTUS_FLOWER, - }), - // Single layer (tall), tinted stem - new ModelGroup(ModModels.Quartet.GARDEN_TALL, - ModTextureMap.flowerbed(TinyFlowers.id("block/tall_tiny_flower_stem")), - new FlowerVariant[] { - FlowerVariant.POPPY, - }), - // Double layer, tinted stem - new ModelGroup(ModModels.Quartet.GARDEN_DOUBLE, - ModTextureMap.flowerbedDouble(TinyFlowers.id("block/tall_tiny_flower_stem")), - new FlowerVariant[] { - FlowerVariant.BLUE_ORCHID, - FlowerVariant.LILY_OF_THE_VALLEY, - }), - // Double layer (glow on top), eyeblossom stem - new ModelGroup(ModModels.Quartet.GARDEN_DOUBLE_UNTINTED_GLOW, - ModTextureMap.flowerbedDouble(TinyFlowers.id("block/tiny_eyeblossom_stem")), - new FlowerVariant[] { - FlowerVariant.OPEN_EYEBLOSSOM, - }), - // Triple layer, torchflower stem - new ModelGroup(ModModels.Quartet.GARDEN_TRIPLE_UNTINTED, - ModTextureMap.flowerbedTriple(TinyFlowers.id("block/tiny_torchflower_stem")), - new FlowerVariant[] { - FlowerVariant.TORCHFLOWER, - }), - // Leaf litter, no stem - new ModelGroup(ModModels.Quartet.GARDEN_LEAF_LITTER, - ModTextureMap.noStem(), - new FlowerVariant[] { - FlowerVariant.LEAF_LITTER, - }), - }; - - public BlockModelProvider(FabricDataOutput generator) { - super(generator); - } - - @Override - public void generateBlockStateModels(BlockModelGenerators blockStateModelGenerator) { - MultiPartGenerator definitionCreator = MultiPartGenerator - .multiPart(ModBlocks.TINY_GARDEN); - - // Generate blockstate variants for all flower variants. - for (FlowerVariant variant : FlowerVariant.values()) { - if (variant.isEmpty()) { - continue; - } - - Identifier baseId = getVariantBaseModelId(variant); - - Identifier model1 = baseId.withPath(path -> "block/" + path + "_1"); - Identifier model2 = baseId.withPath(path -> "block/" + path + "_2"); - Identifier model3 = baseId.withPath(path -> "block/" + path + "_3"); - Identifier model4 = baseId.withPath(path -> "block/" + path + "_4"); - - registerPartInAllDirections(definitionCreator, variant, GardenBlock.FLOWER_VARIANT_1, model1); - registerPartInAllDirections(definitionCreator, variant, GardenBlock.FLOWER_VARIANT_2, model2); - registerPartInAllDirections(definitionCreator, variant, GardenBlock.FLOWER_VARIANT_3, model3); - registerPartInAllDirections(definitionCreator, variant, GardenBlock.FLOWER_VARIANT_4, model4); - } - - // Generate all block model definitions. - for (ModelGroup group : MODEL_GROUPS) { - group.upload(blockStateModelGenerator.modelOutput); - } - - blockStateModelGenerator.blockStateOutput.accept(definitionCreator); - } - - @Override - public void generateItemModels(ItemModelGenerators itemModelGenerator) { - itemModelGenerator.generateFlatItem(ModBlocks.TINY_GARDEN.asItem(), ModelTemplates.FLAT_ITEM); - itemModelGenerator.generateItemWithTintedOverlay( - ModItems.FLORISTS_SHEARS_ITEM, - "_handle", - new Dye(DyeColor.RED.getTextureDiffuseColor())); - - for (FlowerVariant variant : FlowerVariant.values()) { - if (variant.shouldCreateItem()) { - itemModelGenerator.generateFlatItem(variant.asItem(), ModelTemplates.FLAT_ITEM); - } - } - } - - private MultiPartGenerator registerPartInAllDirections( - MultiPartGenerator modelDefinitionCreator, FlowerVariant variant, - EnumProperty property, Identifier modelIdentifier) { - for (Direction direction : DIRECTIONS) { - modelDefinitionCreator = modelDefinitionCreator.with( - BlockModelGenerators.condition() - .term(property, variant) - .term(BlockStateProperties.HORIZONTAL_FACING, direction), - BlockModelGenerators.plainVariant(modelIdentifier) - .with(getRotationForDirection(direction))); - } - - return modelDefinitionCreator; - } - - private VariantMutator getRotationForDirection(Direction direction) { - switch (direction) { - case Direction.NORTH: - return BlockModelGenerators.NOP; - case Direction.EAST: - return BlockModelGenerators.Y_ROT_90; - case Direction.SOUTH: - return BlockModelGenerators.Y_ROT_180; - case Direction.WEST: - return BlockModelGenerators.Y_ROT_270; - default: - throw new IllegalArgumentException("Unknown direction for model"); - } - } - - private static Identifier getVariantBaseModelId(FlowerVariant variant) { - Identifier identifier = variant.getItemIdentifier(); - - switch (variant) { - case FlowerVariant.LEAF_LITTER: - // The base Leaf Litter models utilise a single plane which doesn't quite work - // with this mod. As such, we need to override the models for Leaf Litter - // specifically. - identifier = TinyFlowers.id("leaf_litter"); - break; - default: - } - - return identifier; - } - - private record ModelGroup(ModModels.Quartet models, - Function texturesGetter, FlowerVariant[] variants) { - - public void upload(BiConsumer modelCollector) { - for (FlowerVariant variant : this.variants) { - Identifier textureId = variant.getItemIdentifier(); - Identifier itemId = getVariantBaseModelId(variant); - - Identifier modelId1 = itemId.withPath(path -> "block/" + path + "_1"); - Identifier modelId2 = itemId.withPath(path -> "block/" + path + "_2"); - Identifier modelId3 = itemId.withPath(path -> "block/" + path + "_3"); - Identifier modelId4 = itemId.withPath(path -> "block/" + path + "_4"); - - TextureMapping textureMap = this.texturesGetter.apply(textureId); - - this.models.model1().create(modelId1, textureMap, modelCollector); - this.models.model2().create(modelId2, textureMap, modelCollector); - this.models.model3().create(modelId3, textureMap, modelCollector); - this.models.model4().create(modelId4, textureMap, modelCollector); - } - } - } -} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/BlockTagProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/BlockTagProvider.java deleted file mode 100644 index b26044a2..00000000 --- a/src/client/java/co/secretonline/tinyflowers/datagen/BlockTagProvider.java +++ /dev/null @@ -1,23 +0,0 @@ -package co.secretonline.tinyflowers.datagen; - -import java.util.concurrent.CompletableFuture; - -import co.secretonline.tinyflowers.blocks.ModBlocks; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; -import net.minecraft.core.HolderLookup; -import net.minecraft.tags.BlockTags; - -public class BlockTagProvider extends FabricTagProvider.FabricValueLookupTagProvider.BlockTagProvider { - public BlockTagProvider(FabricDataOutput output, CompletableFuture registriesFuture) { - super(output, registriesFuture); - } - - @Override - protected void addTags(HolderLookup.Provider wrapperLookup) { - - valueLookupBuilder(BlockTags.INSIDE_STEP_SOUND_BLOCKS).add(ModBlocks.TINY_GARDEN); - valueLookupBuilder(BlockTags.SWORD_EFFICIENT).add(ModBlocks.TINY_GARDEN); - valueLookupBuilder(BlockTags.FLOWERS).add(ModBlocks.TINY_GARDEN); - } -} diff --git a/src/client/java/co/secretonline/tinyflowers/mixin/TerrainParticleMixin.java b/src/client/java/co/secretonline/tinyflowers/mixin/TerrainParticleMixin.java index b71a5f84..3798d173 100644 --- a/src/client/java/co/secretonline/tinyflowers/mixin/TerrainParticleMixin.java +++ b/src/client/java/co/secretonline/tinyflowers/mixin/TerrainParticleMixin.java @@ -1,24 +1,23 @@ package co.secretonline.tinyflowers.mixin; -import java.util.List; -import net.minecraft.util.Util; -import net.minecraft.client.Minecraft; +// import java.util.List; +// import net.minecraft.util.Util; +// import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.SingleQuadParticle; import net.minecraft.client.particle.TerrainParticle; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.BlockPos; -import net.minecraft.world.item.ItemDisplayContext; -import net.minecraft.world.item.ItemStack; +// import net.minecraft.world.item.ItemDisplayContext; +// import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.state.BlockState; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import co.secretonline.tinyflowers.TinyFlowersClient; -import co.secretonline.tinyflowers.blocks.FlowerVariant; -import co.secretonline.tinyflowers.blocks.GardenBlock; +// import co.secretonline.tinyflowers.TinyFlowersClient; +// import co.secretonline.tinyflowers.blocks.FlowerVariant; @Mixin(TerrainParticle.class) abstract class TerrainParticleMixin extends SingleQuadParticle { @@ -31,33 +30,36 @@ protected TerrainParticleMixin(ClientLevel world, double x, double y, double z, private void onConstructorReturn(ClientLevel world, double x, double y, double z, double velocityX, double velocityY, double velocityZ, BlockState state, BlockPos blockPos, CallbackInfo ci) { - TextureAtlasSprite override = getOverrideSpriteForBlockState(state); - if (override != null) { - this.setSprite(override); - } + // TextureAtlasSprite override = getOverrideSpriteForBlockState(state); + // if (override != null) { + // this.setSprite(override); + // } } - private static TextureAtlasSprite getOverrideSpriteForBlockState(BlockState state) { - if (!(state.getBlock() instanceof GardenBlock)) { - return null; - } + // private static TextureAtlasSprite getOverrideSpriteForBlockState(BlockState + // state) { + // if (!(state.getBlock() instanceof GardenBlock)) { + // return null; + // } - // Select a random flower variant to render as the particle - List flowers = GardenBlock.getFlowers(state); + // // Select a random flower variant to render as the particle + // List flowers = GardenBlock.getFlowers(state); - if (flowers.isEmpty()) { - return null; - } + // if (flowers.isEmpty()) { + // return null; + // } - FlowerVariant variant = Util.getRandom(flowers, TinyFlowersClient.RANDOM); + // FlowerVariant variant = Util.getRandom(flowers, TinyFlowersClient.RANDOM); - Minecraft client = Minecraft.getInstance(); - ItemStack stack = new ItemStack(variant.asItem()); + // Minecraft client = Minecraft.getInstance(); + // ItemStack stack = new ItemStack(variant.asItem()); - TinyFlowersClient.ITEM_RENDER_STATE.clear(); - client.getItemModelResolver() - .appendItemLayers(TinyFlowersClient.ITEM_RENDER_STATE, stack, ItemDisplayContext.GROUND, client.level, null, 0); + // TinyFlowersClient.ITEM_RENDER_STATE.clear(); + // client.getItemModelResolver() + // .appendItemLayers(TinyFlowersClient.ITEM_RENDER_STATE, stack, + // ItemDisplayContext.GROUND, client.level, null, 0); - return TinyFlowersClient.ITEM_RENDER_STATE.pickParticleIcon(TinyFlowersClient.RANDOM); - } + // return + // TinyFlowersClient.ITEM_RENDER_STATE.pickParticleIcon(TinyFlowersClient.RANDOM); + // } } diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/GardenBlock.java b/src/main/java/co/secretonline/tinyflowers/blocks/GardenBlock.java deleted file mode 100644 index 9a8ee61d..00000000 --- a/src/main/java/co/secretonline/tinyflowers/blocks/GardenBlock.java +++ /dev/null @@ -1,417 +0,0 @@ -package co.secretonline.tinyflowers.blocks; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.BiFunction; -import net.minecraft.util.Util; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.component.DataComponents; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -import net.minecraft.util.TriState; -import net.minecraft.world.attribute.EnvironmentAttributes; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.component.BlockItemStateProperties; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.BonemealableBlock; -import net.minecraft.world.level.block.Mirror; -import net.minecraft.world.level.block.Rotation; -import net.minecraft.world.level.block.SegmentableBlock; -import net.minecraft.world.level.block.VegetationBlock; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.StateDefinition.Builder; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraft.world.level.block.state.properties.EnumProperty; -import net.minecraft.world.level.block.state.properties.IntegerProperty; -import net.minecraft.world.level.gameevent.GameEvent; -import net.minecraft.world.level.gameevent.GameEvent.Context; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.Shapes; -import net.minecraft.world.phys.shapes.VoxelShape; -import com.mojang.serialization.MapCodec; - -import co.secretonline.tinyflowers.TinyFlowers; -import co.secretonline.tinyflowers.components.ModComponents; -import co.secretonline.tinyflowers.components.TinyFlowersComponent; -import co.secretonline.tinyflowers.helper.EyeblossomHelper; - -public class GardenBlock extends VegetationBlock implements BonemealableBlock { - public static final MapCodec CODEC = simpleCodec(GardenBlock::new); - - public static final EnumProperty FACING = BlockStateProperties.HORIZONTAL_FACING; - public static final EnumProperty FLOWER_VARIANT_1 = ModBlockProperties.FLOWER_VARIANT_1; - public static final EnumProperty FLOWER_VARIANT_2 = ModBlockProperties.FLOWER_VARIANT_2; - public static final EnumProperty FLOWER_VARIANT_3 = ModBlockProperties.FLOWER_VARIANT_3; - public static final EnumProperty FLOWER_VARIANT_4 = ModBlockProperties.FLOWER_VARIANT_4; - - @SuppressWarnings("unchecked") - public static final EnumProperty[] FLOWER_VARIANT_PROPERTIES = new EnumProperty[] { - FLOWER_VARIANT_1, FLOWER_VARIANT_2, FLOWER_VARIANT_3, FLOWER_VARIANT_4 }; - - private static final BiFunction FACING_AND_AMOUNT_TO_SHAPE = Util.memoize( - (BiFunction) ((facing, bitmap) -> { - if (bitmap == 0) { - return Block.box(0.0, 0.0, 0.0, 16.0, 3.0, 16.0); - } - - VoxelShape[] voxelShapes = new VoxelShape[] { - Block.box(8.0, 0.0, 8.0, 16.0, 3.0, 16.0), - Block.box(8.0, 0.0, 0.0, 16.0, 3.0, 8.0), - Block.box(0.0, 0.0, 0.0, 8.0, 3.0, 8.0), - Block.box(0.0, 0.0, 8.0, 8.0, 3.0, 16.0) - }; - VoxelShape voxelShape = Shapes.empty(); - - for (int i = 0; i < FLOWER_VARIANT_PROPERTIES.length; i++) { - if ((bitmap & (1 << i)) > 0) { - int j = Math.floorMod(i - facing.get2DDataValue(), 4); - voxelShape = Shapes.or(voxelShape, voxelShapes[j]); - } - } - - return voxelShape.singleEncompassing(); - })); - - public GardenBlock(BlockBehaviour.Properties settings) { - super(settings); - this.registerDefaultState(this.stateDefinition.any() - .setValue(FACING, Direction.NORTH) - .setValue(FLOWER_VARIANT_1, FlowerVariant.EMPTY) - .setValue(FLOWER_VARIANT_2, FlowerVariant.EMPTY) - .setValue(FLOWER_VARIANT_3, FlowerVariant.EMPTY) - .setValue(FLOWER_VARIANT_4, FlowerVariant.EMPTY)); - } - - @Override - public MapCodec codec() { - return CODEC; - } - - @Override - public BlockState rotate(BlockState state, Rotation rotation) { - return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); - } - - @Override - public BlockState mirror(BlockState state, Mirror mirror) { - return state.rotate(mirror.getRotation(state.getValue(FACING))); - } - - @Override - public boolean canBeReplaced(BlockState state, BlockPlaceContext context) { - return !context.isSecondaryUseActive() && context.getItemInHand().is(ModItemTags.TINY_FLOWERS) - && hasFreeSpace(state) - ? true - : super.canBeReplaced(state, context); - } - - @Override - public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { - return (VoxelShape) FACING_AND_AMOUNT_TO_SHAPE.apply((Direction) state.getValue(FACING), getFlowerBitmap(state)); - } - - @Override - public BlockState getStateForPlacement(BlockPlaceContext ctx) { - BlockState blockState = ctx.getLevel().getBlockState(ctx.getClickedPos()); - - ItemStack stack = ctx.getItemInHand(); - Item item = stack.getItem(); - FlowerVariant flowerVariant = FlowerVariant.fromItem(item); - if (flowerVariant.isEmpty()) { - // The item being placed down is not a flower variant in the enum, but is a - // GardenBlock block item. - // Currently, the only known case for this is a pre-formed garden item. - if (!blockState.is(this) && Block.byItem(item) == this) { - // The item is a GardenBlock block item, but not any of the variants. - // At this point we assume that the item is a pre-formed garden item. - - // Newer items (since v1.2.0 of this mod) have a TinyFlowersComponent that - // stores which flowers were picked. Older items (before v1.2.0) set this - // information on the BlockStateComponent instead. We need to check - // both of these in case the item was creted before the new component was - // added to the mod. - if (stack.has(ModComponents.TINY_FLOWERS_COMPONENT_TYPE)) { - // The item has a TinyFlowersComponent, so we can use that to get the - // flower variants. - TinyFlowersComponent tinyFlowersComponent = stack.get( - ModComponents.TINY_FLOWERS_COMPONENT_TYPE); - - return this.defaultBlockState() - .setValue(FACING, ctx.getHorizontalDirection().getOpposite()) - .setValue(FLOWER_VARIANT_1, tinyFlowersComponent.flower1()) - .setValue(FLOWER_VARIANT_2, tinyFlowersComponent.flower2()) - .setValue(FLOWER_VARIANT_3, tinyFlowersComponent.flower3()) - .setValue(FLOWER_VARIANT_4, tinyFlowersComponent.flower4()); - } else if (stack.has(DataComponents.BLOCK_STATE)) { - BlockItemStateProperties blockStateComponent = stack.get( - DataComponents.BLOCK_STATE); - - BlockState newBlockState = this.defaultBlockState() - .setValue(FACING, ctx.getHorizontalDirection().getOpposite()); - - for (EnumProperty property : FLOWER_VARIANT_PROPERTIES) { - FlowerVariant variant = blockStateComponent.get(property); - variant = variant == null ? FlowerVariant.EMPTY : variant; - - newBlockState = newBlockState.setValue(property, variant); - } - - return newBlockState; - } else { - // Neither of the components are present, so do nothing. - return blockState; - } - } - - // The item is not a flower variant in the enum, and is not a GardenBlock block - // item, so there must be something weird going on. For now I've decided to do - // nothing, and just keep the current block state. It might consume an item, but - // that's better than a crash. - return blockState; - } - - if (blockState.is(this)) { - // Placing a tiny flower on a garden block. - return addFlowerToBlockState(blockState, flowerVariant); - } else if (blockState.getBlock() instanceof SegmentableBlock) { - // Placing a tiny flower on a segmented block. - // We need to convert the segmented block to a garden block - // and then add the flower variant to it. - BlockState baseState = getStateFromSegmented(blockState); - - // Add the new type in now that we've converted the block. - return addFlowerToBlockState(baseState, flowerVariant); - } else { - // Item is a valid tiny flower block item, but there's no block yet. - // Place a new garden with the flower variant. - return this.defaultBlockState() - .setValue(FACING, ctx.getHorizontalDirection().getOpposite()) - .setValue(FLOWER_VARIANT_1, flowerVariant); - } - } - - @Override - protected void createBlockStateDefinition(Builder builder) { - builder.add(FACING, FLOWER_VARIANT_1, FLOWER_VARIANT_2, FLOWER_VARIANT_3, FLOWER_VARIANT_4); - } - - @Override - public boolean isValidBonemealTarget(LevelReader world, BlockPos pos, BlockState state) { - return true; - } - - @Override - public boolean isBonemealSuccess(Level world, RandomSource random, BlockPos pos, BlockState state) { - return true; - } - - @Override - public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) { - List flowers = getFlowers(state); - if (flowers.isEmpty()) { - TinyFlowers.LOGGER.warn("Tried to grow empty space in garden block"); - return; - } - - FlowerVariant flowerVariant = Util.getRandom(flowers, random); - - if (hasFreeSpace(state)) { - // Add flower to gerden - world.setBlock( - pos, - addFlowerToBlockState(state, flowerVariant), - Block.UPDATE_CLIENTS); - } else { - // Drop an item based on the variants in the garden. At this stage we can assume - // that the garden is full. - popResource(world, pos, new ItemStack(flowerVariant)); - } - } - - @Override - protected boolean isRandomlyTicking(BlockState state) { - // Block should receive ticks if there is an eyeblossom present. - for (EnumProperty property : FLOWER_VARIANT_PROPERTIES) { - FlowerVariant variant = state.getValue(property); - if (variant == FlowerVariant.OPEN_EYEBLOSSOM || variant == FlowerVariant.CLOSED_EYEBLOSSOM) { - return true; - } - } - - return super.isRandomlyTicking(state); - } - - @Override - protected void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { - if (doEyeblossomTick(state, world, pos, random)) { - EyeblossomHelper.playSound(world, pos, world.isBrightOutside(), true); - } - - super.randomTick(state, world, pos, random); - } - - @Override - protected void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { - if (doEyeblossomTick(state, world, pos, random)) { - EyeblossomHelper.playSound(world, pos, world.isBrightOutside(), false); - } - - super.tick(state, world, pos, random); - } - - private static boolean doEyeblossomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { - TriState expectedState = world.environmentAttributes().getValue(EnvironmentAttributes.EYEBLOSSOM_OPEN, pos); - // - if (expectedState == TriState.DEFAULT) { - return false; - } - - boolean isDay = expectedState.toBoolean(false); - FlowerVariant correctVariant = EyeblossomHelper.getFlowerVariant(isDay); - FlowerVariant incorrectVariant = EyeblossomHelper.getFlowerVariant(!isDay); - - BlockState currentState = state; - boolean didChange = false; - for (EnumProperty property : GardenBlock.FLOWER_VARIANT_PROPERTIES) { - FlowerVariant variant = currentState.getValue(property); - if (variant == incorrectVariant) { - currentState = currentState.setValue(property, correctVariant); - didChange = true; - } - } - - if (didChange) { - world.setBlock(pos, currentState, Block.UPDATE_CLIENTS); - world.gameEvent(GameEvent.BLOCK_CHANGE, pos, Context.of(state)); - - EyeblossomHelper.getState(isDay).spawnTransformParticle(world, pos, random); - - EyeblossomHelper.notifyNearbyEyeblossoms(state, world, pos, random); - } - - return didChange; - } - - @Override - protected ItemStack getCloneItemStack(LevelReader world, BlockPos pos, BlockState state, boolean includeData) { - if (includeData) { - TinyFlowersComponent tinyFlowersComponent = TinyFlowersComponent.of( - state.getValue(FLOWER_VARIANT_1), - state.getValue(FLOWER_VARIANT_2), - state.getValue(FLOWER_VARIANT_3), - state.getValue(FLOWER_VARIANT_4)); - - ItemStack stack = new ItemStack(this.asItem()); - stack.set(ModComponents.TINY_FLOWERS_COMPONENT_TYPE, tinyFlowersComponent); - - return stack; - } - - for (EnumProperty property : FLOWER_VARIANT_PROPERTIES) { - FlowerVariant variant = state.getValue(property); - if (!variant.isEmpty()) { - return new ItemStack(variant); - } - } - - return ItemStack.EMPTY; - } - - public static boolean hasFreeSpace(BlockState state) { - return getNumFlowers(state) < FLOWER_VARIANT_PROPERTIES.length; - } - - public static boolean isEmpty(BlockState state) { - return getNumFlowers(state) == 0; - } - - private static int getNumFlowers(BlockState state) { - int numFlowers = 0; - for (EnumProperty property : FLOWER_VARIANT_PROPERTIES) { - if (!state.getValue(property).isEmpty()) { - numFlowers++; - } - } - - return numFlowers; - } - - public static List getFlowers(BlockState state) { - List flowers = new ArrayList<>(GardenBlock.FLOWER_VARIANT_PROPERTIES.length); - - for (EnumProperty property : GardenBlock.FLOWER_VARIANT_PROPERTIES) { - FlowerVariant variant = state.getValue(property); - - if (!variant.isEmpty()) { - flowers.add(variant); - } - } - - return flowers; - } - - /** - * Since there can be "holes" in the variants, this creates a tiny bitmap of - * which positions has flowers. The reason this is useful is for the memoisation - * during hitbox creation, as keeping the number of cache entries down for that - * is important. - */ - private static int getFlowerBitmap(BlockState state) { - int bitmap = 0; - for (int i = 0; i < FLOWER_VARIANT_PROPERTIES.length; i++) { - EnumProperty property = FLOWER_VARIANT_PROPERTIES[i]; - if (state.getValue(property).isEmpty()) { - continue; - } - - bitmap = bitmap | (1 << i); - } - - return bitmap; - } - - public static BlockState addFlowerToBlockState(BlockState state, FlowerVariant flowerVariant) { - for (EnumProperty property : FLOWER_VARIANT_PROPERTIES) { - if (state.getValue(property).isEmpty()) { - return state.setValue(property, flowerVariant); - } - } - - return state; - } - - public BlockState getStateFromSegmented(BlockState blockState) { - // Convert Segmented (e.g. Pink petals, Leaf litter) to GardenBlock - Block block = blockState.getBlock(); - FlowerVariant existingVariant = FlowerVariant.fromItem(block); - if (existingVariant.isEmpty()) { - // Invalid state - throw new IllegalStateException("Segmented block has no valid flower variant"); - } - - if (block instanceof SegmentableBlock segmentedBlock) { - // This exists because FlowerbedBlocks had their own property before Segmented - // existed. - IntegerProperty amountProperty = segmentedBlock.getSegmentAmountProperty(); - int prevNumFlowers = blockState.getValue(amountProperty); - - BlockState baseState = this.defaultBlockState() - .setValue(FACING, blockState.getValue(BlockStateProperties.HORIZONTAL_FACING)) - .setValue(FLOWER_VARIANT_1, prevNumFlowers >= 1 ? existingVariant : FlowerVariant.EMPTY) - .setValue(FLOWER_VARIANT_2, prevNumFlowers >= 2 ? existingVariant : FlowerVariant.EMPTY) - .setValue(FLOWER_VARIANT_3, prevNumFlowers >= 3 ? existingVariant : FlowerVariant.EMPTY) - .setValue(FLOWER_VARIANT_4, prevNumFlowers >= 4 ? existingVariant : FlowerVariant.EMPTY); - return baseState; - - } else { - throw new IllegalStateException("Block is not a segmented block"); - } - } -} diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java index 97d3b3f7..ec0213f4 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java @@ -1,37 +1,28 @@ package co.secretonline.tinyflowers.blocks; -import co.secretonline.tinyflowers.TinyFlowers; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceKey; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.SoundType; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.material.MapColor; -import net.minecraft.world.level.material.PushReaction; - public class ModBlocks { - public static final ResourceKey TINY_GARDEN_KEY = ResourceKey.create( - Registries.BLOCK, - TinyFlowers.id("tiny_garden")); + // public static final ResourceKey TINY_GARDEN_KEY = ResourceKey.create( + // Registries.BLOCK, + // TinyFlowers.id("tiny_garden")); - public static final Block TINY_GARDEN = registerBlockOnly( - new GardenBlock( - BlockBehaviour.Properties.of() - .setId(TINY_GARDEN_KEY) - .mapColor(MapColor.PLANT) - .noCollision() - .sound(SoundType.PINK_PETALS) - .pushReaction(PushReaction.DESTROY)), - TINY_GARDEN_KEY); + // public static final Block TINY_GARDEN = registerBlockOnly( + // new GardenBlock( + // BlockBehaviour.Properties.of() + // .setId(TINY_GARDEN_KEY) + // .mapColor(MapColor.PLANT) + // .noCollision() + // .sound(SoundType.PINK_PETALS) + // .pushReaction(PushReaction.DESTROY)), + // TINY_GARDEN_KEY); - public static Block registerBlockOnly(Block block, ResourceKey blockKey) { - return Registry.register(BuiltInRegistries.BLOCK, blockKey, block); - } + // public static Block registerBlockOnly(Block block, ResourceKey + // blockKey) { + // return Registry.register(BuiltInRegistries.BLOCK, blockKey, block); + // } public static void initialize() { - Registry.register(BuiltInRegistries.BLOCK_TYPE, TinyFlowers.id("tiny_garden"), GardenBlock.CODEC); + // Registry.register(BuiltInRegistries.BLOCK_TYPE, + // TinyFlowers.id("tiny_garden"), GardenBlock.CODEC); } } diff --git a/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java b/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java index e0d1f255..26e0f8e1 100644 --- a/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java +++ b/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java @@ -11,11 +11,6 @@ public class ModComponents { TinyFlowers.id("tiny_flower"), DataComponentType.builder().persistent(TinyFlowerComponent.CODEC).build()); - public static final DataComponentType TINY_FLOWERS_COMPONENT_TYPE = Registry.register( - BuiltInRegistries.DATA_COMPONENT_TYPE, - TinyFlowers.id("tiny_flowers"), - DataComponentType.builder().persistent(TinyFlowersComponent.CODEC).build()); - public static void initialize() { } } diff --git a/src/main/java/co/secretonline/tinyflowers/components/TinyFlowersComponent.java b/src/main/java/co/secretonline/tinyflowers/components/TinyFlowersComponent.java deleted file mode 100644 index 9225c4a2..00000000 --- a/src/main/java/co/secretonline/tinyflowers/components/TinyFlowersComponent.java +++ /dev/null @@ -1,90 +0,0 @@ -package co.secretonline.tinyflowers.components; - -import java.util.function.Consumer; -import net.minecraft.ChatFormatting; -import net.minecraft.core.component.DataComponentGetter; -import net.minecraft.core.component.DataComponents; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.world.item.Item.TooltipContext; -import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.item.component.BlockItemStateProperties; -import net.minecraft.world.item.component.TooltipProvider; -import net.minecraft.world.level.block.state.properties.EnumProperty; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; - -import co.secretonline.tinyflowers.blocks.FlowerVariant; -import co.secretonline.tinyflowers.blocks.GardenBlock; - -/** - * Since Minecraft 1.21.5, the tooltip system has been changed to use - * components, so in order to show the flower variants in a tooltip we need a - * component. - */ -public record TinyFlowersComponent(FlowerVariant flower1, FlowerVariant flower2, FlowerVariant flower3, - FlowerVariant flower4) implements TooltipProvider { - - public static final TinyFlowersComponent EMPTY = of( - FlowerVariant.EMPTY, FlowerVariant.EMPTY, - FlowerVariant.EMPTY, FlowerVariant.EMPTY); - - public static final TinyFlowersComponent of(FlowerVariant flower1, FlowerVariant flower2, FlowerVariant flower3, - FlowerVariant flower4) { - return new TinyFlowersComponent( - flower1 == null ? FlowerVariant.EMPTY : flower1, - flower2 == null ? FlowerVariant.EMPTY : flower2, - flower3 == null ? FlowerVariant.EMPTY : flower3, - flower4 == null ? FlowerVariant.EMPTY : flower4); - } - - public static final Codec CODEC = RecordCodecBuilder.create(builder -> { - return builder.group( - FlowerVariant.CODEC.fieldOf("flower_variant_1").forGetter(TinyFlowersComponent::flower1), - FlowerVariant.CODEC.fieldOf("flower_variant_2").forGetter(TinyFlowersComponent::flower2), - FlowerVariant.CODEC.fieldOf("flower_variant_3").forGetter(TinyFlowersComponent::flower3), - FlowerVariant.CODEC.fieldOf("flower_variant_4").forGetter(TinyFlowersComponent::flower4)) - .apply(builder, TinyFlowersComponent::new); - }); - - public boolean isEmpty() { - return flower1.isEmpty() && flower2.isEmpty() && flower3.isEmpty() && flower4.isEmpty(); - } - - @Override - public void addToTooltip(TooltipContext context, Consumer textConsumer, - TooltipFlag type, DataComponentGetter components) { - if (this.isEmpty()) { - // Since it's possible that garden items were created before this component was - // added to the mod, we also need to check for variants in the block state. - BlockItemStateProperties itemBlockState = components.get(DataComponents.BLOCK_STATE); - if (itemBlockState != null) { - for (EnumProperty property : GardenBlock.FLOWER_VARIANT_PROPERTIES) { - FlowerVariant variant = itemBlockState.get(property); - variant = variant == null ? FlowerVariant.EMPTY : variant; - - MutableComponent text = Component.translatable(variant.getTranslationKey()); - if (variant.isEmpty()) { - text.withStyle(ChatFormatting.GRAY); - } - - textConsumer.accept(text); - } - } - - return; - } - - FlowerVariant[] flowers = { flower1, flower2, flower3, flower4 }; - for (int i = 0; i < flowers.length; i++) { - FlowerVariant variant = flowers[i]; - - MutableComponent text = Component.translatable(variant.getTranslationKey()); - if (variant.isEmpty()) { - text.withStyle(ChatFormatting.GRAY); - } - - textConsumer.accept(text); - } - } -} diff --git a/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java b/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java index a21d8c05..73ddefb4 100644 --- a/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java +++ b/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java @@ -1,8 +1,8 @@ package co.secretonline.tinyflowers.helper; import co.secretonline.tinyflowers.blocks.FlowerVariant; -import co.secretonline.tinyflowers.blocks.GardenBlock; -import co.secretonline.tinyflowers.blocks.ModBlocks; +// import co.secretonline.tinyflowers.blocks.GardenBlock; +// import co.secretonline.tinyflowers.blocks.ModBlocks; import co.secretonline.tinyflowers.mixin.EyeblossomStateAccessor; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.EyeblossomBlock; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.EnumProperty; +// import net.minecraft.world.level.block.state.properties.EnumProperty; public class EyeblossomHelper { public static FlowerVariant getFlowerVariant(boolean isDay) { @@ -56,17 +56,18 @@ public static void notifyNearbyEyeblossoms(BlockState state, ServerLevel world, return; } - // Gardens - if (nearbyBlockState.is(ModBlocks.TINY_GARDEN)) { - // Tiny Gardens should also recieve updates if they have eyeblossoms. - for (EnumProperty property : GardenBlock.FLOWER_VARIANT_PROPERTIES) { - FlowerVariant variant = nearbyBlockState.getValue(property); - if (variant == incorrectFlowerVariant) { - scheduleBlockTick(world, pos, otherPos, ModBlocks.TINY_GARDEN, random); - return; - } - } - } + // // Gardens + // if (nearbyBlockState.is(ModBlocks.TINY_GARDEN)) { + // // Tiny Gardens should also recieve updates if they have eyeblossoms. + // for (EnumProperty property : + // GardenBlock.FLOWER_VARIANT_PROPERTIES) { + // FlowerVariant variant = nearbyBlockState.getValue(property); + // if (variant == incorrectFlowerVariant) { + // scheduleBlockTick(world, pos, otherPos, ModBlocks.TINY_GARDEN, random); + // return; + // } + // } + // } }); } diff --git a/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java b/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java index 7e6df0db..49ea5f5a 100644 --- a/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java +++ b/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java @@ -2,10 +2,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import co.secretonline.tinyflowers.TinyFlowers; +// import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.blocks.FlowerVariant; -import co.secretonline.tinyflowers.blocks.GardenBlock; -import co.secretonline.tinyflowers.blocks.ModBlocks; +// import co.secretonline.tinyflowers.blocks.GardenBlock; +// import co.secretonline.tinyflowers.blocks.ModBlocks; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; @@ -61,45 +61,52 @@ public static void getPlacementState(BlockPlaceContext context, Block blockBeing return; } - // If the current block is not currently a garden but is able to be converted to - // a FlowerVariant, then we need to convert the current blockstate to a - // GardenBlock to before continuing. - if (!(currentBlock instanceof GardenBlock)) { - FlowerVariant currentBlockFlowerVariant = FlowerVariant.fromItem(currentBlock.asItem()); - if (!currentBlockFlowerVariant.isEmpty()) { - try { - blockState = ((GardenBlock) ModBlocks.TINY_GARDEN).getStateFromSegmented(blockState); - currentBlock = blockState.getBlock(); - } catch (IllegalStateException e) { - // This is expected to occur only if there are new Segmented blocks that don't - // have tiny flowers. If the base game ever ends up doing this, then it's - // probably woth handling this better. For now just spitting out a warning isn't - // the worst thing. - TinyFlowers.LOGGER.warn("Failed to convert blockstate to garden block. Ignoring", e); - } - } - } + // // If the current block is not currently a garden but is able to be converted + // to + // // a FlowerVariant, then we need to convert the current blockstate to a + // // GardenBlock to before continuing. + // if (!(currentBlock instanceof GardenBlock)) { + // FlowerVariant currentBlockFlowerVariant = + // FlowerVariant.fromItem(currentBlock.asItem()); + // if (!currentBlockFlowerVariant.isEmpty()) { + // try { + // blockState = ((GardenBlock) + // ModBlocks.TINY_GARDEN).getStateFromSegmented(blockState); + // currentBlock = blockState.getBlock(); + // } catch (IllegalStateException e) { + // // This is expected to occur only if there are new Segmented blocks that + // don't + // // have tiny flowers. If the base game ever ends up doing this, then it's + // // probably woth handling this better. For now just spitting out a warning + // isn't + // // the worst thing. + // TinyFlowers.LOGGER.warn("Failed to convert blockstate to garden block. + // Ignoring", e); + // } + // } + // } - if (currentBlock instanceof GardenBlock) { - if (!GardenBlock.hasFreeSpace(blockState)) { - // Can't add flower, so don't replace blockstate. - // This case shouldn't ever be hit, as GardenBlock should have prevented - // replacement. - info.setReturnValue(blockState); - return; - } + // if (currentBlock instanceof GardenBlock) { + // if (!GardenBlock.hasFreeSpace(blockState)) { + // // Can't add flower, so don't replace blockstate. + // // This case shouldn't ever be hit, as GardenBlock should have prevented + // // replacement. + // info.setReturnValue(blockState); + // return; + // } - // There's space in the garden, so add a flower. - FlowerVariant flowerVariant = FlowerVariant.fromItem(blockBeingUsed); - if (flowerVariant.isEmpty()) { - // Is this the correct thing to do? - // Do we need to do anything to prevent the item from being consumed? - info.setReturnValue(blockState); - return; - } + // // There's space in the garden, so add a flower. + // FlowerVariant flowerVariant = FlowerVariant.fromItem(blockBeingUsed); + // if (flowerVariant.isEmpty()) { + // // Is this the correct thing to do? + // // Do we need to do anything to prevent the item from being consumed? + // info.setReturnValue(blockState); + // return; + // } - BlockState newState = GardenBlock.addFlowerToBlockState(blockState, flowerVariant); - info.setReturnValue(newState); - } + // BlockState newState = GardenBlock.addFlowerToBlockState(blockState, + // flowerVariant); + // info.setReturnValue(newState); + // } } } diff --git a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java index a8e8b49c..af086829 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java @@ -1,32 +1,12 @@ package co.secretonline.tinyflowers.items; -import java.util.Arrays; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ShearsItem; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.SegmentableBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.EnumProperty; -import net.minecraft.world.level.gameevent.GameEvent; -import net.minecraft.world.level.gameevent.GameEvent.Context; -import net.minecraft.world.phys.Vec3; -import co.secretonline.tinyflowers.TinyFlowers; -import co.secretonline.tinyflowers.blocks.FlowerVariant; -import co.secretonline.tinyflowers.blocks.GardenBlock; -import co.secretonline.tinyflowers.blocks.ModBlocks; public class FloristsShearsItem extends ShearsItem { - private final static Direction[] DIRECTIONS = new Direction[] { - Direction.NORTH, Direction.EAST, - Direction.SOUTH, Direction.WEST, }; + // private final static Direction[] DIRECTIONS = new Direction[] { + // Direction.NORTH, Direction.EAST, + // Direction.SOUTH, Direction.WEST, }; public FloristsShearsItem(Properties settings) { super(settings); @@ -43,88 +23,101 @@ public ItemStack getRecipeRemainder(ItemStack stack) { return ItemStack.EMPTY; } - @Override - public InteractionResult useOn(UseOnContext ctx) { - Level world = ctx.getLevel(); - BlockPos pos = ctx.getClickedPos(); - BlockState blockState = world.getBlockState(pos); - - if (blockState.getBlock() instanceof SegmentableBlock) { - // Try convert segmented block to gardens so that shears can remove flowers from - // them. - try { - blockState = ((GardenBlock) ModBlocks.TINY_GARDEN).getStateFromSegmented(blockState); - } catch (IllegalStateException ex) { - // Segmented could not be converted to garden. - TinyFlowers.LOGGER.warn("Could not convert segmented block to garden. Ignoring action."); - - return InteractionResult.TRY_WITH_EMPTY_HAND; - } - } - - if (blockState.is(ModBlocks.TINY_GARDEN)) { - // Remove flower at certain part of garden. - Vec3 positionInBlock = ctx.getClickLocation().subtract(Vec3.atLowerCornerOf(pos)); - boolean isEast = positionInBlock.x >= 0.5; - boolean isSouth = positionInBlock.z >= 0.5; - - // Convert block quadrant into the correct property. - // Writing this was a little bit of trial and a lot of error. - int index = isSouth ? (isEast ? 2 : 3) : (isEast ? 1 : 0); - index = Arrays.asList(DIRECTIONS).indexOf(blockState.getValue(GardenBlock.FACING)) - index; - index = (index + 4) % 4; - EnumProperty property = GardenBlock.FLOWER_VARIANT_PROPERTIES[index]; - - FlowerVariant variant = blockState.getValue(property); - if (variant.isEmpty()) { - return InteractionResult.TRY_WITH_EMPTY_HAND; - } - - Block.popResource(world, pos, new ItemStack(variant)); - - // TODO: Figure out if there's a scenario where the player is null - if (ctx.getPlayer() != null) { - Player player = ctx.getPlayer(); - ctx.getItemInHand().hurtAndBreak(1, player, ctx.getHand()); - - world.playSound(player, pos, SoundEvents.GROWING_PLANT_CROP, SoundSource.BLOCKS, 1.0F, 1.0F); - } - - BlockState newBlockState = blockState.setValue(property, FlowerVariant.EMPTY); - if (GardenBlock.isEmpty(newBlockState)) { - world.removeBlock(pos, false); - } else { - world.setBlockAndUpdate(pos, newBlockState); - } - - world.gameEvent(GameEvent.BLOCK_CHANGE, pos, Context.of(ctx.getPlayer(), newBlockState)); - - return InteractionResult.SUCCESS; - } - - Block block = blockState.getBlock(); - FlowerVariant variant = FlowerVariant.fromOriginalBlock(block); - if (!variant.isEmpty()) { - BlockState newBlockState = ((GardenBlock) ModBlocks.TINY_GARDEN).defaultBlockState() - .setValue(GardenBlock.FACING, ctx.getHorizontalDirection().getOpposite()) - .setValue(GardenBlock.FLOWER_VARIANT_1, variant) - .setValue(GardenBlock.FLOWER_VARIANT_2, variant) - .setValue(GardenBlock.FLOWER_VARIANT_3, variant) - .setValue(GardenBlock.FLOWER_VARIANT_4, variant); - - if (ctx.getPlayer() != null) { - Player player = ctx.getPlayer(); - ctx.getItemInHand().hurtAndBreak(1, player, ctx.getHand()); - - world.playSound(player, pos, SoundEvents.GROWING_PLANT_CROP, SoundSource.BLOCKS, 1.0F, 1.0F); - } - - world.setBlockAndUpdate(pos, newBlockState); - world.gameEvent(GameEvent.BLOCK_CHANGE, pos, Context.of(ctx.getPlayer(), newBlockState)); - - return InteractionResult.SUCCESS; - } - - return super.useOn(ctx); - } + // @Override + // public InteractionResult useOn(UseOnContext ctx) { + // Level world = ctx.getLevel(); + // BlockPos pos = ctx.getClickedPos(); + // BlockState blockState = world.getBlockState(pos); + + // if (blockState.getBlock() instanceof SegmentableBlock) { + // // Try convert segmented block to gardens so that shears can remove flowers + // from + // // them. + // try { + // blockState = ((GardenBlock) + // ModBlocks.TINY_GARDEN).getStateFromSegmented(blockState); + // } catch (IllegalStateException ex) { + // // Segmented could not be converted to garden. + // TinyFlowers.LOGGER.warn("Could not convert segmented block to garden. + // Ignoring action."); + + // return InteractionResult.TRY_WITH_EMPTY_HAND; + // } + // } + + // if (blockState.is(ModBlocks.TINY_GARDEN)) { + // // Remove flower at certain part of garden. + // Vec3 positionInBlock = + // ctx.getClickLocation().subtract(Vec3.atLowerCornerOf(pos)); + // boolean isEast = positionInBlock.x >= 0.5; + // boolean isSouth = positionInBlock.z >= 0.5; + + // // Convert block quadrant into the correct property. + // // Writing this was a little bit of trial and a lot of error. + // int index = isSouth ? (isEast ? 2 : 3) : (isEast ? 1 : 0); + // index = + // Arrays.asList(DIRECTIONS).indexOf(blockState.getValue(GardenBlock.FACING)) - + // index; + // index = (index + 4) % 4; + // EnumProperty property = + // GardenBlock.FLOWER_VARIANT_PROPERTIES[index]; + + // FlowerVariant variant = blockState.getValue(property); + // if (variant.isEmpty()) { + // return InteractionResult.TRY_WITH_EMPTY_HAND; + // } + + // Block.popResource(world, pos, new ItemStack(variant)); + + // // TODO: Figure out if there's a scenario where the player is null + // if (ctx.getPlayer() != null) { + // Player player = ctx.getPlayer(); + // ctx.getItemInHand().hurtAndBreak(1, player, ctx.getHand()); + + // world.playSound(player, pos, SoundEvents.GROWING_PLANT_CROP, + // SoundSource.BLOCKS, 1.0F, 1.0F); + // } + + // BlockState newBlockState = blockState.setValue(property, + // FlowerVariant.EMPTY); + // if (GardenBlock.isEmpty(newBlockState)) { + // world.removeBlock(pos, false); + // } else { + // world.setBlockAndUpdate(pos, newBlockState); + // } + + // world.gameEvent(GameEvent.BLOCK_CHANGE, pos, Context.of(ctx.getPlayer(), + // newBlockState)); + + // return InteractionResult.SUCCESS; + // } + + // Block block = blockState.getBlock(); + // FlowerVariant variant = FlowerVariant.fromOriginalBlock(block); + // if (!variant.isEmpty()) { + // BlockState newBlockState = ((GardenBlock) + // ModBlocks.TINY_GARDEN).defaultBlockState() + // .setValue(GardenBlock.FACING, ctx.getHorizontalDirection().getOpposite()) + // .setValue(GardenBlock.FLOWER_VARIANT_1, variant) + // .setValue(GardenBlock.FLOWER_VARIANT_2, variant) + // .setValue(GardenBlock.FLOWER_VARIANT_3, variant) + // .setValue(GardenBlock.FLOWER_VARIANT_4, variant); + + // if (ctx.getPlayer() != null) { + // Player player = ctx.getPlayer(); + // ctx.getItemInHand().hurtAndBreak(1, player, ctx.getHand()); + + // world.playSound(player, pos, SoundEvents.GROWING_PLANT_CROP, + // SoundSource.BLOCKS, 1.0F, 1.0F); + // } + + // world.setBlockAndUpdate(pos, newBlockState); + // world.gameEvent(GameEvent.BLOCK_CHANGE, pos, Context.of(ctx.getPlayer(), + // newBlockState)); + + // return InteractionResult.SUCCESS; + // } + + // return super.useOn(ctx); + // } } diff --git a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java index 6e74bc41..574dc12d 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java @@ -1,16 +1,18 @@ package co.secretonline.tinyflowers.items; -import co.secretonline.tinyflowers.blocks.ModBlocks; +// import co.secretonline.tinyflowers.blocks.ModBlocks;S import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import net.minecraft.network.chat.Component; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Blocks; public class TinyFlowerItem extends BlockItem { public TinyFlowerItem(Item.Properties properties) { - super(ModBlocks.TINY_GARDEN, properties); + // super(ModBlocks.TINY_GARDEN, properties); + super(Blocks.DIRT, properties); } @Override diff --git a/src/main/java/co/secretonline/tinyflowers/mixin/ItemStackMixin.java b/src/main/java/co/secretonline/tinyflowers/mixin/ItemStackMixin.java index a77c7433..da4f4ecc 100644 --- a/src/main/java/co/secretonline/tinyflowers/mixin/ItemStackMixin.java +++ b/src/main/java/co/secretonline/tinyflowers/mixin/ItemStackMixin.java @@ -12,7 +12,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import co.secretonline.tinyflowers.components.ModComponents; +// import co.secretonline.tinyflowers.components.ModComponents; @Mixin(ItemStack.class) public class ItemStackMixin { @@ -24,11 +24,11 @@ private void injectCustomTooltip( TooltipFlag type, Consumer textConsumer, CallbackInfo ci) { - ((ItemStack) (Object) this).addToTooltip( - ModComponents.TINY_FLOWERS_COMPONENT_TYPE, - context, - displayComponent, - textConsumer, - type); + // ((ItemStack) (Object) this).addToTooltip( + // ModComponents.TINY_FLOWERS_COMPONENT_TYPE, + // context, + // displayComponent, + // textConsumer, + // type); } } From 43d35861494fa8084724fb3f1f052298172ff30d Mon Sep 17 00:00:00 2001 From: secret_online Date: Tue, 16 Dec 2025 16:29:25 +1300 Subject: [PATCH 005/113] Item model generation I don't know how well this will play with other mods trying to add flowers, but that's something to worry about later --- .../tinyflowers/TinyFlowersClient.java | 4 + .../tinyflowers/datagen/DataGenerator.java | 2 + .../FloristsShearsItemModelProvider.java | 33 +++++ .../datagen/TinyFlowersItemModelProvider.java | 57 ++++++++ .../renderer/item/TinyFlowerProperty.java | 40 ++++++ .../tiny_flowers/items/florists_shears.json | 16 +++ .../tiny_flowers/items/tiny_flower.json | 127 ++++++++++++++++++ .../models/item/florists_shears.json | 7 + .../tiny_flowers/models/item/tiny_allium.json | 6 + .../models/item/tiny_azure_bluet.json | 6 + .../models/item/tiny_blue_orchid.json | 6 + .../models/item/tiny_cactus_flower.json | 6 + .../models/item/tiny_closed_eyeblossom.json | 6 + .../models/item/tiny_cornflower.json | 6 + .../models/item/tiny_dandelion.json | 6 + .../models/item/tiny_lily_of_the_valley.json | 6 + .../models/item/tiny_open_eyeblossom.json | 6 + .../models/item/tiny_orange_tulip.json | 6 + .../models/item/tiny_oxeye_daisy.json | 6 + .../models/item/tiny_pink_tulip.json | 6 + .../tiny_flowers/models/item/tiny_poppy.json | 6 + .../models/item/tiny_red_tulip.json | 6 + .../models/item/tiny_torchflower.json | 6 + .../models/item/tiny_white_tulip.json | 6 + .../models/item/tiny_wither_rose.json | 6 + .../tinyflowers/items/TinyFlowerItem.java | 3 +- .../items/crafting/TinyFlowerStewRecipe.java | 2 +- 27 files changed, 391 insertions(+), 2 deletions(-) create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsItemModelProvider.java create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersItemModelProvider.java create mode 100644 src/client/java/co/secretonline/tinyflowers/renderer/item/TinyFlowerProperty.java create mode 100644 src/main/generated/assets/tiny_flowers/items/florists_shears.json create mode 100644 src/main/generated/assets/tiny_flowers/items/tiny_flower.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/florists_shears.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_allium.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_azure_bluet.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_blue_orchid.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_cactus_flower.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_closed_eyeblossom.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_cornflower.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_dandelion.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_lily_of_the_valley.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_open_eyeblossom.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_orange_tulip.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_oxeye_daisy.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_pink_tulip.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_poppy.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_red_tulip.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_torchflower.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_white_tulip.json create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_wither_rose.json diff --git a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java index c053eb49..c6059e7c 100644 --- a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java +++ b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java @@ -1,5 +1,6 @@ package co.secretonline.tinyflowers; +import co.secretonline.tinyflowers.renderer.item.TinyFlowerProperty; // import co.secretonline.tinyflowers.blocks.ModBlocks; import net.fabricmc.api.ClientModInitializer; // import net.fabricmc.fabric.api.client.rendering.v1.BlockRenderLayerMap; @@ -7,6 +8,7 @@ // import net.minecraft.client.renderer.BiomeColors; // import net.minecraft.client.renderer.chunk.ChunkSectionLayer; import net.minecraft.client.renderer.item.ItemStackRenderState; +import net.minecraft.client.renderer.item.properties.select.SelectItemModelProperties; import net.minecraft.util.RandomSource; // import net.minecraft.world.level.DryFoliageColor; // import net.minecraft.world.level.GrassColor; @@ -17,6 +19,8 @@ public class TinyFlowersClient implements ClientModInitializer { @Override public void onInitializeClient() { + SelectItemModelProperties.ID_MAPPER.put(TinyFlowers.id("tiny_flower"), TinyFlowerProperty.TYPE); + // BlockRenderLayerMap.putBlock(ModBlocks.TINY_GARDEN, // ChunkSectionLayer.CUTOUT); diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java index e04c1d2c..0fa97385 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java @@ -14,6 +14,8 @@ public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { // pack.addProvider(BlockLootTableProvider::new); pack.addProvider(ItemTagProvider::new); pack.addProvider(FloristsShearsRecipeProvider::new); + pack.addProvider(FloristsShearsItemModelProvider::new); + pack.addProvider(TinyFlowersItemModelProvider.factoryFor(DefaultTinyFlowerData.ALL_VARIANTS)); pack.addProvider(TinyFlowersRecipeProvider.factoryFor(DefaultTinyFlowerData.ALL_VARIANTS)); pack.addProvider(TinyFlowersProvider.factoryFor(DefaultTinyFlowerData.ALL_VARIANTS)); } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsItemModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsItemModelProvider.java new file mode 100644 index 00000000..8f9b9d3f --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsItemModelProvider.java @@ -0,0 +1,33 @@ +package co.secretonline.tinyflowers.datagen; + +import co.secretonline.tinyflowers.items.ModItems; +import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.minecraft.client.color.item.Dye; +import net.minecraft.client.data.models.BlockModelGenerators; +import net.minecraft.client.data.models.ItemModelGenerators; +import net.minecraft.world.item.DyeColor; + +public class FloristsShearsItemModelProvider extends FabricModelProvider { + + public FloristsShearsItemModelProvider(FabricDataOutput generator) { + super(generator); + } + + @Override + public void generateBlockStateModels(BlockModelGenerators blockStateModelGenerator) { + } + + @Override + public void generateItemModels(ItemModelGenerators itemModelGenerator) { + itemModelGenerator.generateItemWithTintedOverlay( + ModItems.FLORISTS_SHEARS_ITEM, + "_handle", + new Dye(DyeColor.RED.getTextureDiffuseColor())); + } + + @Override + public String getName() { + return "FloristsShearsItemModelProvider"; + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersItemModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersItemModelProvider.java new file mode 100644 index 00000000..9db905a4 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersItemModelProvider.java @@ -0,0 +1,57 @@ +package co.secretonline.tinyflowers.datagen; + +import java.util.List; +import java.util.stream.Collectors; + +import co.secretonline.tinyflowers.components.TinyFlowerComponent; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.items.ModItems; +import co.secretonline.tinyflowers.renderer.item.TinyFlowerProperty; +import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.minecraft.client.data.models.BlockModelGenerators; +import net.minecraft.client.data.models.ItemModelGenerators; +import net.minecraft.client.data.models.model.ItemModelUtils; +import net.minecraft.client.data.models.model.ModelTemplates; +import net.minecraft.client.data.models.model.TextureMapping; +import net.minecraft.client.renderer.item.SelectItemModel; + +public class TinyFlowersItemModelProvider extends FabricModelProvider { + private final List flowers; + + public TinyFlowersItemModelProvider(List flowers, FabricDataOutput generator) { + super(generator); + + this.flowers = flowers; + } + + public static Pack.Factory factoryFor(List flowers) { + return (FabricDataOutput output) -> new TinyFlowersItemModelProvider(flowers, output); + } + + @Override + public void generateBlockStateModels(BlockModelGenerators blockStateModelGenerator) { + } + + @Override + public void generateItemModels(ItemModelGenerators itemModelGenerator) { + List> list = this.flowers.stream() + .filter(flowerData -> flowerData.shouldCreateItem()) + .map(flowerData -> ItemModelUtils.when( + new TinyFlowerComponent(flowerData.id()), + ItemModelUtils.plainModel(ModelTemplates.FLAT_ITEM.create( + flowerData.id().withPrefix("item/"), + TextureMapping.layer0(flowerData.id().withPrefix("item/")), + itemModelGenerator.modelOutput)))) + .collect(Collectors.toList()); + + itemModelGenerator.itemModelOutput.accept(ModItems.TINY_FLOWER_ITEM, + ItemModelUtils.select(new TinyFlowerProperty(), list)); + } + + @Override + public String getName() { + return "TinyFlowersItemModelProvider"; + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/item/TinyFlowerProperty.java b/src/client/java/co/secretonline/tinyflowers/renderer/item/TinyFlowerProperty.java new file mode 100644 index 00000000..8745a520 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/renderer/item/TinyFlowerProperty.java @@ -0,0 +1,40 @@ +package co.secretonline.tinyflowers.renderer.item; + +import org.jspecify.annotations.Nullable; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; + +import co.secretonline.tinyflowers.components.ModComponents; +import co.secretonline.tinyflowers.components.TinyFlowerComponent; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.renderer.item.properties.select.SelectItemModelProperty; +import net.minecraft.resources.Identifier; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; + +public record TinyFlowerProperty() implements SelectItemModelProperty { + public static final Codec VALUE_CODEC = Identifier.CODEC.xmap( + TinyFlowerComponent::new, + TinyFlowerComponent::id); + public static final SelectItemModelProperty.Type TYPE = Type + .create(MapCodec.unit(new TinyFlowerProperty()), VALUE_CODEC); + + @Override + public @Nullable TinyFlowerComponent get(ItemStack itemStack, @Nullable ClientLevel clientLevel, + @Nullable LivingEntity entity, int i, ItemDisplayContext ctx) { + return itemStack.get(ModComponents.TINY_FLOWER); + } + + @Override + public Type, TinyFlowerComponent> type() { + return TYPE; + } + + @Override + public Codec valueCodec() { + return VALUE_CODEC; + } + +} diff --git a/src/main/generated/assets/tiny_flowers/items/florists_shears.json b/src/main/generated/assets/tiny_flowers/items/florists_shears.json new file mode 100644 index 00000000..cfb0ffed --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/items/florists_shears.json @@ -0,0 +1,16 @@ +{ + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/florists_shears", + "tints": [ + { + "type": "minecraft:constant", + "value": -1 + }, + { + "type": "minecraft:dye", + "default": -5231066 + } + ] + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_flower.json b/src/main/generated/assets/tiny_flowers/items/tiny_flower.json new file mode 100644 index 00000000..2f479f83 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/items/tiny_flower.json @@ -0,0 +1,127 @@ +{ + "model": { + "type": "minecraft:select", + "cases": [ + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_dandelion" + }, + "when": "tiny_flowers:tiny_dandelion" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_poppy" + }, + "when": "tiny_flowers:tiny_poppy" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_blue_orchid" + }, + "when": "tiny_flowers:tiny_blue_orchid" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_allium" + }, + "when": "tiny_flowers:tiny_allium" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_azure_bluet" + }, + "when": "tiny_flowers:tiny_azure_bluet" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_red_tulip" + }, + "when": "tiny_flowers:tiny_red_tulip" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_orange_tulip" + }, + "when": "tiny_flowers:tiny_orange_tulip" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_white_tulip" + }, + "when": "tiny_flowers:tiny_white_tulip" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_pink_tulip" + }, + "when": "tiny_flowers:tiny_pink_tulip" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_oxeye_daisy" + }, + "when": "tiny_flowers:tiny_oxeye_daisy" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_cornflower" + }, + "when": "tiny_flowers:tiny_cornflower" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_lily_of_the_valley" + }, + "when": "tiny_flowers:tiny_lily_of_the_valley" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_torchflower" + }, + "when": "tiny_flowers:tiny_torchflower" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_closed_eyeblossom" + }, + "when": "tiny_flowers:tiny_closed_eyeblossom" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_open_eyeblossom" + }, + "when": "tiny_flowers:tiny_open_eyeblossom" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_wither_rose" + }, + "when": "tiny_flowers:tiny_wither_rose" + }, + { + "model": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_cactus_flower" + }, + "when": "tiny_flowers:tiny_cactus_flower" + } + ], + "property": "tiny_flowers:tiny_flower" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/florists_shears.json b/src/main/generated/assets/tiny_flowers/models/item/florists_shears.json new file mode 100644 index 00000000..f5687db0 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/florists_shears.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/florists_shears", + "layer1": "tiny_flowers:item/florists_shears_handle" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_allium.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_allium.json new file mode 100644 index 00000000..7203632b --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_allium.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_allium" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_azure_bluet.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_azure_bluet.json new file mode 100644 index 00000000..35490b90 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_azure_bluet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_azure_bluet" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_blue_orchid.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_blue_orchid.json new file mode 100644 index 00000000..548f45bd --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_blue_orchid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_blue_orchid" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_cactus_flower.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_cactus_flower.json new file mode 100644 index 00000000..f10e3100 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_cactus_flower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_cactus_flower" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_closed_eyeblossom.json new file mode 100644 index 00000000..68db64a5 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_closed_eyeblossom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_closed_eyeblossom" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_cornflower.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_cornflower.json new file mode 100644 index 00000000..d04d5990 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_cornflower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_cornflower" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_dandelion.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_dandelion.json new file mode 100644 index 00000000..1220da9d --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_dandelion.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_dandelion" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_lily_of_the_valley.json new file mode 100644 index 00000000..8130511f --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_lily_of_the_valley.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_lily_of_the_valley" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_open_eyeblossom.json new file mode 100644 index 00000000..8f524882 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_open_eyeblossom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_open_eyeblossom" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_orange_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_orange_tulip.json new file mode 100644 index 00000000..5ac75668 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_orange_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_orange_tulip" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_oxeye_daisy.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_oxeye_daisy.json new file mode 100644 index 00000000..337ed4ef --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_oxeye_daisy.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_oxeye_daisy" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_pink_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_pink_tulip.json new file mode 100644 index 00000000..26f46632 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_pink_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_pink_tulip" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_poppy.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_poppy.json new file mode 100644 index 00000000..74b0010f --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_poppy.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_poppy" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_red_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_red_tulip.json new file mode 100644 index 00000000..c1ede6f4 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_red_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_red_tulip" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_torchflower.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_torchflower.json new file mode 100644 index 00000000..c4de06d6 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_torchflower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_torchflower" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_white_tulip.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_white_tulip.json new file mode 100644 index 00000000..2b7db320 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_white_tulip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_white_tulip" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_wither_rose.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_wither_rose.json new file mode 100644 index 00000000..a633ea95 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_wither_rose.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_wither_rose" + } +} \ No newline at end of file diff --git a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java index 574dc12d..0085c3a3 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java @@ -17,11 +17,12 @@ public TinyFlowerItem(Item.Properties properties) { @Override public Component getName(ItemStack itemStack) { - TinyFlowerComponent tinyFlowerComponent = itemStack.getComponents().get(ModComponents.TINY_FLOWER); + TinyFlowerComponent tinyFlowerComponent = itemStack.get(ModComponents.TINY_FLOWER); if (tinyFlowerComponent == null) { return super.getName(itemStack); } return Component.translatable(tinyFlowerComponent.getTranslationKey()); } + } diff --git a/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java b/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java index bf38a947..31ab0d2d 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java +++ b/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java @@ -93,7 +93,7 @@ public ItemStack assemble(CraftingInput recipeInput, Provider provider) { continue; } - TinyFlowerComponent tinyFlowerComponent = itemStack.getComponents().get(ModComponents.TINY_FLOWER); + TinyFlowerComponent tinyFlowerComponent = itemStack.get(ModComponents.TINY_FLOWER); if (tinyFlowerComponent == null) { continue; } From a890d0295cc6bdf24c79b4ebdbff365acfb711e6 Mon Sep 17 00:00:00 2001 From: secret_online Date: Tue, 16 Dec 2025 17:00:14 +1300 Subject: [PATCH 006/113] Add fallback string for flowers without a name --- src/main/resources/assets/tiny_flowers/lang/de_at.json | 1 + src/main/resources/assets/tiny_flowers/lang/de_ch.json | 1 + src/main/resources/assets/tiny_flowers/lang/de_de.json | 1 + src/main/resources/assets/tiny_flowers/lang/en_us.json | 1 + 4 files changed, 4 insertions(+) diff --git a/src/main/resources/assets/tiny_flowers/lang/de_at.json b/src/main/resources/assets/tiny_flowers/lang/de_at.json index d0809ba3..9fe85f66 100644 --- a/src/main/resources/assets/tiny_flowers/lang/de_at.json +++ b/src/main/resources/assets/tiny_flowers/lang/de_at.json @@ -4,6 +4,7 @@ "item.tiny_flowers.florists_shears": "Floristenschere", "item.tiny_flowers.tiny_garden": "Winziger Garten", "item.tiny_flowers.tiny_garden.empty": "Leer", + "item.tiny_flowers.tiny_flower": "Winzige Blume", "item.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", "item.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", "item.tiny_flowers.tiny_poppy": "Winziger Mohn", diff --git a/src/main/resources/assets/tiny_flowers/lang/de_ch.json b/src/main/resources/assets/tiny_flowers/lang/de_ch.json index d0809ba3..9fe85f66 100644 --- a/src/main/resources/assets/tiny_flowers/lang/de_ch.json +++ b/src/main/resources/assets/tiny_flowers/lang/de_ch.json @@ -4,6 +4,7 @@ "item.tiny_flowers.florists_shears": "Floristenschere", "item.tiny_flowers.tiny_garden": "Winziger Garten", "item.tiny_flowers.tiny_garden.empty": "Leer", + "item.tiny_flowers.tiny_flower": "Winzige Blume", "item.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", "item.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", "item.tiny_flowers.tiny_poppy": "Winziger Mohn", diff --git a/src/main/resources/assets/tiny_flowers/lang/de_de.json b/src/main/resources/assets/tiny_flowers/lang/de_de.json index d0809ba3..9fe85f66 100644 --- a/src/main/resources/assets/tiny_flowers/lang/de_de.json +++ b/src/main/resources/assets/tiny_flowers/lang/de_de.json @@ -4,6 +4,7 @@ "item.tiny_flowers.florists_shears": "Floristenschere", "item.tiny_flowers.tiny_garden": "Winziger Garten", "item.tiny_flowers.tiny_garden.empty": "Leer", + "item.tiny_flowers.tiny_flower": "Winzige Blume", "item.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", "item.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", "item.tiny_flowers.tiny_poppy": "Winziger Mohn", diff --git a/src/main/resources/assets/tiny_flowers/lang/en_us.json b/src/main/resources/assets/tiny_flowers/lang/en_us.json index e6875658..bdc9e565 100644 --- a/src/main/resources/assets/tiny_flowers/lang/en_us.json +++ b/src/main/resources/assets/tiny_flowers/lang/en_us.json @@ -4,6 +4,7 @@ "item.tiny_flowers.florists_shears": "Florists' Shears", "item.tiny_flowers.tiny_garden": "Tiny Garden", "item.tiny_flowers.tiny_garden.empty": "Empty", + "item.tiny_flowers.tiny_flower": "Tiny Flower", "item.tiny_flowers.tiny_cactus_flower": "Tiny Cactus Flower", "item.tiny_flowers.tiny_dandelion": "Tiny Dandelion", "item.tiny_flowers.tiny_poppy": "Tiny Poppy", From 1230524f39bd64becdf5e82ce63bd01815ac3d63 Mon Sep 17 00:00:00 2001 From: secret_online Date: Tue, 16 Dec 2025 17:00:35 +1300 Subject: [PATCH 007/113] Add texture fallback for tiny flowers with an invalid component --- .../datagen/TinyFlowersItemModelProvider.java | 22 ++++++++++++++----- .../tiny_flowers/items/tiny_flower.json | 4 ++++ .../tiny_flowers/models/item/tiny_garden.json | 6 +++++ 3 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 src/main/generated/assets/tiny_flowers/models/item/tiny_garden.json diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersItemModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersItemModelProvider.java index 9db905a4..0b808d7a 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersItemModelProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersItemModelProvider.java @@ -3,6 +3,7 @@ import java.util.List; import java.util.stream.Collectors; +import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.items.ModItems; @@ -15,7 +16,9 @@ import net.minecraft.client.data.models.model.ItemModelUtils; import net.minecraft.client.data.models.model.ModelTemplates; import net.minecraft.client.data.models.model.TextureMapping; +import net.minecraft.client.renderer.item.ItemModel; import net.minecraft.client.renderer.item.SelectItemModel; +import net.minecraft.resources.Identifier; public class TinyFlowersItemModelProvider extends FabricModelProvider { private final List flowers; @@ -40,14 +43,23 @@ public void generateItemModels(ItemModelGenerators itemModelGenerator) { .filter(flowerData -> flowerData.shouldCreateItem()) .map(flowerData -> ItemModelUtils.when( new TinyFlowerComponent(flowerData.id()), - ItemModelUtils.plainModel(ModelTemplates.FLAT_ITEM.create( - flowerData.id().withPrefix("item/"), - TextureMapping.layer0(flowerData.id().withPrefix("item/")), - itemModelGenerator.modelOutput)))) + modelForIdentifier(flowerData.id(), itemModelGenerator))) .collect(Collectors.toList()); itemModelGenerator.itemModelOutput.accept(ModItems.TINY_FLOWER_ITEM, - ItemModelUtils.select(new TinyFlowerProperty(), list)); + ItemModelUtils.select( + new TinyFlowerProperty(), + modelForIdentifier(TinyFlowers.id("tiny_garden"), itemModelGenerator), + list)); + } + + private ItemModel.Unbaked modelForIdentifier(Identifier id, ItemModelGenerators itemModelGenerator) { + Identifier prefixed = id.withPrefix("item/"); + + return ItemModelUtils.plainModel(ModelTemplates.FLAT_ITEM.create( + prefixed, + TextureMapping.layer0(prefixed), + itemModelGenerator.modelOutput)); } @Override diff --git a/src/main/generated/assets/tiny_flowers/items/tiny_flower.json b/src/main/generated/assets/tiny_flowers/items/tiny_flower.json index 2f479f83..1e6296bd 100644 --- a/src/main/generated/assets/tiny_flowers/items/tiny_flower.json +++ b/src/main/generated/assets/tiny_flowers/items/tiny_flower.json @@ -122,6 +122,10 @@ "when": "tiny_flowers:tiny_cactus_flower" } ], + "fallback": { + "type": "minecraft:model", + "model": "tiny_flowers:item/tiny_garden" + }, "property": "tiny_flowers:tiny_flower" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/item/tiny_garden.json b/src/main/generated/assets/tiny_flowers/models/item/tiny_garden.json new file mode 100644 index 00000000..e9eaec2a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/item/tiny_garden.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_flowers:item/tiny_garden" + } +} \ No newline at end of file From 639f94fffc87b82a4e6c772c3ad3c90087bdfd41 Mon Sep 17 00:00:00 2001 From: secret_online Date: Tue, 16 Dec 2025 17:45:21 +1300 Subject: [PATCH 008/113] Start re-creating garden block --- .../tinyflowers/datagen/ItemTagProvider.java | 2 +- .../tinyflowers/blocks/ModBlockEntities.java | 24 ++++ .../blocks/ModBlockProperties.java | 18 --- .../tinyflowers/blocks/ModBlocks.java | 73 +++++++--- .../tinyflowers/blocks/TinyGardenBlock.java | 127 ++++++++++++++++++ .../blocks/TinyGardenBlockEntity.java | 90 +++++++++++++ .../{blocks => items}/ModItemTags.java | 2 +- 7 files changed, 296 insertions(+), 40 deletions(-) create mode 100644 src/main/java/co/secretonline/tinyflowers/blocks/ModBlockEntities.java delete mode 100644 src/main/java/co/secretonline/tinyflowers/blocks/ModBlockProperties.java create mode 100644 src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java create mode 100644 src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java rename src/main/java/co/secretonline/tinyflowers/{blocks => items}/ModItemTags.java (87%) diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java index 5dac1d3a..8ef11dfe 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java @@ -3,7 +3,7 @@ import java.util.concurrent.CompletableFuture; import co.secretonline.tinyflowers.blocks.FlowerVariant; -import co.secretonline.tinyflowers.blocks.ModItemTags; +import co.secretonline.tinyflowers.items.ModItemTags; import co.secretonline.tinyflowers.items.ModItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlockEntities.java b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlockEntities.java new file mode 100644 index 00000000..ed222404 --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlockEntities.java @@ -0,0 +1,24 @@ +package co.secretonline.tinyflowers.blocks; + +import co.secretonline.tinyflowers.TinyFlowers; +import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.Identifier; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; + +public class ModBlockEntities { + public static final BlockEntityType TINY_GARDEN_BLOCK_ENTITY = register("tiny_garden", + TinyGardenBlockEntity::new, ModBlocks.TINY_GARDEN_BLOCK); + + private static BlockEntityType register( + String name, + FabricBlockEntityTypeBuilder.Factory entityFactory, + Block... blocks) { + Identifier id = TinyFlowers.id(name); + return Registry.register(BuiltInRegistries.BLOCK_ENTITY_TYPE, id, + FabricBlockEntityTypeBuilder.create(entityFactory, blocks).build()); + } +} diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlockProperties.java b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlockProperties.java deleted file mode 100644 index 11bc07a7..00000000 --- a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlockProperties.java +++ /dev/null @@ -1,18 +0,0 @@ -package co.secretonline.tinyflowers.blocks; - -import net.minecraft.world.level.block.state.properties.EnumProperty; - -public class ModBlockProperties { - public static final EnumProperty FLOWER_VARIANT_1 = EnumProperty.create( - "flower_variant_1", - FlowerVariant.class); - public static final EnumProperty FLOWER_VARIANT_2 = EnumProperty.create( - "flower_variant_2", - FlowerVariant.class); - public static final EnumProperty FLOWER_VARIANT_3 = EnumProperty.create( - "flower_variant_3", - FlowerVariant.class); - public static final EnumProperty FLOWER_VARIANT_4 = EnumProperty.create( - "flower_variant_4", - FlowerVariant.class); -} diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java index ec0213f4..0ea12d5f 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java @@ -1,28 +1,61 @@ package co.secretonline.tinyflowers.blocks; +import java.util.function.Function; + +import com.mojang.serialization.MapCodec; + +import co.secretonline.tinyflowers.TinyFlowers; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.material.MapColor; +import net.minecraft.world.level.material.PushReaction; + public class ModBlocks { - // public static final ResourceKey TINY_GARDEN_KEY = ResourceKey.create( - // Registries.BLOCK, - // TinyFlowers.id("tiny_garden")); - - // public static final Block TINY_GARDEN = registerBlockOnly( - // new GardenBlock( - // BlockBehaviour.Properties.of() - // .setId(TINY_GARDEN_KEY) - // .mapColor(MapColor.PLANT) - // .noCollision() - // .sound(SoundType.PINK_PETALS) - // .pushReaction(PushReaction.DESTROY)), - // TINY_GARDEN_KEY); - - // public static Block registerBlockOnly(Block block, ResourceKey - // blockKey) { - // return Registry.register(BuiltInRegistries.BLOCK, blockKey, block); - // } + public static final Block TINY_GARDEN_BLOCK = register( + "tiny_garden", + TinyGardenBlock::new, + BlockBehaviour.Properties.of() + .mapColor(MapColor.PLANT) + .noCollision() + .sound(SoundType.PINK_PETALS) + .pushReaction(PushReaction.DESTROY), + TinyGardenBlock.CODEC, + true); + + private static Block register(String name, Function blockFactory, + BlockBehaviour.Properties settings, MapCodec codec, boolean shouldRegisterItem) { + Identifier id = TinyFlowers.id(name); + + // Create a registry key for the block + ResourceKey blockKey = ResourceKey.create(Registries.BLOCK, id); + // Create the block instance + Block block = blockFactory.apply(settings.setId(blockKey)); + + // Sometimes, you may not want to register an item for the block. + // Eg: if it's a technical block like `minecraft:moving_piston` or + // `minecraft:end_gateway` + if (shouldRegisterItem) { + // Items need to be registered with a different type of registry key, but the ID + // can be the same. + ResourceKey itemKey = ResourceKey.create(Registries.ITEM, id); + + BlockItem blockItem = new BlockItem(block, new Item.Properties().setId(itemKey).useBlockDescriptionPrefix()); + Registry.register(BuiltInRegistries.ITEM, itemKey, blockItem); + } + + Registry.register(BuiltInRegistries.BLOCK_TYPE, id, codec); + return Registry.register(BuiltInRegistries.BLOCK, blockKey, block); + } public static void initialize() { - // Registry.register(BuiltInRegistries.BLOCK_TYPE, - // TinyFlowers.id("tiny_garden"), GardenBlock.CODEC); } } diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java new file mode 100644 index 00000000..e66f9df6 --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java @@ -0,0 +1,127 @@ +package co.secretonline.tinyflowers.blocks; + +import java.util.function.BiFunction; + +import org.jetbrains.annotations.Nullable; + +import com.mojang.serialization.MapCodec; + +import co.secretonline.tinyflowers.items.ModItemTags; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.Util; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class TinyGardenBlock extends BaseEntityBlock { + public static final MapCodec CODEC = simpleCodec(TinyGardenBlock::new); + public static final EnumProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + + private static final BiFunction FACING_AND_AMOUNT_TO_SHAPE = Util.memoize( + (BiFunction) ((facing, bitmap) -> { + if (bitmap == 0) { + return Block.box(0.0, 0.0, 0.0, 16.0, 3.0, 16.0); + } + + VoxelShape[] voxelShapes = new VoxelShape[] { + Block.box(8.0, 0.0, 8.0, 16.0, 3.0, 16.0), + Block.box(8.0, 0.0, 0.0, 16.0, 3.0, 8.0), + Block.box(0.0, 0.0, 0.0, 8.0, 3.0, 8.0), + Block.box(0.0, 0.0, 8.0, 8.0, 3.0, 16.0) + }; + VoxelShape voxelShape = Shapes.empty(); + + for (int i = 0; i < TinyGardenBlockEntity.NUM_SLOTS; i++) { + if ((bitmap & (1 << i)) > 0) { + int j = Math.floorMod(i - facing.get2DDataValue(), 4); + voxelShape = Shapes.or(voxelShape, voxelShapes[j]); + } + } + + return voxelShape.singleEncompassing(); + })); + + public TinyGardenBlock(Properties settings) { + super(settings); + this.registerDefaultState(this.stateDefinition.any() + .setValue(FACING, Direction.NORTH)); + } + + @Override + public BlockState rotate(BlockState state, Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @Override + public BlockState mirror(BlockState state, Mirror mirror) { + return state.rotate(mirror.getRotation(state.getValue(FACING))); + } + + @Override + public boolean canBeReplaced(BlockState state, BlockPlaceContext context) { + return !context.isSecondaryUseActive() && context.getItemInHand().is(ModItemTags.TINY_FLOWERS) + && hasFreeSpace(context.getLevel(), context.getClickedPos()) + ? true + : super.canBeReplaced(state, context); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { + return (VoxelShape) FACING_AND_AMOUNT_TO_SHAPE.apply((Direction) state.getValue(FACING), + getFlowerBitmap(world, pos)); + } + + private static boolean hasFreeSpace(BlockGetter world, BlockPos pos) { + if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity counterBlockEntity)) { + // If there's no block entity, try prevent anything from trying to write to it + return false; + } + + return counterBlockEntity.getFlower1() == null || + counterBlockEntity.getFlower2() == null || + counterBlockEntity.getFlower3() == null || + counterBlockEntity.getFlower4() == null; + } + + /** + * Since there can be "holes" in the variants, this creates a tiny bitmap of + * which positions has flowers. This is useful is for the memoisation during + * hitbox creation, as keeping the number of cache entries down for that + * is important. + */ + private static int getFlowerBitmap(BlockGetter world, BlockPos pos) { + if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity counterBlockEntity)) { + return -1; + } + + int bitmap = (counterBlockEntity.getFlower1() != null ? 1 : 0) + + (counterBlockEntity.getFlower2() != null ? 2 : 0) + + (counterBlockEntity.getFlower3() != null ? 4 : 0) + + (counterBlockEntity.getFlower4() != null ? 8 : 0); + + return bitmap; + } + + @Override + protected MapCodec codec() { + return CODEC; + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new TinyGardenBlockEntity(pos, state); + } + +} diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java new file mode 100644 index 00000000..252c54fe --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java @@ -0,0 +1,90 @@ +package co.secretonline.tinyflowers.blocks; + +import org.jetbrains.annotations.Nullable; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.Identifier; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; + +public class TinyGardenBlockEntity extends BlockEntity { + public static int NUM_SLOTS = 4; + + @Nullable + private Identifier flower1 = null; + @Nullable + private Identifier flower2 = null; + @Nullable + private Identifier flower3 = null; + @Nullable + private Identifier flower4 = null; + + public TinyGardenBlockEntity(BlockPos pos, BlockState state) { + super(ModBlockEntities.TINY_GARDEN_BLOCK_ENTITY, pos, state); + } + + @Nullable + public Identifier getFlower1() { + return flower1; + } + + public void setFlower1(@Nullable Identifier flower1) { + this.flower1 = flower1; + } + + @Nullable + public Identifier getFlower2() { + return flower2; + } + + public void setFlower2(@Nullable Identifier flower2) { + this.flower2 = flower2; + } + + @Nullable + public Identifier getFlower3() { + return flower3; + } + + public void setFlower3(@Nullable Identifier flower3) { + this.flower3 = flower3; + } + + @Nullable + public Identifier getFlower4() { + return flower4; + } + + public void setFlower4(@Nullable Identifier flower4) { + this.flower4 = flower4; + } + + @Override + protected void saveAdditional(ValueOutput writeView) { + writeView.storeNullable("flower_1", Identifier.CODEC, flower1); + writeView.storeNullable("flower_2", Identifier.CODEC, flower2); + writeView.storeNullable("flower_3", Identifier.CODEC, flower3); + writeView.storeNullable("flower_4", Identifier.CODEC, flower4); + + super.saveAdditional(writeView); + } + + @Override + protected void loadAdditional(ValueInput readView) { + super.loadAdditional(readView); + + flower1 = readView.read("flower_1", Identifier.CODEC).orElse(null); + flower2 = readView.read("flower_2", Identifier.CODEC).orElse(null); + flower3 = readView.read("flower_3", Identifier.CODEC).orElse(null); + flower4 = readView.read("flower_4", Identifier.CODEC).orElse(null); + } + + @Override + public CompoundTag getUpdateTag(HolderLookup.Provider registryLookup) { + return saveWithoutMetadata(registryLookup); + } +} diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/ModItemTags.java b/src/main/java/co/secretonline/tinyflowers/items/ModItemTags.java similarity index 87% rename from src/main/java/co/secretonline/tinyflowers/blocks/ModItemTags.java rename to src/main/java/co/secretonline/tinyflowers/items/ModItemTags.java index 4109a3ca..65d08585 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/ModItemTags.java +++ b/src/main/java/co/secretonline/tinyflowers/items/ModItemTags.java @@ -1,4 +1,4 @@ -package co.secretonline.tinyflowers.blocks; +package co.secretonline.tinyflowers.items; import co.secretonline.tinyflowers.TinyFlowers; import net.minecraft.core.registries.Registries; From ae886f6cd385fe8a29eaa18263c5f040bd9c6b66 Mon Sep 17 00:00:00 2001 From: secret_online Date: Tue, 16 Dec 2025 21:07:18 +1300 Subject: [PATCH 009/113] Implement most of the shears functionality back in This crashes, and I think it's because the registry doesn't exist on the client? No idea if that's actually the case, but it's getting late and I want to sleep. --- .../datagen/TinyFlowersRecipeProvider.java | 13 +- .../tinyflowers/blocks/TinyGardenBlock.java | 82 ++++++- .../blocks/TinyGardenBlockEntity.java | 124 ++++++++-- .../tinyflowers/data/ModRegistries.java | 20 +- .../tinyflowers/data/TinyFlowerData.java | 40 ++++ .../tinyflowers/items/FloristsShearsItem.java | 219 ++++++++++-------- .../items/crafting/ModRecipeSerializers.java | 10 +- 7 files changed, 354 insertions(+), 154 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersRecipeProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersRecipeProvider.java index f5b1fd49..800ba8ee 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersRecipeProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersRecipeProvider.java @@ -3,20 +3,16 @@ import java.util.List; import java.util.concurrent.CompletableFuture; -import co.secretonline.tinyflowers.components.ModComponents; -import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.items.ModItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack.RegistryDependentFactory; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; import net.minecraft.core.HolderLookup; -import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.data.recipes.RecipeProvider; -import net.minecraft.world.item.ItemStack; public class TinyFlowersRecipeProvider extends FabricRecipeProvider { private final List flowers; @@ -44,14 +40,7 @@ public void buildRecipes() { for (TinyFlowerData flowerData : flowers) { // Create tiny flower items for variants that need them. if (flowerData.shouldCreateItem()) { - ItemStack craftResult = new ItemStack( - BuiltInRegistries.ITEM.wrapAsHolder(ModItems.TINY_FLOWER_ITEM), - 4, - DataComponentPatch.builder() - .set(ModComponents.TINY_FLOWER, new TinyFlowerComponent(flowerData.id())) - .build()); - - shapeless(RecipeCategory.DECORATIONS, craftResult) + shapeless(RecipeCategory.DECORATIONS, flowerData.getItemStack(4)) .requires(ModItems.FLORISTS_SHEARS_ITEM) .requires(BuiltInRegistries.ITEM.getValue(flowerData.originalId())) .group("tiny_flowers") diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java index e66f9df6..4f7347bb 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java @@ -1,30 +1,45 @@ package co.secretonline.tinyflowers.blocks; +import java.util.List; import java.util.function.BiFunction; import org.jetbrains.annotations.Nullable; import com.mojang.serialization.MapCodec; +import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.components.ModComponents; +import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.items.ModItemTags; +import co.secretonline.tinyflowers.items.ModItems; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.component.DataComponentPatch; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.Identifier; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.util.Util; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.BonemealableBlock; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -public class TinyGardenBlock extends BaseEntityBlock { +public class TinyGardenBlock extends BaseEntityBlock implements BonemealableBlock { public static final MapCodec CODEC = simpleCodec(TinyGardenBlock::new); public static final EnumProperty FACING = BlockStateProperties.HORIZONTAL_FACING; @@ -82,16 +97,61 @@ public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, Co getFlowerBitmap(world, pos)); } + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING); + } + + @Override + public boolean isBonemealSuccess(Level level, RandomSource randomSource, BlockPos pos, BlockState blockState) { + return level.getBlockEntity(pos) instanceof TinyGardenBlockEntity; + } + + @Override + public boolean isValidBonemealTarget(LevelReader level, BlockPos pos, BlockState blockState) { + return level.getBlockEntity(pos) instanceof TinyGardenBlockEntity; + } + + @Override + public void performBonemeal(ServerLevel serverLevel, RandomSource randomSource, BlockPos pos, + BlockState blockState) { + if (!(serverLevel.getBlockEntity(pos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + return; + } + + List flowers = gardenBlockEntity.getFlowers(); + if (flowers.isEmpty()) { + TinyFlowers.LOGGER.warn("Tried to grow empty space in garden block"); + return; + } + + Identifier randomId = Util.getRandom(flowers, randomSource); + + // Try add flow to garden, otherwise pop an item out. + if (!gardenBlockEntity.addFlower(randomId)) { + // Drop an item based on the variants in the garden. At this stage we can assume + // that the garden is full. + ItemStack stack = new ItemStack( + BuiltInRegistries.ITEM.wrapAsHolder(ModItems.TINY_FLOWER_ITEM), + 4, + DataComponentPatch.builder() + .set(ModComponents.TINY_FLOWER, new TinyFlowerComponent(randomId)) + .build()); + + popResource(serverLevel, pos, stack); + } + } + private static boolean hasFreeSpace(BlockGetter world, BlockPos pos) { - if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity counterBlockEntity)) { + if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { // If there's no block entity, try prevent anything from trying to write to it return false; } - return counterBlockEntity.getFlower1() == null || - counterBlockEntity.getFlower2() == null || - counterBlockEntity.getFlower3() == null || - counterBlockEntity.getFlower4() == null; + return gardenBlockEntity.getFlower(1) == null || + gardenBlockEntity.getFlower(2) == null || + gardenBlockEntity.getFlower(3) == null || + gardenBlockEntity.getFlower(4) == null; } /** @@ -101,14 +161,14 @@ private static boolean hasFreeSpace(BlockGetter world, BlockPos pos) { * is important. */ private static int getFlowerBitmap(BlockGetter world, BlockPos pos) { - if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity counterBlockEntity)) { + if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { return -1; } - int bitmap = (counterBlockEntity.getFlower1() != null ? 1 : 0) + - (counterBlockEntity.getFlower2() != null ? 2 : 0) + - (counterBlockEntity.getFlower3() != null ? 4 : 0) + - (counterBlockEntity.getFlower4() != null ? 8 : 0); + int bitmap = (gardenBlockEntity.getFlower(1) != null ? 1 : 0) + + (gardenBlockEntity.getFlower(2) != null ? 2 : 0) + + (gardenBlockEntity.getFlower(3) != null ? 4 : 0) + + (gardenBlockEntity.getFlower(4) != null ? 8 : 0); return bitmap; } diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java index 252c54fe..4d05e7aa 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java @@ -1,11 +1,18 @@ package co.secretonline.tinyflowers.blocks; +import java.util.ArrayList; +import java.util.List; + import org.jetbrains.annotations.Nullable; +import co.secretonline.tinyflowers.data.TinyFlowerData; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; +import net.minecraft.core.RegistryAccess; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.Identifier; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.SegmentableBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.ValueInput; @@ -27,40 +34,86 @@ public TinyGardenBlockEntity(BlockPos pos, BlockState state) { super(ModBlockEntities.TINY_GARDEN_BLOCK_ENTITY, pos, state); } - @Nullable - public Identifier getFlower1() { - return flower1; - } - - public void setFlower1(@Nullable Identifier flower1) { - this.flower1 = flower1; - } - - @Nullable - public Identifier getFlower2() { - return flower2; - } - - public void setFlower2(@Nullable Identifier flower2) { - this.flower2 = flower2; + public List getFlowers() { + List list = new ArrayList<>(NUM_SLOTS); + + if (flower1 != null) { + list.add(flower1); + } + if (flower2 != null) { + list.add(flower2); + } + if (flower3 != null) { + list.add(flower3); + } + if (flower4 != null) { + list.add(flower4); + } + + return list; } @Nullable - public Identifier getFlower3() { - return flower3; + public Identifier getFlower(int index) { + switch (index) { + case 1: + return flower1; + case 2: + return flower2; + case 3: + return flower3; + case 4: + return flower4; + default: + throw new IndexOutOfBoundsException(index); + } } - public void setFlower3(@Nullable Identifier flower3) { - this.flower3 = flower3; + public void setFlower(int index, @Nullable Identifier id) { + switch (index) { + case 1: + flower1 = id; + return; + case 2: + flower2 = id; + return; + case 3: + flower3 = id; + return; + case 4: + flower4 = id; + return; + default: + throw new IndexOutOfBoundsException(index); + } } - @Nullable - public Identifier getFlower4() { - return flower4; + public boolean addFlower(Identifier newId) { + if (flower1 == null) { + flower1 = newId; + return true; + } + if (flower2 == null) { + flower2 = newId; + return true; + } + if (flower3 == null) { + flower3 = newId; + return true; + } + if (flower4 == null) { + flower4 = newId; + return true; + } + + return false; } - public void setFlower4(@Nullable Identifier flower4) { - this.flower4 = flower4; + public boolean isEmpty() { + return flower1 == null && + flower2 == null && + flower3 == null && + flower4 == null; } @Override @@ -87,4 +140,25 @@ protected void loadAdditional(ValueInput readView) { public CompoundTag getUpdateTag(HolderLookup.Provider registryLookup) { return saveWithoutMetadata(registryLookup); } + + public boolean setFromPreviousBlockState(RegistryAccess registryAccess, BlockState state) { + Block block = state.getBlock(); + + TinyFlowerData tinyFlowerData = TinyFlowerData.findByOriginalBlock(registryAccess, block); + if (tinyFlowerData == null) { + return false; + } + + Identifier id = tinyFlowerData.id(); + int amount = block instanceof SegmentableBlock segmentedBlock + ? state.getValue(segmentedBlock.getSegmentAmountProperty()) + : NUM_SLOTS; + + setFlower(1, amount >= 1 ? id : null); + setFlower(2, amount >= 2 ? id : null); + setFlower(3, amount >= 3 ? id : null); + setFlower(4, amount >= 4 ? id : null); + + return true; + } } diff --git a/src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java b/src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java index f17526d5..062303e0 100644 --- a/src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java +++ b/src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java @@ -1,15 +1,29 @@ package co.secretonline.tinyflowers.data; +import com.mojang.serialization.Codec; + import co.secretonline.tinyflowers.TinyFlowers; import net.fabricmc.fabric.api.event.registry.DynamicRegistries; import net.minecraft.core.Registry; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; public class ModRegistries { - public static ResourceKey> TINY_FLOWER = ResourceKey - .createRegistryKey(TinyFlowers.id("tiny_flower")); + public static ResourceKey> TINY_FLOWER = register( + TinyFlowers.id("tiny_flower"), + TinyFlowerData.CODEC, + true); + + private static ResourceKey> register(Identifier id, Codec codec, boolean sync) { + ResourceKey> key = ResourceKey.createRegistryKey(TinyFlowers.id("tiny_flower")); + + if (sync) { + DynamicRegistries.registerSynced(key, codec); + } + + return key; + } public static void initialize() { - DynamicRegistries.registerSynced(TINY_FLOWER, TinyFlowerData.CODEC); } } diff --git a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java index 8a8ff916..c56d593e 100644 --- a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java +++ b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java @@ -1,15 +1,24 @@ package co.secretonline.tinyflowers.data; import java.util.List; +import java.util.function.Predicate; import org.jetbrains.annotations.Nullable; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import co.secretonline.tinyflowers.components.ModComponents; +import co.secretonline.tinyflowers.components.TinyFlowerComponent; +import co.secretonline.tinyflowers.items.ModItems; +import net.minecraft.core.RegistryAccess; +import net.minecraft.core.component.DataComponentPatch; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.Identifier; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.component.SuspiciousStewEffects; import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SuspiciousEffectHolder; /** @@ -38,6 +47,37 @@ public SuspiciousStewEffects getSuspiciousEffects() { return new SuspiciousStewEffects(this.suspiciousStewEffects()); } + public ItemStack getItemStack(int count) { + return new ItemStack( + BuiltInRegistries.ITEM.wrapAsHolder(ModItems.TINY_FLOWER_ITEM), + count, + DataComponentPatch.builder() + .set(ModComponents.TINY_FLOWER, new TinyFlowerComponent(this.id())) + .build()); + } + + @Nullable + private static TinyFlowerData ofPredicate(RegistryAccess registryAccess, Predicate predicate) { + return registryAccess.get(ModRegistries.TINY_FLOWER) + .get() + .value() + .stream() + .filter(predicate) + .findFirst() + .orElse(null); + } + + @Nullable + public static TinyFlowerData findByOriginalBlock(RegistryAccess registryAccess, Block block) { + return ofPredicate(registryAccess, + flowerData -> flowerData.originalId().equals(BuiltInRegistries.BLOCK.getKey(block))); + } + + @Nullable + public static TinyFlowerData findById(RegistryAccess registryAccess, Identifier id) { + return ofPredicate(registryAccess, flowerData -> flowerData.id().equals(id)); + } + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerData::id), Identifier.CODEC.fieldOf("original_id").forGetter(TinyFlowerData::originalId), diff --git a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java index af086829..b2e5754f 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java @@ -1,12 +1,33 @@ package co.secretonline.tinyflowers.items; +import java.util.Arrays; + +import co.secretonline.tinyflowers.blocks.ModBlocks; +import co.secretonline.tinyflowers.blocks.TinyGardenBlock; +import co.secretonline.tinyflowers.blocks.TinyGardenBlockEntity; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.resources.Identifier; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ShearsItem; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.SegmentableBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.level.gameevent.GameEvent.Context; +import net.minecraft.world.phys.Vec3; public class FloristsShearsItem extends ShearsItem { - // private final static Direction[] DIRECTIONS = new Direction[] { - // Direction.NORTH, Direction.EAST, - // Direction.SOUTH, Direction.WEST, }; + private final static Direction[] DIRECTIONS = new Direction[] { + Direction.NORTH, Direction.EAST, + Direction.SOUTH, Direction.WEST, }; public FloristsShearsItem(Properties settings) { super(settings); @@ -23,101 +44,99 @@ public ItemStack getRecipeRemainder(ItemStack stack) { return ItemStack.EMPTY; } - // @Override - // public InteractionResult useOn(UseOnContext ctx) { - // Level world = ctx.getLevel(); - // BlockPos pos = ctx.getClickedPos(); - // BlockState blockState = world.getBlockState(pos); - - // if (blockState.getBlock() instanceof SegmentableBlock) { - // // Try convert segmented block to gardens so that shears can remove flowers - // from - // // them. - // try { - // blockState = ((GardenBlock) - // ModBlocks.TINY_GARDEN).getStateFromSegmented(blockState); - // } catch (IllegalStateException ex) { - // // Segmented could not be converted to garden. - // TinyFlowers.LOGGER.warn("Could not convert segmented block to garden. - // Ignoring action."); - - // return InteractionResult.TRY_WITH_EMPTY_HAND; - // } - // } - - // if (blockState.is(ModBlocks.TINY_GARDEN)) { - // // Remove flower at certain part of garden. - // Vec3 positionInBlock = - // ctx.getClickLocation().subtract(Vec3.atLowerCornerOf(pos)); - // boolean isEast = positionInBlock.x >= 0.5; - // boolean isSouth = positionInBlock.z >= 0.5; - - // // Convert block quadrant into the correct property. - // // Writing this was a little bit of trial and a lot of error. - // int index = isSouth ? (isEast ? 2 : 3) : (isEast ? 1 : 0); - // index = - // Arrays.asList(DIRECTIONS).indexOf(blockState.getValue(GardenBlock.FACING)) - - // index; - // index = (index + 4) % 4; - // EnumProperty property = - // GardenBlock.FLOWER_VARIANT_PROPERTIES[index]; - - // FlowerVariant variant = blockState.getValue(property); - // if (variant.isEmpty()) { - // return InteractionResult.TRY_WITH_EMPTY_HAND; - // } - - // Block.popResource(world, pos, new ItemStack(variant)); - - // // TODO: Figure out if there's a scenario where the player is null - // if (ctx.getPlayer() != null) { - // Player player = ctx.getPlayer(); - // ctx.getItemInHand().hurtAndBreak(1, player, ctx.getHand()); - - // world.playSound(player, pos, SoundEvents.GROWING_PLANT_CROP, - // SoundSource.BLOCKS, 1.0F, 1.0F); - // } - - // BlockState newBlockState = blockState.setValue(property, - // FlowerVariant.EMPTY); - // if (GardenBlock.isEmpty(newBlockState)) { - // world.removeBlock(pos, false); - // } else { - // world.setBlockAndUpdate(pos, newBlockState); - // } - - // world.gameEvent(GameEvent.BLOCK_CHANGE, pos, Context.of(ctx.getPlayer(), - // newBlockState)); - - // return InteractionResult.SUCCESS; - // } - - // Block block = blockState.getBlock(); - // FlowerVariant variant = FlowerVariant.fromOriginalBlock(block); - // if (!variant.isEmpty()) { - // BlockState newBlockState = ((GardenBlock) - // ModBlocks.TINY_GARDEN).defaultBlockState() - // .setValue(GardenBlock.FACING, ctx.getHorizontalDirection().getOpposite()) - // .setValue(GardenBlock.FLOWER_VARIANT_1, variant) - // .setValue(GardenBlock.FLOWER_VARIANT_2, variant) - // .setValue(GardenBlock.FLOWER_VARIANT_3, variant) - // .setValue(GardenBlock.FLOWER_VARIANT_4, variant); - - // if (ctx.getPlayer() != null) { - // Player player = ctx.getPlayer(); - // ctx.getItemInHand().hurtAndBreak(1, player, ctx.getHand()); - - // world.playSound(player, pos, SoundEvents.GROWING_PLANT_CROP, - // SoundSource.BLOCKS, 1.0F, 1.0F); - // } - - // world.setBlockAndUpdate(pos, newBlockState); - // world.gameEvent(GameEvent.BLOCK_CHANGE, pos, Context.of(ctx.getPlayer(), - // newBlockState)); - - // return InteractionResult.SUCCESS; - // } - - // return super.useOn(ctx); - // } + @Override + public InteractionResult useOn(UseOnContext ctx) { + Level world = ctx.getLevel(); + BlockPos pos = ctx.getClickedPos(); + BlockState prevBockState = world.getBlockState(pos); + + Block prevBlock = prevBockState.getBlock(); + TinyFlowerData prevData = TinyFlowerData.findByOriginalBlock(world.registryAccess(), prevBlock); + if (prevData != null) { + // Convert block into tiny flowers + + BlockState newBlockState = ModBlocks.TINY_GARDEN_BLOCK.defaultBlockState() + .setValue(TinyGardenBlock.FACING, ctx.getHorizontalDirection().getOpposite()); + world.setBlockAndUpdate(pos, newBlockState); + + if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + // If there's no block entity, try undo the change + world.setBlockAndUpdate(pos, prevBockState); + return InteractionResult.FAIL; + } + + gardenBlockEntity.setFromPreviousBlockState(world.registryAccess(), prevBockState); + + // If the block we converted from is not segmentable, then we're done here. + if (!(prevBlock instanceof SegmentableBlock)) { + if (ctx.getPlayer() != null) { + Player player = ctx.getPlayer(); + ctx.getItemInHand().hurtAndBreak(1, player, ctx.getHand()); + + world.playSound(player, pos, SoundEvents.GROWING_PLANT_CROP, + SoundSource.BLOCKS, 1.0F, 1.0F); + } + + world.gameEvent(GameEvent.BLOCK_CHANGE, pos, Context.of(ctx.getPlayer(), + newBlockState)); + + return InteractionResult.SUCCESS; + } else { + // If the previous block was segmentable, then we actually want to remove a + // flower from it. + // That's handled by the next if statement, but only for Tiny Gardens. Luckily, + // we just did + // the conversion. + prevBockState = newBlockState; + } + } + + if (prevBockState.is(ModBlocks.TINY_GARDEN_BLOCK)) { + if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + // If there's no block entity, don't do anything + return InteractionResult.FAIL; + } + + // Remove flower at certain part of garden. + Vec3 positionInBlock = ctx.getClickLocation().subtract(Vec3.atLowerCornerOf(pos)); + boolean isEast = positionInBlock.x >= 0.5; + boolean isSouth = positionInBlock.z >= 0.5; + + // Convert block quadrant into the correct property. + // Writing this was a little bit of trial and a lot of error. + int index = isSouth ? (isEast ? 2 : 3) : (isEast ? 1 : 0); + index = Arrays.asList(DIRECTIONS).indexOf(prevBockState.getValue(TinyGardenBlock.FACING)) - + index; + index = (index + 4) % 4; + + Identifier idAtIndex = gardenBlockEntity.getFlower(index); + TinyFlowerData flowerData = TinyFlowerData.findById(world.registryAccess(), idAtIndex); + if (flowerData == null) { + return InteractionResult.TRY_WITH_EMPTY_HAND; + } + + Block.popResource(world, pos, flowerData.getItemStack(1)); + + if (ctx.getPlayer() != null) { + Player player = ctx.getPlayer(); + ctx.getItemInHand().hurtAndBreak(1, player, ctx.getHand()); + + world.playSound(player, pos, SoundEvents.GROWING_PLANT_CROP, + SoundSource.BLOCKS, 1.0F, 1.0F); + } + + gardenBlockEntity.setFlower(index, null); + + if (gardenBlockEntity.isEmpty()) { + world.removeBlock(pos, false); + } + + world.gameEvent(GameEvent.BLOCK_CHANGE, pos, Context.of(ctx.getPlayer(), + prevBockState)); + + return InteractionResult.SUCCESS; + } + + return super.useOn(ctx); + } } diff --git a/src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java b/src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java index d67ea870..0ddee6cb 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java +++ b/src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java @@ -1,12 +1,16 @@ package co.secretonline.tinyflowers.items.crafting; +import co.secretonline.tinyflowers.TinyFlowers; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.item.crafting.CustomRecipe; import net.minecraft.world.item.crafting.RecipeSerializer; public class ModRecipeSerializers { - public static RecipeSerializer TINY_FLOWER_STEW = RecipeSerializer - .register("crafting_special_tiny_flower_stew", - new CustomRecipe.Serializer(TinyFlowerStewRecipe::new)); + public static RecipeSerializer TINY_FLOWER_STEW = Registry.register( + BuiltInRegistries.RECIPE_SERIALIZER, + TinyFlowers.id("crafting_special_tiny_flower_stew"), + new CustomRecipe.Serializer(TinyFlowerStewRecipe::new)); public static void initialize() { } From 828c5e226ea061a626f4f0e44ac4d793628f760f Mon Sep 17 00:00:00 2001 From: secret_online Date: Thu, 18 Dec 2025 16:38:23 +1300 Subject: [PATCH 010/113] Fix registry issues and a couple of other bugs --- .../tinyflowers/TinyFlowersClient.java | 64 +++++++++---------- .../secretonline/tinyflowers/TinyFlowers.java | 8 ++- .../tinyflowers/blocks/ModBlockEntities.java | 3 + .../blocks/TinyGardenBlockEntity.java | 35 +++++++--- .../tinyflowers/data/ModRegistries.java | 20 +----- .../tinyflowers/data/TinyFlowerData.java | 21 +++++- .../tinyflowers/items/FloristsShearsItem.java | 5 +- 7 files changed, 89 insertions(+), 67 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java index c6059e7c..f0e154b0 100644 --- a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java +++ b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java @@ -1,17 +1,17 @@ package co.secretonline.tinyflowers; +import co.secretonline.tinyflowers.blocks.ModBlocks; import co.secretonline.tinyflowers.renderer.item.TinyFlowerProperty; -// import co.secretonline.tinyflowers.blocks.ModBlocks; import net.fabricmc.api.ClientModInitializer; -// import net.fabricmc.fabric.api.client.rendering.v1.BlockRenderLayerMap; -// import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; -// import net.minecraft.client.renderer.BiomeColors; -// import net.minecraft.client.renderer.chunk.ChunkSectionLayer; +import net.fabricmc.fabric.api.client.rendering.v1.BlockRenderLayerMap; +import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; +import net.minecraft.client.renderer.BiomeColors; +import net.minecraft.client.renderer.chunk.ChunkSectionLayer; import net.minecraft.client.renderer.item.ItemStackRenderState; import net.minecraft.client.renderer.item.properties.select.SelectItemModelProperties; import net.minecraft.util.RandomSource; -// import net.minecraft.world.level.DryFoliageColor; -// import net.minecraft.world.level.GrassColor; +import net.minecraft.world.level.DryFoliageColor; +import net.minecraft.world.level.GrassColor; public class TinyFlowersClient implements ClientModInitializer { public static final RandomSource RANDOM = RandomSource.create(); @@ -21,32 +21,32 @@ public class TinyFlowersClient implements ClientModInitializer { public void onInitializeClient() { SelectItemModelProperties.ID_MAPPER.put(TinyFlowers.id("tiny_flower"), TinyFlowerProperty.TYPE); - // BlockRenderLayerMap.putBlock(ModBlocks.TINY_GARDEN, - // ChunkSectionLayer.CUTOUT); + BlockRenderLayerMap.putBlock(ModBlocks.TINY_GARDEN_BLOCK, ChunkSectionLayer.CUTOUT); - // // See Pink Petals in net.minecraft.client.color.block.BlockColors - // ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> { - // boolean hasWorld = world == null || pos == null; + // See Pink Petals in net.minecraft.client.color.block.BlockColors + ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> { + boolean hasWorld = world == null || pos == null; + + switch (tintIndex) { + case 1 -> { + if (hasWorld) { + return GrassColor.getDefaultColor(); + } else { + return BiomeColors.getAverageGrassColor(world, pos); + } + } + case 2 -> { + if (hasWorld) { + return DryFoliageColor.get(0.5, 1.0); + } else { + return BiomeColors.getAverageDryFoliageColor(world, pos); + } + } + default -> { + return -1; + } + } + }, ModBlocks.TINY_GARDEN_BLOCK); - // switch (tintIndex) { - // case 1 -> { - // if (hasWorld) { - // return GrassColor.getDefaultColor(); - // } else { - // return BiomeColors.getAverageGrassColor(world, pos); - // } - // } - // case 2 -> { - // if (hasWorld) { - // return DryFoliageColor.get(0.5, 1.0); - // } else { - // return BiomeColors.getAverageDryFoliageColor(world, pos); - // } - // } - // default -> { - // return -1; - // } - // } - // }, ModBlocks.TINY_GARDEN); } } diff --git a/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java b/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java index 4f05856b..c5549b5d 100644 --- a/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java +++ b/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java @@ -1,15 +1,16 @@ package co.secretonline.tinyflowers; -import net.fabricmc.api.ModInitializer; -import net.minecraft.resources.Identifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import co.secretonline.tinyflowers.blocks.ModBlockEntities; import co.secretonline.tinyflowers.blocks.ModBlocks; import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.data.ModRegistries; import co.secretonline.tinyflowers.items.ModItems; import co.secretonline.tinyflowers.items.crafting.ModRecipeSerializers; +import net.fabricmc.api.ModInitializer; +import net.minecraft.resources.Identifier; public class TinyFlowers implements ModInitializer { public static final String MOD_ID = "tiny_flowers"; @@ -22,10 +23,11 @@ public static Identifier id(String path) { @Override public void onInitialize() { + ModRegistries.initialize(); ModComponents.initialize(); ModBlocks.initialize(); + ModBlockEntities.initialize(); ModItems.initialize(); - ModRegistries.initialize(); ModRecipeSerializers.initialize(); } } diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlockEntities.java b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlockEntities.java index ed222404..ee690fe4 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlockEntities.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlockEntities.java @@ -21,4 +21,7 @@ private static BlockEntityType register( return Registry.register(BuiltInRegistries.BLOCK_ENTITY_TYPE, id, FabricBlockEntityTypeBuilder.create(entityFactory, blocks).build()); } + + public static void initialize() { + } } diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java index 4d05e7aa..e03d241f 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java @@ -10,6 +10,9 @@ import net.minecraft.core.HolderLookup; import net.minecraft.core.RegistryAccess; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; import net.minecraft.resources.Identifier; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SegmentableBlock; @@ -73,36 +76,38 @@ public void setFlower(int index, @Nullable Identifier id) { switch (index) { case 1: flower1 = id; - return; + break; case 2: flower2 = id; - return; + break; case 3: flower3 = id; - return; + break; case 4: flower4 = id; - return; + break; default: throw new IndexOutOfBoundsException(index); } + + this.markUpdated(); } public boolean addFlower(Identifier newId) { if (flower1 == null) { - flower1 = newId; + setFlower(1, newId); return true; } if (flower2 == null) { - flower2 = newId; + setFlower(2, newId); return true; } if (flower3 == null) { - flower3 = newId; + setFlower(3, newId); return true; } if (flower4 == null) { - flower4 = newId; + setFlower(4, newId); return true; } @@ -118,12 +123,12 @@ public boolean isEmpty() { @Override protected void saveAdditional(ValueOutput writeView) { + super.saveAdditional(writeView); + writeView.storeNullable("flower_1", Identifier.CODEC, flower1); writeView.storeNullable("flower_2", Identifier.CODEC, flower2); writeView.storeNullable("flower_3", Identifier.CODEC, flower3); writeView.storeNullable("flower_4", Identifier.CODEC, flower4); - - super.saveAdditional(writeView); } @Override @@ -141,6 +146,16 @@ public CompoundTag getUpdateTag(HolderLookup.Provider registryLookup) { return saveWithoutMetadata(registryLookup); } + @Override + public Packet getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this); + } + + private void markUpdated() { + this.setChanged(); + this.getLevel().sendBlockUpdated(this.getBlockPos(), this.getBlockState(), this.getBlockState(), 3); + } + public boolean setFromPreviousBlockState(RegistryAccess registryAccess, BlockState state) { Block block = state.getBlock(); diff --git a/src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java b/src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java index 062303e0..f17526d5 100644 --- a/src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java +++ b/src/main/java/co/secretonline/tinyflowers/data/ModRegistries.java @@ -1,29 +1,15 @@ package co.secretonline.tinyflowers.data; -import com.mojang.serialization.Codec; - import co.secretonline.tinyflowers.TinyFlowers; import net.fabricmc.fabric.api.event.registry.DynamicRegistries; import net.minecraft.core.Registry; -import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; public class ModRegistries { - public static ResourceKey> TINY_FLOWER = register( - TinyFlowers.id("tiny_flower"), - TinyFlowerData.CODEC, - true); - - private static ResourceKey> register(Identifier id, Codec codec, boolean sync) { - ResourceKey> key = ResourceKey.createRegistryKey(TinyFlowers.id("tiny_flower")); - - if (sync) { - DynamicRegistries.registerSynced(key, codec); - } - - return key; - } + public static ResourceKey> TINY_FLOWER = ResourceKey + .createRegistryKey(TinyFlowers.id("tiny_flower")); public static void initialize() { + DynamicRegistries.registerSynced(TINY_FLOWER, TinyFlowerData.CODEC); } } diff --git a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java index c56d593e..057604de 100644 --- a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java +++ b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java @@ -1,6 +1,7 @@ package co.secretonline.tinyflowers.data; import java.util.List; +import java.util.Optional; import java.util.function.Predicate; import org.jetbrains.annotations.Nullable; @@ -11,10 +12,12 @@ import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.items.ModItems; +import net.minecraft.core.Holder.Reference; import net.minecraft.core.RegistryAccess; import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.Identifier; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.component.SuspiciousStewEffects; import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; @@ -48,6 +51,20 @@ public SuspiciousStewEffects getSuspiciousEffects() { } public ItemStack getItemStack(int count) { + // For existing segmented-like flower types, just pop one of those items + // instead. + if (!shouldCreateItem()) { + Optional> item = BuiltInRegistries.ITEM.get(this.originalId); + if (item.isEmpty()) { + // Since this mod is data driven, it's possible that a garden block or tiny + // flower item refers to a flower type that no longer exists (i.e. from a mod + // that has been removed). In this case, pop nothing. + return ItemStack.EMPTY; + } + + return new ItemStack(item.get(), count); + } + return new ItemStack( BuiltInRegistries.ITEM.wrapAsHolder(ModItems.TINY_FLOWER_ITEM), count, @@ -58,9 +75,7 @@ public ItemStack getItemStack(int count) { @Nullable private static TinyFlowerData ofPredicate(RegistryAccess registryAccess, Predicate predicate) { - return registryAccess.get(ModRegistries.TINY_FLOWER) - .get() - .value() + return registryAccess.lookupOrThrow(ModRegistries.TINY_FLOWER) .stream() .filter(predicate) .findFirst() diff --git a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java index b2e5754f..6e580843 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java @@ -108,8 +108,9 @@ public InteractionResult useOn(UseOnContext ctx) { index = Arrays.asList(DIRECTIONS).indexOf(prevBockState.getValue(TinyGardenBlock.FACING)) - index; index = (index + 4) % 4; + int oneIndexed = index + 1; - Identifier idAtIndex = gardenBlockEntity.getFlower(index); + Identifier idAtIndex = gardenBlockEntity.getFlower(oneIndexed); TinyFlowerData flowerData = TinyFlowerData.findById(world.registryAccess(), idAtIndex); if (flowerData == null) { return InteractionResult.TRY_WITH_EMPTY_HAND; @@ -125,7 +126,7 @@ public InteractionResult useOn(UseOnContext ctx) { SoundSource.BLOCKS, 1.0F, 1.0F); } - gardenBlockEntity.setFlower(index, null); + gardenBlockEntity.setFlower(oneIndexed, null); if (gardenBlockEntity.isEmpty()) { world.removeBlock(pos, false); From 0952ef40d25a09eebf47f4dc5b5c3d94b485dc9a Mon Sep 17 00:00:00 2001 From: secret_online Date: Thu, 18 Dec 2025 21:43:14 +1300 Subject: [PATCH 011/113] Some level of item placement IT's still not right, but at least it's getting easier to test this mod --- .../tinyflowers/datagen/ItemTagProvider.java | 18 +------------ .../data/minecraft/tags/item/bee_food.json | 2 +- .../tiny_flowers/tags/item/tiny_flowers.json | 25 ------------------- .../secretonline/tinyflowers/TinyFlowers.java | 2 +- .../tinyflowers/blocks/TinyGardenBlock.java | 5 ++-- .../blocks/TinyGardenBlockEntity.java | 13 ++++++++++ .../tinyflowers/data/TinyFlowerData.java | 23 +++++++++++++++++ .../tinyflowers/items/ModItemTags.java | 10 -------- .../tinyflowers/items/TinyFlowerItem.java | 18 +++++++++---- 9 files changed, 55 insertions(+), 61 deletions(-) delete mode 100644 src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json delete mode 100644 src/main/java/co/secretonline/tinyflowers/items/ModItemTags.java diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java index 8ef11dfe..98daeba9 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java @@ -2,16 +2,12 @@ import java.util.concurrent.CompletableFuture; -import co.secretonline.tinyflowers.blocks.FlowerVariant; -import co.secretonline.tinyflowers.items.ModItemTags; import co.secretonline.tinyflowers.items.ModItems; 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.ConventionalItemTags; import net.minecraft.core.HolderLookup; -import net.minecraft.data.tags.TagAppender; import net.minecraft.tags.ItemTags; -import net.minecraft.world.item.Item; public class ItemTagProvider extends FabricTagProvider.FabricValueLookupTagProvider.ItemTagProvider { public ItemTagProvider(FabricDataOutput output, CompletableFuture registriesFuture) { @@ -20,19 +16,7 @@ public ItemTagProvider(FabricDataOutput output, CompletableFuture builder = valueLookupBuilder(ModItemTags.TINY_FLOWERS); - - // Add all items/blocks that correspond to tiny flower variants to tag - for (FlowerVariant variant : FlowerVariant.values()) { - if (variant.isEmpty()) { - continue; - } - - builder.add(variant.asItem()); - } - - valueLookupBuilder(ItemTags.BEE_FOOD).addTag(ModItemTags.TINY_FLOWERS); + valueLookupBuilder(ItemTags.BEE_FOOD).add(ModItems.TINY_FLOWER_ITEM); valueLookupBuilder(ConventionalItemTags.SHEAR_TOOLS).add(ModItems.FLORISTS_SHEARS_ITEM); } diff --git a/src/main/generated/data/minecraft/tags/item/bee_food.json b/src/main/generated/data/minecraft/tags/item/bee_food.json index 78b0852f..79df3f3f 100644 --- a/src/main/generated/data/minecraft/tags/item/bee_food.json +++ b/src/main/generated/data/minecraft/tags/item/bee_food.json @@ -1,5 +1,5 @@ { "values": [ - "#tiny_flowers:tiny_flowers" + "tiny_flowers:tiny_flower" ] } \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json b/src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json deleted file mode 100644 index 5ff44999..00000000 --- a/src/main/generated/data/tiny_flowers/tags/item/tiny_flowers.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "values": [ - "tiny_flowers:tiny_flower", - "minecraft:pink_petals", - "minecraft:wildflowers", - "minecraft:leaf_litter", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air", - "minecraft:air" - ] -} \ No newline at end of file diff --git a/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java b/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java index c5549b5d..e94ef708 100644 --- a/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java +++ b/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java @@ -25,9 +25,9 @@ public static Identifier id(String path) { public void onInitialize() { ModRegistries.initialize(); ModComponents.initialize(); + ModItems.initialize(); ModBlocks.initialize(); ModBlockEntities.initialize(); - ModItems.initialize(); ModRecipeSerializers.initialize(); } } diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java index 4f7347bb..aaf6e1fe 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java @@ -10,7 +10,7 @@ import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; -import co.secretonline.tinyflowers.items.ModItemTags; +import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.items.ModItems; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -85,7 +85,8 @@ public BlockState mirror(BlockState state, Mirror mirror) { @Override public boolean canBeReplaced(BlockState state, BlockPlaceContext context) { - return !context.isSecondaryUseActive() && context.getItemInHand().is(ModItemTags.TINY_FLOWERS) + return !context.isSecondaryUseActive() + && (TinyFlowerData.findByItemStack(context.getLevel().registryAccess(), context.getItemInHand()) != null) && hasFreeSpace(context.getLevel(), context.getClickedPos()) ? true : super.canBeReplaced(state, context); diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java index e03d241f..840dfeab 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java @@ -5,10 +5,13 @@ import org.jetbrains.annotations.Nullable; +import co.secretonline.tinyflowers.components.ModComponents; +import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.data.TinyFlowerData; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; import net.minecraft.core.RegistryAccess; +import net.minecraft.core.component.DataComponentGetter; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; @@ -151,6 +154,16 @@ public Packet getUpdatePacket() { return ClientboundBlockEntityDataPacket.create(this); } + @Override + protected void applyImplicitComponents(DataComponentGetter dataComponentGetter) { + super.applyImplicitComponents(dataComponentGetter); + + TinyFlowerComponent itemComponent = dataComponentGetter.get(ModComponents.TINY_FLOWER); + if (itemComponent != null) { + addFlower(itemComponent.id()); + } + } + private void markUpdated() { this.setChanged(); this.getLevel().sendBlockUpdated(this.getBlockPos(), this.getBlockState(), this.getBlockState(), 3); diff --git a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java index 057604de..6943d205 100644 --- a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java +++ b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java @@ -93,6 +93,29 @@ public static TinyFlowerData findById(RegistryAccess registryAccess, Identifier return ofPredicate(registryAccess, flowerData -> flowerData.id().equals(id)); } + @Nullable + public static TinyFlowerData findByItemStack(RegistryAccess registryAccess, ItemStack itemStack) { + var key = BuiltInRegistries.ITEM.getKey(itemStack.getItem()); + + return ofPredicate(registryAccess, flowerData -> { + if (!flowerData.shouldCreateItem()) { + // If the block is already segmented, then just check the original block ID. + return key.equals(flowerData.originalId()); + } + + // Ensure the item stack has the right component. + // This does mean that items other than this mod's Tiny Flower item will trigger + // this, but I think that's fine. If someone has gone out of their way to add + // the component to their item, then they probably wanted it to happen. + TinyFlowerComponent component = itemStack.get(ModComponents.TINY_FLOWER); + if (component == null) { + return false; + } + + return component.id().equals(flowerData.id()); + }); + } + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerData::id), Identifier.CODEC.fieldOf("original_id").forGetter(TinyFlowerData::originalId), diff --git a/src/main/java/co/secretonline/tinyflowers/items/ModItemTags.java b/src/main/java/co/secretonline/tinyflowers/items/ModItemTags.java deleted file mode 100644 index 65d08585..00000000 --- a/src/main/java/co/secretonline/tinyflowers/items/ModItemTags.java +++ /dev/null @@ -1,10 +0,0 @@ -package co.secretonline.tinyflowers.items; - -import co.secretonline.tinyflowers.TinyFlowers; -import net.minecraft.core.registries.Registries; -import net.minecraft.tags.TagKey; -import net.minecraft.world.item.Item; - -public class ModItemTags { - public static final TagKey TINY_FLOWERS = TagKey.create(Registries.ITEM, TinyFlowers.id("tiny_flowers")); -} diff --git a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java index 0085c3a3..e2863be4 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java @@ -1,18 +1,27 @@ package co.secretonline.tinyflowers.items; -// import co.secretonline.tinyflowers.blocks.ModBlocks;S +import org.jspecify.annotations.Nullable; + +import co.secretonline.tinyflowers.blocks.ModBlocks; +import co.secretonline.tinyflowers.blocks.TinyGardenBlock; import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import net.minecraft.network.chat.Component; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.block.state.BlockState; public class TinyFlowerItem extends BlockItem { public TinyFlowerItem(Item.Properties properties) { - // super(ModBlocks.TINY_GARDEN, properties); - super(Blocks.DIRT, properties); + super(ModBlocks.TINY_GARDEN_BLOCK, properties); + } + + @Override + protected @Nullable BlockState getPlacementState(BlockPlaceContext blockPlaceContext) { + return super.getPlacementState(blockPlaceContext) + .setValue(TinyGardenBlock.FACING, blockPlaceContext.getHorizontalDirection().getOpposite()); } @Override @@ -24,5 +33,4 @@ public Component getName(ItemStack itemStack) { return Component.translatable(tinyFlowerComponent.getTranslationKey()); } - } From 0f6325dde20e448b42f7b2bfd9a37528f6433f5e Mon Sep 17 00:00:00 2001 From: secret_online Date: Fri, 19 Dec 2025 13:14:29 +1300 Subject: [PATCH 012/113] Refactor data generation --- .../tinyflowers/datagen/DataGenerator.java | 24 ++--- .../datagen/data/DefaultTinyFlowerData.java | 87 ------------------- .../generators/DefaultDataGenerator.java | 15 ++++ .../datagen/generators/PackContributor.java | 8 ++ .../generators/mods/BaseModDataGenerator.java | 36 ++++++++ .../mods/TinyFlowersDataGenerator.java | 58 +++++++++++++ .../generators/mods/VanillaDataGenerator.java | 27 ++++++ .../FloristsShearsItemModelProvider.java | 2 +- .../FloristsShearsRecipeProvider.java | 2 +- .../{ => providers}/ItemTagProvider.java | 2 +- .../ModFlowersProvider.java} | 15 ++-- .../ModModelProvider.java} | 26 ++++-- .../ModRecipeProvider.java} | 19 ++-- .../tiny_flowers/tiny_flower/leaf_litter.json | 5 ++ .../tiny_flowers/tiny_flower/pink_petals.json | 5 ++ .../tiny_flowers/tiny_flower/wildflowers.json | 5 ++ .../tiny_flowers/tiny_flower/leaf_litter.json | 5 -- .../tiny_flowers/tiny_flower/pink_petals.json | 5 -- .../tiny_flowers/tiny_flower/wildflowers.json | 5 -- .../tinyflowers/data/TinyFlowerData.java | 41 +++++---- 20 files changed, 231 insertions(+), 161 deletions(-) delete mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/generators/PackContributor.java create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java rename src/client/java/co/secretonline/tinyflowers/datagen/{ => providers}/FloristsShearsItemModelProvider.java (94%) rename src/client/java/co/secretonline/tinyflowers/datagen/{ => providers}/FloristsShearsRecipeProvider.java (98%) rename src/client/java/co/secretonline/tinyflowers/datagen/{ => providers}/ItemTagProvider.java (94%) rename src/client/java/co/secretonline/tinyflowers/datagen/{TinyFlowersProvider.java => providers/ModFlowersProvider.java} (70%) rename src/client/java/co/secretonline/tinyflowers/datagen/{TinyFlowersItemModelProvider.java => providers/ModModelProvider.java} (70%) rename src/client/java/co/secretonline/tinyflowers/datagen/{TinyFlowersRecipeProvider.java => providers/ModRecipeProvider.java} (70%) create mode 100644 src/main/generated/data/minecraft/tiny_flowers/tiny_flower/leaf_litter.json create mode 100644 src/main/generated/data/minecraft/tiny_flowers/tiny_flower/pink_petals.json create mode 100644 src/main/generated/data/minecraft/tiny_flowers/tiny_flower/wildflowers.json delete mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/leaf_litter.json delete mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/pink_petals.json delete mode 100644 src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/wildflowers.json diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java index 0fa97385..c9910f8d 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/DataGenerator.java @@ -1,6 +1,11 @@ package co.secretonline.tinyflowers.datagen; -import co.secretonline.tinyflowers.datagen.data.DefaultTinyFlowerData; +import java.util.List; + +import co.secretonline.tinyflowers.datagen.generators.DefaultDataGenerator; +import co.secretonline.tinyflowers.datagen.generators.PackContributor; +import co.secretonline.tinyflowers.datagen.generators.mods.TinyFlowersDataGenerator; +import co.secretonline.tinyflowers.datagen.generators.mods.VanillaDataGenerator; import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; @@ -8,16 +13,13 @@ public class DataGenerator implements DataGeneratorEntrypoint { @Override public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { FabricDataGenerator.Pack pack = fabricDataGenerator.createPack(); + List contributors = List.of( + new DefaultDataGenerator(), + new TinyFlowersDataGenerator(), + new VanillaDataGenerator()); - // pack.addProvider(BlockModelProvider::new); - // pack.addProvider(BlockTagProvider::new); - // pack.addProvider(BlockLootTableProvider::new); - pack.addProvider(ItemTagProvider::new); - pack.addProvider(FloristsShearsRecipeProvider::new); - pack.addProvider(FloristsShearsItemModelProvider::new); - pack.addProvider(TinyFlowersItemModelProvider.factoryFor(DefaultTinyFlowerData.ALL_VARIANTS)); - pack.addProvider(TinyFlowersRecipeProvider.factoryFor(DefaultTinyFlowerData.ALL_VARIANTS)); - pack.addProvider(TinyFlowersProvider.factoryFor(DefaultTinyFlowerData.ALL_VARIANTS)); + for (PackContributor contrib : contributors) { + contrib.addProviders(pack); + } } - } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java b/src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java deleted file mode 100644 index 2da64fd4..00000000 --- a/src/client/java/co/secretonline/tinyflowers/datagen/data/DefaultTinyFlowerData.java +++ /dev/null @@ -1,87 +0,0 @@ -package co.secretonline.tinyflowers.datagen.data; - -import java.util.ArrayList; -import java.util.List; - -import org.jetbrains.annotations.Nullable; - -import co.secretonline.tinyflowers.TinyFlowers; -import co.secretonline.tinyflowers.data.TinyFlowerData; -import net.minecraft.resources.Identifier; -import net.minecraft.util.Mth; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; - -public class DefaultTinyFlowerData { - - public static final List ALL_VARIANTS = new ArrayList<>(); - - private static TinyFlowerData register(Identifier id, Identifier originalId, boolean shouldCreateItem, - @Nullable Entry suspiciousStewEffect) { - TinyFlowerData instance = new TinyFlowerData(id, originalId, shouldCreateItem, - suspiciousStewEffect == null ? List.of() : List.of(suspiciousStewEffect)); - ALL_VARIANTS.add(instance); - return instance; - } - - public static final TinyFlowerData PINK_PETALS = register(TinyFlowers.id("pink_petals"), - Identifier.withDefaultNamespace("pink_petals"), false, null); - public static final TinyFlowerData WILDFLOWERS = register(TinyFlowers.id("wildflowers"), - Identifier.withDefaultNamespace("wildflowers"), false, null); - public static final TinyFlowerData LEAF_LITTER = register(TinyFlowers.id("leaf_litter"), - Identifier.withDefaultNamespace("leaf_litter"), false, null); - public static final TinyFlowerData DANDELION = register(TinyFlowers.id("tiny_dandelion"), - Identifier.withDefaultNamespace("dandelion"), - true, new Entry(MobEffects.SATURATION, toTicks(0.35f))); - public static final TinyFlowerData POPPY = register(TinyFlowers.id("tiny_poppy"), - Identifier.withDefaultNamespace("poppy"), - true, new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f))); - public static final TinyFlowerData BLUE_ORCHID = register(TinyFlowers.id("tiny_blue_orchid"), - Identifier.withDefaultNamespace("blue_orchid"), - true, new Entry(MobEffects.SATURATION, toTicks(0.35f))); - public static final TinyFlowerData ALLIUM = register(TinyFlowers.id("tiny_allium"), - Identifier.withDefaultNamespace("allium"), - true, new Entry(MobEffects.FIRE_RESISTANCE, toTicks(3.0f))); - public static final TinyFlowerData AZURE_BLUET = register(TinyFlowers.id("tiny_azure_bluet"), - Identifier.withDefaultNamespace("azure_bluet"), - true, new Entry(MobEffects.BLINDNESS, toTicks(11.0f))); - public static final TinyFlowerData RED_TULIP = register(TinyFlowers.id("tiny_red_tulip"), - Identifier.withDefaultNamespace("red_tulip"), - true, new Entry(MobEffects.WEAKNESS, toTicks(7.0f))); - public static final TinyFlowerData ORANGE_TULIP = register(TinyFlowers.id("tiny_orange_tulip"), - Identifier.withDefaultNamespace("orange_tulip"), - true, new Entry(MobEffects.WEAKNESS, toTicks(7.0f))); - public static final TinyFlowerData WHITE_TULIP = register(TinyFlowers.id("tiny_white_tulip"), - Identifier.withDefaultNamespace("white_tulip"), - true, new Entry(MobEffects.WEAKNESS, toTicks(7.0f))); - public static final TinyFlowerData PINK_TULIP = register(TinyFlowers.id("tiny_pink_tulip"), - Identifier.withDefaultNamespace("pink_tulip"), - true, new Entry(MobEffects.WEAKNESS, toTicks(7.0f))); - public static final TinyFlowerData OXEYE_DAISY = register(TinyFlowers.id("tiny_oxeye_daisy"), - Identifier.withDefaultNamespace("oxeye_daisy"), - true, new Entry(MobEffects.REGENERATION, toTicks(7.0f))); - public static final TinyFlowerData CORNFLOWER = register(TinyFlowers.id("tiny_cornflower"), - Identifier.withDefaultNamespace("cornflower"), - true, new Entry(MobEffects.JUMP_BOOST, toTicks(5.0f))); - public static final TinyFlowerData LILY_OF_THE_VALLEY = register( - TinyFlowers.id("tiny_lily_of_the_valley"), Identifier.withDefaultNamespace("lily_of_the_valley"), - true, new Entry(MobEffects.POISON, toTicks(11.0f))); - public static final TinyFlowerData TORCHFLOWER = register(TinyFlowers.id("tiny_torchflower"), - Identifier.withDefaultNamespace("torchflower"), - true, new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f))); - public static final TinyFlowerData CLOSED_EYEBLOSSOM = register(TinyFlowers.id("tiny_closed_eyeblossom"), - Identifier.withDefaultNamespace("closed_eyeblossom"), - true, new Entry(MobEffects.NAUSEA, toTicks(7.0f))); - public static final TinyFlowerData OPEN_EYEBLOSSOM = register(TinyFlowers.id("tiny_open_eyeblossom"), - Identifier.withDefaultNamespace("open_eyeblossom"), - true, new Entry(MobEffects.BLINDNESS, toTicks(11.0f))); - public static final TinyFlowerData WITHER_ROSE = register(TinyFlowers.id("tiny_wither_rose"), - Identifier.withDefaultNamespace("wither_rose"), - true, new Entry(MobEffects.WITHER, toTicks(7.0f))); - public static final TinyFlowerData CACTUS_FLOWER = register(TinyFlowers.id("tiny_cactus_flower"), - Identifier.withDefaultNamespace("cactus_flower"), true, null); - - private static int toTicks(float seconds) { - return Mth.floor(seconds * 20.0f); - } -} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java new file mode 100644 index 00000000..bfe51a13 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java @@ -0,0 +1,15 @@ +package co.secretonline.tinyflowers.datagen.generators; + +import co.secretonline.tinyflowers.datagen.providers.FloristsShearsItemModelProvider; +import co.secretonline.tinyflowers.datagen.providers.FloristsShearsRecipeProvider; +import co.secretonline.tinyflowers.datagen.providers.ItemTagProvider; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; + +public class DefaultDataGenerator implements PackContributor { + @Override + public void addProviders(Pack pack) { + pack.addProvider(ItemTagProvider::new); + pack.addProvider(FloristsShearsRecipeProvider::new); + pack.addProvider(FloristsShearsItemModelProvider::new); + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/PackContributor.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/PackContributor.java new file mode 100644 index 00000000..e8fed757 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/PackContributor.java @@ -0,0 +1,8 @@ +package co.secretonline.tinyflowers.datagen.generators; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; + +@FunctionalInterface +public interface PackContributor { + void addProviders(FabricDataGenerator.Pack pack); +} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java new file mode 100644 index 00000000..9a9c3110 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java @@ -0,0 +1,36 @@ +package co.secretonline.tinyflowers.datagen.generators.mods; + +import java.util.List; +import java.util.concurrent.CompletableFuture; + +import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.datagen.generators.PackContributor; +import co.secretonline.tinyflowers.datagen.providers.ModModelProvider; +import co.secretonline.tinyflowers.datagen.providers.ModFlowersProvider; +import co.secretonline.tinyflowers.datagen.providers.ModRecipeProvider; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.minecraft.core.HolderLookup; +import net.minecraft.util.Mth; + +public abstract class BaseModDataGenerator implements PackContributor { + public abstract String getModId(); + + public abstract List getFlowerData(); + + @Override + public void addProviders(Pack pack) { + String modId = getModId(); + List data = this.getFlowerData(); + + pack.addProvider((FabricDataOutput output) -> new ModModelProvider(modId, data, output)); + pack.addProvider((FabricDataOutput output, + CompletableFuture registriesFuture) -> new ModRecipeProvider(modId, data, + output, registriesFuture)); + pack.addProvider((FabricDataOutput output) -> new ModFlowersProvider(modId, data, output)); + } + + protected static int toTicks(float seconds) { + return Mth.floor(seconds * 20.0f); + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java new file mode 100644 index 00000000..9dc1d678 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java @@ -0,0 +1,58 @@ +package co.secretonline.tinyflowers.datagen.generators.mods; + +import java.util.List; + +import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import net.minecraft.resources.Identifier; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; + +public class TinyFlowersDataGenerator extends BaseModDataGenerator { + @Override + public String getModId() { + return TinyFlowers.MOD_ID; + } + + @Override + public List getFlowerData() { + return List.of( + new TinyFlowerData(TinyFlowers.id("tiny_dandelion"), Identifier.withDefaultNamespace("dandelion"), false, + List.of(new Entry(MobEffects.SATURATION, toTicks(0.35f)))), + new TinyFlowerData(TinyFlowers.id("tiny_poppy"), Identifier.withDefaultNamespace("poppy"), false, + List.of(new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_blue_orchid"), Identifier.withDefaultNamespace("blue_orchid"), false, + List.of(new Entry(MobEffects.SATURATION, toTicks(0.35f)))), + new TinyFlowerData(TinyFlowers.id("tiny_allium"), Identifier.withDefaultNamespace("allium"), false, + List.of(new Entry(MobEffects.FIRE_RESISTANCE, toTicks(3.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_azure_bluet"), Identifier.withDefaultNamespace("azure_bluet"), false, + List.of(new Entry(MobEffects.BLINDNESS, toTicks(11.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_red_tulip"), Identifier.withDefaultNamespace("red_tulip"), false, + List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_orange_tulip"), Identifier.withDefaultNamespace("orange_tulip"), false, + List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_white_tulip"), Identifier.withDefaultNamespace("white_tulip"), false, + List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_pink_tulip"), Identifier.withDefaultNamespace("pink_tulip"), false, + List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_oxeye_daisy"), Identifier.withDefaultNamespace("oxeye_daisy"), false, + List.of(new Entry(MobEffects.REGENERATION, toTicks(7.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_cornflower"), Identifier.withDefaultNamespace("cornflower"), false, + List.of(new Entry(MobEffects.JUMP_BOOST, toTicks(5.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_lily_of_the_valley"), + Identifier.withDefaultNamespace("lily_of_the_valley"), false, + List.of(new Entry(MobEffects.POISON, toTicks(11.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_torchflower"), Identifier.withDefaultNamespace("torchflower"), false, + List.of(new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_closed_eyeblossom"), + Identifier.withDefaultNamespace("closed_eyeblossom"), false, + List.of(new Entry(MobEffects.NAUSEA, toTicks(7.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_open_eyeblossom"), Identifier.withDefaultNamespace("open_eyeblossom"), + false, List.of(new Entry(MobEffects.BLINDNESS, toTicks(11.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_wither_rose"), Identifier.withDefaultNamespace("wither_rose"), false, + List.of(new Entry(MobEffects.WITHER, toTicks(7.0f)))), + new TinyFlowerData(TinyFlowers.id("tiny_cactus_flower"), Identifier.withDefaultNamespace("cactus_flower"), + false, + List.of())); + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java new file mode 100644 index 00000000..86dffc43 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java @@ -0,0 +1,27 @@ +package co.secretonline.tinyflowers.datagen.generators.mods; + +import java.util.List; + +import co.secretonline.tinyflowers.data.TinyFlowerData; +import net.minecraft.resources.Identifier; + +public class VanillaDataGenerator extends BaseModDataGenerator { + @Override + public String getModId() { + return Identifier.DEFAULT_NAMESPACE; + } + + @Override + public List getFlowerData() { + return List.of( + new TinyFlowerData(Identifier.withDefaultNamespace("pink_petals"), + Identifier.withDefaultNamespace("pink_petals"), true, + List.of()), + new TinyFlowerData(Identifier.withDefaultNamespace("wildflowers"), + Identifier.withDefaultNamespace("wildflowers"), true, + List.of()), + new TinyFlowerData(Identifier.withDefaultNamespace("leaf_litter"), + Identifier.withDefaultNamespace("leaf_litter"), true, + List.of())); + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsItemModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/FloristsShearsItemModelProvider.java similarity index 94% rename from src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsItemModelProvider.java rename to src/client/java/co/secretonline/tinyflowers/datagen/providers/FloristsShearsItemModelProvider.java index 8f9b9d3f..100ba2a5 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsItemModelProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/FloristsShearsItemModelProvider.java @@ -1,4 +1,4 @@ -package co.secretonline.tinyflowers.datagen; +package co.secretonline.tinyflowers.datagen.providers; import co.secretonline.tinyflowers.items.ModItems; import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsRecipeProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/FloristsShearsRecipeProvider.java similarity index 98% rename from src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsRecipeProvider.java rename to src/client/java/co/secretonline/tinyflowers/datagen/providers/FloristsShearsRecipeProvider.java index 3b16e500..b68b963f 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/FloristsShearsRecipeProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/FloristsShearsRecipeProvider.java @@ -1,4 +1,4 @@ -package co.secretonline.tinyflowers.datagen; +package co.secretonline.tinyflowers.datagen.providers; import java.util.Map; import java.util.concurrent.CompletableFuture; diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ItemTagProvider.java similarity index 94% rename from src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java rename to src/client/java/co/secretonline/tinyflowers/datagen/providers/ItemTagProvider.java index 98daeba9..b392ffc7 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/ItemTagProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ItemTagProvider.java @@ -1,4 +1,4 @@ -package co.secretonline.tinyflowers.datagen; +package co.secretonline.tinyflowers.datagen.providers; import java.util.concurrent.CompletableFuture; diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java similarity index 70% rename from src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java rename to src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java index 27039783..00940681 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java @@ -1,4 +1,4 @@ -package co.secretonline.tinyflowers.datagen; +package co.secretonline.tinyflowers.datagen.providers; import java.util.HashMap; import java.util.List; @@ -7,29 +7,26 @@ import co.secretonline.tinyflowers.data.ModRegistries; import co.secretonline.tinyflowers.data.TinyFlowerData; -import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.data.CachedOutput; import net.minecraft.data.DataProvider; import net.minecraft.data.PackOutput.PathProvider; import net.minecraft.resources.Identifier; -public class TinyFlowersProvider implements DataProvider { +public class ModFlowersProvider implements DataProvider { private final PathProvider tinyFlowersPathProvider; + private final String modId; private final List flowers; - public TinyFlowersProvider(List flowers, FabricDataOutput packOutput) { + public ModFlowersProvider(String modId, List flowers, FabricDataOutput packOutput) { this.tinyFlowersPathProvider = packOutput.createRegistryElementsPathProvider(ModRegistries.TINY_FLOWER); + this.modId = modId; this.flowers = flowers; } - public static Pack.Factory factoryFor(List flowers) { - return (FabricDataOutput output) -> new TinyFlowersProvider(flowers, output); - } - @Override public String getName() { - return "Tiny Flower Variants"; + return "Flowers registry data (" + this.modId + ")"; } @Override diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersItemModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java similarity index 70% rename from src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersItemModelProvider.java rename to src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java index 0b808d7a..4f9cfe18 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersItemModelProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java @@ -1,8 +1,10 @@ -package co.secretonline.tinyflowers.datagen; +package co.secretonline.tinyflowers.datagen.providers; import java.util.List; import java.util.stream.Collectors; +import org.jspecify.annotations.NonNull; + import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.data.TinyFlowerData; @@ -20,32 +22,38 @@ import net.minecraft.client.renderer.item.SelectItemModel; import net.minecraft.resources.Identifier; -public class TinyFlowersItemModelProvider extends FabricModelProvider { +public class ModModelProvider extends FabricModelProvider { + private final String modId; private final List flowers; - public TinyFlowersItemModelProvider(List flowers, FabricDataOutput generator) { + public ModModelProvider(String modId, List flowers, FabricDataOutput generator) { super(generator); + this.modId = modId; this.flowers = flowers; } - public static Pack.Factory factoryFor(List flowers) { - return (FabricDataOutput output) -> new TinyFlowersItemModelProvider(flowers, output); + public static Pack.Factory factoryFor(String modName, List flowers) { + return (FabricDataOutput output) -> new ModModelProvider(modName, flowers, output); } @Override - public void generateBlockStateModels(BlockModelGenerators blockStateModelGenerator) { + public void generateBlockStateModels(@NonNull BlockModelGenerators blockStateModelGenerator) { } @Override - public void generateItemModels(ItemModelGenerators itemModelGenerator) { + public void generateItemModels(@NonNull ItemModelGenerators itemModelGenerator) { List> list = this.flowers.stream() - .filter(flowerData -> flowerData.shouldCreateItem()) + .filter(flowerData -> !flowerData.isSegmentable()) .map(flowerData -> ItemModelUtils.when( new TinyFlowerComponent(flowerData.id()), modelForIdentifier(flowerData.id(), itemModelGenerator))) .collect(Collectors.toList()); + if (list.size() == 0) { + return; + } + itemModelGenerator.itemModelOutput.accept(ModItems.TINY_FLOWER_ITEM, ItemModelUtils.select( new TinyFlowerProperty(), @@ -64,6 +72,6 @@ private ItemModel.Unbaked modelForIdentifier(Identifier id, ItemModelGenerators @Override public String getName() { - return "TinyFlowersItemModelProvider"; + return "Flowers models (" + this.modId + ")"; } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersRecipeProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java similarity index 70% rename from src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersRecipeProvider.java rename to src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java index 800ba8ee..8664a4ed 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/TinyFlowersRecipeProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java @@ -1,11 +1,10 @@ -package co.secretonline.tinyflowers.datagen; +package co.secretonline.tinyflowers.datagen.providers; import java.util.List; import java.util.concurrent.CompletableFuture; import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.items.ModItems; -import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack.RegistryDependentFactory; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; import net.minecraft.core.HolderLookup; @@ -14,22 +13,18 @@ import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.data.recipes.RecipeProvider; -public class TinyFlowersRecipeProvider extends FabricRecipeProvider { +public class ModRecipeProvider extends FabricRecipeProvider { + private final String modId; private final List flowers; - public TinyFlowersRecipeProvider(List flowers, FabricDataOutput output, + public ModRecipeProvider(String modId, List flowers, FabricDataOutput output, CompletableFuture registriesFuture) { super(output, registriesFuture); + this.modId = modId; this.flowers = flowers; } - public static RegistryDependentFactory factoryFor(List flowers) { - return (FabricDataOutput output, - CompletableFuture registriesFuture) -> new TinyFlowersRecipeProvider(flowers, output, - registriesFuture); - } - @Override protected RecipeProvider createRecipeProvider(HolderLookup.Provider registryLookup, RecipeOutput exporter) { @@ -39,7 +34,7 @@ public void buildRecipes() { // Generate recipes for each flower variant for (TinyFlowerData flowerData : flowers) { // Create tiny flower items for variants that need them. - if (flowerData.shouldCreateItem()) { + if (!flowerData.isSegmentable()) { shapeless(RecipeCategory.DECORATIONS, flowerData.getItemStack(4)) .requires(ModItems.FLORISTS_SHEARS_ITEM) .requires(BuiltInRegistries.ITEM.getValue(flowerData.originalId())) @@ -54,6 +49,6 @@ public void buildRecipes() { @Override public String getName() { - return "TinyFlowersRecipeProvider"; + return "Flowers recipes (" + this.modId + ")"; } } diff --git a/src/main/generated/data/minecraft/tiny_flowers/tiny_flower/leaf_litter.json b/src/main/generated/data/minecraft/tiny_flowers/tiny_flower/leaf_litter.json new file mode 100644 index 00000000..e30947e9 --- /dev/null +++ b/src/main/generated/data/minecraft/tiny_flowers/tiny_flower/leaf_litter.json @@ -0,0 +1,5 @@ +{ + "id": "minecraft:leaf_litter", + "is_segmented": true, + "original_id": "minecraft:leaf_litter" +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tiny_flowers/tiny_flower/pink_petals.json b/src/main/generated/data/minecraft/tiny_flowers/tiny_flower/pink_petals.json new file mode 100644 index 00000000..cac36e68 --- /dev/null +++ b/src/main/generated/data/minecraft/tiny_flowers/tiny_flower/pink_petals.json @@ -0,0 +1,5 @@ +{ + "id": "minecraft:pink_petals", + "is_segmented": true, + "original_id": "minecraft:pink_petals" +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tiny_flowers/tiny_flower/wildflowers.json b/src/main/generated/data/minecraft/tiny_flowers/tiny_flower/wildflowers.json new file mode 100644 index 00000000..57c76788 --- /dev/null +++ b/src/main/generated/data/minecraft/tiny_flowers/tiny_flower/wildflowers.json @@ -0,0 +1,5 @@ +{ + "id": "minecraft:wildflowers", + "is_segmented": true, + "original_id": "minecraft:wildflowers" +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/leaf_litter.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/leaf_litter.json deleted file mode 100644 index b0c7a121..00000000 --- a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/leaf_litter.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "id": "tiny_flowers:leaf_litter", - "original_id": "minecraft:leaf_litter", - "should_create_item": false -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/pink_petals.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/pink_petals.json deleted file mode 100644 index a0387bd1..00000000 --- a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/pink_petals.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "id": "tiny_flowers:pink_petals", - "original_id": "minecraft:pink_petals", - "should_create_item": false -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/wildflowers.json b/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/wildflowers.json deleted file mode 100644 index 6b9f0654..00000000 --- a/src/main/generated/data/tiny_flowers/tiny_flowers/tiny_flower/wildflowers.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "id": "tiny_flowers:wildflowers", - "original_id": "minecraft:wildflowers", - "should_create_item": false -} \ No newline at end of file diff --git a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java index 6943d205..e5c14bf7 100644 --- a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java +++ b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java @@ -5,6 +5,7 @@ import java.util.function.Predicate; import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; @@ -27,19 +28,29 @@ /** * Data for a tiny flower variant. * - * @param id A unique identifier for this vatiant. Usually matches - * the pack namespace and file name. Used for getting - * textures, models, and other things. - * @param originalId The original plant block that is used to create the - * tiny flowers. - * @param shouldCreateItem Whether an entry should be added into the Creative - * menu for this variant. Defaults to true. Set to false - * if this is already a segmentable block like Pink - * Petals or Wildflowers. - * @param stewEffect A potion effect for Suspicious Stew. + * @param id A unique identifier for this vatiant. Usually matches + * the pack namespace and file name. Used for getting + * textures, models, and other things. + * @param originalId The original plant block that is used to create the + * tiny flowers. + * @param isSegmentable Whether an entry is for a block that implements + * {@link net.minecraft.world.level.block.SegmentableBlock + * SegmentableBlock}. This flag affects the behaviour of + * the + * mod in the following ways: + *
    + *
  • Using Florists' Shears on a Tiny Garden with this + * variant will pop the original item, rather than a Tiny + * Flower item. + *
  • The data generation will not create a crafting + * recipe + * for creating Tiny Flowers of this type, as the item + * already exists. + *
+ * @param stewEffect A potion effect for Suspicious Stew. */ -public record TinyFlowerData(Identifier id, Identifier originalId, boolean shouldCreateItem, - @Nullable List suspiciousStewEffects) implements SuspiciousEffectHolder { +public record TinyFlowerData(Identifier id, Identifier originalId, boolean isSegmentable, + @NonNull List suspiciousStewEffects) implements SuspiciousEffectHolder { @Override public SuspiciousStewEffects getSuspiciousEffects() { @@ -53,7 +64,7 @@ public SuspiciousStewEffects getSuspiciousEffects() { public ItemStack getItemStack(int count) { // For existing segmented-like flower types, just pop one of those items // instead. - if (!shouldCreateItem()) { + if (isSegmentable()) { Optional> item = BuiltInRegistries.ITEM.get(this.originalId); if (item.isEmpty()) { // Since this mod is data driven, it's possible that a garden block or tiny @@ -98,7 +109,7 @@ public static TinyFlowerData findByItemStack(RegistryAccess registryAccess, Item var key = BuiltInRegistries.ITEM.getKey(itemStack.getItem()); return ofPredicate(registryAccess, flowerData -> { - if (!flowerData.shouldCreateItem()) { + if (flowerData.isSegmentable()) { // If the block is already segmented, then just check the original block ID. return key.equals(flowerData.originalId()); } @@ -119,7 +130,7 @@ public static TinyFlowerData findByItemStack(RegistryAccess registryAccess, Item public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerData::id), Identifier.CODEC.fieldOf("original_id").forGetter(TinyFlowerData::originalId), - Codec.BOOL.optionalFieldOf("should_create_item", true).forGetter(TinyFlowerData::shouldCreateItem), + Codec.BOOL.optionalFieldOf("is_segmented", false).forGetter(TinyFlowerData::isSegmentable), Entry.CODEC.listOf().optionalFieldOf("suspicious_stew_effects", List.of()) .forGetter(TinyFlowerData::suspiciousStewEffects)) .apply(instance, TinyFlowerData::new)); From ceb31268ee9497d1065dd5522d4eab961dc09f40 Mon Sep 17 00:00:00 2001 From: secret_online Date: Fri, 19 Dec 2025 14:40:16 +1300 Subject: [PATCH 013/113] Add tooltips to garden This also collapses everything down to a single item type, using components to do the rest. This might be a bad idea, but it was easier to keep the one block item than trying to do the multiple items mapping to one block that the previous version of the mod had. --- .../recipe/tiny_flower_from_allium.json | 4 +- .../recipe/tiny_flower_from_azure_bluet.json | 4 +- .../recipe/tiny_flower_from_blue_orchid.json | 4 +- .../tiny_flower_from_cactus_flower.json | 4 +- .../tiny_flower_from_closed_eyeblossom.json | 4 +- .../recipe/tiny_flower_from_cornflower.json | 4 +- .../recipe/tiny_flower_from_dandelion.json | 4 +- .../tiny_flower_from_lily_of_the_valley.json | 4 +- .../tiny_flower_from_open_eyeblossom.json | 4 +- .../recipe/tiny_flower_from_orange_tulip.json | 4 +- .../recipe/tiny_flower_from_oxeye_daisy.json | 4 +- .../recipe/tiny_flower_from_pink_tulip.json | 4 +- .../recipe/tiny_flower_from_poppy.json | 4 +- .../recipe/tiny_flower_from_red_tulip.json | 4 +- .../recipe/tiny_flower_from_torchflower.json | 4 +- .../recipe/tiny_flower_from_white_tulip.json | 4 +- .../recipe/tiny_flower_from_wither_rose.json | 4 +- .../secretonline/tinyflowers/TinyFlowers.java | 2 +- .../tinyflowers/blocks/FlowerVariant.java | 2 +- .../tinyflowers/blocks/ModBlocks.java | 15 ------ .../tinyflowers/blocks/TinyGardenBlock.java | 23 +++++++++ .../blocks/TinyGardenBlockEntity.java | 31 +++++++++-- .../components/GardenContentsComponent.java | 51 +++++++++++++++++++ .../tinyflowers/components/ModComponents.java | 5 ++ .../components/TinyFlowerComponent.java | 10 ++-- .../tinyflowers/items/ModItems.java | 3 +- .../tinyflowers/items/TinyFlowerItem.java | 12 +++-- .../tinyflowers/mixin/ItemStackMixin.java | 14 ++--- .../assets/tiny_flowers/lang/de_at.json | 43 ++++++++-------- .../assets/tiny_flowers/lang/de_ch.json | 43 ++++++++-------- .../assets/tiny_flowers/lang/de_de.json | 43 ++++++++-------- .../assets/tiny_flowers/lang/en_us.json | 43 ++++++++-------- 32 files changed, 231 insertions(+), 177 deletions(-) create mode 100644 src/main/java/co/secretonline/tinyflowers/components/GardenContentsComponent.java diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_allium.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_allium.json index af772a41..3f8b011d 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_allium.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_allium.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_allium" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_allium" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_azure_bluet.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_azure_bluet.json index 910f8214..4f1afb5b 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_azure_bluet.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_azure_bluet.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_azure_bluet" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_azure_bluet" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_blue_orchid.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_blue_orchid.json index bf4f6bb3..e2ac980e 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_blue_orchid.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_blue_orchid.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_blue_orchid" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_blue_orchid" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cactus_flower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cactus_flower.json index 819fa4ef..5ed42504 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cactus_flower.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cactus_flower.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_cactus_flower" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_cactus_flower" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_closed_eyeblossom.json index 7a17479f..81d76507 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_closed_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_closed_eyeblossom.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_closed_eyeblossom" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_closed_eyeblossom" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cornflower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cornflower.json index 5c002e04..44cd8aff 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cornflower.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cornflower.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_cornflower" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_cornflower" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_dandelion.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_dandelion.json index 126cd236..9a53cd24 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_dandelion.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_dandelion.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_dandelion" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_dandelion" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_lily_of_the_valley.json index 3aeaae05..92f3379f 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_lily_of_the_valley.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_lily_of_the_valley.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_lily_of_the_valley" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_lily_of_the_valley" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_open_eyeblossom.json index 321f39eb..269b250f 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_open_eyeblossom.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_open_eyeblossom.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_open_eyeblossom" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_open_eyeblossom" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_orange_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_orange_tulip.json index d3446f85..eac2fb0c 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_orange_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_orange_tulip.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_orange_tulip" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_orange_tulip" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_oxeye_daisy.json index da4f7e45..17002d35 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_oxeye_daisy.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_oxeye_daisy.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_oxeye_daisy" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_oxeye_daisy" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_pink_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_pink_tulip.json index 7bb5ec03..2acdee40 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_pink_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_pink_tulip.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_pink_tulip" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_pink_tulip" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_poppy.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_poppy.json index 5f9f95ad..5b0261b7 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_poppy.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_poppy.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_poppy" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_poppy" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_red_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_red_tulip.json index 610852c1..c814bd3b 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_red_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_red_tulip.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_red_tulip" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_red_tulip" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_torchflower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_torchflower.json index d599012f..834527e8 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_torchflower.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_torchflower.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_torchflower" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_torchflower" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_white_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_white_tulip.json index 011c87e5..37e667d0 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_white_tulip.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_white_tulip.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_white_tulip" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_white_tulip" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_wither_rose.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_wither_rose.json index b46626ac..f7be5beb 100644 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_wither_rose.json +++ b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_wither_rose.json @@ -8,9 +8,7 @@ ], "result": { "components": { - "tiny_flowers:tiny_flower": { - "tiny_flower": "tiny_flowers:tiny_wither_rose" - } + "tiny_flowers:tiny_flower": "tiny_flowers:tiny_wither_rose" }, "count": 4, "id": "tiny_flowers:tiny_flower" diff --git a/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java b/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java index e94ef708..c5549b5d 100644 --- a/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java +++ b/src/main/java/co/secretonline/tinyflowers/TinyFlowers.java @@ -25,9 +25,9 @@ public static Identifier id(String path) { public void onInitialize() { ModRegistries.initialize(); ModComponents.initialize(); - ModItems.initialize(); ModBlocks.initialize(); ModBlockEntities.initialize(); + ModItems.initialize(); ModRecipeSerializers.initialize(); } } diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java b/src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java index c88f504a..a987931b 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java @@ -142,7 +142,7 @@ public Identifier getItemIdentifier() { public String getTranslationKey() { if (this.isEmpty()) { - return "item.tiny_flowers.tiny_garden.empty"; + return "block.tiny_flowers.tiny_garden.empty"; } return this.asItem().getDescriptionId(); diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java index 0ea12d5f..bbd85d0e 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java @@ -10,8 +10,6 @@ import net.minecraft.core.registries.Registries; import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockBehaviour; @@ -19,7 +17,6 @@ import net.minecraft.world.level.material.PushReaction; public class ModBlocks { - public static final Block TINY_GARDEN_BLOCK = register( "tiny_garden", TinyGardenBlock::new, @@ -40,18 +37,6 @@ private static Block register(String name, Function itemKey = ResourceKey.create(Registries.ITEM, id); - - BlockItem blockItem = new BlockItem(block, new Item.Properties().setId(itemKey).useBlockDescriptionPrefix()); - Registry.register(BuiltInRegistries.ITEM, itemKey, blockItem); - } - Registry.register(BuiltInRegistries.BLOCK_TYPE, id, codec); return Registry.register(BuiltInRegistries.BLOCK, blockKey, block); } diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java index aaf6e1fe..4a0d44e6 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java @@ -143,6 +143,29 @@ public void performBonemeal(ServerLevel serverLevel, RandomSource randomSource, } } + @Override + protected ItemStack getCloneItemStack(LevelReader levelReader, BlockPos blockPos, BlockState blockState, + boolean includeData) { + if (includeData) { + return super.getCloneItemStack(levelReader, blockPos, blockState, includeData); + } + + if (!(levelReader.getBlockEntity(blockPos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + // If there's no block entity, don't pick anything. + return ItemStack.EMPTY; + } + + List flowers = gardenBlockEntity.getFlowers(); + for (Identifier id : flowers) { + TinyFlowerData flowerData = TinyFlowerData.findById(levelReader.registryAccess(), id); + if (flowerData != null) { + return flowerData.getItemStack(1); + } + } + + return ItemStack.EMPTY; + } + private static boolean hasFreeSpace(BlockGetter world, BlockPos pos) { if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { // If there's no block entity, try prevent anything from trying to write to it diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java index 840dfeab..40517fd8 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java @@ -5,6 +5,7 @@ import org.jetbrains.annotations.Nullable; +import co.secretonline.tinyflowers.components.GardenContentsComponent; import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.data.TinyFlowerData; @@ -12,6 +13,7 @@ import net.minecraft.core.HolderLookup; import net.minecraft.core.RegistryAccess; import net.minecraft.core.component.DataComponentGetter; +import net.minecraft.core.component.DataComponentMap.Builder; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; @@ -158,12 +160,35 @@ public Packet getUpdatePacket() { protected void applyImplicitComponents(DataComponentGetter dataComponentGetter) { super.applyImplicitComponents(dataComponentGetter); - TinyFlowerComponent itemComponent = dataComponentGetter.get(ModComponents.TINY_FLOWER); - if (itemComponent != null) { - addFlower(itemComponent.id()); + GardenContentsComponent gardenComponent = dataComponentGetter.get(ModComponents.GARDEN_CONTENTS); + if (gardenComponent != null) { + setFlower(1, gardenComponent.flower1()); + setFlower(2, gardenComponent.flower2()); + setFlower(3, gardenComponent.flower3()); + setFlower(4, gardenComponent.flower4()); + } else { + TinyFlowerComponent itemComponent = dataComponentGetter.get(ModComponents.TINY_FLOWER); + if (itemComponent != null) { + addFlower(itemComponent.id()); + } } } + @Override + protected void collectImplicitComponents(Builder builder) { + super.collectImplicitComponents(builder); + + builder.set(ModComponents.GARDEN_CONTENTS, new GardenContentsComponent(flower1, flower2, flower3, flower4)); + } + + @Override + public void removeComponentsFromTag(ValueOutput valueOutput) { + valueOutput.discard("flower1"); + valueOutput.discard("flower2"); + valueOutput.discard("flower3"); + valueOutput.discard("flower4"); + } + private void markUpdated() { this.setChanged(); this.getLevel().sendBlockUpdated(this.getBlockPos(), this.getBlockState(), this.getBlockState(), 3); diff --git a/src/main/java/co/secretonline/tinyflowers/components/GardenContentsComponent.java b/src/main/java/co/secretonline/tinyflowers/components/GardenContentsComponent.java new file mode 100644 index 00000000..2ded548c --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/components/GardenContentsComponent.java @@ -0,0 +1,51 @@ +package co.secretonline.tinyflowers.components; + +import java.util.Optional; +import java.util.function.Consumer; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; + +import net.minecraft.ChatFormatting; +import net.minecraft.core.component.DataComponentGetter; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.resources.Identifier; +import net.minecraft.util.Util; +import net.minecraft.world.item.Item.TooltipContext; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.component.TooltipProvider; + +public record GardenContentsComponent(Identifier flower1, Identifier flower2, Identifier flower3, Identifier flower4) + implements TooltipProvider { + public static final String GARDEN_TEXT = "block.tiny_flowers.tiny_garden"; + public static final String EMPTY_TEXT = "block.tiny_flowers.tiny_garden.empty"; + + @Override + public void addToTooltip(TooltipContext tooltipContext, Consumer consumer, TooltipFlag tooltipFlag, + DataComponentGetter dataComponentGetter) { + + for (Identifier id : new Identifier[] { flower1, flower2, flower3, flower4 }) { + if (id == null) { + MutableComponent empty = Component.translatable(EMPTY_TEXT); + empty.withStyle(ChatFormatting.GRAY); + consumer.accept(empty); + continue; + } + + MutableComponent text = Component.translatable(Util.makeDescriptionId("block", id)); + consumer.accept(text); + } + } + + public static final Codec CODEC = RecordCodecBuilder.create(builder -> { + return builder.group( + Identifier.CODEC.optionalFieldOf("flower_1").forGetter((value) -> Optional.ofNullable(value.flower1())), + Identifier.CODEC.optionalFieldOf("flower_2").forGetter((value) -> Optional.ofNullable(value.flower2())), + Identifier.CODEC.optionalFieldOf("flower_3").forGetter((value) -> Optional.ofNullable(value.flower3())), + Identifier.CODEC.optionalFieldOf("flower_4").forGetter((value) -> Optional.ofNullable(value.flower4()))) + .apply(builder, + (optional1, optional2, optional3, optional4) -> new GardenContentsComponent( + optional1.orElse(null), optional2.orElse(null), optional3.orElse(null), optional4.orElse(null))); + }); +} diff --git a/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java b/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java index 26e0f8e1..f10e7fa4 100644 --- a/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java +++ b/src/main/java/co/secretonline/tinyflowers/components/ModComponents.java @@ -11,6 +11,11 @@ public class ModComponents { TinyFlowers.id("tiny_flower"), DataComponentType.builder().persistent(TinyFlowerComponent.CODEC).build()); + public static final DataComponentType GARDEN_CONTENTS = Registry.register( + BuiltInRegistries.DATA_COMPONENT_TYPE, + TinyFlowers.id("garden_contents"), + DataComponentType.builder().persistent(GardenContentsComponent.CODEC).build()); + public static void initialize() { } } diff --git a/src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java b/src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java index 58ec5840..4aa34e43 100644 --- a/src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java +++ b/src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java @@ -1,19 +1,15 @@ package co.secretonline.tinyflowers.components; import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.resources.Identifier; import net.minecraft.util.Util; public record TinyFlowerComponent(Identifier id) { public String getTranslationKey() { - return Util.makeDescriptionId("item", this.id()); + return Util.makeDescriptionId("block", this.id()); } - public static final Codec CODEC = RecordCodecBuilder.create(builder -> { - return builder.group( - Identifier.CODEC.fieldOf("tiny_flower").forGetter(TinyFlowerComponent::id)) - .apply(builder, TinyFlowerComponent::new); - }); + public static final Codec CODEC = Identifier.CODEC.xmap(TinyFlowerComponent::new, + TinyFlowerComponent::id); } diff --git a/src/main/java/co/secretonline/tinyflowers/items/ModItems.java b/src/main/java/co/secretonline/tinyflowers/items/ModItems.java index cb2fdae7..00ffcc82 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/ModItems.java +++ b/src/main/java/co/secretonline/tinyflowers/items/ModItems.java @@ -31,7 +31,8 @@ public class ModItems { public static final Item TINY_FLOWER_ITEM = Registry.register(BuiltInRegistries.ITEM, TINY_FLOWER_ITEM_KEY, new TinyFlowerItem( new Item.Properties() - .setId(TINY_FLOWER_ITEM_KEY))); + .setId(TINY_FLOWER_ITEM_KEY) + .useBlockDescriptionPrefix())); public static void initialize() { ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.TOOLS_AND_UTILITIES).register((itemGroup) -> { diff --git a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java index e2863be4..4369fe2b 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java @@ -4,6 +4,7 @@ import co.secretonline.tinyflowers.blocks.ModBlocks; import co.secretonline.tinyflowers.blocks.TinyGardenBlock; +import co.secretonline.tinyflowers.components.GardenContentsComponent; import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import net.minecraft.network.chat.Component; @@ -26,11 +27,16 @@ public TinyFlowerItem(Item.Properties properties) { @Override public Component getName(ItemStack itemStack) { + GardenContentsComponent gardenComponent = itemStack.get(ModComponents.GARDEN_CONTENTS); + if (gardenComponent != null) { + return Component.translatable(GardenContentsComponent.GARDEN_TEXT); + } + TinyFlowerComponent tinyFlowerComponent = itemStack.get(ModComponents.TINY_FLOWER); - if (tinyFlowerComponent == null) { - return super.getName(itemStack); + if (tinyFlowerComponent != null) { + return Component.translatable(tinyFlowerComponent.getTranslationKey()); } - return Component.translatable(tinyFlowerComponent.getTranslationKey()); + return super.getName(itemStack); } } diff --git a/src/main/java/co/secretonline/tinyflowers/mixin/ItemStackMixin.java b/src/main/java/co/secretonline/tinyflowers/mixin/ItemStackMixin.java index da4f4ecc..f002a69b 100644 --- a/src/main/java/co/secretonline/tinyflowers/mixin/ItemStackMixin.java +++ b/src/main/java/co/secretonline/tinyflowers/mixin/ItemStackMixin.java @@ -12,7 +12,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -// import co.secretonline.tinyflowers.components.ModComponents; +import co.secretonline.tinyflowers.components.ModComponents; @Mixin(ItemStack.class) public class ItemStackMixin { @@ -24,11 +24,11 @@ private void injectCustomTooltip( TooltipFlag type, Consumer textConsumer, CallbackInfo ci) { - // ((ItemStack) (Object) this).addToTooltip( - // ModComponents.TINY_FLOWERS_COMPONENT_TYPE, - // context, - // displayComponent, - // textConsumer, - // type); + ((ItemStack) (Object) this).addToTooltip( + ModComponents.GARDEN_CONTENTS, + context, + displayComponent, + textConsumer, + type); } } diff --git a/src/main/resources/assets/tiny_flowers/lang/de_at.json b/src/main/resources/assets/tiny_flowers/lang/de_at.json index 9fe85f66..ba6999d1 100644 --- a/src/main/resources/assets/tiny_flowers/lang/de_at.json +++ b/src/main/resources/assets/tiny_flowers/lang/de_at.json @@ -1,26 +1,25 @@ { "modmenu.descriptionTranslation.tiny_flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", - "block.tiny_flowers.tiny_garden": "Winziger Garten", "item.tiny_flowers.florists_shears": "Floristenschere", - "item.tiny_flowers.tiny_garden": "Winziger Garten", - "item.tiny_flowers.tiny_garden.empty": "Leer", - "item.tiny_flowers.tiny_flower": "Winzige Blume", - "item.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", - "item.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", - "item.tiny_flowers.tiny_poppy": "Winziger Mohn", - "item.tiny_flowers.tiny_blue_orchid": "Winzige blaue Orchidee", - "item.tiny_flowers.tiny_allium": "Winziger Zierlauch", - "item.tiny_flowers.tiny_azure_bluet": "Winzige Porzellansternchen", - "item.tiny_flowers.tiny_red_tulip": "Winzige rote Tulpe", - "item.tiny_flowers.tiny_orange_tulip": "Winzige orange Tulpe", - "item.tiny_flowers.tiny_white_tulip": "Winzige weiße Tulpe", - "item.tiny_flowers.tiny_pink_tulip": "Winzige rosa Tulpe", - "item.tiny_flowers.tiny_oxeye_daisy": "Winzige Margerite", - "item.tiny_flowers.tiny_cornflower": "Winzige Kornblume", - "item.tiny_flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", - "item.tiny_flowers.tiny_torchflower": "Winzige Fackellilie", - "item.tiny_flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", - "item.tiny_flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", - "item.tiny_flowers.tiny_wither_rose": "Winzige Wither-Rose", - "tag.item.tiny_flowers.tiny_flowers": "Winzige Blumen" + "block.tiny_flowers.tiny_garden": "Winziger Garten", + "block.tiny_flowers.tiny_garden.empty": "Leer", + "block.tiny_flowers.tiny_flower": "Winzige Blume", + "block.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", + "block.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", + "block.tiny_flowers.tiny_poppy": "Winziger Mohn", + "block.tiny_flowers.tiny_blue_orchid": "Winzige blaue Orchidee", + "block.tiny_flowers.tiny_allium": "Winziger Zierlauch", + "block.tiny_flowers.tiny_azure_bluet": "Winzige Porzellansternchen", + "block.tiny_flowers.tiny_red_tulip": "Winzige rote Tulpe", + "block.tiny_flowers.tiny_orange_tulip": "Winzige orange Tulpe", + "block.tiny_flowers.tiny_white_tulip": "Winzige weiße Tulpe", + "block.tiny_flowers.tiny_pink_tulip": "Winzige rosa Tulpe", + "block.tiny_flowers.tiny_oxeye_daisy": "Winzige Margerite", + "block.tiny_flowers.tiny_cornflower": "Winzige Kornblume", + "block.tiny_flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", + "block.tiny_flowers.tiny_torchflower": "Winzige Fackellilie", + "block.tiny_flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", + "block.tiny_flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", + "block.tiny_flowers.tiny_wither_rose": "Winzige Wither-Rose", + "tag.block.tiny_flowers.tiny_flowers": "Winzige Blumen" } diff --git a/src/main/resources/assets/tiny_flowers/lang/de_ch.json b/src/main/resources/assets/tiny_flowers/lang/de_ch.json index 9fe85f66..ba6999d1 100644 --- a/src/main/resources/assets/tiny_flowers/lang/de_ch.json +++ b/src/main/resources/assets/tiny_flowers/lang/de_ch.json @@ -1,26 +1,25 @@ { "modmenu.descriptionTranslation.tiny_flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", - "block.tiny_flowers.tiny_garden": "Winziger Garten", "item.tiny_flowers.florists_shears": "Floristenschere", - "item.tiny_flowers.tiny_garden": "Winziger Garten", - "item.tiny_flowers.tiny_garden.empty": "Leer", - "item.tiny_flowers.tiny_flower": "Winzige Blume", - "item.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", - "item.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", - "item.tiny_flowers.tiny_poppy": "Winziger Mohn", - "item.tiny_flowers.tiny_blue_orchid": "Winzige blaue Orchidee", - "item.tiny_flowers.tiny_allium": "Winziger Zierlauch", - "item.tiny_flowers.tiny_azure_bluet": "Winzige Porzellansternchen", - "item.tiny_flowers.tiny_red_tulip": "Winzige rote Tulpe", - "item.tiny_flowers.tiny_orange_tulip": "Winzige orange Tulpe", - "item.tiny_flowers.tiny_white_tulip": "Winzige weiße Tulpe", - "item.tiny_flowers.tiny_pink_tulip": "Winzige rosa Tulpe", - "item.tiny_flowers.tiny_oxeye_daisy": "Winzige Margerite", - "item.tiny_flowers.tiny_cornflower": "Winzige Kornblume", - "item.tiny_flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", - "item.tiny_flowers.tiny_torchflower": "Winzige Fackellilie", - "item.tiny_flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", - "item.tiny_flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", - "item.tiny_flowers.tiny_wither_rose": "Winzige Wither-Rose", - "tag.item.tiny_flowers.tiny_flowers": "Winzige Blumen" + "block.tiny_flowers.tiny_garden": "Winziger Garten", + "block.tiny_flowers.tiny_garden.empty": "Leer", + "block.tiny_flowers.tiny_flower": "Winzige Blume", + "block.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", + "block.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", + "block.tiny_flowers.tiny_poppy": "Winziger Mohn", + "block.tiny_flowers.tiny_blue_orchid": "Winzige blaue Orchidee", + "block.tiny_flowers.tiny_allium": "Winziger Zierlauch", + "block.tiny_flowers.tiny_azure_bluet": "Winzige Porzellansternchen", + "block.tiny_flowers.tiny_red_tulip": "Winzige rote Tulpe", + "block.tiny_flowers.tiny_orange_tulip": "Winzige orange Tulpe", + "block.tiny_flowers.tiny_white_tulip": "Winzige weiße Tulpe", + "block.tiny_flowers.tiny_pink_tulip": "Winzige rosa Tulpe", + "block.tiny_flowers.tiny_oxeye_daisy": "Winzige Margerite", + "block.tiny_flowers.tiny_cornflower": "Winzige Kornblume", + "block.tiny_flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", + "block.tiny_flowers.tiny_torchflower": "Winzige Fackellilie", + "block.tiny_flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", + "block.tiny_flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", + "block.tiny_flowers.tiny_wither_rose": "Winzige Wither-Rose", + "tag.block.tiny_flowers.tiny_flowers": "Winzige Blumen" } diff --git a/src/main/resources/assets/tiny_flowers/lang/de_de.json b/src/main/resources/assets/tiny_flowers/lang/de_de.json index 9fe85f66..ba6999d1 100644 --- a/src/main/resources/assets/tiny_flowers/lang/de_de.json +++ b/src/main/resources/assets/tiny_flowers/lang/de_de.json @@ -1,26 +1,25 @@ { "modmenu.descriptionTranslation.tiny_flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", - "block.tiny_flowers.tiny_garden": "Winziger Garten", "item.tiny_flowers.florists_shears": "Floristenschere", - "item.tiny_flowers.tiny_garden": "Winziger Garten", - "item.tiny_flowers.tiny_garden.empty": "Leer", - "item.tiny_flowers.tiny_flower": "Winzige Blume", - "item.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", - "item.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", - "item.tiny_flowers.tiny_poppy": "Winziger Mohn", - "item.tiny_flowers.tiny_blue_orchid": "Winzige blaue Orchidee", - "item.tiny_flowers.tiny_allium": "Winziger Zierlauch", - "item.tiny_flowers.tiny_azure_bluet": "Winzige Porzellansternchen", - "item.tiny_flowers.tiny_red_tulip": "Winzige rote Tulpe", - "item.tiny_flowers.tiny_orange_tulip": "Winzige orange Tulpe", - "item.tiny_flowers.tiny_white_tulip": "Winzige weiße Tulpe", - "item.tiny_flowers.tiny_pink_tulip": "Winzige rosa Tulpe", - "item.tiny_flowers.tiny_oxeye_daisy": "Winzige Margerite", - "item.tiny_flowers.tiny_cornflower": "Winzige Kornblume", - "item.tiny_flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", - "item.tiny_flowers.tiny_torchflower": "Winzige Fackellilie", - "item.tiny_flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", - "item.tiny_flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", - "item.tiny_flowers.tiny_wither_rose": "Winzige Wither-Rose", - "tag.item.tiny_flowers.tiny_flowers": "Winzige Blumen" + "block.tiny_flowers.tiny_garden": "Winziger Garten", + "block.tiny_flowers.tiny_garden.empty": "Leer", + "block.tiny_flowers.tiny_flower": "Winzige Blume", + "block.tiny_flowers.tiny_cactus_flower": "Winzige Kaktusblüte", + "block.tiny_flowers.tiny_dandelion": "Winziger Löwenzahn", + "block.tiny_flowers.tiny_poppy": "Winziger Mohn", + "block.tiny_flowers.tiny_blue_orchid": "Winzige blaue Orchidee", + "block.tiny_flowers.tiny_allium": "Winziger Zierlauch", + "block.tiny_flowers.tiny_azure_bluet": "Winzige Porzellansternchen", + "block.tiny_flowers.tiny_red_tulip": "Winzige rote Tulpe", + "block.tiny_flowers.tiny_orange_tulip": "Winzige orange Tulpe", + "block.tiny_flowers.tiny_white_tulip": "Winzige weiße Tulpe", + "block.tiny_flowers.tiny_pink_tulip": "Winzige rosa Tulpe", + "block.tiny_flowers.tiny_oxeye_daisy": "Winzige Margerite", + "block.tiny_flowers.tiny_cornflower": "Winzige Kornblume", + "block.tiny_flowers.tiny_lily_of_the_valley": "Winziges Maiglöckchen", + "block.tiny_flowers.tiny_torchflower": "Winzige Fackellilie", + "block.tiny_flowers.tiny_open_eyeblossom": "Winzige geöffnete Augenblüte", + "block.tiny_flowers.tiny_closed_eyeblossom": "Winzige geschlossene Augenblüte", + "block.tiny_flowers.tiny_wither_rose": "Winzige Wither-Rose", + "tag.block.tiny_flowers.tiny_flowers": "Winzige Blumen" } diff --git a/src/main/resources/assets/tiny_flowers/lang/en_us.json b/src/main/resources/assets/tiny_flowers/lang/en_us.json index bdc9e565..85ae080b 100644 --- a/src/main/resources/assets/tiny_flowers/lang/en_us.json +++ b/src/main/resources/assets/tiny_flowers/lang/en_us.json @@ -1,26 +1,25 @@ { "modmenu.descriptionTranslation.tiny_flowers": "Add tiny variants of all Vanilla flowers.", - "block.tiny_flowers.tiny_garden": "Tiny Garden", "item.tiny_flowers.florists_shears": "Florists' Shears", - "item.tiny_flowers.tiny_garden": "Tiny Garden", - "item.tiny_flowers.tiny_garden.empty": "Empty", - "item.tiny_flowers.tiny_flower": "Tiny Flower", - "item.tiny_flowers.tiny_cactus_flower": "Tiny Cactus Flower", - "item.tiny_flowers.tiny_dandelion": "Tiny Dandelion", - "item.tiny_flowers.tiny_poppy": "Tiny Poppy", - "item.tiny_flowers.tiny_blue_orchid": "Tiny Blue Orchid", - "item.tiny_flowers.tiny_allium": "Tiny Allium", - "item.tiny_flowers.tiny_azure_bluet": "Tiny Azure Bluet", - "item.tiny_flowers.tiny_red_tulip": "Tiny Red Tulip", - "item.tiny_flowers.tiny_orange_tulip": "Tiny Orange Tulip", - "item.tiny_flowers.tiny_white_tulip": "Tiny White Tulip", - "item.tiny_flowers.tiny_pink_tulip": "Tiny Pink Tulip", - "item.tiny_flowers.tiny_oxeye_daisy": "Tiny Oxeye Daisy", - "item.tiny_flowers.tiny_cornflower": "Tiny Cornflower", - "item.tiny_flowers.tiny_lily_of_the_valley": "Tiny Lily of the Valley", - "item.tiny_flowers.tiny_torchflower": "Tiny Torchflower", - "item.tiny_flowers.tiny_open_eyeblossom": "Tiny Open Eyeblossom", - "item.tiny_flowers.tiny_closed_eyeblossom": "Tiny Closed Eyeblossom", - "item.tiny_flowers.tiny_wither_rose": "Tiny Wither Rose", - "tag.item.tiny_flowers.tiny_flowers": "Tiny Flowers" + "block.tiny_flowers.tiny_garden": "Tiny Garden", + "block.tiny_flowers.tiny_garden.empty": "Empty", + "block.tiny_flowers.tiny_flower": "Tiny Flower", + "block.tiny_flowers.tiny_cactus_flower": "Tiny Cactus Flower", + "block.tiny_flowers.tiny_dandelion": "Tiny Dandelion", + "block.tiny_flowers.tiny_poppy": "Tiny Poppy", + "block.tiny_flowers.tiny_blue_orchid": "Tiny Blue Orchid", + "block.tiny_flowers.tiny_allium": "Tiny Allium", + "block.tiny_flowers.tiny_azure_bluet": "Tiny Azure Bluet", + "block.tiny_flowers.tiny_red_tulip": "Tiny Red Tulip", + "block.tiny_flowers.tiny_orange_tulip": "Tiny Orange Tulip", + "block.tiny_flowers.tiny_white_tulip": "Tiny White Tulip", + "block.tiny_flowers.tiny_pink_tulip": "Tiny Pink Tulip", + "block.tiny_flowers.tiny_oxeye_daisy": "Tiny Oxeye Daisy", + "block.tiny_flowers.tiny_cornflower": "Tiny Cornflower", + "block.tiny_flowers.tiny_lily_of_the_valley": "Tiny Lily of the Valley", + "block.tiny_flowers.tiny_torchflower": "Tiny Torchflower", + "block.tiny_flowers.tiny_open_eyeblossom": "Tiny Open Eyeblossom", + "block.tiny_flowers.tiny_closed_eyeblossom": "Tiny Closed Eyeblossom", + "block.tiny_flowers.tiny_wither_rose": "Tiny Wither Rose", + "tag.block.tiny_flowers.tiny_flowers": "Tiny Flowers" } From 72954328efd70829160ca4977312ee4a205d5c3e Mon Sep 17 00:00:00 2001 From: secret_online Date: Fri, 19 Dec 2025 16:23:47 +1300 Subject: [PATCH 014/113] Fix a lot to do with item placement --- .../tinyflowers/blocks/TinyGardenBlock.java | 97 ++++++++++++ .../blocks/TinyGardenBlockEntity.java | 7 + .../helper/SegmentedMixinHelper.java | 139 +++++++++++------- .../tinyflowers/items/FloristsShearsItem.java | 1 + .../tinyflowers/items/TinyFlowerItem.java | 8 +- 5 files changed, 195 insertions(+), 57 deletions(-) diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java index 4a0d44e6..8a2c76e9 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java @@ -8,6 +8,7 @@ import com.mojang.serialization.MapCodec; import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.components.GardenContentsComponent; import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.data.TinyFlowerData; @@ -18,8 +19,11 @@ import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundSource; +import net.minecraft.tags.BlockTags; import net.minecraft.util.RandomSource; import net.minecraft.util.Util; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; @@ -27,14 +31,18 @@ import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.BonemealableBlock; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.SegmentableBlock; +import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.gameevent.GameEvent; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; @@ -73,6 +81,16 @@ public TinyGardenBlock(Properties settings) { .setValue(FACING, Direction.NORTH)); } + protected boolean mayPlaceOn(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos) { + return blockState.is(BlockTags.DIRT) || blockState.is(Blocks.FARMLAND); + } + + @Override + protected boolean canSurvive(BlockState blockState, LevelReader levelReader, BlockPos blockPos) { + BlockPos below = blockPos.below(); + return this.mayPlaceOn(levelReader.getBlockState(below), levelReader, below); + } + @Override public BlockState rotate(BlockState state, Rotation rotation) { return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); @@ -98,6 +116,85 @@ public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, Co getFlowerBitmap(world, pos)); } + @Override + public @org.jspecify.annotations.Nullable BlockState getStateForPlacement(BlockPlaceContext blockPlaceContext) { + Level level = blockPlaceContext.getLevel(); + BlockPos blockPos = blockPlaceContext.getClickedPos(); + + BlockState blockState = level.getBlockState(blockPos); + + ItemStack stack = blockPlaceContext.getItemInHand(); + + TinyFlowerData flowerData = TinyFlowerData.findByItemStack(level.registryAccess(), stack); + if (flowerData == null) { + // The item being placed down is a TinyGardenBlock block item, but doesn't have + // data. This occurs if the item doesn't have the tiny_flower component, which + // happens either if the item doesn't have any components (unusual) or if it has + // the garden_contents component (normal). If it's the latter, then the Block + // Entity will handle this so we just have to set the direction. + // If it's the former, then don't do anything. + GardenContentsComponent gardenContents = stack.get(ModComponents.GARDEN_CONTENTS); + if (gardenContents == null) { + return blockState; + } + + return this.defaultBlockState() + .setValue(FACING, blockPlaceContext.getHorizontalDirection().getOpposite()); + } + + if (blockState.is(this)) { + // Placing a tiny flower on a garden block. + if (!(level.getBlockEntity(blockPos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + // If there's no block entity, don't do anything + return blockState; + } + + gardenBlockEntity.addFlower(flowerData.id()); + + // Consume item, play sound, and send game event. + Player player = blockPlaceContext.getPlayer(); + SoundType soundType = blockState.getSoundType(); + level.playSound(player, blockPos, soundType.getPlaceSound(), SoundSource.BLOCKS, + (soundType.getVolume() + 1.0F) / 2.0F, soundType.getPitch() * 0.8F); + level.gameEvent(GameEvent.BLOCK_PLACE, blockPos, GameEvent.Context.of(player, blockState)); + stack.consume(1, player); + + return blockState; + } else if (blockState.getBlock() instanceof SegmentableBlock) { + // Placing a tiny flower on a segmented block. + // We need to convert the segmented block to a garden block + // and then add the flower variant to it. + BlockState newBlockState = ((TinyGardenBlock) ModBlocks.TINY_GARDEN_BLOCK).defaultBlockState() + .setValue(TinyGardenBlock.FACING, blockState.getValue(BlockStateProperties.HORIZONTAL_FACING)); + + // Since we also need to update the entity, try to update the world now. + level.setBlockAndUpdate(blockPos, newBlockState); + if (!(level.getBlockEntity(blockPos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + // If there's no block entity, try undo the change + level.setBlockAndUpdate(blockPos, blockState); + return blockState; + } + + gardenBlockEntity.setFromPreviousBlockState(level.registryAccess(), blockState); + gardenBlockEntity.addFlower(flowerData.id()); + + // Consume item, play sound, and send game event. + Player player = blockPlaceContext.getPlayer(); + SoundType soundType = blockState.getSoundType(); + level.playSound(player, blockPos, soundType.getPlaceSound(), SoundSource.BLOCKS, + (soundType.getVolume() + 1.0F) / 2.0F, soundType.getPitch() * 0.8F); + level.gameEvent(GameEvent.BLOCK_PLACE, blockPos, GameEvent.Context.of(player, blockState)); + stack.consume(1, player); + + return newBlockState; + } else { + // Item is a valid tiny flower block item, but there's no block yet. + // Place a new garden with the flower variant. + return this.defaultBlockState() + .setValue(FACING, blockPlaceContext.getHorizontalDirection().getOpposite()); + } + } + @Override protected void createBlockStateDefinition(StateDefinition.Builder builder) { builder.add(FACING); diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java index 40517fd8..b51baae3 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java @@ -126,6 +126,13 @@ public boolean isEmpty() { flower4 == null; } + public boolean isFull() { + return flower1 != null && + flower2 != null && + flower3 != null && + flower4 != null; + } + @Override protected void saveAdditional(ValueOutput writeView) { super.saveAdditional(writeView); diff --git a/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java b/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java index 49ea5f5a..1df2813b 100644 --- a/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java +++ b/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java @@ -2,18 +2,26 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -// import co.secretonline.tinyflowers.TinyFlowers; -import co.secretonline.tinyflowers.blocks.FlowerVariant; -// import co.secretonline.tinyflowers.blocks.GardenBlock; -// import co.secretonline.tinyflowers.blocks.ModBlocks; +import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.blocks.ModBlocks; +import co.secretonline.tinyflowers.blocks.TinyGardenBlock; +import co.secretonline.tinyflowers.blocks.TinyGardenBlockEntity; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SegmentableBlock; +import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.gameevent.GameEvent; /** * This class contains common logic for mixins targeting Segmented blocks. @@ -39,8 +47,8 @@ public static void shouldAddSegment(BlockState state, BlockPlaceContext context, return; } - FlowerVariant flowerVariant = FlowerVariant.fromItem(stack.getItem()); - if (flowerVariant.isEmpty()) { + TinyFlowerData flowerData = TinyFlowerData.findByItemStack(context.getLevel().registryAccess(), stack); + if (flowerData == null) { // The item is not a valid flower variant, so we don't need to do anything. return; } @@ -50,9 +58,12 @@ public static void shouldAddSegment(BlockState state, BlockPlaceContext context, public static void getPlacementState(BlockPlaceContext context, Block blockBeingUsed, IntegerProperty amountProperty, EnumProperty directionProperty, CallbackInfoReturnable info) { + Level level = context.getLevel(); + BlockPos blockPos = context.getClickedPos(); + // We need to build a new BlockState if a Segmented block item is being placed - // inside a GardenBlock. - BlockState blockState = context.getLevel().getBlockState(context.getClickedPos()); + // inside a TinyGardenBlock. + BlockState blockState = level.getBlockState(blockPos); Block currentBlock = blockState.getBlock(); // Early exit if the block being placed is the same as the current block. @@ -61,52 +72,70 @@ public static void getPlacementState(BlockPlaceContext context, Block blockBeing return; } - // // If the current block is not currently a garden but is able to be converted - // to - // // a FlowerVariant, then we need to convert the current blockstate to a - // // GardenBlock to before continuing. - // if (!(currentBlock instanceof GardenBlock)) { - // FlowerVariant currentBlockFlowerVariant = - // FlowerVariant.fromItem(currentBlock.asItem()); - // if (!currentBlockFlowerVariant.isEmpty()) { - // try { - // blockState = ((GardenBlock) - // ModBlocks.TINY_GARDEN).getStateFromSegmented(blockState); - // currentBlock = blockState.getBlock(); - // } catch (IllegalStateException e) { - // // This is expected to occur only if there are new Segmented blocks that - // don't - // // have tiny flowers. If the base game ever ends up doing this, then it's - // // probably woth handling this better. For now just spitting out a warning - // isn't - // // the worst thing. - // TinyFlowers.LOGGER.warn("Failed to convert blockstate to garden block. - // Ignoring", e); - // } - // } - // } - - // if (currentBlock instanceof GardenBlock) { - // if (!GardenBlock.hasFreeSpace(blockState)) { - // // Can't add flower, so don't replace blockstate. - // // This case shouldn't ever be hit, as GardenBlock should have prevented - // // replacement. - // info.setReturnValue(blockState); - // return; - // } - - // // There's space in the garden, so add a flower. - // FlowerVariant flowerVariant = FlowerVariant.fromItem(blockBeingUsed); - // if (flowerVariant.isEmpty()) { - // // Is this the correct thing to do? - // // Do we need to do anything to prevent the item from being consumed? - // info.setReturnValue(blockState); - // return; - // } - - // BlockState newState = GardenBlock.addFlowerToBlockState(blockState, - // flowerVariant); - // info.setReturnValue(newState); - // } + // If the current block is not currently a garden but is able to be converted to + // a tiny flower, then we need to convert the current blockstate to a + // TinyGardenBlock to before continuing. + if (!(currentBlock instanceof TinyGardenBlock)) { + TinyFlowerData flowerData = TinyFlowerData.findByOriginalBlock(level.registryAccess(), currentBlock); + if (flowerData != null) { + try { + BlockState prevBockState = blockState; + blockState = ((TinyGardenBlock) ModBlocks.TINY_GARDEN_BLOCK).defaultBlockState() + .setValue(TinyGardenBlock.FACING, blockState.getValue(BlockStateProperties.HORIZONTAL_FACING)); + + // Since we also need to update the entity, try to update the world now. + level.setBlockAndUpdate(blockPos, blockState); + + if (!(level.getBlockEntity(blockPos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + // If there's no block entity, try undo the change + level.setBlockAndUpdate(blockPos, prevBockState); + return; + } + + gardenBlockEntity.setFromPreviousBlockState(level.registryAccess(), prevBockState); + + currentBlock = blockState.getBlock(); + } catch (IllegalStateException e) { + // This is expected to occur only if there are new Segmented blocks that don't + // have tiny flowers. If the base game ever ends up doing this, then it's + // probably woth handling this better. For now just spitting out a warning isn't + // the worst thing. + TinyFlowers.LOGGER.warn("Failed to convert blockstate to garden block. Ignoring", e); + } + } + } + + if (currentBlock instanceof TinyGardenBlock) { + if (!(level.getBlockEntity(blockPos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + return; + } + if (gardenBlockEntity.isFull()) { + // Can't add flower, so don't replace blockstate. + // This case shouldn't ever be hit, as TinyGardenBlock should have prevented + // replacement. + info.setReturnValue(blockState); + return; + } + + // There's space in the garden, so add a flower. + TinyFlowerData flowerData = TinyFlowerData.findByOriginalBlock(level.registryAccess(), + blockBeingUsed); + if (flowerData == null) { + info.setReturnValue(blockState); + return; + } + + gardenBlockEntity.addFlower(flowerData.id()); + + // Consume item, play sound, and send game event. + Player player = context.getPlayer(); + SoundType soundType = blockState.getSoundType(); + level.playSound(player, blockPos, soundType.getPlaceSound(), SoundSource.BLOCKS, + (soundType.getVolume() + 1.0F) / 2.0F, soundType.getPitch() * 0.8F); + level.gameEvent(GameEvent.BLOCK_PLACE, blockPos, GameEvent.Context.of(player, blockState)); + context.getItemInHand().consume(1, player); + + info.setReturnValue(blockState); + } } } diff --git a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java index 6e580843..d4f10717 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java @@ -57,6 +57,7 @@ public InteractionResult useOn(UseOnContext ctx) { BlockState newBlockState = ModBlocks.TINY_GARDEN_BLOCK.defaultBlockState() .setValue(TinyGardenBlock.FACING, ctx.getHorizontalDirection().getOpposite()); + world.setBlockAndUpdate(pos, newBlockState); if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { diff --git a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java index 4369fe2b..7faf2e62 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java @@ -21,8 +21,12 @@ public TinyFlowerItem(Item.Properties properties) { @Override protected @Nullable BlockState getPlacementState(BlockPlaceContext blockPlaceContext) { - return super.getPlacementState(blockPlaceContext) - .setValue(TinyGardenBlock.FACING, blockPlaceContext.getHorizontalDirection().getOpposite()); + BlockState newBlockState = super.getPlacementState(blockPlaceContext); + if (newBlockState == null) { + return newBlockState; + } + + return newBlockState.setValue(TinyGardenBlock.FACING, blockPlaceContext.getHorizontalDirection().getOpposite()); } @Override From 7bfc6e715478c78ab66f751b03b6b8e07acc71d5 Mon Sep 17 00:00:00 2001 From: secret_online Date: Fri, 19 Dec 2025 17:05:50 +1300 Subject: [PATCH 015/113] Add eyeblossom updating --- .../tinyflowers/blocks/TinyGardenBlock.java | 68 +++++++++++++++++++ .../tinyflowers/helper/EyeblossomHelper.java | 47 +++++++------ 2 files changed, 95 insertions(+), 20 deletions(-) diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java index 8a2c76e9..a70a2847 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java @@ -12,6 +12,7 @@ import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.helper.EyeblossomHelper; import co.secretonline.tinyflowers.items.ModItems; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -22,7 +23,9 @@ import net.minecraft.sounds.SoundSource; import net.minecraft.tags.BlockTags; import net.minecraft.util.RandomSource; +import net.minecraft.util.TriState; import net.minecraft.util.Util; +import net.minecraft.world.attribute.EnvironmentAttributes; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; @@ -195,6 +198,71 @@ public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, Co } } + @Override + protected void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { + if (doEyeblossomTick(state, world, pos, random)) { + EyeblossomHelper.playSound(world, pos, world.isBrightOutside(), true); + } + + super.randomTick(state, world, pos, random); + } + + @Override + protected void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { + if (doEyeblossomTick(state, world, pos, random)) { + EyeblossomHelper.playSound(world, pos, world.isBrightOutside(), false); + } + + super.tick(state, world, pos, random); + } + + private static boolean doEyeblossomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { + TriState expectedState = world.environmentAttributes().getValue(EnvironmentAttributes.EYEBLOSSOM_OPEN, pos); + if (expectedState == TriState.DEFAULT) { + return false; + } + + boolean isDay = expectedState.toBoolean(false); + Identifier correctVariant = EyeblossomHelper.getIdentifierForDay(isDay); + Identifier incorrectVariant = EyeblossomHelper.getIdentifierForDay(!isDay); + + BlockState currentState = state; + boolean didChange = false; + + if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + // If there's no block entity, don't do anything + return false; + } + + if (gardenBlockEntity.getFlower(1).equals(incorrectVariant)) { + gardenBlockEntity.setFlower(1, correctVariant); + didChange = true; + } + if (gardenBlockEntity.getFlower(2).equals(incorrectVariant)) { + gardenBlockEntity.setFlower(2, correctVariant); + didChange = true; + } + if (gardenBlockEntity.getFlower(3).equals(incorrectVariant)) { + gardenBlockEntity.setFlower(3, correctVariant); + didChange = true; + } + if (gardenBlockEntity.getFlower(4).equals(incorrectVariant)) { + gardenBlockEntity.setFlower(4, correctVariant); + didChange = true; + } + + if (didChange) { + world.setBlock(pos, currentState, Block.UPDATE_CLIENTS); + world.gameEvent(GameEvent.BLOCK_CHANGE, pos, GameEvent.Context.of(state)); + + EyeblossomHelper.getState(isDay).spawnTransformParticle(world, pos, random); + + EyeblossomHelper.notifyNearbyEyeblossoms(state, world, pos, random); + } + + return didChange; + } + @Override protected void createBlockStateDefinition(StateDefinition.Builder builder) { builder.add(FACING); diff --git a/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java b/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java index 73ddefb4..7969f497 100644 --- a/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java +++ b/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java @@ -1,10 +1,11 @@ package co.secretonline.tinyflowers.helper; -import co.secretonline.tinyflowers.blocks.FlowerVariant; -// import co.secretonline.tinyflowers.blocks.GardenBlock; -// import co.secretonline.tinyflowers.blocks.ModBlocks; +import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.blocks.ModBlocks; +import co.secretonline.tinyflowers.blocks.TinyGardenBlockEntity; import co.secretonline.tinyflowers.mixin.EyeblossomStateAccessor; import net.minecraft.core.BlockPos; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundSource; import net.minecraft.util.RandomSource; @@ -12,13 +13,15 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.EyeblossomBlock; import net.minecraft.world.level.block.state.BlockState; -// import net.minecraft.world.level.block.state.properties.EnumProperty; public class EyeblossomHelper { - public static FlowerVariant getFlowerVariant(boolean isDay) { + private static final Identifier OPEN_EYEBLOSSOM = TinyFlowers.id("tiny_open_eyeblossom"); + private static final Identifier CLOSED_EYEBLOSSOM = TinyFlowers.id("tiny_closed_eyeblossom"); + + public static Identifier getIdentifierForDay(boolean isDay) { return isDay - ? FlowerVariant.CLOSED_EYEBLOSSOM - : FlowerVariant.OPEN_EYEBLOSSOM; + ? CLOSED_EYEBLOSSOM + : OPEN_EYEBLOSSOM; } public static Block getBlock(boolean isDay) { @@ -36,7 +39,7 @@ public static EyeblossomBlock.Type getState(boolean isDay) { public static void notifyNearbyEyeblossoms(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { boolean isDay = world.isBrightOutside(); - FlowerVariant incorrectFlowerVariant = getFlowerVariant(!isDay); + Identifier incorrectId = getIdentifierForDay(!isDay); Block incorrectEyeblossom = getBlock(!isDay); // This is to detect whether the central block of the area is a real Eyeblossom @@ -56,18 +59,22 @@ public static void notifyNearbyEyeblossoms(BlockState state, ServerLevel world, return; } - // // Gardens - // if (nearbyBlockState.is(ModBlocks.TINY_GARDEN)) { - // // Tiny Gardens should also recieve updates if they have eyeblossoms. - // for (EnumProperty property : - // GardenBlock.FLOWER_VARIANT_PROPERTIES) { - // FlowerVariant variant = nearbyBlockState.getValue(property); - // if (variant == incorrectFlowerVariant) { - // scheduleBlockTick(world, pos, otherPos, ModBlocks.TINY_GARDEN, random); - // return; - // } - // } - // } + // Gardens + if (nearbyBlockState.is(ModBlocks.TINY_GARDEN_BLOCK)) { + + if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + // If there's no block entity, don't do anything + return; + } + + // Tiny Gardens should also recieve updates if they have eyeblossoms. + for (Identifier gardenId : gardenBlockEntity.getFlowers()) { + if (gardenId.equals(incorrectId)) { + scheduleBlockTick(world, pos, otherPos, ModBlocks.TINY_GARDEN_BLOCK, random); + return; + } + } + } }); } From a68e8f160909482bd9facb37e8ee8b3a461d460d Mon Sep 17 00:00:00 2001 From: secret_online Date: Sat, 20 Dec 2025 12:57:03 +1300 Subject: [PATCH 016/113] Start block entity renderer for gardens --- .../tinyflowers/TinyFlowersClient.java | 5 ++ .../TinyGardenBlockEntityRenderState.java | 51 +++++++++++++++++ .../block/TinyGardenBlockEntityRenderer.java | 57 +++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderState.java create mode 100644 src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java diff --git a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java index f0e154b0..ce8e32e3 100644 --- a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java +++ b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java @@ -1,11 +1,14 @@ package co.secretonline.tinyflowers; +import co.secretonline.tinyflowers.blocks.ModBlockEntities; import co.secretonline.tinyflowers.blocks.ModBlocks; +import co.secretonline.tinyflowers.renderer.block.TinyGardenBlockEntityRenderer; import co.secretonline.tinyflowers.renderer.item.TinyFlowerProperty; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.rendering.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; import net.minecraft.client.renderer.BiomeColors; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; import net.minecraft.client.renderer.chunk.ChunkSectionLayer; import net.minecraft.client.renderer.item.ItemStackRenderState; import net.minecraft.client.renderer.item.properties.select.SelectItemModelProperties; @@ -23,6 +26,8 @@ public void onInitializeClient() { BlockRenderLayerMap.putBlock(ModBlocks.TINY_GARDEN_BLOCK, ChunkSectionLayer.CUTOUT); + BlockEntityRenderers.register(ModBlockEntities.TINY_GARDEN_BLOCK_ENTITY, TinyGardenBlockEntityRenderer::new); + // See Pink Petals in net.minecraft.client.color.block.BlockColors ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> { boolean hasWorld = world == null || pos == null; diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderState.java b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderState.java new file mode 100644 index 00000000..11543239 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderState.java @@ -0,0 +1,51 @@ +package co.secretonline.tinyflowers.renderer.block; + +import org.jetbrains.annotations.Nullable; + +import net.minecraft.client.renderer.blockentity.state.BlockEntityRenderState; +import net.minecraft.core.Direction; +import net.minecraft.resources.Identifier; + +public class TinyGardenBlockEntityRenderState extends BlockEntityRenderState { + private Direction direction = Direction.NORTH; + + @Nullable + private Identifier flower1 = null; + @Nullable + private Identifier flower2 = null; + @Nullable + private Identifier flower3 = null; + @Nullable + private Identifier flower4 = null; + + public Direction getDirection() { + return direction; + } + + public Identifier getFlower1() { + return flower1; + } + + public Identifier getFlower2() { + return flower2; + } + + public Identifier getFlower3() { + return flower3; + } + + public Identifier getFlower4() { + return flower4; + } + + public void setDirection(Direction direction) { + this.direction = direction; + } + + public void setFlowers(Identifier flower1, Identifier flower2, Identifier flower3, Identifier flower4) { + this.flower1 = flower1; + this.flower2 = flower2; + this.flower3 = flower3; + this.flower4 = flower4; + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java new file mode 100644 index 00000000..2b92eb86 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java @@ -0,0 +1,57 @@ +package co.secretonline.tinyflowers.renderer.block; + +import java.util.Optional; + +import org.jspecify.annotations.Nullable; + +import com.mojang.blaze3d.vertex.PoseStack; + +import co.secretonline.tinyflowers.blocks.TinyGardenBlock; +import co.secretonline.tinyflowers.blocks.TinyGardenBlockEntity; +import net.minecraft.client.renderer.SubmitNodeCollector; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.client.renderer.feature.ModelFeatureRenderer.CrumblingOverlay; +import net.minecraft.client.renderer.state.CameraRenderState; +import net.minecraft.core.Direction; +import net.minecraft.world.phys.Vec3; + +public class TinyGardenBlockEntityRenderer + implements BlockEntityRenderer { + + public TinyGardenBlockEntityRenderer(BlockEntityRendererProvider.Context context) { + } + + @Override + public TinyGardenBlockEntityRenderState createRenderState() { + return new TinyGardenBlockEntityRenderState(); + } + + @Override + public void extractRenderState(TinyGardenBlockEntity blockEntity, + TinyGardenBlockEntityRenderState state, float tickProgress, Vec3 cameraPos, + @Nullable CrumblingOverlay crumblingOverlay) { + BlockEntityRenderer.super.extractRenderState(blockEntity, state, tickProgress, cameraPos, crumblingOverlay); + + Optional facingDirection = state.blockState.getOptionalValue(TinyGardenBlock.FACING); + if (facingDirection.isPresent()) { + state.setDirection(facingDirection.get()); + } + + state.setFlowers(state.getFlower1(), state.getFlower2(), state.getFlower3(), state.getFlower4()); + } + + @Override + public void submit(TinyGardenBlockEntityRenderState blockEntityRenderState, PoseStack poseStack, + SubmitNodeCollector submitNodeCollector, CameraRenderState cameraRenderState) { + } + + @Override + public int getViewDistance() { + // Hopefully this is far enough? + // I know the whole reason this exists is for performance, but I think it's a + // bit sad if distant gardens aren't rendered in. Expecially since these are + // mean to be part of the world, which usually doesn't distance culling. + return 256; + } +} From b9ce21cd28a8ef707c97d05d02e015493a2b15d2 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sat, 20 Dec 2025 14:38:30 +1300 Subject: [PATCH 017/113] Add data generation for resources --- .../generators/DefaultDataGenerator.java | 4 +- .../generators/mods/BaseModDataGenerator.java | 6 +- .../mods/TinyFlowersDataGenerator.java | 162 ++++++++++++++---- .../generators/mods/VanillaDataGenerator.java | 37 ++-- .../providers/DefaultModelProvider.java | 52 ++++++ .../FloristsShearsItemModelProvider.java | 33 ---- .../datagen/providers/ModFlowersProvider.java | 33 +++- .../datagen/providers/ModModelProvider.java | 13 +- .../datagen/providers/ModRecipeProvider.java | 10 +- .../renderer/TinyFlowerResources.java | 133 ++++++++++++++ .../models/block/garden_triple_1.json | 92 ++++++++++ .../models/block/garden_triple_2.json | 92 ++++++++++ .../models/block/garden_triple_3.json | 92 ++++++++++ .../models/block/garden_triple_4.json | 72 ++++++++ .../tiny_flowers/tiny_flower/leaf_litter.json | 31 ++++ .../tiny_flowers/tiny_flower/pink_petals.json | 35 ++++ .../tiny_flowers/tiny_flower/wildflowers.json | 35 ++++ .../tiny_flowers/blockstates/tiny_garden.json | 36 ++++ .../tiny_flowers/tiny_flower/tiny_allium.json | 35 ++++ .../tiny_flower/tiny_azure_bluet.json | 35 ++++ .../tiny_flower/tiny_blue_orchid.json | 39 +++++ .../tiny_flower/tiny_cactus_flower.json | 35 ++++ .../tiny_flower/tiny_closed_eyeblossom.json | 35 ++++ .../tiny_flower/tiny_cornflower.json | 35 ++++ .../tiny_flower/tiny_dandelion.json | 35 ++++ .../tiny_flower/tiny_lily_of_the_valley.json | 39 +++++ .../tiny_flower/tiny_open_eyeblossom.json | 39 +++++ .../tiny_flower/tiny_orange_tulip.json | 35 ++++ .../tiny_flower/tiny_oxeye_daisy.json | 35 ++++ .../tiny_flower/tiny_pink_tulip.json | 35 ++++ .../tiny_flowers/tiny_flower/tiny_poppy.json | 35 ++++ .../tiny_flower/tiny_red_tulip.json | 35 ++++ .../tiny_flower/tiny_torchflower.json | 43 +++++ .../tiny_flower/tiny_white_tulip.json | 35 ++++ .../tiny_flower/tiny_wither_rose.json | 35 ++++ 35 files changed, 1484 insertions(+), 99 deletions(-) create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/providers/DefaultModelProvider.java delete mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/providers/FloristsShearsItemModelProvider.java create mode 100644 src/client/java/co/secretonline/tinyflowers/renderer/TinyFlowerResources.java create mode 100644 src/client/resources/assets/tiny_flowers/models/block/garden_triple_1.json create mode 100644 src/client/resources/assets/tiny_flowers/models/block/garden_triple_2.json create mode 100644 src/client/resources/assets/tiny_flowers/models/block/garden_triple_3.json create mode 100644 src/client/resources/assets/tiny_flowers/models/block/garden_triple_4.json create mode 100644 src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json create mode 100644 src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json create mode 100644 src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json create mode 100644 src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json create mode 100644 src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java index bfe51a13..ea15e85f 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java @@ -1,6 +1,6 @@ package co.secretonline.tinyflowers.datagen.generators; -import co.secretonline.tinyflowers.datagen.providers.FloristsShearsItemModelProvider; +import co.secretonline.tinyflowers.datagen.providers.DefaultModelProvider; import co.secretonline.tinyflowers.datagen.providers.FloristsShearsRecipeProvider; import co.secretonline.tinyflowers.datagen.providers.ItemTagProvider; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; @@ -10,6 +10,6 @@ public class DefaultDataGenerator implements PackContributor { public void addProviders(Pack pack) { pack.addProvider(ItemTagProvider::new); pack.addProvider(FloristsShearsRecipeProvider::new); - pack.addProvider(FloristsShearsItemModelProvider::new); + pack.addProvider(DefaultModelProvider::new); } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java index 9a9c3110..dc965688 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java @@ -8,20 +8,22 @@ import co.secretonline.tinyflowers.datagen.providers.ModModelProvider; import co.secretonline.tinyflowers.datagen.providers.ModFlowersProvider; import co.secretonline.tinyflowers.datagen.providers.ModRecipeProvider; +import co.secretonline.tinyflowers.renderer.TinyFlowerResources; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.core.HolderLookup; import net.minecraft.util.Mth; +import net.minecraft.util.Tuple; public abstract class BaseModDataGenerator implements PackContributor { public abstract String getModId(); - public abstract List getFlowerData(); + public abstract List> getFlowerData(); @Override public void addProviders(Pack pack) { String modId = getModId(); - List data = this.getFlowerData(); + List> data = this.getFlowerData(); pack.addProvider((FabricDataOutput output) -> new ModModelProvider(modId, data, output)); pack.addProvider((FabricDataOutput output, diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java index 9dc1d678..c90a33d3 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java @@ -4,7 +4,9 @@ import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.renderer.TinyFlowerResources; import net.minecraft.resources.Identifier; +import net.minecraft.util.Tuple; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; @@ -15,44 +17,136 @@ public String getModId() { } @Override - public List getFlowerData() { + public List> getFlowerData() { return List.of( - new TinyFlowerData(TinyFlowers.id("tiny_dandelion"), Identifier.withDefaultNamespace("dandelion"), false, - List.of(new Entry(MobEffects.SATURATION, toTicks(0.35f)))), - new TinyFlowerData(TinyFlowers.id("tiny_poppy"), Identifier.withDefaultNamespace("poppy"), false, - List.of(new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_blue_orchid"), Identifier.withDefaultNamespace("blue_orchid"), false, - List.of(new Entry(MobEffects.SATURATION, toTicks(0.35f)))), - new TinyFlowerData(TinyFlowers.id("tiny_allium"), Identifier.withDefaultNamespace("allium"), false, - List.of(new Entry(MobEffects.FIRE_RESISTANCE, toTicks(3.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_azure_bluet"), Identifier.withDefaultNamespace("azure_bluet"), false, - List.of(new Entry(MobEffects.BLINDNESS, toTicks(11.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_red_tulip"), Identifier.withDefaultNamespace("red_tulip"), false, - List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_orange_tulip"), Identifier.withDefaultNamespace("orange_tulip"), false, - List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_white_tulip"), Identifier.withDefaultNamespace("white_tulip"), false, - List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_pink_tulip"), Identifier.withDefaultNamespace("pink_tulip"), false, - List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_oxeye_daisy"), Identifier.withDefaultNamespace("oxeye_daisy"), false, - List.of(new Entry(MobEffects.REGENERATION, toTicks(7.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_cornflower"), Identifier.withDefaultNamespace("cornflower"), false, - List.of(new Entry(MobEffects.JUMP_BOOST, toTicks(5.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_lily_of_the_valley"), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_dandelion"), Identifier.withDefaultNamespace("dandelion"), false, + List.of(new Entry(MobEffects.SATURATION, toTicks(0.35f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_dandelion")) + .layers(TinyFlowers.id("tiny_dandelion")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_poppy"), Identifier.withDefaultNamespace("poppy"), false, + List.of(new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_poppy")) + .layers(TinyFlowers.id("tiny_poppy")) + .special(TinyFlowers.id("garden_tall")) + .stemTexture(TinyFlowers.id("tiny_tall_flower_stem")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_blue_orchid"), Identifier.withDefaultNamespace("blue_orchid"), + false, + List.of(new Entry(MobEffects.SATURATION, toTicks(0.35f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_blue_orchid")) + .layers(TinyFlowers.id("tiny_blue_orchid"), + TinyFlowers.id("tiny_blue_orchid_upper")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_allium"), Identifier.withDefaultNamespace("allium"), false, + List.of(new Entry(MobEffects.FIRE_RESISTANCE, toTicks(3.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_allium")) + .layers(TinyFlowers.id("tiny_allium")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_azure_bluet"), Identifier.withDefaultNamespace("azure_bluet"), + false, + List.of(new Entry(MobEffects.BLINDNESS, toTicks(11.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_azure_bluet")) + .layers(TinyFlowers.id("tiny_azure_bluet")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_red_tulip"), Identifier.withDefaultNamespace("red_tulip"), false, + List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_red_tulip")) + .layers(TinyFlowers.id("tiny_red_tulip")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_orange_tulip"), Identifier.withDefaultNamespace("orange_tulip"), + false, + List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_orange_tulip")) + .layers(TinyFlowers.id("tiny_orange_tulip")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_white_tulip"), Identifier.withDefaultNamespace("white_tulip"), + false, + List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_white_tulip")) + .layers(TinyFlowers.id("tiny_white_tulip")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_pink_tulip"), Identifier.withDefaultNamespace("pink_tulip"), false, + List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_pink_tulip")) + .layers(TinyFlowers.id("tiny_pink_tulip")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_oxeye_daisy"), Identifier.withDefaultNamespace("oxeye_daisy"), + false, + List.of(new Entry(MobEffects.REGENERATION, toTicks(7.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_oxeye_daisy")) + .layers(TinyFlowers.id("tiny_oxeye_daisy")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_cornflower"), Identifier.withDefaultNamespace("cornflower"), false, + List.of(new Entry(MobEffects.JUMP_BOOST, toTicks(5.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_cornflower")) + .layers(TinyFlowers.id("tiny_cornflower")) + .build()), + new Tuple(new TinyFlowerData(TinyFlowers.id("tiny_lily_of_the_valley"), Identifier.withDefaultNamespace("lily_of_the_valley"), false, List.of(new Entry(MobEffects.POISON, toTicks(11.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_torchflower"), Identifier.withDefaultNamespace("torchflower"), false, - List.of(new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_closed_eyeblossom"), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_lily_of_the_valley")) + .layers(TinyFlowers.id("tiny_lily_of_the_valley"), + TinyFlowers.id("tiny_lily_of_the_valley_upper")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_torchflower"), Identifier.withDefaultNamespace("torchflower"), + false, + List.of(new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_torchflower")) + .layers(TinyFlowers.id("tiny_torchflower"), + TinyFlowers.id("tiny_torchflower_middle"), + TinyFlowers.id("tiny_torchflower_upper")) + .untintedStem() + .stemTexture(TinyFlowers.id("tiny_torchflower_stem")) + .build()), + new Tuple(new TinyFlowerData(TinyFlowers.id("tiny_closed_eyeblossom"), Identifier.withDefaultNamespace("closed_eyeblossom"), false, List.of(new Entry(MobEffects.NAUSEA, toTicks(7.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_open_eyeblossom"), Identifier.withDefaultNamespace("open_eyeblossom"), - false, List.of(new Entry(MobEffects.BLINDNESS, toTicks(11.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_wither_rose"), Identifier.withDefaultNamespace("wither_rose"), false, - List.of(new Entry(MobEffects.WITHER, toTicks(7.0f)))), - new TinyFlowerData(TinyFlowers.id("tiny_cactus_flower"), Identifier.withDefaultNamespace("cactus_flower"), - false, - List.of())); + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_closed_eyeblossom")) + .layers(TinyFlowers.id("tiny_closed_eyeblossom")) + .untintedStem() + .stemTexture(TinyFlowers.id("tiny_eyeblossom_stem")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_open_eyeblossom"), + Identifier.withDefaultNamespace("open_eyeblossom"), + false, List.of(new Entry(MobEffects.BLINDNESS, toTicks(11.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_open_eyeblossom")) + .layers(TinyFlowers.id("tiny_open_eyeblossom"), + TinyFlowers.id("tiny_open_eyeblossom_upper")) + .special(TinyFlowers.id("garden_double_untinted_glow")) + .untintedStem() + .stemTexture(TinyFlowers.id("tiny_eyeblossom_stem")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_wither_rose"), Identifier.withDefaultNamespace("wither_rose"), + false, + List.of(new Entry(MobEffects.WITHER, toTicks(7.0f)))), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_wither_rose")) + .layers(TinyFlowers.id("tiny_wither_rose")) + .untintedStem() + .stemTexture(TinyFlowers.id("tiny_wither_rose_stem")) + .build()), + new Tuple( + new TinyFlowerData(TinyFlowers.id("tiny_cactus_flower"), Identifier.withDefaultNamespace("cactus_flower"), + false, + List.of()), + new TinyFlowerResources.Builder(TinyFlowers.id("tiny_cactus_flower")) + .layers(TinyFlowers.id("tiny_cactus_flower")) + .special(TinyFlowers.id("garden_low_untinted")) + .stemTexture(TinyFlowers.id("tiny_cactus_flower_stem")) + .build())); } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java index 86dffc43..f6f37b26 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java @@ -2,8 +2,11 @@ import java.util.List; +import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.renderer.TinyFlowerResources; import net.minecraft.resources.Identifier; +import net.minecraft.util.Tuple; public class VanillaDataGenerator extends BaseModDataGenerator { @Override @@ -12,16 +15,30 @@ public String getModId() { } @Override - public List getFlowerData() { + public List> getFlowerData() { return List.of( - new TinyFlowerData(Identifier.withDefaultNamespace("pink_petals"), - Identifier.withDefaultNamespace("pink_petals"), true, - List.of()), - new TinyFlowerData(Identifier.withDefaultNamespace("wildflowers"), - Identifier.withDefaultNamespace("wildflowers"), true, - List.of()), - new TinyFlowerData(Identifier.withDefaultNamespace("leaf_litter"), - Identifier.withDefaultNamespace("leaf_litter"), true, - List.of())); + new Tuple( + new TinyFlowerData(Identifier.withDefaultNamespace("pink_petals"), + Identifier.withDefaultNamespace("pink_petals"), true, + List.of()), + new TinyFlowerResources.Builder(Identifier.withDefaultNamespace("pink_petals")) + .layers(Identifier.withDefaultNamespace("pink_petals")) + .build()), + new Tuple( + new TinyFlowerData(Identifier.withDefaultNamespace("wildflowers"), + Identifier.withDefaultNamespace("wildflowers"), true, + List.of()), + new TinyFlowerResources.Builder(Identifier.withDefaultNamespace("wildflowers")) + .layers(Identifier.withDefaultNamespace("wildflowers")) + .build()), + new Tuple( + new TinyFlowerData(Identifier.withDefaultNamespace("leaf_litter"), + Identifier.withDefaultNamespace("leaf_litter"), true, + List.of()), + new TinyFlowerResources.Builder(Identifier.withDefaultNamespace("leaf_litter")) + .layers(Identifier.withDefaultNamespace("leaf_litter")) + .noStem() + .special(TinyFlowers.id("garden_leaf_litter")) + .build())); } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/DefaultModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/DefaultModelProvider.java new file mode 100644 index 00000000..dc554ce7 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/DefaultModelProvider.java @@ -0,0 +1,52 @@ +package co.secretonline.tinyflowers.datagen.providers; + +import co.secretonline.tinyflowers.blocks.ModBlocks; +import co.secretonline.tinyflowers.blocks.TinyGardenBlock; +import co.secretonline.tinyflowers.items.ModItems; +import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.minecraft.client.color.item.Dye; +import net.minecraft.client.data.models.BlockModelGenerators; +import net.minecraft.client.data.models.ItemModelGenerators; +import net.minecraft.client.data.models.blockstates.MultiPartGenerator; +import net.minecraft.core.Direction; +import net.minecraft.resources.Identifier; +import net.minecraft.world.item.DyeColor; + +public class DefaultModelProvider extends FabricModelProvider { + private final static Direction[] DIRECTIONS = new Direction[] { + Direction.NORTH, Direction.EAST, + Direction.SOUTH, Direction.WEST, }; + + public DefaultModelProvider(FabricDataOutput generator) { + super(generator); + } + + @Override + public void generateBlockStateModels(BlockModelGenerators blockStateModelGenerator) { + MultiPartGenerator definitionCreator = MultiPartGenerator + .multiPart(ModBlocks.TINY_GARDEN_BLOCK); + + for (Direction direction : DIRECTIONS) { + definitionCreator = definitionCreator.with( + BlockModelGenerators.condition() + .term(TinyGardenBlock.FACING, direction), + BlockModelGenerators.plainVariant(Identifier.withDefaultNamespace("air"))); + } + + blockStateModelGenerator.blockStateOutput.accept(definitionCreator); + } + + @Override + public void generateItemModels(ItemModelGenerators itemModelGenerator) { + itemModelGenerator.generateItemWithTintedOverlay( + ModItems.FLORISTS_SHEARS_ITEM, + "_handle", + new Dye(DyeColor.RED.getTextureDiffuseColor())); + } + + @Override + public String getName() { + return "FloristsShearsItemModelProvider"; + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/FloristsShearsItemModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/FloristsShearsItemModelProvider.java deleted file mode 100644 index 100ba2a5..00000000 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/FloristsShearsItemModelProvider.java +++ /dev/null @@ -1,33 +0,0 @@ -package co.secretonline.tinyflowers.datagen.providers; - -import co.secretonline.tinyflowers.items.ModItems; -import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.minecraft.client.color.item.Dye; -import net.minecraft.client.data.models.BlockModelGenerators; -import net.minecraft.client.data.models.ItemModelGenerators; -import net.minecraft.world.item.DyeColor; - -public class FloristsShearsItemModelProvider extends FabricModelProvider { - - public FloristsShearsItemModelProvider(FabricDataOutput generator) { - super(generator); - } - - @Override - public void generateBlockStateModels(BlockModelGenerators blockStateModelGenerator) { - } - - @Override - public void generateItemModels(ItemModelGenerators itemModelGenerator) { - itemModelGenerator.generateItemWithTintedOverlay( - ModItems.FLORISTS_SHEARS_ITEM, - "_handle", - new Dye(DyeColor.RED.getTextureDiffuseColor())); - } - - @Override - public String getName() { - return "FloristsShearsItemModelProvider"; - } -} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java index 00940681..bc8f8133 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java @@ -7,19 +7,27 @@ import co.secretonline.tinyflowers.data.ModRegistries; import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.renderer.TinyFlowerResources; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.minecraft.core.registries.Registries; import net.minecraft.data.CachedOutput; import net.minecraft.data.DataProvider; import net.minecraft.data.PackOutput.PathProvider; +import net.minecraft.data.PackOutput.Target; import net.minecraft.resources.Identifier; +import net.minecraft.util.Tuple; public class ModFlowersProvider implements DataProvider { - private final PathProvider tinyFlowersPathProvider; + private final PathProvider tinyFlowersData; + private final PathProvider tinyFlowersResources; private final String modId; - private final List flowers; + private final List> flowers; - public ModFlowersProvider(String modId, List flowers, FabricDataOutput packOutput) { - this.tinyFlowersPathProvider = packOutput.createRegistryElementsPathProvider(ModRegistries.TINY_FLOWER); + public ModFlowersProvider(String modId, List> flowers, + FabricDataOutput packOutput) { + this.tinyFlowersData = packOutput.createRegistryElementsPathProvider(ModRegistries.TINY_FLOWER); + this.tinyFlowersResources = packOutput.createPathProvider(Target.RESOURCE_PACK, + Registries.elementsDirPath(ModRegistries.TINY_FLOWER)); this.modId = modId; this.flowers = flowers; } @@ -31,11 +39,20 @@ public String getName() { @Override public CompletableFuture run(CachedOutput cachedOutput) { - Map flowerVariantItems = new HashMap<>(); - for (TinyFlowerData variant : this.flowers) { - flowerVariantItems.put(variant.id(), variant); + Map flowerVariantData = new HashMap<>(); + Map flowerVariantResources = new HashMap<>(); + + for (Tuple tuple : this.flowers) { + TinyFlowerData data = tuple.getA(); + TinyFlowerResources resources = tuple.getB(); + + flowerVariantData.put(data.id(), data); + flowerVariantResources.put(resources.id(), resources); } - return DataProvider.saveAll(cachedOutput, TinyFlowerData.CODEC, this.tinyFlowersPathProvider, flowerVariantItems); + return CompletableFuture.allOf( + DataProvider.saveAll(cachedOutput, TinyFlowerData.CODEC, this.tinyFlowersData, flowerVariantData), + DataProvider.saveAll(cachedOutput, TinyFlowerResources.CODEC, this.tinyFlowersResources, + flowerVariantResources)); } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java index 4f9cfe18..0bd5730d 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java @@ -9,9 +9,9 @@ import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.items.ModItems; +import co.secretonline.tinyflowers.renderer.TinyFlowerResources; import co.secretonline.tinyflowers.renderer.item.TinyFlowerProperty; import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; -import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.client.data.models.BlockModelGenerators; import net.minecraft.client.data.models.ItemModelGenerators; @@ -21,22 +21,20 @@ import net.minecraft.client.renderer.item.ItemModel; import net.minecraft.client.renderer.item.SelectItemModel; import net.minecraft.resources.Identifier; +import net.minecraft.util.Tuple; public class ModModelProvider extends FabricModelProvider { private final String modId; - private final List flowers; + private final List> flowers; - public ModModelProvider(String modId, List flowers, FabricDataOutput generator) { + public ModModelProvider(String modId, List> flowers, + FabricDataOutput generator) { super(generator); this.modId = modId; this.flowers = flowers; } - public static Pack.Factory factoryFor(String modName, List flowers) { - return (FabricDataOutput output) -> new ModModelProvider(modName, flowers, output); - } - @Override public void generateBlockStateModels(@NonNull BlockModelGenerators blockStateModelGenerator) { } @@ -44,6 +42,7 @@ public void generateBlockStateModels(@NonNull BlockModelGenerators blockStateMod @Override public void generateItemModels(@NonNull ItemModelGenerators itemModelGenerator) { List> list = this.flowers.stream() + .map(tuple -> tuple.getA()) .filter(flowerData -> !flowerData.isSegmentable()) .map(flowerData -> ItemModelUtils.when( new TinyFlowerComponent(flowerData.id()), diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java index 8664a4ed..522da3c9 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java @@ -5,6 +5,7 @@ import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.items.ModItems; +import co.secretonline.tinyflowers.renderer.TinyFlowerResources; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; import net.minecraft.core.HolderLookup; @@ -12,12 +13,14 @@ import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.util.Tuple; public class ModRecipeProvider extends FabricRecipeProvider { private final String modId; - private final List flowers; + private final List> flowers; - public ModRecipeProvider(String modId, List flowers, FabricDataOutput output, + public ModRecipeProvider(String modId, List> flowers, + FabricDataOutput output, CompletableFuture registriesFuture) { super(output, registriesFuture); @@ -32,7 +35,8 @@ protected RecipeProvider createRecipeProvider(HolderLookup.Provider registryLook @Override public void buildRecipes() { // Generate recipes for each flower variant - for (TinyFlowerData flowerData : flowers) { + for (Tuple tuple : flowers) { + var flowerData = tuple.getA(); // Create tiny flower items for variants that need them. if (!flowerData.isSegmentable()) { shapeless(RecipeCategory.DECORATIONS, flowerData.getItemStack(4)) diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/TinyFlowerResources.java b/src/client/java/co/secretonline/tinyflowers/renderer/TinyFlowerResources.java new file mode 100644 index 00000000..29611330 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/renderer/TinyFlowerResources.java @@ -0,0 +1,133 @@ +package co.secretonline.tinyflowers.renderer; + +import java.util.HashMap; +import java.util.Map; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; + +import co.secretonline.tinyflowers.TinyFlowers; +import net.minecraft.client.data.models.model.TextureSlot; +import net.minecraft.resources.Identifier; + +public record TinyFlowerResources(Identifier id, Part part1, Part part2, Part part3, Part part4) { + + public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerResources::id), + Part.CODEC.fieldOf("part1").forGetter(TinyFlowerResources::part1), + Part.CODEC.fieldOf("part2").forGetter(TinyFlowerResources::part2), + Part.CODEC.fieldOf("part3").forGetter(TinyFlowerResources::part3), + Part.CODEC.fieldOf("part4").forGetter(TinyFlowerResources::part4)) + .apply(instance, TinyFlowerResources::new)); + + static public record Part(Identifier model, Map textures) { + + public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + Identifier.CODEC.fieldOf("model").forGetter(Part::model), + Codec.unboundedMap(Codec.STRING, Identifier.CODEC).fieldOf("textures").forGetter(Part::textures)) + .apply(instance, Part::new)); + } + + static public class Builder { + private static final TextureSlot FLOWERBED_MIDDLE = TextureSlot.create("flowerbed_middle"); + private static final TextureSlot FLOWERBED_UPPER = TextureSlot.create("flowerbed_upper"); + + private final Identifier id; + private int layers = 0; + private boolean untintedStem = false; + private boolean includeStemTexture = true; + private Identifier stemTexture = Identifier.withDefaultNamespace("block/pink_petals_stem"); + private Map textureMap = new HashMap<>(); + private Identifier special = null; + + public Builder(Identifier id) { + this.id = id; + } + + public Builder layers(Identifier flowerbedTexture) { + layers = 1; + textureMap.put(TextureSlot.PARTICLE.getId(), flowerbedTexture.withPrefix("block/")); + textureMap.put(TextureSlot.FLOWERBED.getId(), flowerbedTexture.withPrefix("block/")); + + return this; + } + + public Builder layers(Identifier lowerTexture, Identifier upperTexture) { + layers = 2; + textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); + textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); + textureMap.put(FLOWERBED_UPPER.getId(), upperTexture.withPrefix("block/")); + + return this; + } + + public Builder layers(Identifier lowerTexture, Identifier middleTexture, Identifier upperTexture) { + layers = 2; + textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); + textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); + textureMap.put(FLOWERBED_MIDDLE.getId(), middleTexture.withPrefix("block/")); + textureMap.put(FLOWERBED_UPPER.getId(), upperTexture.withPrefix("block/")); + + return this; + } + + public Builder untintedStem() { + this.untintedStem = true; + return this; + } + + public Builder noStem() { + this.includeStemTexture = false; + return this; + } + + public Builder stemTexture(Identifier stemTexture) { + this.stemTexture = stemTexture.withPrefix("block/"); + return this; + } + + public Builder special(Identifier special) { + this.special = special.withPrefix("block/"); + return this; + } + + public TinyFlowerResources build() { + if (layers == 0 && special == null) { + throw new Error("TinyFlowerResources.Builder: layers() or special() must be called once."); + } + + Identifier parentId = null; + + if (special != null) { + parentId = special; + } else if (layers == 1) { + if (untintedStem) { + parentId = TinyFlowers.id("block/garden_untinted"); + } else { + parentId = TinyFlowers.id("block/garden"); + } + } else if (layers == 2) { + if (untintedStem) { + parentId = TinyFlowers.id("block/garden_double_untinted"); + } else { + parentId = TinyFlowers.id("block/garden_double"); + } + } else if (layers == 3) { + if (untintedStem) { + parentId = TinyFlowers.id("block/garden_triple_untinted"); + } else { + parentId = TinyFlowers.id("block/garden_triple"); + } + } + + if (includeStemTexture) { + textureMap.put("stem", this.stemTexture); + } + + return new TinyFlowerResources(this.id, new Part(parentId.withSuffix("_1"), textureMap), + new Part(parentId.withSuffix("_2"), textureMap), + new Part(parentId.withSuffix("_3"), textureMap), + new Part(parentId.withSuffix("_4"), textureMap)); + } + } +} diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_1.json new file mode 100644 index 00000000..9873f39c --- /dev/null +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_1.json @@ -0,0 +1,92 @@ +{ + "ambientocclusion": false, + "elements": [ + { + "name": "flower_upper", + "from": [0, 5, 0], + "to": [8, 5, 8], + "faces": { + "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed_upper"}, + "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed_upper"} + } + }, + { + "name": "flower_middle", + "from": [0, 4, 0], + "to": [8, 4, 8], + "faces": { + "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed_middle"}, + "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed_middle"} + } + }, + { + "name": "flower_lower", + "from": [0, 3, 0], + "to": [8, 3, 8], + "faces": { + "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed"}, + "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed"} + } + }, + { + "name": "stem1_ns", + "from": [3.75, 0, -2.1], + "to": [4.75, 5, -2.1], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "north": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem1_ew", + "from": [4.25, 0, -2.6], + "to": [4.25, 5, -1.6], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "east": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem2_ns", + "from": [4.4, 0, 2.8], + "to": [5.4, 5, 2.8], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "north": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem2_ew", + "from": [4.9, 0, 2.3], + "to": [4.9, 5, 3.3], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "east": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem3_ns", + "from": [8.65, 0, 0.05], + "to": [9.65, 5, 0.05], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "north": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem3_ew", + "from": [9.15, 0, -0.45], + "to": [9.15, 5, 0.55], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "east": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} + } + } + ] +} diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_2.json new file mode 100644 index 00000000..895725cd --- /dev/null +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_2.json @@ -0,0 +1,92 @@ +{ + "ambientocclusion": false, + "elements": [ + { + "name": "flower_upper", + "from": [0, 3, 8], + "to": [8, 3, 16], + "faces": { + "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed_upper"}, + "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed_upper"} + } + }, + { + "name": "flower_middle", + "from": [0, 2, 8], + "to": [8, 2, 16], + "faces": { + "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed_middle"}, + "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed_middle"} + } + }, + { + "name": "flower_lower", + "from": [0, 1, 8], + "to": [8, 1, 16], + "faces": { + "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed"}, + "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed"} + } + }, + { + "name": "stem1_ns", + "from": [11.15, 0, 3.25], + "to": [12.15, 3, 3.25], + "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -1]}, + "faces": { + "north": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem1_ew", + "from": [11.65, 0, 2.75], + "to": [11.65, 3, 3.75], + "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -1]}, + "faces": { + "east": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem2_ns", + "from": [8.15, 0, 5.25], + "to": [9.15, 3, 5.25], + "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, 1]}, + "faces": { + "north": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem2_ew", + "from": [8.65, 0, 4.75], + "to": [8.65, 3, 5.75], + "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, 1]}, + "faces": { + "east": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem3_ns", + "from": [10.15, 0, 8.25], + "to": [11.15, 3, 8.25], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 4]}, + "faces": { + "north": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem3_ew", + "from": [10.65, 0, 7.75], + "to": [10.65, 3, 8.75], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 4]}, + "faces": { + "east": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} + } + } + ] +} diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_3.json new file mode 100644 index 00000000..85fb7895 --- /dev/null +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_3.json @@ -0,0 +1,92 @@ +{ + "ambientocclusion": false, + "elements": [ + { + "name": "flower_upper", + "from": [8, 4, 8], + "to": [16, 4, 16], + "faces": { + "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed_upper"}, + "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed_upper"} + } + }, + { + "name": "flower_middle", + "from": [8, 3, 8], + "to": [16, 3, 16], + "faces": { + "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed_middle"}, + "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed_middle"} + } + }, + { + "name": "flower_lower", + "from": [8, 2, 8], + "to": [16, 2, 16], + "faces": { + "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed"}, + "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed"} + } + }, + { + "name": "stem1_ns", + "from": [12.9, 0, 0], + "to": [13.9, 4, 0], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "north": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem1_ew", + "from": [13.4, 0, -0.5], + "to": [13.4, 4, 0.5], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "east": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem2_ns", + "from": [17.15, 0, -2.85], + "to": [18.15, 4, -2.85], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "north": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem2_ew", + "from": [17.65, 0, -3.35], + "to": [17.65, 4, -2.35], + "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, + "faces": { + "east": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem3_ns", + "from": [17.65, 0, 1.9], + "to": [18.65, 4, 1.9], + "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, + "faces": { + "north": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem3_ew", + "from": [18.15, 0, 1.4], + "to": [18.15, 4, 2.4], + "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, + "faces": { + "east": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} + } + } + ] +} diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_4.json new file mode 100644 index 00000000..9e25940f --- /dev/null +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_4.json @@ -0,0 +1,72 @@ +{ + "ambientocclusion": false, + "elements": [ + { + "name": "flower_upper", + "from": [8, 4, 0], + "to": [16, 4, 8], + "faces": { + "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed_upper"}, + "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed_upper"} + } + }, + { + "name": "flower_middle", + "from": [8, 3, 0], + "to": [16, 3, 8], + "faces": { + "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed_middle"}, + "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed_middle"} + } + }, + { + "name": "flower_lower", + "from": [8, 2, 0], + "to": [16, 2, 8], + "faces": { + "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed"}, + "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed"} + } + }, + { + "name": "stem1_ns", + "from": [13.9, 0, -8.2], + "to": [14.9, 4, -8.2], + "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -4]}, + "faces": { + "north": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem1_ew", + "from": [14.4, 0, -8.7], + "to": [14.4, 4, -7.7], + "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -4]}, + "faces": { + "east": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem2_ns", + "from": [10.9, 0, -5.2], + "to": [11.9, 4, -5.2], + "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, -1]}, + "faces": { + "north": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, + "south": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} + } + }, + { + "name": "stem2_ew", + "from": [11.4, 0, -5.7], + "to": [11.4, 4, -4.7], + "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, -1]}, + "faces": { + "east": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, + "west": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} + } + } + ] +} diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json new file mode 100644 index 00000000..78ba2be6 --- /dev/null +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json @@ -0,0 +1,31 @@ +{ + "id": "minecraft:leaf_litter", + "part1": { + "model": "tiny_flowers:block/garden_leaf_litter_1", + "textures": { + "flowerbed": "minecraft:block/leaf_litter", + "particle": "minecraft:block/leaf_litter" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_leaf_litter_2", + "textures": { + "flowerbed": "minecraft:block/leaf_litter", + "particle": "minecraft:block/leaf_litter" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_leaf_litter_3", + "textures": { + "flowerbed": "minecraft:block/leaf_litter", + "particle": "minecraft:block/leaf_litter" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_leaf_litter_4", + "textures": { + "flowerbed": "minecraft:block/leaf_litter", + "particle": "minecraft:block/leaf_litter" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json new file mode 100644 index 00000000..b62d9af1 --- /dev/null +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json @@ -0,0 +1,35 @@ +{ + "id": "minecraft:pink_petals", + "part1": { + "model": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "particle": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "particle": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "particle": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "particle": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json new file mode 100644 index 00000000..6ccf64f2 --- /dev/null +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json @@ -0,0 +1,35 @@ +{ + "id": "minecraft:wildflowers", + "part1": { + "model": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "minecraft:block/wildflowers", + "particle": "minecraft:block/wildflowers", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "minecraft:block/wildflowers", + "particle": "minecraft:block/wildflowers", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "minecraft:block/wildflowers", + "particle": "minecraft:block/wildflowers", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "minecraft:block/wildflowers", + "particle": "minecraft:block/wildflowers", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json b/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json new file mode 100644 index 00000000..e877014b --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json @@ -0,0 +1,36 @@ +{ + "multipart": [ + { + "apply": { + "model": "minecraft:air" + }, + "when": { + "facing": "north" + } + }, + { + "apply": { + "model": "minecraft:air" + }, + "when": { + "facing": "east" + } + }, + { + "apply": { + "model": "minecraft:air" + }, + "when": { + "facing": "south" + } + }, + { + "apply": { + "model": "minecraft:air" + }, + "when": { + "facing": "west" + } + } + ] +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json new file mode 100644 index 00000000..63a04bfd --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_allium", + "part1": { + "model": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json new file mode 100644 index 00000000..3a7bad1b --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_azure_bluet", + "part1": { + "model": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json new file mode 100644 index 00000000..1575e194 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json @@ -0,0 +1,39 @@ +{ + "id": "tiny_flowers:tiny_blue_orchid", + "part1": { + "model": "tiny_flowers:block/garden_double_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_double_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_double_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_double_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json new file mode 100644 index 00000000..487aa193 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_cactus_flower", + "part1": { + "model": "tiny_flowers:block/garden_low_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_low_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_low_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_low_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json new file mode 100644 index 00000000..83477fba --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_closed_eyeblossom", + "part1": { + "model": "tiny_flowers:block/garden_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json new file mode 100644 index 00000000..ad54652f --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_cornflower", + "part1": { + "model": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json new file mode 100644 index 00000000..565830e7 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_dandelion", + "part1": { + "model": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json new file mode 100644 index 00000000..5b34465a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json @@ -0,0 +1,39 @@ +{ + "id": "tiny_flowers:tiny_lily_of_the_valley", + "part1": { + "model": "tiny_flowers:block/garden_double_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_double_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_double_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_double_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json new file mode 100644 index 00000000..cbed43cf --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json @@ -0,0 +1,39 @@ +{ + "id": "tiny_flowers:tiny_open_eyeblossom", + "part1": { + "model": "tiny_flowers:block/garden_double_untinted_glow_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_double_untinted_glow_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_double_untinted_glow_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_double_untinted_glow_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json new file mode 100644 index 00000000..77e56dec --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_orange_tulip", + "part1": { + "model": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json new file mode 100644 index 00000000..ffdf93f1 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_oxeye_daisy", + "part1": { + "model": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json new file mode 100644 index 00000000..52fc2513 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_pink_tulip", + "part1": { + "model": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json new file mode 100644 index 00000000..f0db19c4 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_poppy", + "part1": { + "model": "tiny_flowers:block/garden_tall_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tiny_tall_flower_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_tall_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tiny_tall_flower_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_tall_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tiny_tall_flower_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_tall_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tiny_tall_flower_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json new file mode 100644 index 00000000..c496b4ac --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_red_tulip", + "part1": { + "model": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json new file mode 100644 index 00000000..162c4e53 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json @@ -0,0 +1,43 @@ +{ + "id": "tiny_flowers:tiny_torchflower", + "part1": { + "model": "tiny_flowers:block/garden_double_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_double_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_double_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_double_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json new file mode 100644 index 00000000..4eecba56 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_white_tulip", + "part1": { + "model": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json new file mode 100644 index 00000000..cded63a1 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json @@ -0,0 +1,35 @@ +{ + "id": "tiny_flowers:tiny_wither_rose", + "part1": { + "model": "tiny_flowers:block/garden_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } + }, + "part2": { + "model": "tiny_flowers:block/garden_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } + }, + "part3": { + "model": "tiny_flowers:block/garden_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } + }, + "part4": { + "model": "tiny_flowers:block/garden_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } + } +} \ No newline at end of file From ba11a41626711db9edd77e3fdd45431a8c15403c Mon Sep 17 00:00:00 2001 From: secret_online Date: Sat, 20 Dec 2025 18:02:23 +1300 Subject: [PATCH 018/113] Read flower resource info on reload --- .../tinyflowers/TinyFlowersClient.java | 6 ++ .../generators/mods/BaseModDataGenerator.java | 2 +- .../mods/TinyFlowersDataGenerator.java | 2 +- .../generators/mods/VanillaDataGenerator.java | 2 +- .../datagen/providers/ModFlowersProvider.java | 2 +- .../datagen/providers/ModModelProvider.java | 2 +- .../datagen/providers/ModRecipeProvider.java | 2 +- .../TinyFlowerModelReloadListener.java | 62 +++++++++++++++++++ .../TinyFlowerResources.java | 12 +++- 9 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelReloadListener.java rename src/client/java/co/secretonline/tinyflowers/{renderer => resources}/TinyFlowerResources.java (92%) diff --git a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java index ce8e32e3..e1e06676 100644 --- a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java +++ b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java @@ -4,14 +4,17 @@ import co.secretonline.tinyflowers.blocks.ModBlocks; import co.secretonline.tinyflowers.renderer.block.TinyGardenBlockEntityRenderer; import co.secretonline.tinyflowers.renderer.item.TinyFlowerProperty; +import co.secretonline.tinyflowers.resources.TinyFlowerModelReloadListener; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.rendering.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; +import net.fabricmc.fabric.api.resource.v1.ResourceLoader; import net.minecraft.client.renderer.BiomeColors; import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; import net.minecraft.client.renderer.chunk.ChunkSectionLayer; import net.minecraft.client.renderer.item.ItemStackRenderState; import net.minecraft.client.renderer.item.properties.select.SelectItemModelProperties; +import net.minecraft.server.packs.PackType; import net.minecraft.util.RandomSource; import net.minecraft.world.level.DryFoliageColor; import net.minecraft.world.level.GrassColor; @@ -28,6 +31,9 @@ public void onInitializeClient() { BlockEntityRenderers.register(ModBlockEntities.TINY_GARDEN_BLOCK_ENTITY, TinyGardenBlockEntityRenderer::new); + ResourceLoader.get(PackType.CLIENT_RESOURCES).registerReloader( + TinyFlowers.id("models"), new TinyFlowerModelReloadListener()); + // See Pink Petals in net.minecraft.client.color.block.BlockColors ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> { boolean hasWorld = world == null || pos == null; diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java index dc965688..555ae836 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java @@ -8,7 +8,7 @@ import co.secretonline.tinyflowers.datagen.providers.ModModelProvider; import co.secretonline.tinyflowers.datagen.providers.ModFlowersProvider; import co.secretonline.tinyflowers.datagen.providers.ModRecipeProvider; -import co.secretonline.tinyflowers.renderer.TinyFlowerResources; +import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.core.HolderLookup; diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java index c90a33d3..b387b28a 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java @@ -4,7 +4,7 @@ import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.data.TinyFlowerData; -import co.secretonline.tinyflowers.renderer.TinyFlowerResources; +import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.minecraft.resources.Identifier; import net.minecraft.util.Tuple; import net.minecraft.world.effect.MobEffects; diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java index f6f37b26..ad52d4fa 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java @@ -4,7 +4,7 @@ import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.data.TinyFlowerData; -import co.secretonline.tinyflowers.renderer.TinyFlowerResources; +import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.minecraft.resources.Identifier; import net.minecraft.util.Tuple; diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java index bc8f8133..12a059a7 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java @@ -7,7 +7,7 @@ import co.secretonline.tinyflowers.data.ModRegistries; import co.secretonline.tinyflowers.data.TinyFlowerData; -import co.secretonline.tinyflowers.renderer.TinyFlowerResources; +import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.core.registries.Registries; import net.minecraft.data.CachedOutput; diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java index 0bd5730d..907888d6 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java @@ -9,8 +9,8 @@ import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.items.ModItems; -import co.secretonline.tinyflowers.renderer.TinyFlowerResources; import co.secretonline.tinyflowers.renderer.item.TinyFlowerProperty; +import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.client.data.models.BlockModelGenerators; diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java index 522da3c9..882a39ab 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java @@ -5,7 +5,7 @@ import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.items.ModItems; -import co.secretonline.tinyflowers.renderer.TinyFlowerResources; +import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; import net.minecraft.core.HolderLookup; diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelReloadListener.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelReloadListener.java new file mode 100644 index 00000000..ff91dffd --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelReloadListener.java @@ -0,0 +1,62 @@ +package co.secretonline.tinyflowers.resources; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; + +import com.google.gson.JsonObject; +import com.mojang.serialization.DataResult; +import com.mojang.serialization.JsonOps; + +import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.data.ModRegistries; +import net.minecraft.resources.Identifier; +import net.minecraft.server.packs.resources.PreparableReloadListener; +import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.util.GsonHelper; + +public class TinyFlowerModelReloadListener implements PreparableReloadListener { + @Override + public CompletableFuture reload(SharedState sharedState, Executor prepareExecutor, + PreparationBarrier preparationBarrier, Executor applyExecutor) { + return CompletableFuture + .runAsync(() -> this.getResourcesMap(sharedState.resourceManager()), prepareExecutor) + .thenCompose(preparationBarrier::wait) + .thenRunAsync(() -> { + }, applyExecutor); + } + + private void getResourcesMap(ResourceManager resourceManager) { + Map map = new HashMap<>(); + + var allVariantJsonFiles = resourceManager.listResources( + ModRegistries.TINY_FLOWER.identifier() + .withPrefix(TinyFlowers.MOD_ID + "/") + .getPath(), + identifier -> identifier.getPath().endsWith(".json")); + + allVariantJsonFiles.forEach((identifier, rawResource) -> { + try (var reader = rawResource.openAsReader()) { + JsonObject data = GsonHelper.parse(reader).getAsJsonObject(); + DataResult readResult = TinyFlowerResources.CODEC.parse(JsonOps.INSTANCE, data); + if (readResult.isError()) { + TinyFlowers.LOGGER + .warn("Failed to read data for tiny flower resource info " + identifier.toString() + ". Skipping"); + return; + } + + map.put(identifier, readResult.getOrThrow()); + } catch (IOException ex) { + TinyFlowers.LOGGER + .warn("Failed to read data for tiny flower resource info " + identifier.toString() + ". Skipping"); + } catch (Exception ex) { + TinyFlowers.LOGGER + .warn("Error while reading tiny flower resource info " + identifier.toString() + ". Skipping"); + } + }); + + TinyFlowerResources.setInstances(map); + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/TinyFlowerResources.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java similarity index 92% rename from src/client/java/co/secretonline/tinyflowers/renderer/TinyFlowerResources.java rename to src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java index 29611330..4343e0c3 100644 --- a/src/client/java/co/secretonline/tinyflowers/renderer/TinyFlowerResources.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java @@ -1,4 +1,4 @@ -package co.secretonline.tinyflowers.renderer; +package co.secretonline.tinyflowers.resources; import java.util.HashMap; import java.util.Map; @@ -11,6 +11,16 @@ import net.minecraft.resources.Identifier; public record TinyFlowerResources(Identifier id, Part part1, Part part2, Part part3, Part part4) { + private static Map INSTANCES = new HashMap<>(); + + public static Map getInstances() { + return INSTANCES; + } + + public static void setInstances(Map map) { + TinyFlowers.LOGGER.info("did set map"); + INSTANCES = map; + } public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerResources::id), From fccf93bd72d180d391d72a5e1c09b5db748ec0b2 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sat, 20 Dec 2025 21:22:34 +1300 Subject: [PATCH 019/113] Fix some blockstate warnings --- .../datagen/providers/DefaultModelProvider.java | 4 ++-- .../assets/tiny_flowers/models/block/tiny_garden.json | 7 +++++++ .../assets/tiny_flowers/blockstates/tiny_garden.json | 8 ++++---- 3 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 src/client/resources/assets/tiny_flowers/models/block/tiny_garden.json diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/DefaultModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/DefaultModelProvider.java index dc554ce7..d3230439 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/DefaultModelProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/DefaultModelProvider.java @@ -1,5 +1,6 @@ package co.secretonline.tinyflowers.datagen.providers; +import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.blocks.ModBlocks; import co.secretonline.tinyflowers.blocks.TinyGardenBlock; import co.secretonline.tinyflowers.items.ModItems; @@ -10,7 +11,6 @@ import net.minecraft.client.data.models.ItemModelGenerators; import net.minecraft.client.data.models.blockstates.MultiPartGenerator; import net.minecraft.core.Direction; -import net.minecraft.resources.Identifier; import net.minecraft.world.item.DyeColor; public class DefaultModelProvider extends FabricModelProvider { @@ -31,7 +31,7 @@ public void generateBlockStateModels(BlockModelGenerators blockStateModelGenerat definitionCreator = definitionCreator.with( BlockModelGenerators.condition() .term(TinyGardenBlock.FACING, direction), - BlockModelGenerators.plainVariant(Identifier.withDefaultNamespace("air"))); + BlockModelGenerators.plainVariant(TinyFlowers.id("block/tiny_garden"))); } blockStateModelGenerator.blockStateOutput.accept(definitionCreator); diff --git a/src/client/resources/assets/tiny_flowers/models/block/tiny_garden.json b/src/client/resources/assets/tiny_flowers/models/block/tiny_garden.json new file mode 100644 index 00000000..112f8129 --- /dev/null +++ b/src/client/resources/assets/tiny_flowers/models/block/tiny_garden.json @@ -0,0 +1,7 @@ +{ + "ambientocclusion": false, + "elements": [], + "textures": { + "particle": "tiny_flowers:item/tiny_garden" + } +} diff --git a/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json b/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json index e877014b..72d16ff2 100644 --- a/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json +++ b/src/main/generated/assets/tiny_flowers/blockstates/tiny_garden.json @@ -2,7 +2,7 @@ "multipart": [ { "apply": { - "model": "minecraft:air" + "model": "tiny_flowers:block/tiny_garden" }, "when": { "facing": "north" @@ -10,7 +10,7 @@ }, { "apply": { - "model": "minecraft:air" + "model": "tiny_flowers:block/tiny_garden" }, "when": { "facing": "east" @@ -18,7 +18,7 @@ }, { "apply": { - "model": "minecraft:air" + "model": "tiny_flowers:block/tiny_garden" }, "when": { "facing": "south" @@ -26,7 +26,7 @@ }, { "apply": { - "model": "minecraft:air" + "model": "tiny_flowers:block/tiny_garden" }, "when": { "facing": "west" From 1118622ea96395dd30d75ad4ab94370906348e88 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sat, 20 Dec 2025 21:24:55 +1300 Subject: [PATCH 020/113] Start messing around with block entity renderer I have no idea what I'm doing, and it shows. This work is currently frustrating, but I at least have something appearing on the screen even though I'm not thinking about it too hard. My attempts with actual models aren't working because the models themselves either haven't loaded (likely) or I'm trying to get them the wring way (also likely). --- .../block/TinyGardenBlockEntityRenderer.java | 108 +++++++++++++++++- 1 file changed, 107 insertions(+), 1 deletion(-) diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java index 2b92eb86..a29052c3 100644 --- a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java +++ b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java @@ -1,25 +1,59 @@ package co.secretonline.tinyflowers.renderer.block; +import java.util.HashMap; +import java.util.Map; import java.util.Optional; import org.jspecify.annotations.Nullable; import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Axis; import co.secretonline.tinyflowers.blocks.TinyGardenBlock; import co.secretonline.tinyflowers.blocks.TinyGardenBlockEntity; +import co.secretonline.tinyflowers.resources.TinyFlowerResources; +import net.minecraft.client.gui.Font; +import net.minecraft.client.model.geom.ModelLayerLocation; +import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.renderer.SubmitNodeCollector; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.renderer.feature.ModelFeatureRenderer.CrumblingOverlay; import net.minecraft.client.renderer.state.CameraRenderState; import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; import net.minecraft.world.phys.Vec3; public class TinyGardenBlockEntityRenderer implements BlockEntityRenderer { + private final Map modelsForVariant = new HashMap<>(); public TinyGardenBlockEntityRenderer(BlockEntityRendererProvider.Context context) { + // This map is re-created when resources are reloaded. Luckily, a new instance + // of this class is made too. + Map resourceMap = TinyFlowerResources.getInstances(); + + // Some primitive caching for model baking, since most flowers shoudl use the + // same models. + Map bakedModels = new HashMap<>(); + // resourceMap.forEach((id, resource) -> { + // for (var part : new TinyFlowerResources.Part[] { resource.part1(), + // resource.part2(), + // resource.part3(), resource.part4() }) { + // if (!bakedModels.containsKey(part.model())) { + // var location = new ModelLayerLocation(part.model(), "main"); + // var baked = context.bakeLayer(location); + // bakedModels.put(part.model(), baked); + // } + // } + + // modelsForVariant.put(id, new BakedModelHolder( + // bakedModels.get(resource.part1().model()), resource.part1().textures(), + // bakedModels.get(resource.part2().model()), resource.part2().textures(), + // bakedModels.get(resource.part3().model()), resource.part3().textures(), + // bakedModels.get(resource.part4().model()), resource.part4().textures())); + // }); } @Override @@ -38,12 +72,78 @@ public void extractRenderState(TinyGardenBlockEntity blockEntity, state.setDirection(facingDirection.get()); } - state.setFlowers(state.getFlower1(), state.getFlower2(), state.getFlower3(), state.getFlower4()); + state.setFlowers(blockEntity.getFlower(1), blockEntity.getFlower(2), + blockEntity.getFlower(3), blockEntity.getFlower(4)); } @Override public void submit(TinyGardenBlockEntityRenderState blockEntityRenderState, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState cameraRenderState) { + poseStack.pushPose(); + + float rotationDegrees = Direction.getYRot(blockEntityRenderState.getDirection()); + poseStack.mulPose(Axis.YP.rotationDegrees(rotationDegrees)); + + if (blockEntityRenderState.getFlower1() != null) { + poseStack.pushPose(); + poseStack.scale(1 / 32f, 1 / 32f, 1 / 32f); + poseStack.mulPose(Axis.XP.rotationDegrees(180)); + submitNodeCollector.submitText(poseStack, 24f, -20f, + Component.literal(blockEntityRenderState.getFlower1().toString()).getVisualOrderText(), + false, + Font.DisplayMode.SEE_THROUGH, + blockEntityRenderState.lightCoords, + 0xffffffff, + 1, + 0); + poseStack.popPose(); + } + if (blockEntityRenderState.getFlower2() != null) { + poseStack.pushPose(); + poseStack.scale(1 / 32f, 1 / 32f, 1 / 32f); + poseStack.mulPose(Axis.XP.rotationDegrees(180)); + poseStack.translate(0, 0, 32); + submitNodeCollector.submitText(poseStack, 24f, -20f, + Component.literal(blockEntityRenderState.getFlower2().toString()).getVisualOrderText(), + false, + Font.DisplayMode.SEE_THROUGH, + blockEntityRenderState.lightCoords, + 0xffffffff, + 0, + 0); + poseStack.popPose(); + } + if (blockEntityRenderState.getFlower3() != null) { + poseStack.pushPose(); + poseStack.scale(1 / 32f, 1 / 32f, 1 / 32f); + poseStack.mulPose(Axis.XP.rotationDegrees(180)); + poseStack.translate(0, 0, 32); + submitNodeCollector.submitText(poseStack, 8f, -10f, + Component.literal(blockEntityRenderState.getFlower3().toString()).getVisualOrderText(), + false, + Font.DisplayMode.SEE_THROUGH, + blockEntityRenderState.lightCoords, + 0xffffffff, + 0, + 0); + poseStack.popPose(); + } + if (blockEntityRenderState.getFlower4() != null) { + poseStack.pushPose(); + poseStack.scale(1 / 32f, 1 / 32f, 1 / 32f); + poseStack.mulPose(Axis.XP.rotationDegrees(180)); + submitNodeCollector.submitText(poseStack, 8f, -10f, + Component.literal(blockEntityRenderState.getFlower4().toString()).getVisualOrderText(), + false, + Font.DisplayMode.SEE_THROUGH, + blockEntityRenderState.lightCoords, + 0xffffffff, + 0, + 0); + poseStack.popPose(); + } + + poseStack.popPose(); } @Override @@ -54,4 +154,10 @@ public int getViewDistance() { // mean to be part of the world, which usually doesn't distance culling. return 256; } + + private static record BakedModelHolder(ModelPart part1, Map textures1, + ModelPart part2, Map textures2, + ModelPart part3, Map textures3, + ModelPart part4, Map textures4) { + } } From 5ecb09a92b41f7a46fa439041c619dac81ac9301 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 09:43:01 +1300 Subject: [PATCH 021/113] Create block models for each part --- .../datagen/providers/ModModelProvider.java | 16 +++++++++++++ .../resources/TinyFlowerResources.java | 23 +++++++++++++++++++ .../models/tiny_flowers/leaf_litter_1.json | 7 ++++++ .../models/tiny_flowers/leaf_litter_2.json | 7 ++++++ .../models/tiny_flowers/leaf_litter_3.json | 7 ++++++ .../models/tiny_flowers/leaf_litter_4.json | 7 ++++++ .../models/tiny_flowers/pink_petals_1.json | 8 +++++++ .../models/tiny_flowers/pink_petals_2.json | 8 +++++++ .../models/tiny_flowers/pink_petals_3.json | 8 +++++++ .../models/tiny_flowers/pink_petals_4.json | 8 +++++++ .../models/tiny_flowers/wildflowers_1.json | 8 +++++++ .../models/tiny_flowers/wildflowers_2.json | 8 +++++++ .../models/tiny_flowers/wildflowers_3.json | 8 +++++++ .../models/tiny_flowers/wildflowers_4.json | 8 +++++++ .../models/tiny_flowers/tiny_allium_1.json | 8 +++++++ .../models/tiny_flowers/tiny_allium_2.json | 8 +++++++ .../models/tiny_flowers/tiny_allium_3.json | 8 +++++++ .../models/tiny_flowers/tiny_allium_4.json | 8 +++++++ .../tiny_flowers/tiny_azure_bluet_1.json | 8 +++++++ .../tiny_flowers/tiny_azure_bluet_2.json | 8 +++++++ .../tiny_flowers/tiny_azure_bluet_3.json | 8 +++++++ .../tiny_flowers/tiny_azure_bluet_4.json | 8 +++++++ .../tiny_flowers/tiny_blue_orchid_1.json | 9 ++++++++ .../tiny_flowers/tiny_blue_orchid_2.json | 9 ++++++++ .../tiny_flowers/tiny_blue_orchid_3.json | 9 ++++++++ .../tiny_flowers/tiny_blue_orchid_4.json | 9 ++++++++ .../tiny_flowers/tiny_cactus_flower_1.json | 8 +++++++ .../tiny_flowers/tiny_cactus_flower_2.json | 8 +++++++ .../tiny_flowers/tiny_cactus_flower_3.json | 8 +++++++ .../tiny_flowers/tiny_cactus_flower_4.json | 8 +++++++ .../tiny_closed_eyeblossom_1.json | 8 +++++++ .../tiny_closed_eyeblossom_2.json | 8 +++++++ .../tiny_closed_eyeblossom_3.json | 8 +++++++ .../tiny_closed_eyeblossom_4.json | 8 +++++++ .../tiny_flowers/tiny_cornflower_1.json | 8 +++++++ .../tiny_flowers/tiny_cornflower_2.json | 8 +++++++ .../tiny_flowers/tiny_cornflower_3.json | 8 +++++++ .../tiny_flowers/tiny_cornflower_4.json | 8 +++++++ .../models/tiny_flowers/tiny_dandelion_1.json | 8 +++++++ .../models/tiny_flowers/tiny_dandelion_2.json | 8 +++++++ .../models/tiny_flowers/tiny_dandelion_3.json | 8 +++++++ .../models/tiny_flowers/tiny_dandelion_4.json | 8 +++++++ .../tiny_lily_of_the_valley_1.json | 9 ++++++++ .../tiny_lily_of_the_valley_2.json | 9 ++++++++ .../tiny_lily_of_the_valley_3.json | 9 ++++++++ .../tiny_lily_of_the_valley_4.json | 9 ++++++++ .../tiny_flowers/tiny_open_eyeblossom_1.json | 9 ++++++++ .../tiny_flowers/tiny_open_eyeblossom_2.json | 9 ++++++++ .../tiny_flowers/tiny_open_eyeblossom_3.json | 9 ++++++++ .../tiny_flowers/tiny_open_eyeblossom_4.json | 9 ++++++++ .../tiny_flowers/tiny_orange_tulip_1.json | 8 +++++++ .../tiny_flowers/tiny_orange_tulip_2.json | 8 +++++++ .../tiny_flowers/tiny_orange_tulip_3.json | 8 +++++++ .../tiny_flowers/tiny_orange_tulip_4.json | 8 +++++++ .../tiny_flowers/tiny_oxeye_daisy_1.json | 8 +++++++ .../tiny_flowers/tiny_oxeye_daisy_2.json | 8 +++++++ .../tiny_flowers/tiny_oxeye_daisy_3.json | 8 +++++++ .../tiny_flowers/tiny_oxeye_daisy_4.json | 8 +++++++ .../tiny_flowers/tiny_pink_tulip_1.json | 8 +++++++ .../tiny_flowers/tiny_pink_tulip_2.json | 8 +++++++ .../tiny_flowers/tiny_pink_tulip_3.json | 8 +++++++ .../tiny_flowers/tiny_pink_tulip_4.json | 8 +++++++ .../models/tiny_flowers/tiny_poppy_1.json | 8 +++++++ .../models/tiny_flowers/tiny_poppy_2.json | 8 +++++++ .../models/tiny_flowers/tiny_poppy_3.json | 8 +++++++ .../models/tiny_flowers/tiny_poppy_4.json | 8 +++++++ .../models/tiny_flowers/tiny_red_tulip_1.json | 8 +++++++ .../models/tiny_flowers/tiny_red_tulip_2.json | 8 +++++++ .../models/tiny_flowers/tiny_red_tulip_3.json | 8 +++++++ .../models/tiny_flowers/tiny_red_tulip_4.json | 8 +++++++ .../tiny_flowers/tiny_torchflower_1.json | 10 ++++++++ .../tiny_flowers/tiny_torchflower_2.json | 10 ++++++++ .../tiny_flowers/tiny_torchflower_3.json | 10 ++++++++ .../tiny_flowers/tiny_torchflower_4.json | 10 ++++++++ .../tiny_flowers/tiny_white_tulip_1.json | 8 +++++++ .../tiny_flowers/tiny_white_tulip_2.json | 8 +++++++ .../tiny_flowers/tiny_white_tulip_3.json | 8 +++++++ .../tiny_flowers/tiny_white_tulip_4.json | 8 +++++++ .../tiny_flowers/tiny_wither_rose_1.json | 8 +++++++ .../tiny_flowers/tiny_wither_rose_2.json | 8 +++++++ .../tiny_flowers/tiny_wither_rose_3.json | 8 +++++++ .../tiny_flowers/tiny_wither_rose_4.json | 8 +++++++ 82 files changed, 695 insertions(+) create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_1.json create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_2.json create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_3.json create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_4.json create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_1.json create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_2.json create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_3.json create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_4.json create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_1.json create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_2.json create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_3.json create mode 100644 src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_4.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_1.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_2.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_3.json create mode 100644 src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_4.json diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java index 907888d6..73fc3cc2 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java @@ -37,6 +37,22 @@ public ModModelProvider(String modId, List tuple : this.flowers) { + var flowerResources = tuple.getB(); + + blockStateModelGenerator.modelOutput.accept( + flowerResources.id().withPrefix(TinyFlowers.MOD_ID + "/").withSuffix("_1"), + flowerResources.part1()::toJsonElement); + blockStateModelGenerator.modelOutput.accept( + flowerResources.id().withPrefix(TinyFlowers.MOD_ID + "/").withSuffix("_2"), + flowerResources.part2()::toJsonElement); + blockStateModelGenerator.modelOutput.accept( + flowerResources.id().withPrefix(TinyFlowers.MOD_ID + "/").withSuffix("_3"), + flowerResources.part3()::toJsonElement); + blockStateModelGenerator.modelOutput.accept( + flowerResources.id().withPrefix(TinyFlowers.MOD_ID + "/").withSuffix("_4"), + flowerResources.part4()::toJsonElement); + } } @Override diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java index 4343e0c3..aa6b64f7 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java @@ -3,11 +3,15 @@ import java.util.HashMap; import java.util.Map; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import co.secretonline.tinyflowers.TinyFlowers; +import net.minecraft.client.data.models.model.TextureMapping; import net.minecraft.client.data.models.model.TextureSlot; +import net.minecraft.client.renderer.block.model.TextureSlots; import net.minecraft.resources.Identifier; public record TinyFlowerResources(Identifier id, Part part1, Part part2, Part part3, Part part4) { @@ -31,6 +35,25 @@ public static void setInstances(Map map) { .apply(instance, TinyFlowerResources::new)); static public record Part(Identifier model, Map textures) { + public TextureMapping textureMap() { + TextureMapping textureMap = new TextureMapping(); + this.textures.forEach((key, value) -> textureMap.put(TextureSlot.create(key), value)); + return textureMap; + } + + public JsonElement toJsonElement() { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("parent", model.toString()); + if (!textures.isEmpty()) { + JsonObject texturesObject = new JsonObject(); + textures.forEach((textureSlot, identifier) -> { + texturesObject.addProperty(textureSlot, identifier.toString()); + }); + jsonObject.add("textures", texturesObject); + } + + return jsonObject; + } public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Identifier.CODEC.fieldOf("model").forGetter(Part::model), diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_1.json b/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_1.json new file mode 100644 index 00000000..af3910bb --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_1.json @@ -0,0 +1,7 @@ +{ + "parent": "tiny_flowers:block/garden_leaf_litter_1", + "textures": { + "flowerbed": "minecraft:block/leaf_litter", + "particle": "minecraft:block/leaf_litter" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_2.json b/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_2.json new file mode 100644 index 00000000..34084b4f --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_2.json @@ -0,0 +1,7 @@ +{ + "parent": "tiny_flowers:block/garden_leaf_litter_2", + "textures": { + "flowerbed": "minecraft:block/leaf_litter", + "particle": "minecraft:block/leaf_litter" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_3.json b/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_3.json new file mode 100644 index 00000000..5587e293 --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_3.json @@ -0,0 +1,7 @@ +{ + "parent": "tiny_flowers:block/garden_leaf_litter_3", + "textures": { + "flowerbed": "minecraft:block/leaf_litter", + "particle": "minecraft:block/leaf_litter" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_4.json b/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_4.json new file mode 100644 index 00000000..1feef887 --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_4.json @@ -0,0 +1,7 @@ +{ + "parent": "tiny_flowers:block/garden_leaf_litter_4", + "textures": { + "flowerbed": "minecraft:block/leaf_litter", + "particle": "minecraft:block/leaf_litter" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_1.json b/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_1.json new file mode 100644 index 00000000..5357b1e8 --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "particle": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_2.json b/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_2.json new file mode 100644 index 00000000..6ee38288 --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "particle": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_3.json b/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_3.json new file mode 100644 index 00000000..da6ecb9b --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "particle": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_4.json b/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_4.json new file mode 100644 index 00000000..d5296edd --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "minecraft:block/pink_petals", + "particle": "minecraft:block/pink_petals", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_1.json b/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_1.json new file mode 100644 index 00000000..84962ae0 --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "minecraft:block/wildflowers", + "particle": "minecraft:block/wildflowers", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_2.json b/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_2.json new file mode 100644 index 00000000..5d58ac70 --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "minecraft:block/wildflowers", + "particle": "minecraft:block/wildflowers", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_3.json b/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_3.json new file mode 100644 index 00000000..00b7b588 --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "minecraft:block/wildflowers", + "particle": "minecraft:block/wildflowers", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_4.json b/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_4.json new file mode 100644 index 00000000..b5e47300 --- /dev/null +++ b/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "minecraft:block/wildflowers", + "particle": "minecraft:block/wildflowers", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_1.json new file mode 100644 index 00000000..ea6b6ca0 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_2.json new file mode 100644 index 00000000..4b7d74d9 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_3.json new file mode 100644 index 00000000..0b52f4db --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_4.json new file mode 100644 index 00000000..49096e3b --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_allium", + "particle": "tiny_flowers:block/tiny_allium", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_1.json new file mode 100644 index 00000000..3f30e4db --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_2.json new file mode 100644 index 00000000..a426b3df --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_3.json new file mode 100644 index 00000000..0483491a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_4.json new file mode 100644 index 00000000..5f74df90 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_azure_bluet", + "particle": "tiny_flowers:block/tiny_azure_bluet", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_1.json new file mode 100644 index 00000000..66c79970 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_1.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_2.json new file mode 100644 index 00000000..aea63934 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_2.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_3.json new file mode 100644 index 00000000..e08fe8aa --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_3.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_4.json new file mode 100644 index 00000000..7e4dfb5d --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_4.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_blue_orchid", + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", + "particle": "tiny_flowers:block/tiny_blue_orchid", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_1.json new file mode 100644 index 00000000..10cd18ab --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_low_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_2.json new file mode 100644 index 00000000..6e614476 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_low_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_3.json new file mode 100644 index 00000000..6fb71aef --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_low_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_4.json new file mode 100644 index 00000000..b48d97f9 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_low_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cactus_flower", + "particle": "tiny_flowers:block/tiny_cactus_flower", + "stem": "tiny_flowers:block/tiny_cactus_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_1.json new file mode 100644 index 00000000..15591232 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_2.json new file mode 100644 index 00000000..acf25406 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_3.json new file mode 100644 index 00000000..54448fa0 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_4.json new file mode 100644 index 00000000..4d111137 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", + "particle": "tiny_flowers:block/tiny_closed_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_1.json new file mode 100644 index 00000000..34c30ff6 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_2.json new file mode 100644 index 00000000..79247819 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_3.json new file mode 100644 index 00000000..09112a1c --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_4.json new file mode 100644 index 00000000..eb3321db --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_cornflower", + "particle": "tiny_flowers:block/tiny_cornflower", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_1.json new file mode 100644 index 00000000..f359bc87 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_2.json new file mode 100644 index 00000000..305efc43 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_3.json new file mode 100644 index 00000000..dea5daff --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_4.json new file mode 100644 index 00000000..37d8211a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_dandelion", + "particle": "tiny_flowers:block/tiny_dandelion", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_1.json new file mode 100644 index 00000000..82dec806 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_1.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_2.json new file mode 100644 index 00000000..90a8002f --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_2.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_3.json new file mode 100644 index 00000000..afdb5fea --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_3.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_4.json new file mode 100644 index 00000000..5637689d --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_4.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", + "particle": "tiny_flowers:block/tiny_lily_of_the_valley", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_1.json new file mode 100644 index 00000000..37f701d2 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_1.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_glow_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_2.json new file mode 100644 index 00000000..9eac4a3a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_2.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_glow_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_3.json new file mode 100644 index 00000000..6cb4e327 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_3.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_glow_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_4.json new file mode 100644 index 00000000..67c7d714 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_4.json @@ -0,0 +1,9 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_glow_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", + "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", + "particle": "tiny_flowers:block/tiny_open_eyeblossom", + "stem": "tiny_flowers:block/tiny_eyeblossom_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_1.json new file mode 100644 index 00000000..6f300104 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_2.json new file mode 100644 index 00000000..d1c81ecf --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_3.json new file mode 100644 index 00000000..3d83be38 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_4.json new file mode 100644 index 00000000..f5babf53 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_orange_tulip", + "particle": "tiny_flowers:block/tiny_orange_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_1.json new file mode 100644 index 00000000..279bc943 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_2.json new file mode 100644 index 00000000..d4007512 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_3.json new file mode 100644 index 00000000..dbe495a0 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_4.json new file mode 100644 index 00000000..e6a8392c --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", + "particle": "tiny_flowers:block/tiny_oxeye_daisy", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_1.json new file mode 100644 index 00000000..c3c90269 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_2.json new file mode 100644 index 00000000..1478f55b --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_3.json new file mode 100644 index 00000000..3039a2c1 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_4.json new file mode 100644 index 00000000..2bd4e8ec --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_pink_tulip", + "particle": "tiny_flowers:block/tiny_pink_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_1.json new file mode 100644 index 00000000..758ff948 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_tall_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tiny_tall_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_2.json new file mode 100644 index 00000000..3c02edc6 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_tall_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tiny_tall_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_3.json new file mode 100644 index 00000000..e4cf0a09 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_tall_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tiny_tall_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_4.json new file mode 100644 index 00000000..94297b4e --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_tall_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_poppy", + "particle": "tiny_flowers:block/tiny_poppy", + "stem": "tiny_flowers:block/tiny_tall_flower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_1.json new file mode 100644 index 00000000..a9e8961d --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_2.json new file mode 100644 index 00000000..ac809398 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_3.json new file mode 100644 index 00000000..8ae8d706 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_4.json new file mode 100644 index 00000000..5d320e4c --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_red_tulip", + "particle": "tiny_flowers:block/tiny_red_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_1.json new file mode 100644 index 00000000..1b657fb8 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_1.json @@ -0,0 +1,10 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_2.json new file mode 100644 index 00000000..63b9bb02 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_2.json @@ -0,0 +1,10 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_3.json new file mode 100644 index 00000000..6a673a3d --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_3.json @@ -0,0 +1,10 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_4.json new file mode 100644 index 00000000..3b65e266 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_4.json @@ -0,0 +1,10 @@ +{ + "parent": "tiny_flowers:block/garden_double_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_torchflower", + "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", + "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", + "particle": "tiny_flowers:block/tiny_torchflower", + "stem": "tiny_flowers:block/tiny_torchflower_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_1.json new file mode 100644 index 00000000..7976a815 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_2.json new file mode 100644 index 00000000..83866a5a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_3.json new file mode 100644 index 00000000..9f066cbb --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_4.json new file mode 100644 index 00000000..2f01184a --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_white_tulip", + "particle": "tiny_flowers:block/tiny_white_tulip", + "stem": "minecraft:block/pink_petals_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_1.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_1.json new file mode 100644 index 00000000..d3659fc1 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_1", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_2.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_2.json new file mode 100644 index 00000000..d8ace383 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_2", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_3.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_3.json new file mode 100644 index 00000000..e2c6ad1b --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_3", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_4.json b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_4.json new file mode 100644 index 00000000..2e50fa73 --- /dev/null +++ b/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_untinted_4", + "textures": { + "flowerbed": "tiny_flowers:block/tiny_wither_rose", + "particle": "tiny_flowers:block/tiny_wither_rose", + "stem": "tiny_flowers:block/tiny_wither_rose_stem" + } +} \ No newline at end of file From c115e34390383ed44184c5800d92c17d18078734 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 10:39:55 +1300 Subject: [PATCH 022/113] Redo data generation again --- .../generators/mods/BaseModDataGenerator.java | 9 +- .../mods/TinyFlowersDataGenerator.java | 225 +++++++--------- .../mods/TinyFlowersDatagenData.java | 241 ++++++++++++++++++ .../generators/mods/VanillaDataGenerator.java | 39 +-- .../datagen/providers/ModFlowersProvider.java | 12 +- .../datagen/providers/ModModelProvider.java | 31 +-- .../datagen/providers/ModRecipeProvider.java | 12 +- .../tiny_flowers/tiny_flower/leaf_litter.json | 32 +-- .../tiny_flowers/tiny_flower/pink_petals.json | 36 +-- .../tiny_flowers/tiny_flower/wildflowers.json | 36 +-- .../tiny_flowers/tiny_flower/tiny_allium.json | 36 +-- .../tiny_flower/tiny_azure_bluet.json | 36 +-- .../tiny_flower/tiny_blue_orchid.json | 40 +-- .../tiny_flower/tiny_cactus_flower.json | 36 +-- .../tiny_flower/tiny_closed_eyeblossom.json | 36 +-- .../tiny_flower/tiny_cornflower.json | 36 +-- .../tiny_flower/tiny_dandelion.json | 36 +-- .../tiny_flower/tiny_lily_of_the_valley.json | 40 +-- .../tiny_flower/tiny_open_eyeblossom.json | 40 +-- .../tiny_flower/tiny_orange_tulip.json | 36 +-- .../tiny_flower/tiny_oxeye_daisy.json | 36 +-- .../tiny_flower/tiny_pink_tulip.json | 36 +-- .../tiny_flowers/tiny_flower/tiny_poppy.json | 36 +-- .../tiny_flower/tiny_red_tulip.json | 36 +-- .../tiny_flower/tiny_torchflower.json | 44 +--- .../tiny_flower/tiny_white_tulip.json | 36 +-- .../tiny_flower/tiny_wither_rose.json | 36 +-- 27 files changed, 449 insertions(+), 856 deletions(-) create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java index 555ae836..2e08809f 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java @@ -3,27 +3,24 @@ import java.util.List; import java.util.concurrent.CompletableFuture; -import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.datagen.generators.PackContributor; -import co.secretonline.tinyflowers.datagen.providers.ModModelProvider; import co.secretonline.tinyflowers.datagen.providers.ModFlowersProvider; +import co.secretonline.tinyflowers.datagen.providers.ModModelProvider; import co.secretonline.tinyflowers.datagen.providers.ModRecipeProvider; -import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.core.HolderLookup; import net.minecraft.util.Mth; -import net.minecraft.util.Tuple; public abstract class BaseModDataGenerator implements PackContributor { public abstract String getModId(); - public abstract List> getFlowerData(); + public abstract List getFlowerData(); @Override public void addProviders(Pack pack) { String modId = getModId(); - List> data = this.getFlowerData(); + List data = this.getFlowerData(); pack.addProvider((FabricDataOutput output) -> new ModModelProvider(modId, data, output)); pack.addProvider((FabricDataOutput output, diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java index b387b28a..5df085a3 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java @@ -3,12 +3,8 @@ import java.util.List; import co.secretonline.tinyflowers.TinyFlowers; -import co.secretonline.tinyflowers.data.TinyFlowerData; -import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.minecraft.resources.Identifier; -import net.minecraft.util.Tuple; import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; public class TinyFlowersDataGenerator extends BaseModDataGenerator { @Override @@ -17,136 +13,97 @@ public String getModId() { } @Override - public List> getFlowerData() { + public List getFlowerData() { return List.of( - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_dandelion"), Identifier.withDefaultNamespace("dandelion"), false, - List.of(new Entry(MobEffects.SATURATION, toTicks(0.35f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_dandelion")) - .layers(TinyFlowers.id("tiny_dandelion")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_poppy"), Identifier.withDefaultNamespace("poppy"), false, - List.of(new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_poppy")) - .layers(TinyFlowers.id("tiny_poppy")) - .special(TinyFlowers.id("garden_tall")) - .stemTexture(TinyFlowers.id("tiny_tall_flower_stem")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_blue_orchid"), Identifier.withDefaultNamespace("blue_orchid"), - false, - List.of(new Entry(MobEffects.SATURATION, toTicks(0.35f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_blue_orchid")) - .layers(TinyFlowers.id("tiny_blue_orchid"), - TinyFlowers.id("tiny_blue_orchid_upper")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_allium"), Identifier.withDefaultNamespace("allium"), false, - List.of(new Entry(MobEffects.FIRE_RESISTANCE, toTicks(3.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_allium")) - .layers(TinyFlowers.id("tiny_allium")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_azure_bluet"), Identifier.withDefaultNamespace("azure_bluet"), - false, - List.of(new Entry(MobEffects.BLINDNESS, toTicks(11.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_azure_bluet")) - .layers(TinyFlowers.id("tiny_azure_bluet")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_red_tulip"), Identifier.withDefaultNamespace("red_tulip"), false, - List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_red_tulip")) - .layers(TinyFlowers.id("tiny_red_tulip")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_orange_tulip"), Identifier.withDefaultNamespace("orange_tulip"), - false, - List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_orange_tulip")) - .layers(TinyFlowers.id("tiny_orange_tulip")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_white_tulip"), Identifier.withDefaultNamespace("white_tulip"), - false, - List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_white_tulip")) - .layers(TinyFlowers.id("tiny_white_tulip")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_pink_tulip"), Identifier.withDefaultNamespace("pink_tulip"), false, - List.of(new Entry(MobEffects.WEAKNESS, toTicks(7.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_pink_tulip")) - .layers(TinyFlowers.id("tiny_pink_tulip")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_oxeye_daisy"), Identifier.withDefaultNamespace("oxeye_daisy"), - false, - List.of(new Entry(MobEffects.REGENERATION, toTicks(7.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_oxeye_daisy")) - .layers(TinyFlowers.id("tiny_oxeye_daisy")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_cornflower"), Identifier.withDefaultNamespace("cornflower"), false, - List.of(new Entry(MobEffects.JUMP_BOOST, toTicks(5.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_cornflower")) - .layers(TinyFlowers.id("tiny_cornflower")) - .build()), - new Tuple(new TinyFlowerData(TinyFlowers.id("tiny_lily_of_the_valley"), - Identifier.withDefaultNamespace("lily_of_the_valley"), false, - List.of(new Entry(MobEffects.POISON, toTicks(11.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_lily_of_the_valley")) - .layers(TinyFlowers.id("tiny_lily_of_the_valley"), - TinyFlowers.id("tiny_lily_of_the_valley_upper")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_torchflower"), Identifier.withDefaultNamespace("torchflower"), - false, - List.of(new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_torchflower")) - .layers(TinyFlowers.id("tiny_torchflower"), - TinyFlowers.id("tiny_torchflower_middle"), - TinyFlowers.id("tiny_torchflower_upper")) - .untintedStem() - .stemTexture(TinyFlowers.id("tiny_torchflower_stem")) - .build()), - new Tuple(new TinyFlowerData(TinyFlowers.id("tiny_closed_eyeblossom"), - Identifier.withDefaultNamespace("closed_eyeblossom"), false, - List.of(new Entry(MobEffects.NAUSEA, toTicks(7.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_closed_eyeblossom")) - .layers(TinyFlowers.id("tiny_closed_eyeblossom")) - .untintedStem() - .stemTexture(TinyFlowers.id("tiny_eyeblossom_stem")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_open_eyeblossom"), - Identifier.withDefaultNamespace("open_eyeblossom"), - false, List.of(new Entry(MobEffects.BLINDNESS, toTicks(11.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_open_eyeblossom")) - .layers(TinyFlowers.id("tiny_open_eyeblossom"), - TinyFlowers.id("tiny_open_eyeblossom_upper")) - .special(TinyFlowers.id("garden_double_untinted_glow")) - .untintedStem() - .stemTexture(TinyFlowers.id("tiny_eyeblossom_stem")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_wither_rose"), Identifier.withDefaultNamespace("wither_rose"), - false, - List.of(new Entry(MobEffects.WITHER, toTicks(7.0f)))), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_wither_rose")) - .layers(TinyFlowers.id("tiny_wither_rose")) - .untintedStem() - .stemTexture(TinyFlowers.id("tiny_wither_rose_stem")) - .build()), - new Tuple( - new TinyFlowerData(TinyFlowers.id("tiny_cactus_flower"), Identifier.withDefaultNamespace("cactus_flower"), - false, - List.of()), - new TinyFlowerResources.Builder(TinyFlowers.id("tiny_cactus_flower")) - .layers(TinyFlowers.id("tiny_cactus_flower")) - .special(TinyFlowers.id("garden_low_untinted")) - .stemTexture(TinyFlowers.id("tiny_cactus_flower_stem")) - .build())); + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_dandelion"), Identifier.withDefaultNamespace("dandelion")) + .stewEffectSeconds(MobEffects.SATURATION, 0.35) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_poppy"), Identifier.withDefaultNamespace("poppy")) + .stewEffectSeconds(MobEffects.NIGHT_VISION, 5.0) + .customModel(TinyFlowers.id("garden_tall")) + .stemTexture(TinyFlowers.id("tiny_tall_flower_stem")) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_blue_orchid"), Identifier.withDefaultNamespace("blue_orchid")) + .layers(TinyFlowers.id("tiny_blue_orchid"), + TinyFlowers.id("tiny_blue_orchid_upper")) + .stewEffectSeconds(MobEffects.SATURATION, 0.35) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_allium"), Identifier.withDefaultNamespace("allium")) + .stewEffectSeconds(MobEffects.FIRE_RESISTANCE, 3.0) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_azure_bluet"), Identifier.withDefaultNamespace("azure_bluet")) + .stewEffectSeconds(MobEffects.BLINDNESS, 11.0) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_red_tulip"), Identifier.withDefaultNamespace("red_tulip")) + .stewEffectSeconds(MobEffects.WEAKNESS, 7.0) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_orange_tulip"), Identifier.withDefaultNamespace("orange_tulip")) + .stewEffectSeconds(MobEffects.WEAKNESS, 7.0) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_white_tulip"), Identifier.withDefaultNamespace("white_tulip")) + .stewEffectSeconds(MobEffects.WEAKNESS, 7.0) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_pink_tulip"), Identifier.withDefaultNamespace("pink_tulip")) + .stewEffectSeconds(MobEffects.WEAKNESS, 7.0) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_oxeye_daisy"), Identifier.withDefaultNamespace("oxeye_daisy")) + .stewEffectSeconds(MobEffects.REGENERATION, 7.0) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_cornflower"), Identifier.withDefaultNamespace("cornflower")) + .stewEffectSeconds(MobEffects.JUMP_BOOST, 5.0) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_lily_of_the_valley"), Identifier.withDefaultNamespace("lily_of_the_valley")) + .stewEffectSeconds(MobEffects.POISON, 11.0) + .layers(TinyFlowers.id("tiny_lily_of_the_valley"), + TinyFlowers.id("tiny_lily_of_the_valley_upper")) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_torchflower"), Identifier.withDefaultNamespace("torchflower")) + .stewEffectSeconds(MobEffects.NIGHT_VISION, 5.0) + .layers(TinyFlowers.id("tiny_torchflower"), + TinyFlowers.id("tiny_torchflower_middle"), + TinyFlowers.id("tiny_torchflower_upper")) + .untintedStem() + .stemTexture(TinyFlowers.id("tiny_torchflower_stem")) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_closed_eyeblossom"), Identifier.withDefaultNamespace("closed_eyeblossom")) + .stewEffectSeconds(MobEffects.NAUSEA, 7.0) + .layers(TinyFlowers.id("tiny_closed_eyeblossom")) + .untintedStem() + .stemTexture(TinyFlowers.id("tiny_eyeblossom_stem")) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_open_eyeblossom"), Identifier.withDefaultNamespace("open_eyeblossom")) + .stewEffectSeconds(MobEffects.BLINDNESS, 11.0) + .layers(TinyFlowers.id("tiny_open_eyeblossom"), + TinyFlowers.id("tiny_open_eyeblossom_upper")) + .customModel(TinyFlowers.id("garden_double_untinted_glow")) + .untintedStem() + .stemTexture(TinyFlowers.id("tiny_eyeblossom_stem")) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_wither_rose"), Identifier.withDefaultNamespace("wither_rose")) + .stewEffectSeconds(MobEffects.WITHER, 7.0) + .untintedStem() + .stemTexture(TinyFlowers.id("tiny_wither_rose_stem")) + .build(), + TinyFlowersDatagenData.Builder + .ofCustom(TinyFlowers.id("tiny_cactus_flower"), Identifier.withDefaultNamespace("cactus_flower")) + .customModel(TinyFlowers.id("garden_low_untinted")) + .stemTexture(TinyFlowers.id("tiny_cactus_flower_stem")) + .build()); } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java new file mode 100644 index 00000000..b35a6272 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java @@ -0,0 +1,241 @@ +package co.secretonline.tinyflowers.datagen.generators.mods; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.BiConsumer; + +import org.jspecify.annotations.NonNull; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; + +import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.resources.TinyFlowerResources; +import net.minecraft.client.data.models.model.ModelInstance; +import net.minecraft.client.data.models.model.TextureSlot; +import net.minecraft.core.Holder; +import net.minecraft.resources.Identifier; +import net.minecraft.util.Mth; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; + +public class TinyFlowersDatagenData { + private static String MOD_ID_PREFIX = TinyFlowers.MOD_ID + "/"; + + private Identifier id; + private Identifier originalBlockId; + private boolean isSegmentable; + @NonNull + private List suspiciousStewEffects; + + private ModelPart modelPart1; + private ModelPart modelPart2; + private ModelPart modelPart3; + private ModelPart modelPart4; + + public TinyFlowerData data() { + return new TinyFlowerData(id, originalBlockId, isSegmentable, suspiciousStewEffects); + } + + public TinyFlowerResources resources() { + return new TinyFlowerResources(id, + modelPart1.id().withPrefix(MOD_ID_PREFIX).withPrefix("block/"), + modelPart2.id().withPrefix(MOD_ID_PREFIX).withPrefix("block/"), + modelPart3.id().withPrefix(MOD_ID_PREFIX).withPrefix("block/"), + modelPart4.id().withPrefix(MOD_ID_PREFIX).withPrefix("block/")); + } + + public ModelParts modelParts() { + return new ModelParts( + modelPart1, + modelPart2, + modelPart3, + modelPart4); + } + + public static record ModelPart(Identifier id, Identifier parent, Map textures) { + + public JsonElement toJsonElement() { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("parent", parent.toString()); + if (!textures.isEmpty()) { + JsonObject texturesObject = new JsonObject(); + textures.forEach((textureSlot, identifier) -> { + texturesObject.addProperty(textureSlot, identifier.toString()); + }); + jsonObject.add("textures", texturesObject); + } + + return jsonObject; + } + + public void outputModel(BiConsumer consumer) { + consumer.accept(id.withPrefix(MOD_ID_PREFIX), this::toJsonElement); + } + } + + public static record ModelParts(ModelPart part1, ModelPart part2, ModelPart part3, ModelPart part4) { + } + + public static class Builder { + private static final TextureSlot FLOWERBED_MIDDLE = TextureSlot.create("flowerbed_middle"); + private static final TextureSlot FLOWERBED_UPPER = TextureSlot.create("flowerbed_upper"); + + private Identifier id; + private Identifier originalBlockId; + private boolean isSegmentable = false; + private List suspiciousStewEffects = new ArrayList<>(); + + private int layers = 0; + private boolean untintedStem = false; + private boolean includeStemTexture = true; + private Identifier stemTexture = Identifier.withDefaultNamespace("block/pink_petals_stem"); + private Map textureMap = new HashMap<>(); + private Identifier customModel = null; + + public static Builder ofCustom(Identifier id, Identifier originalBlockId) { + return new Builder() + .id(id) + .originalBlockId(originalBlockId) + .layers(id); + } + + public static Builder ofSegmented(Identifier originalBlockId) { + return new Builder() + .id(originalBlockId) + .originalBlockId(originalBlockId) + .segmentable() + .layers(originalBlockId); + } + + public static Builder ofStandard(Identifier originalBlockId) { + Identifier id = originalBlockId.withPrefix("tiny_"); + + return new Builder() + .id(id) + .originalBlockId(originalBlockId) + .layers(id); + } + + public Builder id(Identifier id) { + this.id = id; + return this; + } + + public Builder originalBlockId(Identifier originalBlockId) { + this.originalBlockId = originalBlockId; + return this; + } + + public Builder segmentable() { + this.isSegmentable = true; + return this; + } + + public Builder stewEffect(Holder effect, int ticks) { + this.suspiciousStewEffects.add(new Entry(effect, ticks)); + return this; + } + + public Builder stewEffectSeconds(Holder effect, double seconds) { + return this.stewEffect(effect, Mth.floor(seconds * 20.0f)); + } + + public Builder layers(Identifier flowerbedTexture) { + layers = 1; + textureMap.put(TextureSlot.PARTICLE.getId(), flowerbedTexture.withPrefix("block/")); + textureMap.put(TextureSlot.FLOWERBED.getId(), flowerbedTexture.withPrefix("block/")); + + return this; + } + + public Builder layers(Identifier lowerTexture, Identifier upperTexture) { + layers = 2; + textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); + textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); + textureMap.put(FLOWERBED_UPPER.getId(), upperTexture.withPrefix("block/")); + + return this; + } + + public Builder layers(Identifier lowerTexture, Identifier middleTexture, Identifier upperTexture) { + layers = 2; + textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); + textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); + textureMap.put(FLOWERBED_MIDDLE.getId(), middleTexture.withPrefix("block/")); + textureMap.put(FLOWERBED_UPPER.getId(), upperTexture.withPrefix("block/")); + + return this; + } + + public Builder untintedStem() { + this.untintedStem = true; + return this; + } + + public Builder noStem() { + this.includeStemTexture = false; + return this; + } + + public Builder stemTexture(Identifier stemTexture) { + this.stemTexture = stemTexture.withPrefix("block/"); + return this; + } + + public Builder customModel(Identifier model) { + this.customModel = model.withPrefix("block/"); + return this; + } + + public TinyFlowersDatagenData build() { + TinyFlowersDatagenData data = new TinyFlowersDatagenData(); + + data.id = id; + data.originalBlockId = originalBlockId; + data.isSegmentable = isSegmentable; + data.suspiciousStewEffects = suspiciousStewEffects; + + if (layers == 0 && customModel == null) { + throw new Error("TinyFlowerResources.Builder: layers() or special() must be called once."); + } + + Identifier parentId = null; + if (customModel != null) { + parentId = customModel; + } else if (layers == 1) { + if (untintedStem) { + parentId = TinyFlowers.id("block/garden_untinted"); + } else { + parentId = TinyFlowers.id("block/garden"); + } + } else if (layers == 2) { + if (untintedStem) { + parentId = TinyFlowers.id("block/garden_double_untinted"); + } else { + parentId = TinyFlowers.id("block/garden_double"); + } + } else if (layers == 3) { + if (untintedStem) { + parentId = TinyFlowers.id("block/garden_triple_untinted"); + } else { + parentId = TinyFlowers.id("block/garden_triple"); + } + } + + if (includeStemTexture) { + textureMap.put("stem", this.stemTexture); + } + + data.modelPart1 = new ModelPart(id.withSuffix("_1"), parentId.withSuffix("_1"), textureMap); + data.modelPart2 = new ModelPart(id.withSuffix("_2"), parentId.withSuffix("_2"), textureMap); + data.modelPart3 = new ModelPart(id.withSuffix("_3"), parentId.withSuffix("_3"), textureMap); + data.modelPart4 = new ModelPart(id.withSuffix("_4"), parentId.withSuffix("_4"), textureMap); + + return data; + } + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java index ad52d4fa..2eac8dec 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java @@ -3,10 +3,7 @@ import java.util.List; import co.secretonline.tinyflowers.TinyFlowers; -import co.secretonline.tinyflowers.data.TinyFlowerData; -import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.minecraft.resources.Identifier; -import net.minecraft.util.Tuple; public class VanillaDataGenerator extends BaseModDataGenerator { @Override @@ -15,30 +12,18 @@ public String getModId() { } @Override - public List> getFlowerData() { + public List getFlowerData() { return List.of( - new Tuple( - new TinyFlowerData(Identifier.withDefaultNamespace("pink_petals"), - Identifier.withDefaultNamespace("pink_petals"), true, - List.of()), - new TinyFlowerResources.Builder(Identifier.withDefaultNamespace("pink_petals")) - .layers(Identifier.withDefaultNamespace("pink_petals")) - .build()), - new Tuple( - new TinyFlowerData(Identifier.withDefaultNamespace("wildflowers"), - Identifier.withDefaultNamespace("wildflowers"), true, - List.of()), - new TinyFlowerResources.Builder(Identifier.withDefaultNamespace("wildflowers")) - .layers(Identifier.withDefaultNamespace("wildflowers")) - .build()), - new Tuple( - new TinyFlowerData(Identifier.withDefaultNamespace("leaf_litter"), - Identifier.withDefaultNamespace("leaf_litter"), true, - List.of()), - new TinyFlowerResources.Builder(Identifier.withDefaultNamespace("leaf_litter")) - .layers(Identifier.withDefaultNamespace("leaf_litter")) - .noStem() - .special(TinyFlowers.id("garden_leaf_litter")) - .build())); + TinyFlowersDatagenData.Builder + .ofSegmented(Identifier.withDefaultNamespace("pink_petals")) + .build(), + TinyFlowersDatagenData.Builder + .ofSegmented(Identifier.withDefaultNamespace("wildflowers")) + .build(), + TinyFlowersDatagenData.Builder + .ofSegmented(Identifier.withDefaultNamespace("leaf_litter")) + .customModel(TinyFlowers.id("garden_leaf_litter")) + .noStem() + .build()); } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java index 12a059a7..499b7329 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModFlowersProvider.java @@ -7,6 +7,7 @@ import co.secretonline.tinyflowers.data.ModRegistries; import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.datagen.generators.mods.TinyFlowersDatagenData; import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.core.registries.Registries; @@ -15,15 +16,14 @@ import net.minecraft.data.PackOutput.PathProvider; import net.minecraft.data.PackOutput.Target; import net.minecraft.resources.Identifier; -import net.minecraft.util.Tuple; public class ModFlowersProvider implements DataProvider { private final PathProvider tinyFlowersData; private final PathProvider tinyFlowersResources; private final String modId; - private final List> flowers; + private final List flowers; - public ModFlowersProvider(String modId, List> flowers, + public ModFlowersProvider(String modId, List flowers, FabricDataOutput packOutput) { this.tinyFlowersData = packOutput.createRegistryElementsPathProvider(ModRegistries.TINY_FLOWER); this.tinyFlowersResources = packOutput.createPathProvider(Target.RESOURCE_PACK, @@ -42,9 +42,9 @@ public CompletableFuture run(CachedOutput cachedOutput) { Map flowerVariantData = new HashMap<>(); Map flowerVariantResources = new HashMap<>(); - for (Tuple tuple : this.flowers) { - TinyFlowerData data = tuple.getA(); - TinyFlowerResources resources = tuple.getB(); + for (TinyFlowersDatagenData tuple : this.flowers) { + TinyFlowerData data = tuple.data(); + TinyFlowerResources resources = tuple.resources(); flowerVariantData.put(data.id(), data); flowerVariantResources.put(resources.id(), resources); diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java index 73fc3cc2..2b21e731 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModModelProvider.java @@ -7,10 +7,10 @@ import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.components.TinyFlowerComponent; -import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.datagen.generators.mods.TinyFlowersDatagenData; +import co.secretonline.tinyflowers.datagen.generators.mods.TinyFlowersDatagenData.ModelParts; import co.secretonline.tinyflowers.items.ModItems; import co.secretonline.tinyflowers.renderer.item.TinyFlowerProperty; -import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.client.data.models.BlockModelGenerators; @@ -21,13 +21,12 @@ import net.minecraft.client.renderer.item.ItemModel; import net.minecraft.client.renderer.item.SelectItemModel; import net.minecraft.resources.Identifier; -import net.minecraft.util.Tuple; public class ModModelProvider extends FabricModelProvider { private final String modId; - private final List> flowers; + private final List flowers; - public ModModelProvider(String modId, List> flowers, + public ModModelProvider(String modId, List flowers, FabricDataOutput generator) { super(generator); @@ -37,28 +36,20 @@ public ModModelProvider(String modId, List tuple : this.flowers) { - var flowerResources = tuple.getB(); + for (TinyFlowersDatagenData tuple : this.flowers) { + ModelParts models = tuple.modelParts(); - blockStateModelGenerator.modelOutput.accept( - flowerResources.id().withPrefix(TinyFlowers.MOD_ID + "/").withSuffix("_1"), - flowerResources.part1()::toJsonElement); - blockStateModelGenerator.modelOutput.accept( - flowerResources.id().withPrefix(TinyFlowers.MOD_ID + "/").withSuffix("_2"), - flowerResources.part2()::toJsonElement); - blockStateModelGenerator.modelOutput.accept( - flowerResources.id().withPrefix(TinyFlowers.MOD_ID + "/").withSuffix("_3"), - flowerResources.part3()::toJsonElement); - blockStateModelGenerator.modelOutput.accept( - flowerResources.id().withPrefix(TinyFlowers.MOD_ID + "/").withSuffix("_4"), - flowerResources.part4()::toJsonElement); + models.part1().outputModel(blockStateModelGenerator.modelOutput); + models.part2().outputModel(blockStateModelGenerator.modelOutput); + models.part3().outputModel(blockStateModelGenerator.modelOutput); + models.part4().outputModel(blockStateModelGenerator.modelOutput); } } @Override public void generateItemModels(@NonNull ItemModelGenerators itemModelGenerator) { List> list = this.flowers.stream() - .map(tuple -> tuple.getA()) + .map(tuple -> tuple.data()) .filter(flowerData -> !flowerData.isSegmentable()) .map(flowerData -> ItemModelUtils.when( new TinyFlowerComponent(flowerData.id()), diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java index 882a39ab..15e9ce04 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java @@ -3,9 +3,8 @@ import java.util.List; import java.util.concurrent.CompletableFuture; -import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.datagen.generators.mods.TinyFlowersDatagenData; import co.secretonline.tinyflowers.items.ModItems; -import co.secretonline.tinyflowers.resources.TinyFlowerResources; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; import net.minecraft.core.HolderLookup; @@ -13,13 +12,12 @@ import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.data.recipes.RecipeProvider; -import net.minecraft.util.Tuple; public class ModRecipeProvider extends FabricRecipeProvider { private final String modId; - private final List> flowers; + private final List flowers; - public ModRecipeProvider(String modId, List> flowers, + public ModRecipeProvider(String modId, List flowers, FabricDataOutput output, CompletableFuture registriesFuture) { super(output, registriesFuture); @@ -35,8 +33,8 @@ protected RecipeProvider createRecipeProvider(HolderLookup.Provider registryLook @Override public void buildRecipes() { // Generate recipes for each flower variant - for (Tuple tuple : flowers) { - var flowerData = tuple.getA(); + for (TinyFlowersDatagenData data : flowers) { + var flowerData = data.data(); // Create tiny flower items for variants that need them. if (!flowerData.isSegmentable()) { shapeless(RecipeCategory.DECORATIONS, flowerData.getItemStack(4)) diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json index 78ba2be6..9bd53d9c 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json @@ -1,31 +1,7 @@ { "id": "minecraft:leaf_litter", - "part1": { - "model": "tiny_flowers:block/garden_leaf_litter_1", - "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_leaf_litter_2", - "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_leaf_litter_3", - "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_leaf_litter_4", - "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" - } - } + "modelPart1": "minecraft:block/tiny_flowers/leaf_litter_1", + "modelPart2": "minecraft:block/tiny_flowers/leaf_litter_2", + "modelPart3": "minecraft:block/tiny_flowers/leaf_litter_3", + "modelPart4": "minecraft:block/tiny_flowers/leaf_litter_4" } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json index b62d9af1..6ffc5a74 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json @@ -1,35 +1,7 @@ { "id": "minecraft:pink_petals", - "part1": { - "model": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "minecraft:block/pink_petals", - "particle": "minecraft:block/pink_petals", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "minecraft:block/pink_petals", - "particle": "minecraft:block/pink_petals", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "minecraft:block/pink_petals", - "particle": "minecraft:block/pink_petals", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "minecraft:block/pink_petals", - "particle": "minecraft:block/pink_petals", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "minecraft:block/tiny_flowers/pink_petals_1", + "modelPart2": "minecraft:block/tiny_flowers/pink_petals_2", + "modelPart3": "minecraft:block/tiny_flowers/pink_petals_3", + "modelPart4": "minecraft:block/tiny_flowers/pink_petals_4" } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json index 6ccf64f2..79a389e1 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json @@ -1,35 +1,7 @@ { "id": "minecraft:wildflowers", - "part1": { - "model": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "minecraft:block/wildflowers", - "particle": "minecraft:block/wildflowers", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "minecraft:block/wildflowers", - "particle": "minecraft:block/wildflowers", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "minecraft:block/wildflowers", - "particle": "minecraft:block/wildflowers", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "minecraft:block/wildflowers", - "particle": "minecraft:block/wildflowers", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "minecraft:block/tiny_flowers/wildflowers_1", + "modelPart2": "minecraft:block/tiny_flowers/wildflowers_2", + "modelPart3": "minecraft:block/tiny_flowers/wildflowers_3", + "modelPart4": "minecraft:block/tiny_flowers/wildflowers_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json index 63a04bfd..ed07a19d 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_allium", - "part1": { - "model": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_allium_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_allium_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_allium_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_allium_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json index 3a7bad1b..eee6e186 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_azure_bluet", - "part1": { - "model": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json index 1575e194..14ca2b9c 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json @@ -1,39 +1,7 @@ { "id": "tiny_flowers:tiny_blue_orchid", - "part1": { - "model": "tiny_flowers:block/garden_double_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_double_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_double_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_double_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json index 487aa193..e4dd0325 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_cactus_flower", - "part1": { - "model": "tiny_flowers:block/garden_low_untinted_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", - "stem": "tiny_flowers:block/tiny_cactus_flower_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_low_untinted_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", - "stem": "tiny_flowers:block/tiny_cactus_flower_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_low_untinted_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", - "stem": "tiny_flowers:block/tiny_cactus_flower_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_low_untinted_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", - "stem": "tiny_flowers:block/tiny_cactus_flower_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json index 83477fba..f0aada6c 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_closed_eyeblossom", - "part1": { - "model": "tiny_flowers:block/garden_untinted_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_untinted_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_untinted_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_untinted_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json index ad54652f..54fd2005 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_cornflower", - "part1": { - "model": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_cornflower_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_cornflower_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_cornflower_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_cornflower_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json index 565830e7..7d12d9ed 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_dandelion", - "part1": { - "model": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_dandelion_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_dandelion_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_dandelion_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_dandelion_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json index 5b34465a..4b20828f 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json @@ -1,39 +1,7 @@ { "id": "tiny_flowers:tiny_lily_of_the_valley", - "part1": { - "model": "tiny_flowers:block/garden_double_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_double_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_double_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_double_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json index cbed43cf..b323628c 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json @@ -1,39 +1,7 @@ { "id": "tiny_flowers:tiny_open_eyeblossom", - "part1": { - "model": "tiny_flowers:block/garden_double_untinted_glow_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_double_untinted_glow_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_double_untinted_glow_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_double_untinted_glow_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", - "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", - "stem": "tiny_flowers:block/tiny_eyeblossom_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json index 77e56dec..c3f24e78 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_orange_tulip", - "part1": { - "model": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json index ffdf93f1..525283cb 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_oxeye_daisy", - "part1": { - "model": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json index 52fc2513..985150fe 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_pink_tulip", - "part1": { - "model": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json index f0db19c4..e1b9d729 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_poppy", - "part1": { - "model": "tiny_flowers:block/garden_tall_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tiny_tall_flower_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_tall_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tiny_tall_flower_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_tall_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tiny_tall_flower_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_tall_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tiny_tall_flower_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_poppy_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_poppy_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_poppy_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_poppy_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json index c496b4ac..a235e733 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_red_tulip", - "part1": { - "model": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json index 162c4e53..57d42b5e 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json @@ -1,43 +1,7 @@ { "id": "tiny_flowers:tiny_torchflower", - "part1": { - "model": "tiny_flowers:block/garden_double_untinted_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", - "stem": "tiny_flowers:block/tiny_torchflower_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_double_untinted_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", - "stem": "tiny_flowers:block/tiny_torchflower_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_double_untinted_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", - "stem": "tiny_flowers:block/tiny_torchflower_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_double_untinted_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_torchflower", - "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", - "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", - "stem": "tiny_flowers:block/tiny_torchflower_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_torchflower_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_torchflower_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_torchflower_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_torchflower_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json index 4eecba56..b7b43192 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_white_tulip", - "part1": { - "model": "tiny_flowers:block/garden_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json index cded63a1..b62d5991 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json @@ -1,35 +1,7 @@ { "id": "tiny_flowers:tiny_wither_rose", - "part1": { - "model": "tiny_flowers:block/garden_untinted_1", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", - "stem": "tiny_flowers:block/tiny_wither_rose_stem" - } - }, - "part2": { - "model": "tiny_flowers:block/garden_untinted_2", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", - "stem": "tiny_flowers:block/tiny_wither_rose_stem" - } - }, - "part3": { - "model": "tiny_flowers:block/garden_untinted_3", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", - "stem": "tiny_flowers:block/tiny_wither_rose_stem" - } - }, - "part4": { - "model": "tiny_flowers:block/garden_untinted_4", - "textures": { - "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", - "stem": "tiny_flowers:block/tiny_wither_rose_stem" - } - } + "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_1", + "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_2", + "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_3", + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_4" } \ No newline at end of file From f3830dd1d84b664e377fa2fd147de50e7f758a4e Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 10:52:04 +1300 Subject: [PATCH 023/113] Remove remnants of v1 datagen --- .../tinyflowers/datagen/data/ModModels.java | 163 ------------------ .../datagen/data/ModTextureKey.java | 9 - .../datagen/data/ModTextureMap.java | 50 ------ 3 files changed, 222 deletions(-) delete mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/data/ModModels.java delete mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/data/ModTextureKey.java delete mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/data/ModTextureMap.java diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/data/ModModels.java b/src/client/java/co/secretonline/tinyflowers/datagen/data/ModModels.java deleted file mode 100644 index 861887a5..00000000 --- a/src/client/java/co/secretonline/tinyflowers/datagen/data/ModModels.java +++ /dev/null @@ -1,163 +0,0 @@ -package co.secretonline.tinyflowers.datagen.data; - -import java.util.Optional; -import net.minecraft.client.data.models.model.ModelTemplate; -import net.minecraft.client.data.models.model.TextureSlot; -import co.secretonline.tinyflowers.TinyFlowers; - -public class ModModels { - public static final ModelTemplate GARDEN_1 = block( - "garden_1", "_1", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_2 = block( - "garden_2", "_2", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_3 = block( - "garden_3", "_3", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_4 = block( - "garden_4", "_4", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - - public static final ModelTemplate GARDEN_UNTINTED_1 = block( - "garden_untinted_1", "_1", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_UNTINTED_2 = block( - "garden_untinted_2", "_2", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_UNTINTED_3 = block( - "garden_untinted_3", "_3", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_UNTINTED_4 = block( - "garden_untinted_4", "_4", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - - public static final ModelTemplate GARDEN_TALL_1 = block( - "garden_tall_1", "_1", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_TALL_2 = block( - "garden_tall_2", "_2", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_TALL_3 = block( - "garden_tall_3", "_3", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_TALL_4 = block( - "garden_tall_4", "_4", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - - public static final ModelTemplate GARDEN_DOUBLE_1 = block( - "garden_double_1", "_1", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_DOUBLE_2 = block( - "garden_double_2", "_2", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_DOUBLE_3 = block( - "garden_double_3", "_3", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_DOUBLE_4 = block( - "garden_double_4", "_4", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - - public static final ModelTemplate GARDEN_DOUBLE_UNTINTED_1 = block( - "garden_double_untinted_1", "_1", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_DOUBLE_UNTINTED_2 = block( - "garden_double_untinted_2", "_2", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_DOUBLE_UNTINTED_3 = block( - "garden_double_untinted_3", "_3", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_DOUBLE_UNTINTED_4 = block( - "garden_double_untinted_4", "_4", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - - public static final ModelTemplate GARDEN_DOUBLE_UNTINTED_GLOW_1 = block( - "garden_double_untinted_glow_1", "_1", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_DOUBLE_UNTINTED_GLOW_2 = block( - "garden_double_untinted_glow_2", "_2", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_DOUBLE_UNTINTED_GLOW_3 = block( - "garden_double_untinted_glow_3", "_3", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_DOUBLE_UNTINTED_GLOW_4 = block( - "garden_double_untinted_glow_4", "_4", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, ModTextureKey.FLOWERBED_UPPER); - - public static final ModelTemplate GARDEN_TRIPLE_UNTINTED_1 = block( - "garden_triple_untinted_1", "_1", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, - ModTextureKey.FLOWERBED_MIDDLE, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_TRIPLE_UNTINTED_2 = block( - "garden_triple_untinted_2", "_2", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, - ModTextureKey.FLOWERBED_MIDDLE, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_TRIPLE_UNTINTED_3 = block( - "garden_triple_untinted_3", "_3", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, - ModTextureKey.FLOWERBED_MIDDLE, ModTextureKey.FLOWERBED_UPPER); - public static final ModelTemplate GARDEN_TRIPLE_UNTINTED_4 = block( - "garden_triple_untinted_4", "_4", - TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM, - ModTextureKey.FLOWERBED_MIDDLE, ModTextureKey.FLOWERBED_UPPER); - - public static final ModelTemplate GARDEN_LEAF_LITTER_1 = block( - "garden_leaf_litter_1", "_1", TextureSlot.PARTICLE, TextureSlot.FLOWERBED); - public static final ModelTemplate GARDEN_LEAF_LITTER_2 = block( - "garden_leaf_litter_2", "_2", TextureSlot.PARTICLE, TextureSlot.FLOWERBED); - public static final ModelTemplate GARDEN_LEAF_LITTER_3 = block( - "garden_leaf_litter_3", "_3", TextureSlot.PARTICLE, TextureSlot.FLOWERBED); - public static final ModelTemplate GARDEN_LEAF_LITTER_4 = block( - "garden_leaf_litter_4", "_4", TextureSlot.PARTICLE, TextureSlot.FLOWERBED); - - public static final ModelTemplate GARDEN_LOW_UNTINTED_1 = block( - "garden_low_untinted_1", "_1", TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_LOW_UNTINTED_2 = block( - "garden_low_untinted_2", "_2", TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_LOW_UNTINTED_3 = block( - "garden_low_untinted_3", "_3", TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - public static final ModelTemplate GARDEN_LOW_UNTINTED_4 = block( - "garden_low_untinted_4", "_4", TextureSlot.PARTICLE, TextureSlot.FLOWERBED, TextureSlot.STEM); - - private static ModelTemplate block(String parent, String variant, TextureSlot... requiredTextureKeys) { - return new ModelTemplate(Optional.of(TinyFlowers.id("block/" + parent)), Optional.of(variant), requiredTextureKeys); - } - - public record Quartet(ModelTemplate model1, ModelTemplate model2, ModelTemplate model3, ModelTemplate model4) { - public static Quartet GARDEN = new Quartet( - GARDEN_1, GARDEN_2, - GARDEN_3, GARDEN_4); - - public static Quartet GARDEN_UNTINTED = new Quartet( - GARDEN_UNTINTED_1, GARDEN_UNTINTED_2, - GARDEN_UNTINTED_3, GARDEN_UNTINTED_4); - - public static Quartet GARDEN_TALL = new Quartet( - GARDEN_TALL_1, GARDEN_TALL_2, - GARDEN_TALL_3, GARDEN_TALL_4); - - public static Quartet GARDEN_DOUBLE = new Quartet( - GARDEN_DOUBLE_1, GARDEN_DOUBLE_2, - GARDEN_DOUBLE_3, GARDEN_DOUBLE_4); - - public static Quartet GARDEN_DOUBLE_UNTINTED = new Quartet( - GARDEN_DOUBLE_UNTINTED_1, GARDEN_DOUBLE_UNTINTED_2, - GARDEN_DOUBLE_UNTINTED_3, GARDEN_DOUBLE_UNTINTED_4); - - public static Quartet GARDEN_DOUBLE_UNTINTED_GLOW = new Quartet( - GARDEN_DOUBLE_UNTINTED_GLOW_1, GARDEN_DOUBLE_UNTINTED_GLOW_2, - GARDEN_DOUBLE_UNTINTED_GLOW_3, GARDEN_DOUBLE_UNTINTED_GLOW_4); - - public static Quartet GARDEN_TRIPLE_UNTINTED = new Quartet( - GARDEN_TRIPLE_UNTINTED_1, GARDEN_TRIPLE_UNTINTED_2, - GARDEN_TRIPLE_UNTINTED_3, GARDEN_TRIPLE_UNTINTED_4); - - public static Quartet GARDEN_LEAF_LITTER = new Quartet( - GARDEN_LEAF_LITTER_1, GARDEN_LEAF_LITTER_2, - GARDEN_LEAF_LITTER_3, GARDEN_LEAF_LITTER_4); - - public static Quartet GARDEN_LOW_UNTINTED = new Quartet( - GARDEN_LOW_UNTINTED_1, GARDEN_LOW_UNTINTED_2, - GARDEN_LOW_UNTINTED_3, GARDEN_LOW_UNTINTED_4); - } -} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/data/ModTextureKey.java b/src/client/java/co/secretonline/tinyflowers/datagen/data/ModTextureKey.java deleted file mode 100644 index da4e60df..00000000 --- a/src/client/java/co/secretonline/tinyflowers/datagen/data/ModTextureKey.java +++ /dev/null @@ -1,9 +0,0 @@ -package co.secretonline.tinyflowers.datagen.data; - -import net.minecraft.client.data.models.model.TextureSlot; - -public class ModTextureKey { - public static final TextureSlot FLOWERBED_MIDDLE = TextureSlot.create("flowerbed_middle"); - - public static final TextureSlot FLOWERBED_UPPER = TextureSlot.create("flowerbed_upper"); -} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/data/ModTextureMap.java b/src/client/java/co/secretonline/tinyflowers/datagen/data/ModTextureMap.java deleted file mode 100644 index a6f24783..00000000 --- a/src/client/java/co/secretonline/tinyflowers/datagen/data/ModTextureMap.java +++ /dev/null @@ -1,50 +0,0 @@ -package co.secretonline.tinyflowers.datagen.data; - -import java.util.function.Function; -import net.minecraft.client.data.models.model.TextureMapping; -import net.minecraft.client.data.models.model.TextureSlot; -import net.minecraft.resources.Identifier; - -public class ModTextureMap { - public static Function noStem() { - return (itemId) -> new TextureMapping() - .put(TextureSlot.PARTICLE, itemId.withPath(path -> "block/" + path)) - .put(TextureSlot.FLOWERBED, itemId.withPath(path -> "block/" + path)); - } - - public static Function flowerbed() { - return flowerbed(Identifier.withDefaultNamespace("block/pink_petals_stem")); - } - - public static Function flowerbed(Identifier stemIdentifier) { - return (itemId) -> new TextureMapping() - .put(TextureSlot.PARTICLE, itemId.withPath(path -> "block/" + path)) - .put(TextureSlot.FLOWERBED, itemId.withPath(path -> "block/" + path)) - .put(TextureSlot.STEM, stemIdentifier); - } - - public static Function flowerbedDouble() { - return flowerbedDouble(Identifier.withDefaultNamespace("block/pink_petals_stem")); - } - - public static Function flowerbedDouble(Identifier stemIdentifier) { - return (itemId) -> new TextureMapping() - .put(TextureSlot.PARTICLE, itemId.withPath(path -> "block/" + path)) - .put(TextureSlot.FLOWERBED, itemId.withPath(path -> "block/" + path)) - .put(TextureSlot.STEM, stemIdentifier) - .put(ModTextureKey.FLOWERBED_UPPER, itemId.withPath(path -> "block/" + path + "_upper")); - } - - public static Function flowerbedTriple() { - return flowerbedTriple(Identifier.withDefaultNamespace("block/pink_petals_stem")); - } - - public static Function flowerbedTriple(Identifier stemIdentifier) { - return (itemId) -> new TextureMapping() - .put(TextureSlot.PARTICLE, itemId.withPath(path -> "block/" + path)) - .put(TextureSlot.FLOWERBED, itemId.withPath(path -> "block/" + path)) - .put(TextureSlot.STEM, stemIdentifier) - .put(ModTextureKey.FLOWERBED_MIDDLE, itemId.withPath(path -> "block/" + path + "_middle")) - .put(ModTextureKey.FLOWERBED_UPPER, itemId.withPath(path -> "block/" + path + "_upper")); - } -} From 50984f4ba9686fe4ff240e419d9709419a6ad4c1 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 11:18:02 +1300 Subject: [PATCH 024/113] Some datagen cleanup Why is half of the work I've done datagen related? That question is rhetorical, I know exactly why. --- .../generators/mods/BaseModDataGenerator.java | 5 ---- .../mods/TinyFlowersDatagenData.java | 24 ++++++++++++++++++- .../tiny_flowers/tiny_flower/leaf_litter.json | 4 +++- .../tiny_flowers/tiny_flower/pink_petals.json | 4 +++- .../tiny_flowers/tiny_flower/wildflowers.json | 4 +++- .../tiny_flowers/tiny_flower/tiny_allium.json | 4 +++- .../tiny_flower/tiny_azure_bluet.json | 4 +++- .../tiny_flower/tiny_blue_orchid.json | 4 +++- .../tiny_flower/tiny_cactus_flower.json | 4 +++- .../tiny_flower/tiny_closed_eyeblossom.json | 4 +++- .../tiny_flower/tiny_cornflower.json | 4 +++- .../tiny_flower/tiny_dandelion.json | 4 +++- .../tiny_flower/tiny_lily_of_the_valley.json | 4 +++- .../tiny_flower/tiny_open_eyeblossom.json | 4 +++- .../tiny_flower/tiny_orange_tulip.json | 4 +++- .../tiny_flower/tiny_oxeye_daisy.json | 4 +++- .../tiny_flower/tiny_pink_tulip.json | 4 +++- .../tiny_flowers/tiny_flower/tiny_poppy.json | 4 +++- .../tiny_flower/tiny_red_tulip.json | 4 +++- .../tiny_flower/tiny_torchflower.json | 4 +++- .../tiny_flower/tiny_white_tulip.json | 4 +++- .../tiny_flower/tiny_wither_rose.json | 4 +++- 22 files changed, 83 insertions(+), 26 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java index 2e08809f..1ad1804e 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java @@ -10,7 +10,6 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.core.HolderLookup; -import net.minecraft.util.Mth; public abstract class BaseModDataGenerator implements PackContributor { public abstract String getModId(); @@ -28,8 +27,4 @@ public void addProviders(Pack pack) { output, registriesFuture)); pack.addProvider((FabricDataOutput output) -> new ModFlowersProvider(modId, data, output)); } - - protected static int toTicks(float seconds) { - return Mth.floor(seconds * 20.0f); - } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java index b35a6272..5df727de 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java @@ -26,6 +26,8 @@ public class TinyFlowersDatagenData { private static String MOD_ID_PREFIX = TinyFlowers.MOD_ID + "/"; private Identifier id; + private Identifier itemTexture; + private Identifier particleTexture; private Identifier originalBlockId; private boolean isSegmentable; @NonNull @@ -41,7 +43,7 @@ public TinyFlowerData data() { } public TinyFlowerResources resources() { - return new TinyFlowerResources(id, + return new TinyFlowerResources(id, itemTexture, particleTexture, modelPart1.id().withPrefix(MOD_ID_PREFIX).withPrefix("block/"), modelPart2.id().withPrefix(MOD_ID_PREFIX).withPrefix("block/"), modelPart3.id().withPrefix(MOD_ID_PREFIX).withPrefix("block/"), @@ -85,6 +87,8 @@ public static class Builder { private static final TextureSlot FLOWERBED_UPPER = TextureSlot.create("flowerbed_upper"); private Identifier id; + private Identifier itemTexture; + private Identifier particleTexture; private Identifier originalBlockId; private boolean isSegmentable = false; private List suspiciousStewEffects = new ArrayList<>(); @@ -99,6 +103,7 @@ public static class Builder { public static Builder ofCustom(Identifier id, Identifier originalBlockId) { return new Builder() .id(id) + .itemTexture(id) .originalBlockId(originalBlockId) .layers(id); } @@ -106,6 +111,7 @@ public static Builder ofCustom(Identifier id, Identifier originalBlockId) { public static Builder ofSegmented(Identifier originalBlockId) { return new Builder() .id(originalBlockId) + .itemTexture(originalBlockId) .originalBlockId(originalBlockId) .segmentable() .layers(originalBlockId); @@ -116,6 +122,7 @@ public static Builder ofStandard(Identifier originalBlockId) { return new Builder() .id(id) + .itemTexture(id) .originalBlockId(originalBlockId) .layers(id); } @@ -144,8 +151,19 @@ public Builder stewEffectSeconds(Holder effect, double seconds) { return this.stewEffect(effect, Mth.floor(seconds * 20.0f)); } + public Builder itemTexture(Identifier itemTexture) { + this.itemTexture = itemTexture.withPrefix("item/"); + return this; + } + + public Builder particleTexture(Identifier particleTexture) { + this.particleTexture = particleTexture.withPrefix("block/"); + return this; + } + public Builder layers(Identifier flowerbedTexture) { layers = 1; + particleTexture = flowerbedTexture.withPrefix("block/"); textureMap.put(TextureSlot.PARTICLE.getId(), flowerbedTexture.withPrefix("block/")); textureMap.put(TextureSlot.FLOWERBED.getId(), flowerbedTexture.withPrefix("block/")); @@ -154,6 +172,7 @@ public Builder layers(Identifier flowerbedTexture) { public Builder layers(Identifier lowerTexture, Identifier upperTexture) { layers = 2; + particleTexture = lowerTexture.withPrefix("block/"); textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); textureMap.put(FLOWERBED_UPPER.getId(), upperTexture.withPrefix("block/")); @@ -163,6 +182,7 @@ public Builder layers(Identifier lowerTexture, Identifier upperTexture) { public Builder layers(Identifier lowerTexture, Identifier middleTexture, Identifier upperTexture) { layers = 2; + particleTexture = lowerTexture.withPrefix("block/"); textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); textureMap.put(FLOWERBED_MIDDLE.getId(), middleTexture.withPrefix("block/")); @@ -195,6 +215,8 @@ public TinyFlowersDatagenData build() { TinyFlowersDatagenData data = new TinyFlowersDatagenData(); data.id = id; + data.itemTexture = itemTexture; + data.particleTexture = particleTexture; data.originalBlockId = originalBlockId; data.isSegmentable = isSegmentable; data.suspiciousStewEffects = suspiciousStewEffects; diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json index 9bd53d9c..71f77930 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json @@ -1,7 +1,9 @@ { "id": "minecraft:leaf_litter", + "item_texture": "minecraft:item/leaf_litter", "modelPart1": "minecraft:block/tiny_flowers/leaf_litter_1", "modelPart2": "minecraft:block/tiny_flowers/leaf_litter_2", "modelPart3": "minecraft:block/tiny_flowers/leaf_litter_3", - "modelPart4": "minecraft:block/tiny_flowers/leaf_litter_4" + "modelPart4": "minecraft:block/tiny_flowers/leaf_litter_4", + "particle_texture": "minecraft:block/leaf_litter" } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json index 6ffc5a74..b3fb0f61 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json @@ -1,7 +1,9 @@ { "id": "minecraft:pink_petals", + "item_texture": "minecraft:item/pink_petals", "modelPart1": "minecraft:block/tiny_flowers/pink_petals_1", "modelPart2": "minecraft:block/tiny_flowers/pink_petals_2", "modelPart3": "minecraft:block/tiny_flowers/pink_petals_3", - "modelPart4": "minecraft:block/tiny_flowers/pink_petals_4" + "modelPart4": "minecraft:block/tiny_flowers/pink_petals_4", + "particle_texture": "minecraft:block/pink_petals" } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json index 79a389e1..3e3a3e9d 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json @@ -1,7 +1,9 @@ { "id": "minecraft:wildflowers", + "item_texture": "minecraft:item/wildflowers", "modelPart1": "minecraft:block/tiny_flowers/wildflowers_1", "modelPart2": "minecraft:block/tiny_flowers/wildflowers_2", "modelPart3": "minecraft:block/tiny_flowers/wildflowers_3", - "modelPart4": "minecraft:block/tiny_flowers/wildflowers_4" + "modelPart4": "minecraft:block/tiny_flowers/wildflowers_4", + "particle_texture": "minecraft:block/wildflowers" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json index ed07a19d..dc8f6574 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_allium", + "item_texture": "tiny_flowers:item/tiny_allium", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_allium_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_allium_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_allium_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_allium_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_allium_4", + "particle_texture": "tiny_flowers:block/tiny_allium" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json index eee6e186..3eb78067 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_azure_bluet", + "item_texture": "tiny_flowers:item/tiny_azure_bluet", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_4", + "particle_texture": "tiny_flowers:block/tiny_azure_bluet" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json index 14ca2b9c..ad2c5570 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_blue_orchid", + "item_texture": "tiny_flowers:item/tiny_blue_orchid", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_4", + "particle_texture": "tiny_flowers:block/tiny_blue_orchid" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json index e4dd0325..835ec045 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_cactus_flower", + "item_texture": "tiny_flowers:item/tiny_cactus_flower", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_4", + "particle_texture": "tiny_flowers:block/tiny_cactus_flower" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json index f0aada6c..28ebfe95 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_closed_eyeblossom", + "item_texture": "tiny_flowers:item/tiny_closed_eyeblossom", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_4", + "particle_texture": "tiny_flowers:block/tiny_closed_eyeblossom" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json index 54fd2005..cbcfd378 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_cornflower", + "item_texture": "tiny_flowers:item/tiny_cornflower", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_cornflower_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_cornflower_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_cornflower_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_cornflower_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_cornflower_4", + "particle_texture": "tiny_flowers:block/tiny_cornflower" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json index 7d12d9ed..9959d50f 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_dandelion", + "item_texture": "tiny_flowers:item/tiny_dandelion", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_dandelion_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_dandelion_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_dandelion_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_dandelion_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_dandelion_4", + "particle_texture": "tiny_flowers:block/tiny_dandelion" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json index 4b20828f..22efc9ad 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_lily_of_the_valley", + "item_texture": "tiny_flowers:item/tiny_lily_of_the_valley", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_4", + "particle_texture": "tiny_flowers:block/tiny_lily_of_the_valley" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json index b323628c..fb92ae83 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_open_eyeblossom", + "item_texture": "tiny_flowers:item/tiny_open_eyeblossom", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_4", + "particle_texture": "tiny_flowers:block/tiny_open_eyeblossom" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json index c3f24e78..f5b09ff6 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_orange_tulip", + "item_texture": "tiny_flowers:item/tiny_orange_tulip", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_4", + "particle_texture": "tiny_flowers:block/tiny_orange_tulip" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json index 525283cb..bd5b9ebc 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_oxeye_daisy", + "item_texture": "tiny_flowers:item/tiny_oxeye_daisy", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_4", + "particle_texture": "tiny_flowers:block/tiny_oxeye_daisy" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json index 985150fe..bfbaf80b 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_pink_tulip", + "item_texture": "tiny_flowers:item/tiny_pink_tulip", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_4", + "particle_texture": "tiny_flowers:block/tiny_pink_tulip" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json index e1b9d729..01d9904b 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_poppy", + "item_texture": "tiny_flowers:item/tiny_poppy", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_poppy_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_poppy_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_poppy_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_poppy_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_poppy_4", + "particle_texture": "tiny_flowers:block/tiny_poppy" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json index a235e733..faacbc44 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_red_tulip", + "item_texture": "tiny_flowers:item/tiny_red_tulip", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_4", + "particle_texture": "tiny_flowers:block/tiny_red_tulip" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json index 57d42b5e..d82785d2 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_torchflower", + "item_texture": "tiny_flowers:item/tiny_torchflower", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_torchflower_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_torchflower_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_torchflower_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_torchflower_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_torchflower_4", + "particle_texture": "tiny_flowers:block/tiny_torchflower" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json index b7b43192..dfa998bb 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_white_tulip", + "item_texture": "tiny_flowers:item/tiny_white_tulip", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_4", + "particle_texture": "tiny_flowers:block/tiny_white_tulip" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json index b62d5991..fd6bd99a 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json @@ -1,7 +1,9 @@ { "id": "tiny_flowers:tiny_wither_rose", + "item_texture": "tiny_flowers:item/tiny_wither_rose", "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_1", "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_2", "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_4" + "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_4", + "particle_texture": "tiny_flowers:block/tiny_wither_rose" } \ No newline at end of file From 5b87137c40702a605174a93eec26a7d3fec49e4f Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 12:12:04 +1300 Subject: [PATCH 025/113] Fix locations of some generated resources --- .../mods/TinyFlowersDataGenerator.java | 2 +- .../mods/TinyFlowersDatagenData.java | 11 +- .../resources/TinyFlowerResources.java | 150 +----------------- .../tiny_flowers/leaf_litter_1.json | 0 .../tiny_flowers/leaf_litter_2.json | 0 .../tiny_flowers/leaf_litter_3.json | 0 .../tiny_flowers/leaf_litter_4.json | 0 .../tiny_flowers/pink_petals_1.json | 0 .../tiny_flowers/pink_petals_2.json | 0 .../tiny_flowers/pink_petals_3.json | 0 .../tiny_flowers/pink_petals_4.json | 0 .../tiny_flowers/wildflowers_1.json | 0 .../tiny_flowers/wildflowers_2.json | 0 .../tiny_flowers/wildflowers_3.json | 0 .../tiny_flowers/wildflowers_4.json | 0 .../tiny_flowers/tiny_allium_1.json | 0 .../tiny_flowers/tiny_allium_2.json | 0 .../tiny_flowers/tiny_allium_3.json | 0 .../tiny_flowers/tiny_allium_4.json | 0 .../tiny_flowers/tiny_azure_bluet_1.json | 0 .../tiny_flowers/tiny_azure_bluet_2.json | 0 .../tiny_flowers/tiny_azure_bluet_3.json | 0 .../tiny_flowers/tiny_azure_bluet_4.json | 0 .../tiny_flowers/tiny_blue_orchid_1.json | 0 .../tiny_flowers/tiny_blue_orchid_2.json | 0 .../tiny_flowers/tiny_blue_orchid_3.json | 0 .../tiny_flowers/tiny_blue_orchid_4.json | 0 .../tiny_flowers/tiny_cactus_flower_1.json | 0 .../tiny_flowers/tiny_cactus_flower_2.json | 0 .../tiny_flowers/tiny_cactus_flower_3.json | 0 .../tiny_flowers/tiny_cactus_flower_4.json | 0 .../tiny_closed_eyeblossom_1.json | 0 .../tiny_closed_eyeblossom_2.json | 0 .../tiny_closed_eyeblossom_3.json | 0 .../tiny_closed_eyeblossom_4.json | 0 .../tiny_flowers/tiny_cornflower_1.json | 0 .../tiny_flowers/tiny_cornflower_2.json | 0 .../tiny_flowers/tiny_cornflower_3.json | 0 .../tiny_flowers/tiny_cornflower_4.json | 0 .../tiny_flowers/tiny_dandelion_1.json | 0 .../tiny_flowers/tiny_dandelion_2.json | 0 .../tiny_flowers/tiny_dandelion_3.json | 0 .../tiny_flowers/tiny_dandelion_4.json | 0 .../tiny_lily_of_the_valley_1.json | 0 .../tiny_lily_of_the_valley_2.json | 0 .../tiny_lily_of_the_valley_3.json | 0 .../tiny_lily_of_the_valley_4.json | 0 .../tiny_flowers/tiny_open_eyeblossom_1.json | 0 .../tiny_flowers/tiny_open_eyeblossom_2.json | 0 .../tiny_flowers/tiny_open_eyeblossom_3.json | 0 .../tiny_flowers/tiny_open_eyeblossom_4.json | 0 .../tiny_flowers/tiny_orange_tulip_1.json | 0 .../tiny_flowers/tiny_orange_tulip_2.json | 0 .../tiny_flowers/tiny_orange_tulip_3.json | 0 .../tiny_flowers/tiny_orange_tulip_4.json | 0 .../tiny_flowers/tiny_oxeye_daisy_1.json | 0 .../tiny_flowers/tiny_oxeye_daisy_2.json | 0 .../tiny_flowers/tiny_oxeye_daisy_3.json | 0 .../tiny_flowers/tiny_oxeye_daisy_4.json | 0 .../tiny_flowers/tiny_pink_tulip_1.json | 0 .../tiny_flowers/tiny_pink_tulip_2.json | 0 .../tiny_flowers/tiny_pink_tulip_3.json | 0 .../tiny_flowers/tiny_pink_tulip_4.json | 0 .../tiny_flowers/tiny_poppy_1.json | 2 +- .../tiny_flowers/tiny_poppy_2.json | 2 +- .../tiny_flowers/tiny_poppy_3.json | 2 +- .../tiny_flowers/tiny_poppy_4.json | 2 +- .../tiny_flowers/tiny_red_tulip_1.json | 0 .../tiny_flowers/tiny_red_tulip_2.json | 0 .../tiny_flowers/tiny_red_tulip_3.json | 0 .../tiny_flowers/tiny_red_tulip_4.json | 0 .../tiny_flowers/tiny_torchflower_1.json | 0 .../tiny_flowers/tiny_torchflower_2.json | 0 .../tiny_flowers/tiny_torchflower_3.json | 0 .../tiny_flowers/tiny_torchflower_4.json | 0 .../tiny_flowers/tiny_white_tulip_1.json | 0 .../tiny_flowers/tiny_white_tulip_2.json | 0 .../tiny_flowers/tiny_white_tulip_3.json | 0 .../tiny_flowers/tiny_white_tulip_4.json | 0 .../tiny_flowers/tiny_wither_rose_1.json | 0 .../tiny_flowers/tiny_wither_rose_2.json | 0 .../tiny_flowers/tiny_wither_rose_3.json | 0 .../tiny_flowers/tiny_wither_rose_4.json | 0 83 files changed, 19 insertions(+), 152 deletions(-) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/leaf_litter_1.json (100%) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/leaf_litter_2.json (100%) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/leaf_litter_3.json (100%) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/leaf_litter_4.json (100%) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/pink_petals_1.json (100%) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/pink_petals_2.json (100%) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/pink_petals_3.json (100%) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/pink_petals_4.json (100%) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/wildflowers_1.json (100%) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/wildflowers_2.json (100%) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/wildflowers_3.json (100%) rename src/main/generated/assets/minecraft/models/{ => block}/tiny_flowers/wildflowers_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_allium_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_allium_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_allium_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_allium_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_azure_bluet_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_azure_bluet_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_azure_bluet_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_azure_bluet_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_blue_orchid_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_blue_orchid_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_blue_orchid_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_blue_orchid_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_cactus_flower_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_cactus_flower_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_cactus_flower_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_cactus_flower_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_closed_eyeblossom_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_closed_eyeblossom_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_closed_eyeblossom_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_closed_eyeblossom_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_cornflower_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_cornflower_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_cornflower_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_cornflower_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_dandelion_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_dandelion_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_dandelion_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_dandelion_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_lily_of_the_valley_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_lily_of_the_valley_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_lily_of_the_valley_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_lily_of_the_valley_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_open_eyeblossom_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_open_eyeblossom_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_open_eyeblossom_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_open_eyeblossom_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_orange_tulip_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_orange_tulip_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_orange_tulip_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_orange_tulip_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_oxeye_daisy_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_oxeye_daisy_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_oxeye_daisy_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_oxeye_daisy_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_pink_tulip_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_pink_tulip_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_pink_tulip_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_pink_tulip_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_poppy_1.json (75%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_poppy_2.json (75%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_poppy_3.json (75%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_poppy_4.json (75%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_red_tulip_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_red_tulip_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_red_tulip_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_red_tulip_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_torchflower_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_torchflower_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_torchflower_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_torchflower_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_white_tulip_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_white_tulip_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_white_tulip_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_white_tulip_4.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_wither_rose_1.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_wither_rose_2.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_wither_rose_3.json (100%) rename src/main/generated/assets/tiny_flowers/models/{ => block}/tiny_flowers/tiny_wither_rose_4.json (100%) diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java index 5df085a3..cff6f599 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java @@ -23,7 +23,7 @@ public List getFlowerData() { .ofCustom(TinyFlowers.id("tiny_poppy"), Identifier.withDefaultNamespace("poppy")) .stewEffectSeconds(MobEffects.NIGHT_VISION, 5.0) .customModel(TinyFlowers.id("garden_tall")) - .stemTexture(TinyFlowers.id("tiny_tall_flower_stem")) + .stemTexture(TinyFlowers.id("tall_tiny_flower_stem")) .build(), TinyFlowersDatagenData.Builder .ofCustom(TinyFlowers.id("tiny_blue_orchid"), Identifier.withDefaultNamespace("blue_orchid")) diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java index 5df727de..2a9e98fe 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java @@ -24,6 +24,7 @@ public class TinyFlowersDatagenData { private static String MOD_ID_PREFIX = TinyFlowers.MOD_ID + "/"; + private static String BLOCK_MOD_PREFIX = "block/" + MOD_ID_PREFIX; private Identifier id; private Identifier itemTexture; @@ -44,10 +45,10 @@ public TinyFlowerData data() { public TinyFlowerResources resources() { return new TinyFlowerResources(id, itemTexture, particleTexture, - modelPart1.id().withPrefix(MOD_ID_PREFIX).withPrefix("block/"), - modelPart2.id().withPrefix(MOD_ID_PREFIX).withPrefix("block/"), - modelPart3.id().withPrefix(MOD_ID_PREFIX).withPrefix("block/"), - modelPart4.id().withPrefix(MOD_ID_PREFIX).withPrefix("block/")); + modelPart1.id().withPrefix(BLOCK_MOD_PREFIX), + modelPart2.id().withPrefix(BLOCK_MOD_PREFIX), + modelPart3.id().withPrefix(BLOCK_MOD_PREFIX), + modelPart4.id().withPrefix(BLOCK_MOD_PREFIX)); } public ModelParts modelParts() { @@ -75,7 +76,7 @@ public JsonElement toJsonElement() { } public void outputModel(BiConsumer consumer) { - consumer.accept(id.withPrefix(MOD_ID_PREFIX), this::toJsonElement); + consumer.accept(id.withPrefix(BLOCK_MOD_PREFIX), this::toJsonElement); } } diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java index aa6b64f7..c6ede768 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java @@ -3,18 +3,13 @@ import java.util.HashMap; import java.util.Map; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import co.secretonline.tinyflowers.TinyFlowers; -import net.minecraft.client.data.models.model.TextureMapping; -import net.minecraft.client.data.models.model.TextureSlot; -import net.minecraft.client.renderer.block.model.TextureSlots; import net.minecraft.resources.Identifier; -public record TinyFlowerResources(Identifier id, Part part1, Part part2, Part part3, Part part4) { +public record TinyFlowerResources(Identifier id, Identifier itemTexture, Identifier particleTexture, + Identifier modelPart1, Identifier modelPart2, Identifier modelPart3, Identifier modelPart4) { private static Map INSTANCES = new HashMap<>(); public static Map getInstances() { @@ -22,145 +17,16 @@ public static Map getInstances() { } public static void setInstances(Map map) { - TinyFlowers.LOGGER.info("did set map"); INSTANCES = map; } public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerResources::id), - Part.CODEC.fieldOf("part1").forGetter(TinyFlowerResources::part1), - Part.CODEC.fieldOf("part2").forGetter(TinyFlowerResources::part2), - Part.CODEC.fieldOf("part3").forGetter(TinyFlowerResources::part3), - Part.CODEC.fieldOf("part4").forGetter(TinyFlowerResources::part4)) + Identifier.CODEC.fieldOf("item_texture").forGetter(TinyFlowerResources::itemTexture), + Identifier.CODEC.fieldOf("particle_texture").forGetter(TinyFlowerResources::particleTexture), + Identifier.CODEC.fieldOf("modelPart1").forGetter(TinyFlowerResources::modelPart1), + Identifier.CODEC.fieldOf("modelPart2").forGetter(TinyFlowerResources::modelPart2), + Identifier.CODEC.fieldOf("modelPart3").forGetter(TinyFlowerResources::modelPart3), + Identifier.CODEC.fieldOf("modelPart4").forGetter(TinyFlowerResources::modelPart4)) .apply(instance, TinyFlowerResources::new)); - - static public record Part(Identifier model, Map textures) { - public TextureMapping textureMap() { - TextureMapping textureMap = new TextureMapping(); - this.textures.forEach((key, value) -> textureMap.put(TextureSlot.create(key), value)); - return textureMap; - } - - public JsonElement toJsonElement() { - JsonObject jsonObject = new JsonObject(); - jsonObject.addProperty("parent", model.toString()); - if (!textures.isEmpty()) { - JsonObject texturesObject = new JsonObject(); - textures.forEach((textureSlot, identifier) -> { - texturesObject.addProperty(textureSlot, identifier.toString()); - }); - jsonObject.add("textures", texturesObject); - } - - return jsonObject; - } - - public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( - Identifier.CODEC.fieldOf("model").forGetter(Part::model), - Codec.unboundedMap(Codec.STRING, Identifier.CODEC).fieldOf("textures").forGetter(Part::textures)) - .apply(instance, Part::new)); - } - - static public class Builder { - private static final TextureSlot FLOWERBED_MIDDLE = TextureSlot.create("flowerbed_middle"); - private static final TextureSlot FLOWERBED_UPPER = TextureSlot.create("flowerbed_upper"); - - private final Identifier id; - private int layers = 0; - private boolean untintedStem = false; - private boolean includeStemTexture = true; - private Identifier stemTexture = Identifier.withDefaultNamespace("block/pink_petals_stem"); - private Map textureMap = new HashMap<>(); - private Identifier special = null; - - public Builder(Identifier id) { - this.id = id; - } - - public Builder layers(Identifier flowerbedTexture) { - layers = 1; - textureMap.put(TextureSlot.PARTICLE.getId(), flowerbedTexture.withPrefix("block/")); - textureMap.put(TextureSlot.FLOWERBED.getId(), flowerbedTexture.withPrefix("block/")); - - return this; - } - - public Builder layers(Identifier lowerTexture, Identifier upperTexture) { - layers = 2; - textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); - textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); - textureMap.put(FLOWERBED_UPPER.getId(), upperTexture.withPrefix("block/")); - - return this; - } - - public Builder layers(Identifier lowerTexture, Identifier middleTexture, Identifier upperTexture) { - layers = 2; - textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); - textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); - textureMap.put(FLOWERBED_MIDDLE.getId(), middleTexture.withPrefix("block/")); - textureMap.put(FLOWERBED_UPPER.getId(), upperTexture.withPrefix("block/")); - - return this; - } - - public Builder untintedStem() { - this.untintedStem = true; - return this; - } - - public Builder noStem() { - this.includeStemTexture = false; - return this; - } - - public Builder stemTexture(Identifier stemTexture) { - this.stemTexture = stemTexture.withPrefix("block/"); - return this; - } - - public Builder special(Identifier special) { - this.special = special.withPrefix("block/"); - return this; - } - - public TinyFlowerResources build() { - if (layers == 0 && special == null) { - throw new Error("TinyFlowerResources.Builder: layers() or special() must be called once."); - } - - Identifier parentId = null; - - if (special != null) { - parentId = special; - } else if (layers == 1) { - if (untintedStem) { - parentId = TinyFlowers.id("block/garden_untinted"); - } else { - parentId = TinyFlowers.id("block/garden"); - } - } else if (layers == 2) { - if (untintedStem) { - parentId = TinyFlowers.id("block/garden_double_untinted"); - } else { - parentId = TinyFlowers.id("block/garden_double"); - } - } else if (layers == 3) { - if (untintedStem) { - parentId = TinyFlowers.id("block/garden_triple_untinted"); - } else { - parentId = TinyFlowers.id("block/garden_triple"); - } - } - - if (includeStemTexture) { - textureMap.put("stem", this.stemTexture); - } - - return new TinyFlowerResources(this.id, new Part(parentId.withSuffix("_1"), textureMap), - new Part(parentId.withSuffix("_2"), textureMap), - new Part(parentId.withSuffix("_3"), textureMap), - new Part(parentId.withSuffix("_4"), textureMap)); - } - } } diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_1.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_1.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_1.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_1.json diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_2.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_2.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_2.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_2.json diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_3.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_3.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_3.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_3.json diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_4.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_4.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/leaf_litter_4.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_4.json diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_1.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_1.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_1.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_1.json diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_2.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_2.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_2.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_2.json diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_3.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_3.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_3.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_3.json diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_4.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_4.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/pink_petals_4.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_4.json diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_1.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_1.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_1.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_1.json diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_2.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_2.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_2.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_2.json diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_3.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_3.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_3.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_3.json diff --git a/src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_4.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_4.json similarity index 100% rename from src/main/generated/assets/minecraft/models/tiny_flowers/wildflowers_4.json rename to src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_allium_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_azure_bluet_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_blue_orchid_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cactus_flower_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_closed_eyeblossom_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_cornflower_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_dandelion_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_lily_of_the_valley_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_open_eyeblossom_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_orange_tulip_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_oxeye_daisy_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_pink_tulip_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_1.json similarity index 75% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_1.json index 758ff948..990703a4 100644 --- a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_1.json @@ -3,6 +3,6 @@ "textures": { "flowerbed": "tiny_flowers:block/tiny_poppy", "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tiny_tall_flower_stem" + "stem": "tiny_flowers:block/tall_tiny_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_2.json similarity index 75% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_2.json index 3c02edc6..af62e9b6 100644 --- a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_2.json @@ -3,6 +3,6 @@ "textures": { "flowerbed": "tiny_flowers:block/tiny_poppy", "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tiny_tall_flower_stem" + "stem": "tiny_flowers:block/tall_tiny_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_3.json similarity index 75% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_3.json index e4cf0a09..6cf3d356 100644 --- a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_3.json @@ -3,6 +3,6 @@ "textures": { "flowerbed": "tiny_flowers:block/tiny_poppy", "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tiny_tall_flower_stem" + "stem": "tiny_flowers:block/tall_tiny_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_4.json similarity index 75% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_4.json index 94297b4e..c50695bf 100644 --- a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_poppy_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_4.json @@ -3,6 +3,6 @@ "textures": { "flowerbed": "tiny_flowers:block/tiny_poppy", "particle": "tiny_flowers:block/tiny_poppy", - "stem": "tiny_flowers:block/tiny_tall_flower_stem" + "stem": "tiny_flowers:block/tall_tiny_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_red_tulip_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_torchflower_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_white_tulip_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_4.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_1.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_1.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_1.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_2.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_2.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_2.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_3.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_3.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_3.json diff --git a/src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_4.json similarity index 100% rename from src/main/generated/assets/tiny_flowers/models/tiny_flowers/tiny_wither_rose_4.json rename to src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_4.json From 113404ae6c76cb4d4b683dd566ad4d6449914b8e Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 12:13:54 +1300 Subject: [PATCH 026/113] Switch to model loading plugin to load models --- .../tinyflowers/TinyFlowersClient.java | 15 ++++--- ...er.java => TinyFlowerModelDataLoader.java} | 20 ++++----- .../TinyFlowersModelLoadingPlugin.java | 42 +++++++++++++++++++ 3 files changed, 58 insertions(+), 19 deletions(-) rename src/client/java/co/secretonline/tinyflowers/resources/{TinyFlowerModelReloadListener.java => TinyFlowerModelDataLoader.java} (75%) create mode 100644 src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java diff --git a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java index e1e06676..85da4164 100644 --- a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java +++ b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java @@ -4,17 +4,17 @@ import co.secretonline.tinyflowers.blocks.ModBlocks; import co.secretonline.tinyflowers.renderer.block.TinyGardenBlockEntityRenderer; import co.secretonline.tinyflowers.renderer.item.TinyFlowerProperty; -import co.secretonline.tinyflowers.resources.TinyFlowerModelReloadListener; +import co.secretonline.tinyflowers.resources.TinyFlowerModelDataLoader; +import co.secretonline.tinyflowers.resources.TinyFlowersModelLoadingPlugin; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.rendering.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; -import net.fabricmc.fabric.api.resource.v1.ResourceLoader; +import net.fabricmc.fabric.impl.client.model.loading.ModelLoadingPluginManager; import net.minecraft.client.renderer.BiomeColors; import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; import net.minecraft.client.renderer.chunk.ChunkSectionLayer; import net.minecraft.client.renderer.item.ItemStackRenderState; import net.minecraft.client.renderer.item.properties.select.SelectItemModelProperties; -import net.minecraft.server.packs.PackType; import net.minecraft.util.RandomSource; import net.minecraft.world.level.DryFoliageColor; import net.minecraft.world.level.GrassColor; @@ -31,23 +31,22 @@ public void onInitializeClient() { BlockEntityRenderers.register(ModBlockEntities.TINY_GARDEN_BLOCK_ENTITY, TinyGardenBlockEntityRenderer::new); - ResourceLoader.get(PackType.CLIENT_RESOURCES).registerReloader( - TinyFlowers.id("models"), new TinyFlowerModelReloadListener()); + ModelLoadingPluginManager.registerPlugin(new TinyFlowerModelDataLoader(), new TinyFlowersModelLoadingPlugin()); // See Pink Petals in net.minecraft.client.color.block.BlockColors ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> { - boolean hasWorld = world == null || pos == null; + boolean useDefaultColors = world == null || pos == null; switch (tintIndex) { case 1 -> { - if (hasWorld) { + if (useDefaultColors) { return GrassColor.getDefaultColor(); } else { return BiomeColors.getAverageGrassColor(world, pos); } } case 2 -> { - if (hasWorld) { + if (useDefaultColors) { return DryFoliageColor.get(0.5, 1.0); } else { return BiomeColors.getAverageDryFoliageColor(world, pos); diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelReloadListener.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java similarity index 75% rename from src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelReloadListener.java rename to src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java index ff91dffd..4750558f 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelReloadListener.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java @@ -12,23 +12,21 @@ import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.data.ModRegistries; +import net.fabricmc.fabric.api.client.model.loading.v1.PreparableModelLoadingPlugin; import net.minecraft.resources.Identifier; -import net.minecraft.server.packs.resources.PreparableReloadListener; +import net.minecraft.server.packs.resources.PreparableReloadListener.SharedState; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.util.GsonHelper; -public class TinyFlowerModelReloadListener implements PreparableReloadListener { +public class TinyFlowerModelDataLoader + implements PreparableModelLoadingPlugin.DataLoader> { @Override - public CompletableFuture reload(SharedState sharedState, Executor prepareExecutor, - PreparationBarrier preparationBarrier, Executor applyExecutor) { - return CompletableFuture - .runAsync(() -> this.getResourcesMap(sharedState.resourceManager()), prepareExecutor) - .thenCompose(preparationBarrier::wait) - .thenRunAsync(() -> { - }, applyExecutor); + public CompletableFuture> load(SharedState sharedState, + Executor executor) { + return CompletableFuture.supplyAsync(() -> this.readResourceFiles(sharedState.resourceManager()), executor); } - private void getResourcesMap(ResourceManager resourceManager) { + private Map readResourceFiles(ResourceManager resourceManager) { Map map = new HashMap<>(); var allVariantJsonFiles = resourceManager.listResources( @@ -57,6 +55,6 @@ private void getResourcesMap(ResourceManager resourceManager) { } }); - TinyFlowerResources.setInstances(map); + return map; } } diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java new file mode 100644 index 00000000..02d5205c --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java @@ -0,0 +1,42 @@ +package co.secretonline.tinyflowers.resources; + +import java.util.Map; + +import co.secretonline.tinyflowers.items.ModItems; +import net.fabricmc.fabric.api.client.model.loading.v1.ExtraModelKey; +import net.fabricmc.fabric.api.client.model.loading.v1.ModelLoadingPlugin.Context; +import net.fabricmc.fabric.api.client.model.loading.v1.PreparableModelLoadingPlugin; +import net.fabricmc.fabric.api.client.model.loading.v1.SimpleUnbakedExtraModel; +import net.minecraft.resources.Identifier; + +public class TinyFlowersModelLoadingPlugin + implements PreparableModelLoadingPlugin> { + + @Override + public void initialize(Map data, Context pluginContext) { + for (var entry : data.entrySet()) { + TinyFlowerResources resources = entry.getValue(); + + pluginContext.addModel( + ExtraModelKey.create(resources.modelPart1()::toString), + SimpleUnbakedExtraModel.blockStateModel(resources.modelPart1())); + pluginContext.addModel( + ExtraModelKey.create(resources.modelPart2()::toString), + SimpleUnbakedExtraModel.blockStateModel(resources.modelPart2())); + pluginContext.addModel( + ExtraModelKey.create(resources.modelPart3()::toString), + SimpleUnbakedExtraModel.blockStateModel(resources.modelPart3())); + pluginContext.addModel( + ExtraModelKey.create(resources.modelPart4()::toString), + SimpleUnbakedExtraModel.blockStateModel(resources.modelPart4())); + } + + pluginContext.modifyItemModelBeforeBake().register((model, itemContext) -> { + if (itemContext.itemId().equals(ModItems.TINY_FLOWER_ITEM_KEY.identifier())) { + } + + return model; + }); + } + +} From e0bdb2706f9c4ec90a82db188fd9f7b6463a2312 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 13:33:09 +1300 Subject: [PATCH 027/113] Use model manager to get block models in block entity renderer --- .../block/TinyGardenBlockEntityRenderer.java | 158 ++++++++---------- .../resources/TinyFlowerModelDataLoader.java | 3 +- .../TinyFlowersModelLoadingPlugin.java | 2 + 3 files changed, 72 insertions(+), 91 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java index a29052c3..adf0a149 100644 --- a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java +++ b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java @@ -1,6 +1,5 @@ package co.secretonline.tinyflowers.renderer.block; -import java.util.HashMap; import java.util.Map; import java.util.Optional; @@ -12,48 +11,24 @@ import co.secretonline.tinyflowers.blocks.TinyGardenBlock; import co.secretonline.tinyflowers.blocks.TinyGardenBlockEntity; import co.secretonline.tinyflowers.resources.TinyFlowerResources; -import net.minecraft.client.gui.Font; -import net.minecraft.client.model.geom.ModelLayerLocation; +import net.fabricmc.fabric.api.client.model.loading.v1.ExtraModelKey; +import net.minecraft.client.Minecraft; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.renderer.SubmitNodeCollector; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.renderer.feature.ModelFeatureRenderer.CrumblingOverlay; +import net.minecraft.client.renderer.rendertype.RenderTypes; import net.minecraft.client.renderer.state.CameraRenderState; +import net.minecraft.client.resources.model.ModelManager; import net.minecraft.core.Direction; -import net.minecraft.network.chat.Component; import net.minecraft.resources.Identifier; import net.minecraft.world.phys.Vec3; public class TinyGardenBlockEntityRenderer implements BlockEntityRenderer { - private final Map modelsForVariant = new HashMap<>(); public TinyGardenBlockEntityRenderer(BlockEntityRendererProvider.Context context) { - // This map is re-created when resources are reloaded. Luckily, a new instance - // of this class is made too. - Map resourceMap = TinyFlowerResources.getInstances(); - - // Some primitive caching for model baking, since most flowers shoudl use the - // same models. - Map bakedModels = new HashMap<>(); - // resourceMap.forEach((id, resource) -> { - // for (var part : new TinyFlowerResources.Part[] { resource.part1(), - // resource.part2(), - // resource.part3(), resource.part4() }) { - // if (!bakedModels.containsKey(part.model())) { - // var location = new ModelLayerLocation(part.model(), "main"); - // var baked = context.bakeLayer(location); - // bakedModels.put(part.model(), baked); - // } - // } - - // modelsForVariant.put(id, new BakedModelHolder( - // bakedModels.get(resource.part1().model()), resource.part1().textures(), - // bakedModels.get(resource.part2().model()), resource.part2().textures(), - // bakedModels.get(resource.part3().model()), resource.part3().textures(), - // bakedModels.get(resource.part4().model()), resource.part4().textures())); - // }); } @Override @@ -84,66 +59,75 @@ public void submit(TinyGardenBlockEntityRenderState blockEntityRenderState, Pose float rotationDegrees = Direction.getYRot(blockEntityRenderState.getDirection()); poseStack.mulPose(Axis.YP.rotationDegrees(rotationDegrees)); - if (blockEntityRenderState.getFlower1() != null) { - poseStack.pushPose(); - poseStack.scale(1 / 32f, 1 / 32f, 1 / 32f); - poseStack.mulPose(Axis.XP.rotationDegrees(180)); - submitNodeCollector.submitText(poseStack, 24f, -20f, - Component.literal(blockEntityRenderState.getFlower1().toString()).getVisualOrderText(), - false, - Font.DisplayMode.SEE_THROUGH, - blockEntityRenderState.lightCoords, - 0xffffffff, - 1, - 0); - poseStack.popPose(); + submitPartForFlowerIndex(blockEntityRenderState, poseStack, submitNodeCollector, 1); + submitPartForFlowerIndex(blockEntityRenderState, poseStack, submitNodeCollector, 2); + submitPartForFlowerIndex(blockEntityRenderState, poseStack, submitNodeCollector, 3); + submitPartForFlowerIndex(blockEntityRenderState, poseStack, submitNodeCollector, 4); + + poseStack.popPose(); + } + + private void submitPartForFlowerIndex(TinyGardenBlockEntityRenderState blockEntityRenderState, PoseStack poseStack, + SubmitNodeCollector submitNodeCollector, int index) { + Identifier id; + switch (index) { + case 1: + id = blockEntityRenderState.getFlower1(); + break; + case 2: + id = blockEntityRenderState.getFlower2(); + break; + case 3: + id = blockEntityRenderState.getFlower3(); + break; + case 4: + id = blockEntityRenderState.getFlower4(); + break; + default: + throw new IllegalArgumentException("Invalid flower index " + index); } - if (blockEntityRenderState.getFlower2() != null) { - poseStack.pushPose(); - poseStack.scale(1 / 32f, 1 / 32f, 1 / 32f); - poseStack.mulPose(Axis.XP.rotationDegrees(180)); - poseStack.translate(0, 0, 32); - submitNodeCollector.submitText(poseStack, 24f, -20f, - Component.literal(blockEntityRenderState.getFlower2().toString()).getVisualOrderText(), - false, - Font.DisplayMode.SEE_THROUGH, - blockEntityRenderState.lightCoords, - 0xffffffff, - 0, - 0); - poseStack.popPose(); + if (id == null) { + return; } - if (blockEntityRenderState.getFlower3() != null) { - poseStack.pushPose(); - poseStack.scale(1 / 32f, 1 / 32f, 1 / 32f); - poseStack.mulPose(Axis.XP.rotationDegrees(180)); - poseStack.translate(0, 0, 32); - submitNodeCollector.submitText(poseStack, 8f, -10f, - Component.literal(blockEntityRenderState.getFlower3().toString()).getVisualOrderText(), - false, - Font.DisplayMode.SEE_THROUGH, - blockEntityRenderState.lightCoords, - 0xffffffff, - 0, - 0); - poseStack.popPose(); + + Map resourceMap = TinyFlowerResources.getInstances(); + TinyFlowerResources resources = resourceMap.get(id); + if (resources == null) { + return; } - if (blockEntityRenderState.getFlower4() != null) { - poseStack.pushPose(); - poseStack.scale(1 / 32f, 1 / 32f, 1 / 32f); - poseStack.mulPose(Axis.XP.rotationDegrees(180)); - submitNodeCollector.submitText(poseStack, 8f, -10f, - Component.literal(blockEntityRenderState.getFlower4().toString()).getVisualOrderText(), - false, - Font.DisplayMode.SEE_THROUGH, - blockEntityRenderState.lightCoords, - 0xffffffff, - 0, - 0); - poseStack.popPose(); + + Identifier modelId; + switch (index) { + case 1: + modelId = resources.modelPart1(); + break; + case 2: + modelId = resources.modelPart2(); + break; + case 3: + modelId = resources.modelPart3(); + break; + case 4: + modelId = resources.modelPart4(); + break; + default: + throw new IllegalArgumentException("Invalid flower index " + index); + } + if (modelId == null) { + return; } - poseStack.popPose(); + ExtraModelKey key = ExtraModelKey.create(modelId::toString); + + Minecraft minecraft = Minecraft.getInstance(); + ModelManager modelManager = minecraft.getModelManager(); + + ModelPart model = modelManager.getModel(key); + if (model == null) { + return; + } + + submitNodeCollector.submitModelPart(model, poseStack, RenderTypes.cutoutMovingBlock(), 0, 0, null); } @Override @@ -154,10 +138,4 @@ public int getViewDistance() { // mean to be part of the world, which usually doesn't distance culling. return 256; } - - private static record BakedModelHolder(ModelPart part1, Map textures1, - ModelPart part2, Map textures2, - ModelPart part3, Map textures3, - ModelPart part4, Map textures4) { - } } diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java index 4750558f..74f131f9 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java @@ -45,7 +45,8 @@ private Map readResourceFiles(ResourceManager r return; } - map.put(identifier, readResult.getOrThrow()); + TinyFlowerResources resources = readResult.getOrThrow(); + map.put(resources.id(), resources); } catch (IOException ex) { TinyFlowers.LOGGER .warn("Failed to read data for tiny flower resource info " + identifier.toString() + ". Skipping"); diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java index 02d5205c..e3e34eea 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java @@ -14,6 +14,8 @@ public class TinyFlowersModelLoadingPlugin @Override public void initialize(Map data, Context pluginContext) { + TinyFlowerResources.setInstances(data); + for (var entry : data.entrySet()) { TinyFlowerResources resources = entry.getValue(); From 3034c643f53dfd5dc06d2a1e0bfda706569b4f7e Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 14:30:43 +1300 Subject: [PATCH 028/113] Make the rendering go --- .../block/TinyGardenBlockEntityRenderer.java | 43 ++++++++++--------- .../resources/TinyFlowerModelDataLoader.java | 33 ++++++++++++-- .../TinyFlowerResolvedResources.java | 24 +++++++++++ .../resources/TinyFlowerResources.java | 12 ------ .../TinyFlowersModelLoadingPlugin.java | 25 +++++------ 5 files changed, 90 insertions(+), 47 deletions(-) create mode 100644 src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java index adf0a149..65916ba6 100644 --- a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java +++ b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java @@ -10,11 +10,11 @@ import co.secretonline.tinyflowers.blocks.TinyGardenBlock; import co.secretonline.tinyflowers.blocks.TinyGardenBlockEntity; -import co.secretonline.tinyflowers.resources.TinyFlowerResources; +import co.secretonline.tinyflowers.resources.TinyFlowerResolvedResources; import net.fabricmc.fabric.api.client.model.loading.v1.ExtraModelKey; import net.minecraft.client.Minecraft; -import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.renderer.SubmitNodeCollector; +import net.minecraft.client.renderer.block.model.BlockStateModel; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.renderer.feature.ModelFeatureRenderer.CrumblingOverlay; @@ -56,8 +56,10 @@ public void submit(TinyGardenBlockEntityRenderState blockEntityRenderState, Pose SubmitNodeCollector submitNodeCollector, CameraRenderState cameraRenderState) { poseStack.pushPose(); + poseStack.translate(0.5, 0, 0.5); float rotationDegrees = Direction.getYRot(blockEntityRenderState.getDirection()); - poseStack.mulPose(Axis.YP.rotationDegrees(rotationDegrees)); + poseStack.mulPose(Axis.YP.rotationDegrees(180 - rotationDegrees)); + poseStack.translate(-0.5, 0, -0.5); submitPartForFlowerIndex(blockEntityRenderState, poseStack, submitNodeCollector, 1); submitPartForFlowerIndex(blockEntityRenderState, poseStack, submitNodeCollector, 2); @@ -67,21 +69,21 @@ public void submit(TinyGardenBlockEntityRenderState blockEntityRenderState, Pose poseStack.popPose(); } - private void submitPartForFlowerIndex(TinyGardenBlockEntityRenderState blockEntityRenderState, PoseStack poseStack, + private void submitPartForFlowerIndex(TinyGardenBlockEntityRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int index) { Identifier id; switch (index) { case 1: - id = blockEntityRenderState.getFlower1(); + id = state.getFlower1(); break; case 2: - id = blockEntityRenderState.getFlower2(); + id = state.getFlower2(); break; case 3: - id = blockEntityRenderState.getFlower3(); + id = state.getFlower3(); break; case 4: - id = blockEntityRenderState.getFlower4(); + id = state.getFlower4(); break; default: throw new IllegalArgumentException("Invalid flower index " + index); @@ -90,44 +92,45 @@ private void submitPartForFlowerIndex(TinyGardenBlockEntityRenderState blockEnti return; } - Map resourceMap = TinyFlowerResources.getInstances(); - TinyFlowerResources resources = resourceMap.get(id); + Map resourceMap = TinyFlowerResolvedResources.getInstances(); + TinyFlowerResolvedResources resources = resourceMap.get(id); if (resources == null) { return; } - Identifier modelId; + ExtraModelKey key; switch (index) { case 1: - modelId = resources.modelPart1(); + key = resources.model1().extraModelKey(); break; case 2: - modelId = resources.modelPart2(); + key = resources.model2().extraModelKey(); break; case 3: - modelId = resources.modelPart3(); + key = resources.model3().extraModelKey(); break; case 4: - modelId = resources.modelPart4(); + key = resources.model4().extraModelKey(); break; default: throw new IllegalArgumentException("Invalid flower index " + index); } - if (modelId == null) { + if (key == null) { return; } - ExtraModelKey key = ExtraModelKey.create(modelId::toString); - Minecraft minecraft = Minecraft.getInstance(); ModelManager modelManager = minecraft.getModelManager(); - ModelPart model = modelManager.getModel(key); + BlockStateModel model = modelManager.getModel(key); if (model == null) { return; } - submitNodeCollector.submitModelPart(model, poseStack, RenderTypes.cutoutMovingBlock(), 0, 0, null); + submitNodeCollector.submitBlockModel( + poseStack, RenderTypes.cutoutMovingBlock(), model, + 0, 0, 0, + state.lightCoords, 0, 0); } @Override diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java index 74f131f9..f43b5276 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java @@ -1,10 +1,12 @@ package co.secretonline.tinyflowers.resources; import java.io.IOException; +import java.util.AbstractMap; import java.util.HashMap; import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; +import java.util.stream.Collectors; import com.google.gson.JsonObject; import com.mojang.serialization.DataResult; @@ -12,6 +14,7 @@ import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.data.ModRegistries; +import net.fabricmc.fabric.api.client.model.loading.v1.ExtraModelKey; import net.fabricmc.fabric.api.client.model.loading.v1.PreparableModelLoadingPlugin; import net.minecraft.resources.Identifier; import net.minecraft.server.packs.resources.PreparableReloadListener.SharedState; @@ -19,11 +22,13 @@ import net.minecraft.util.GsonHelper; public class TinyFlowerModelDataLoader - implements PreparableModelLoadingPlugin.DataLoader> { + implements PreparableModelLoadingPlugin.DataLoader> { @Override - public CompletableFuture> load(SharedState sharedState, + public CompletableFuture> load(SharedState sharedState, Executor executor) { - return CompletableFuture.supplyAsync(() -> this.readResourceFiles(sharedState.resourceManager()), executor); + return CompletableFuture + .supplyAsync(() -> this.readResourceFiles(sharedState.resourceManager()), executor) + .thenApplyAsync((map) -> this.resolveAll(map), executor); } private Map readResourceFiles(ResourceManager resourceManager) { @@ -58,4 +63,26 @@ private Map readResourceFiles(ResourceManager r return map; } + + private Map resolveAll(Map map) { + return map.entrySet() + .stream() + .map(entry -> { + var resources = entry.getValue(); + + return new AbstractMap.SimpleEntry<>(entry.getKey(), + new TinyFlowerResolvedResources(resources.id(), resources.itemTexture(), resources.particleTexture(), + new TinyFlowerResolvedResources.Part(resources.modelPart1(), + ExtraModelKey.create(resources.modelPart1()::toString)), + new TinyFlowerResolvedResources.Part(resources.modelPart2(), + ExtraModelKey.create(resources.modelPart2()::toString)), + new TinyFlowerResolvedResources.Part(resources.modelPart3(), + ExtraModelKey.create(resources.modelPart3()::toString)), + new TinyFlowerResolvedResources.Part(resources.modelPart4(), + ExtraModelKey.create(resources.modelPart4()::toString)))); + }) + .collect(Collectors.toMap( + Map.Entry::getKey, + Map.Entry::getValue)); + } } diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java new file mode 100644 index 00000000..fe1e659e --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java @@ -0,0 +1,24 @@ +package co.secretonline.tinyflowers.resources; + +import java.util.HashMap; +import java.util.Map; + +import net.fabricmc.fabric.api.client.model.loading.v1.ExtraModelKey; +import net.minecraft.client.renderer.block.model.BlockStateModel; +import net.minecraft.resources.Identifier; + +public record TinyFlowerResolvedResources(Identifier id, Identifier itemTexture, Identifier particleTexture, + Part model1, Part model2, Part model3, Part model4) { + private static Map INSTANCES = new HashMap<>(); + + public static Map getInstances() { + return INSTANCES; + } + + public static void setInstances(Map map) { + INSTANCES = map; + } + + public static record Part(Identifier modelId, ExtraModelKey extraModelKey) { + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java index c6ede768..f45a9d9f 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java @@ -1,8 +1,5 @@ package co.secretonline.tinyflowers.resources; -import java.util.HashMap; -import java.util.Map; - import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; @@ -10,15 +7,6 @@ public record TinyFlowerResources(Identifier id, Identifier itemTexture, Identifier particleTexture, Identifier modelPart1, Identifier modelPart2, Identifier modelPart3, Identifier modelPart4) { - private static Map INSTANCES = new HashMap<>(); - - public static Map getInstances() { - return INSTANCES; - } - - public static void setInstances(Map map) { - INSTANCES = map; - } public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerResources::id), diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java index e3e34eea..3928cec6 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java @@ -7,30 +7,31 @@ import net.fabricmc.fabric.api.client.model.loading.v1.ModelLoadingPlugin.Context; import net.fabricmc.fabric.api.client.model.loading.v1.PreparableModelLoadingPlugin; import net.fabricmc.fabric.api.client.model.loading.v1.SimpleUnbakedExtraModel; +import net.minecraft.client.renderer.block.model.BlockStateModel; import net.minecraft.resources.Identifier; public class TinyFlowersModelLoadingPlugin - implements PreparableModelLoadingPlugin> { + implements PreparableModelLoadingPlugin> { @Override - public void initialize(Map data, Context pluginContext) { - TinyFlowerResources.setInstances(data); + public void initialize(Map data, Context pluginContext) { + TinyFlowerResolvedResources.setInstances(data); for (var entry : data.entrySet()) { - TinyFlowerResources resources = entry.getValue(); + TinyFlowerResolvedResources resources = entry.getValue(); pluginContext.addModel( - ExtraModelKey.create(resources.modelPart1()::toString), - SimpleUnbakedExtraModel.blockStateModel(resources.modelPart1())); + resources.model1().extraModelKey(), + SimpleUnbakedExtraModel.blockStateModel(resources.model1().modelId())); pluginContext.addModel( - ExtraModelKey.create(resources.modelPart2()::toString), - SimpleUnbakedExtraModel.blockStateModel(resources.modelPart2())); + resources.model2().extraModelKey(), + SimpleUnbakedExtraModel.blockStateModel(resources.model2().modelId())); pluginContext.addModel( - ExtraModelKey.create(resources.modelPart3()::toString), - SimpleUnbakedExtraModel.blockStateModel(resources.modelPart3())); + resources.model3().extraModelKey(), + SimpleUnbakedExtraModel.blockStateModel(resources.model3().modelId())); pluginContext.addModel( - ExtraModelKey.create(resources.modelPart4()::toString), - SimpleUnbakedExtraModel.blockStateModel(resources.modelPart4())); + resources.model4().extraModelKey(), + SimpleUnbakedExtraModel.blockStateModel(resources.model4().modelId())); } pluginContext.modifyItemModelBeforeBake().register((model, itemContext) -> { From 36c5a8ee666d22a7ccc1b2de0f39c93099ef365d Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 14:46:08 +1300 Subject: [PATCH 029/113] Fix models used by pink petals and wildflowers --- .../datagen/generators/mods/VanillaDataGenerator.java | 2 ++ .../minecraft/models/block/tiny_flowers/pink_petals_1.json | 2 +- .../minecraft/models/block/tiny_flowers/pink_petals_2.json | 2 +- .../minecraft/models/block/tiny_flowers/pink_petals_3.json | 2 +- .../minecraft/models/block/tiny_flowers/pink_petals_4.json | 2 +- .../minecraft/models/block/tiny_flowers/wildflowers_1.json | 2 +- .../minecraft/models/block/tiny_flowers/wildflowers_2.json | 2 +- .../minecraft/models/block/tiny_flowers/wildflowers_3.json | 2 +- .../minecraft/models/block/tiny_flowers/wildflowers_4.json | 2 +- 9 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java index 2eac8dec..d7ad977f 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java @@ -16,9 +16,11 @@ public List getFlowerData() { return List.of( TinyFlowersDatagenData.Builder .ofSegmented(Identifier.withDefaultNamespace("pink_petals")) + .customModel(Identifier.withDefaultNamespace("flowerbed")) .build(), TinyFlowersDatagenData.Builder .ofSegmented(Identifier.withDefaultNamespace("wildflowers")) + .customModel(Identifier.withDefaultNamespace("flowerbed")) .build(), TinyFlowersDatagenData.Builder .ofSegmented(Identifier.withDefaultNamespace("leaf_litter")) diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_1.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_1.json index 5357b1e8..5cf80b2d 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_1.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_1.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_1", + "parent": "minecraft:block/flowerbed_1", "textures": { "flowerbed": "minecraft:block/pink_petals", "particle": "minecraft:block/pink_petals", diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_2.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_2.json index 6ee38288..b18bf9a1 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_2.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_2.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_2", + "parent": "minecraft:block/flowerbed_2", "textures": { "flowerbed": "minecraft:block/pink_petals", "particle": "minecraft:block/pink_petals", diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_3.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_3.json index da6ecb9b..4df3c7fc 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_3.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_3.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_3", + "parent": "minecraft:block/flowerbed_3", "textures": { "flowerbed": "minecraft:block/pink_petals", "particle": "minecraft:block/pink_petals", diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_4.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_4.json index d5296edd..4e6bc7af 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_4.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/pink_petals_4.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_4", + "parent": "minecraft:block/flowerbed_4", "textures": { "flowerbed": "minecraft:block/pink_petals", "particle": "minecraft:block/pink_petals", diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_1.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_1.json index 84962ae0..21fab7d9 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_1.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_1.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_1", + "parent": "minecraft:block/flowerbed_1", "textures": { "flowerbed": "minecraft:block/wildflowers", "particle": "minecraft:block/wildflowers", diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_2.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_2.json index 5d58ac70..f93475d8 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_2.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_2.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_2", + "parent": "minecraft:block/flowerbed_2", "textures": { "flowerbed": "minecraft:block/wildflowers", "particle": "minecraft:block/wildflowers", diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_3.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_3.json index 00b7b588..dbd39196 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_3.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_3.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_3", + "parent": "minecraft:block/flowerbed_3", "textures": { "flowerbed": "minecraft:block/wildflowers", "particle": "minecraft:block/wildflowers", diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_4.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_4.json index b5e47300..310adb5d 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_4.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/wildflowers_4.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_4", + "parent": "minecraft:block/flowerbed_4", "textures": { "flowerbed": "minecraft:block/wildflowers", "particle": "minecraft:block/wildflowers", From 351a0b358a9938d61f2bae2b5b0d08c0a2a0bb96 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 15:50:40 +1300 Subject: [PATCH 030/113] Try make block tinting work part 1 --- .../TinyGardenBlockEntityRenderState.java | 18 +++++++++++++++++- .../block/TinyGardenBlockEntityRenderer.java | 10 ++++++---- .../TinyFlowersModelLoadingPlugin.java | 2 -- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderState.java b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderState.java index 11543239..c57f9352 100644 --- a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderState.java +++ b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderState.java @@ -1,10 +1,12 @@ package co.secretonline.tinyflowers.renderer.block; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; import net.minecraft.client.renderer.blockentity.state.BlockEntityRenderState; import net.minecraft.core.Direction; import net.minecraft.resources.Identifier; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.EmptyBlockAndTintGetter; public class TinyGardenBlockEntityRenderState extends BlockEntityRenderState { private Direction direction = Direction.NORTH; @@ -17,6 +19,8 @@ public class TinyGardenBlockEntityRenderState extends BlockEntityRenderState { private Identifier flower3 = null; @Nullable private Identifier flower4 = null; + @Nullable + private BlockAndTintGetter blockAndTintGetter = null; public Direction getDirection() { return direction; @@ -38,6 +42,14 @@ public Identifier getFlower4() { return flower4; } + public BlockAndTintGetter getBlockAndTintGetter() { + if (blockAndTintGetter == null) { + return EmptyBlockAndTintGetter.INSTANCE; + } + + return blockAndTintGetter; + } + public void setDirection(Direction direction) { this.direction = direction; } @@ -48,4 +60,8 @@ public void setFlowers(Identifier flower1, Identifier flower2, Identifier flower this.flower3 = flower3; this.flower4 = flower4; } + + public void setBlockAndTintGetter(BlockAndTintGetter getter) { + this.blockAndTintGetter = getter; + } } diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java index 65916ba6..11754e76 100644 --- a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java +++ b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java @@ -49,6 +49,8 @@ public void extractRenderState(TinyGardenBlockEntity blockEntity, state.setFlowers(blockEntity.getFlower(1), blockEntity.getFlower(2), blockEntity.getFlower(3), blockEntity.getFlower(4)); + + state.setBlockAndTintGetter(blockEntity.getLevel()); } @Override @@ -127,10 +129,10 @@ private void submitPartForFlowerIndex(TinyGardenBlockEntityRenderState state, Po return; } - submitNodeCollector.submitBlockModel( - poseStack, RenderTypes.cutoutMovingBlock(), model, - 0, 0, 0, - state.lightCoords, 0, 0); + submitNodeCollector.submitBlockStateModel(poseStack, (layer) -> RenderTypes.cutoutMovingBlock(), model, + 1, 1, 1, + state.lightCoords, 0, 0, + state.getBlockAndTintGetter(), state.blockPos, state.blockState); } @Override diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java index 3928cec6..5efd7866 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java @@ -3,11 +3,9 @@ import java.util.Map; import co.secretonline.tinyflowers.items.ModItems; -import net.fabricmc.fabric.api.client.model.loading.v1.ExtraModelKey; import net.fabricmc.fabric.api.client.model.loading.v1.ModelLoadingPlugin.Context; import net.fabricmc.fabric.api.client.model.loading.v1.PreparableModelLoadingPlugin; import net.fabricmc.fabric.api.client.model.loading.v1.SimpleUnbakedExtraModel; -import net.minecraft.client.renderer.block.model.BlockStateModel; import net.minecraft.resources.Identifier; public class TinyFlowersModelLoadingPlugin From f771e9e50c1f753501f355c60dd0cab925bc29b0 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 15:58:21 +1300 Subject: [PATCH 031/113] Fix gardens sometimes rotating when adding new flowers --- .../secretonline/tinyflowers/items/TinyFlowerItem.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java index 7faf2e62..1201ae0f 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java @@ -7,6 +7,7 @@ import co.secretonline.tinyflowers.components.GardenContentsComponent; import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; +import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; @@ -26,7 +27,14 @@ public TinyFlowerItem(Item.Properties properties) { return newBlockState; } - return newBlockState.setValue(TinyGardenBlock.FACING, blockPlaceContext.getHorizontalDirection().getOpposite()); + BlockState currentBlockState = blockPlaceContext.getLevel().getBlockState(blockPlaceContext.getClickedPos()); + Direction currentDirection = currentBlockState.getValue(TinyGardenBlock.FACING); + + Direction newDirection = currentDirection != null + ? currentDirection + : blockPlaceContext.getHorizontalDirection().getOpposite(); + + return newBlockState.setValue(TinyGardenBlock.FACING, newDirection); } @Override From 824ccb90eced8dafbc1fc5360e4eb7e841a5a935 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 16:53:42 +1300 Subject: [PATCH 032/113] Add tinting to resource definition I'm not entirely happy about this, but it works for now --- .../mods/TinyFlowersDatagenData.java | 26 ++++--- .../generators/mods/VanillaDataGenerator.java | 2 + .../block/TinyGardenBlockEntityRenderer.java | 72 +++++++++---------- .../resources/TinyFlowerModelDataLoader.java | 20 +++--- .../TinyFlowerResolvedResources.java | 3 +- .../resources/TinyFlowerResources.java | 37 ++++++++-- .../tiny_flowers/tiny_flower/leaf_litter.json | 20 ++++-- .../tiny_flowers/tiny_flower/pink_petals.json | 16 +++-- .../tiny_flowers/tiny_flower/wildflowers.json | 16 +++-- .../tiny_flowers/tiny_flower/tiny_allium.json | 16 +++-- .../tiny_flower/tiny_azure_bluet.json | 16 +++-- .../tiny_flower/tiny_blue_orchid.json | 16 +++-- .../tiny_flower/tiny_cactus_flower.json | 16 +++-- .../tiny_flower/tiny_closed_eyeblossom.json | 16 +++-- .../tiny_flower/tiny_cornflower.json | 16 +++-- .../tiny_flower/tiny_dandelion.json | 16 +++-- .../tiny_flower/tiny_lily_of_the_valley.json | 16 +++-- .../tiny_flower/tiny_open_eyeblossom.json | 16 +++-- .../tiny_flower/tiny_orange_tulip.json | 16 +++-- .../tiny_flower/tiny_oxeye_daisy.json | 16 +++-- .../tiny_flower/tiny_pink_tulip.json | 16 +++-- .../tiny_flowers/tiny_flower/tiny_poppy.json | 16 +++-- .../tiny_flower/tiny_red_tulip.json | 16 +++-- .../tiny_flower/tiny_torchflower.json | 16 +++-- .../tiny_flower/tiny_white_tulip.json | 16 +++-- .../tiny_flower/tiny_wither_rose.json | 16 +++-- 26 files changed, 342 insertions(+), 142 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java index 2a9e98fe..dc9b557b 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java @@ -14,6 +14,7 @@ import co.secretonline.tinyflowers.TinyFlowers; import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.resources.TinyFlowerResources; +import co.secretonline.tinyflowers.resources.TinyFlowerResources.TintSource; import net.minecraft.client.data.models.model.ModelInstance; import net.minecraft.client.data.models.model.TextureSlot; import net.minecraft.core.Holder; @@ -45,10 +46,10 @@ public TinyFlowerData data() { public TinyFlowerResources resources() { return new TinyFlowerResources(id, itemTexture, particleTexture, - modelPart1.id().withPrefix(BLOCK_MOD_PREFIX), - modelPart2.id().withPrefix(BLOCK_MOD_PREFIX), - modelPart3.id().withPrefix(BLOCK_MOD_PREFIX), - modelPart4.id().withPrefix(BLOCK_MOD_PREFIX)); + new TinyFlowerResources.Part(modelPart1.id().withPrefix(BLOCK_MOD_PREFIX), modelPart1.tintSource()), + new TinyFlowerResources.Part(modelPart2.id().withPrefix(BLOCK_MOD_PREFIX), modelPart2.tintSource()), + new TinyFlowerResources.Part(modelPart3.id().withPrefix(BLOCK_MOD_PREFIX), modelPart3.tintSource()), + new TinyFlowerResources.Part(modelPart4.id().withPrefix(BLOCK_MOD_PREFIX), modelPart4.tintSource())); } public ModelParts modelParts() { @@ -59,7 +60,8 @@ public ModelParts modelParts() { modelPart4); } - public static record ModelPart(Identifier id, Identifier parent, Map textures) { + public static record ModelPart(Identifier id, Identifier parent, Map textures, + TintSource tintSource) { public JsonElement toJsonElement() { JsonObject jsonObject = new JsonObject(); @@ -100,6 +102,7 @@ public static class Builder { private Identifier stemTexture = Identifier.withDefaultNamespace("block/pink_petals_stem"); private Map textureMap = new HashMap<>(); private Identifier customModel = null; + private TintSource tintSource = TintSource.GRASS; public static Builder ofCustom(Identifier id, Identifier originalBlockId) { return new Builder() @@ -212,6 +215,11 @@ public Builder customModel(Identifier model) { return this; } + public Builder tintSource(TintSource tintSource) { + this.tintSource = tintSource; + return this; + } + public TinyFlowersDatagenData build() { TinyFlowersDatagenData data = new TinyFlowersDatagenData(); @@ -253,10 +261,10 @@ public TinyFlowersDatagenData build() { textureMap.put("stem", this.stemTexture); } - data.modelPart1 = new ModelPart(id.withSuffix("_1"), parentId.withSuffix("_1"), textureMap); - data.modelPart2 = new ModelPart(id.withSuffix("_2"), parentId.withSuffix("_2"), textureMap); - data.modelPart3 = new ModelPart(id.withSuffix("_3"), parentId.withSuffix("_3"), textureMap); - data.modelPart4 = new ModelPart(id.withSuffix("_4"), parentId.withSuffix("_4"), textureMap); + data.modelPart1 = new ModelPart(id.withSuffix("_1"), parentId.withSuffix("_1"), textureMap, tintSource); + data.modelPart2 = new ModelPart(id.withSuffix("_2"), parentId.withSuffix("_2"), textureMap, tintSource); + data.modelPart3 = new ModelPart(id.withSuffix("_3"), parentId.withSuffix("_3"), textureMap, tintSource); + data.modelPart4 = new ModelPart(id.withSuffix("_4"), parentId.withSuffix("_4"), textureMap, tintSource); return data; } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java index d7ad977f..d46d228a 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java @@ -3,6 +3,7 @@ import java.util.List; import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.resources.TinyFlowerResources.TintSource; import net.minecraft.resources.Identifier; public class VanillaDataGenerator extends BaseModDataGenerator { @@ -26,6 +27,7 @@ public List getFlowerData() { .ofSegmented(Identifier.withDefaultNamespace("leaf_litter")) .customModel(TinyFlowers.id("garden_leaf_litter")) .noStem() + .tintSource(TintSource.DRY_FOLIAGE) .build()); } } diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java index 11754e76..6843b3c6 100644 --- a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java +++ b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java @@ -8,11 +8,14 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Axis; +import co.secretonline.tinyflowers.blocks.ModBlocks; import co.secretonline.tinyflowers.blocks.TinyGardenBlock; import co.secretonline.tinyflowers.blocks.TinyGardenBlockEntity; import co.secretonline.tinyflowers.resources.TinyFlowerResolvedResources; -import net.fabricmc.fabric.api.client.model.loading.v1.ExtraModelKey; +import co.secretonline.tinyflowers.resources.TinyFlowerResources.TintSource; +import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; import net.minecraft.client.Minecraft; +import net.minecraft.client.color.block.BlockColor; import net.minecraft.client.renderer.SubmitNodeCollector; import net.minecraft.client.renderer.block.model.BlockStateModel; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; @@ -73,23 +76,13 @@ public void submit(TinyGardenBlockEntityRenderState blockEntityRenderState, Pose private void submitPartForFlowerIndex(TinyGardenBlockEntityRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int index) { - Identifier id; - switch (index) { - case 1: - id = state.getFlower1(); - break; - case 2: - id = state.getFlower2(); - break; - case 3: - id = state.getFlower3(); - break; - case 4: - id = state.getFlower4(); - break; - default: - throw new IllegalArgumentException("Invalid flower index " + index); - } + Identifier id = switch (index) { + case 1 -> state.getFlower1(); + case 2 -> state.getFlower2(); + case 3 -> state.getFlower3(); + case 4 -> state.getFlower4(); + default -> throw new IllegalArgumentException("Invalid flower index " + index); + }; if (id == null) { return; } @@ -100,37 +93,38 @@ private void submitPartForFlowerIndex(TinyGardenBlockEntityRenderState state, Po return; } - ExtraModelKey key; - switch (index) { - case 1: - key = resources.model1().extraModelKey(); - break; - case 2: - key = resources.model2().extraModelKey(); - break; - case 3: - key = resources.model3().extraModelKey(); - break; - case 4: - key = resources.model4().extraModelKey(); - break; - default: - throw new IllegalArgumentException("Invalid flower index " + index); - } - if (key == null) { + TinyFlowerResolvedResources.Part part = switch (index) { + case 1 -> resources.model1(); + case 2 -> resources.model2(); + case 3 -> resources.model3(); + case 4 -> resources.model4(); + default -> throw new IllegalArgumentException("Invalid flower index " + index); + }; + if (part == null) { return; } Minecraft minecraft = Minecraft.getInstance(); ModelManager modelManager = minecraft.getModelManager(); - - BlockStateModel model = modelManager.getModel(key); + BlockStateModel model = modelManager.getModel(part.extraModelKey()); if (model == null) { return; } + BlockColor tintProvider = ColorProviderRegistry.BLOCK.get(ModBlocks.TINY_GARDEN_BLOCK); + TintSource tintSource = part.tintSource(); + int tintIndex = switch (tintSource) { + case TintSource.DRY_FOLIAGE -> 2; + default -> 1; + }; + + int packedTint = tintProvider.getColor(state.blockState, state.getBlockAndTintGetter(), state.blockPos, tintIndex); + float r = ((packedTint & 0xFF0000) >> 16) / 256f; + float g = ((packedTint & 0xFF00) >> 8) / 256f; + float b = (packedTint & 0xFF) / 256f; + submitNodeCollector.submitBlockStateModel(poseStack, (layer) -> RenderTypes.cutoutMovingBlock(), model, - 1, 1, 1, + r, g, b, state.lightCoords, 0, 0, state.getBlockAndTintGetter(), state.blockPos, state.blockState); } diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java index f43b5276..423e58b3 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java @@ -72,14 +72,18 @@ private Map resolveAll(Map(entry.getKey(), new TinyFlowerResolvedResources(resources.id(), resources.itemTexture(), resources.particleTexture(), - new TinyFlowerResolvedResources.Part(resources.modelPart1(), - ExtraModelKey.create(resources.modelPart1()::toString)), - new TinyFlowerResolvedResources.Part(resources.modelPart2(), - ExtraModelKey.create(resources.modelPart2()::toString)), - new TinyFlowerResolvedResources.Part(resources.modelPart3(), - ExtraModelKey.create(resources.modelPart3()::toString)), - new TinyFlowerResolvedResources.Part(resources.modelPart4(), - ExtraModelKey.create(resources.modelPart4()::toString)))); + new TinyFlowerResolvedResources.Part(resources.model1().id(), + ExtraModelKey.create(resources.model1().id()::toString), + resources.model1().tintSource()), + new TinyFlowerResolvedResources.Part(resources.model2().id(), + ExtraModelKey.create(resources.model2().id()::toString), + resources.model2().tintSource()), + new TinyFlowerResolvedResources.Part(resources.model3().id(), + ExtraModelKey.create(resources.model3().id()::toString), + resources.model3().tintSource()), + new TinyFlowerResolvedResources.Part(resources.model4().id(), + ExtraModelKey.create(resources.model4().id()::toString), + resources.model4().tintSource()))); }) .collect(Collectors.toMap( Map.Entry::getKey, diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java index fe1e659e..9057e0a8 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java @@ -3,6 +3,7 @@ import java.util.HashMap; import java.util.Map; +import co.secretonline.tinyflowers.resources.TinyFlowerResources.TintSource; import net.fabricmc.fabric.api.client.model.loading.v1.ExtraModelKey; import net.minecraft.client.renderer.block.model.BlockStateModel; import net.minecraft.resources.Identifier; @@ -19,6 +20,6 @@ public static void setInstances(Map map INSTANCES = map; } - public static record Part(Identifier modelId, ExtraModelKey extraModelKey) { + public static record Part(Identifier modelId, ExtraModelKey extraModelKey, TintSource tintSource) { } } diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java index f45a9d9f..e6393918 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java @@ -4,17 +4,44 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.resources.Identifier; +import net.minecraft.util.StringRepresentable; public record TinyFlowerResources(Identifier id, Identifier itemTexture, Identifier particleTexture, - Identifier modelPart1, Identifier modelPart2, Identifier modelPart3, Identifier modelPart4) { + Part model1, Part model2, Part model3, Part model4) { public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerResources::id), Identifier.CODEC.fieldOf("item_texture").forGetter(TinyFlowerResources::itemTexture), Identifier.CODEC.fieldOf("particle_texture").forGetter(TinyFlowerResources::particleTexture), - Identifier.CODEC.fieldOf("modelPart1").forGetter(TinyFlowerResources::modelPart1), - Identifier.CODEC.fieldOf("modelPart2").forGetter(TinyFlowerResources::modelPart2), - Identifier.CODEC.fieldOf("modelPart3").forGetter(TinyFlowerResources::modelPart3), - Identifier.CODEC.fieldOf("modelPart4").forGetter(TinyFlowerResources::modelPart4)) + Part.CODEC.fieldOf("model1").forGetter(TinyFlowerResources::model1), + Part.CODEC.fieldOf("model2").forGetter(TinyFlowerResources::model2), + Part.CODEC.fieldOf("model3").forGetter(TinyFlowerResources::model3), + Part.CODEC.fieldOf("model4").forGetter(TinyFlowerResources::model4)) .apply(instance, TinyFlowerResources::new)); + + public static record Part(Identifier id, TintSource tintSource) { + + public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + Identifier.CODEC.fieldOf("id").forGetter(Part::id), + TintSource.CODEC.optionalFieldOf("tintSource", TintSource.GRASS).forGetter(Part::tintSource)) + .apply(instance, Part::new)); + } + + public static enum TintSource implements StringRepresentable { + GRASS("grass"), + DRY_FOLIAGE("dry_foliage"); + + private final String name; + + private TintSource(String name) { + this.name = name; + } + + @Override + public String getSerializedName() { + return this.name; + } + + public static final Codec CODEC = StringRepresentable.fromEnum(TintSource::values); + } } diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json index 71f77930..e0894c1e 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json @@ -1,9 +1,21 @@ { "id": "minecraft:leaf_litter", "item_texture": "minecraft:item/leaf_litter", - "modelPart1": "minecraft:block/tiny_flowers/leaf_litter_1", - "modelPart2": "minecraft:block/tiny_flowers/leaf_litter_2", - "modelPart3": "minecraft:block/tiny_flowers/leaf_litter_3", - "modelPart4": "minecraft:block/tiny_flowers/leaf_litter_4", + "model1": { + "id": "minecraft:block/tiny_flowers/leaf_litter_1", + "tintSource": "dry_foliage" + }, + "model2": { + "id": "minecraft:block/tiny_flowers/leaf_litter_2", + "tintSource": "dry_foliage" + }, + "model3": { + "id": "minecraft:block/tiny_flowers/leaf_litter_3", + "tintSource": "dry_foliage" + }, + "model4": { + "id": "minecraft:block/tiny_flowers/leaf_litter_4", + "tintSource": "dry_foliage" + }, "particle_texture": "minecraft:block/leaf_litter" } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json index b3fb0f61..2335ad1d 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json @@ -1,9 +1,17 @@ { "id": "minecraft:pink_petals", "item_texture": "minecraft:item/pink_petals", - "modelPart1": "minecraft:block/tiny_flowers/pink_petals_1", - "modelPart2": "minecraft:block/tiny_flowers/pink_petals_2", - "modelPart3": "minecraft:block/tiny_flowers/pink_petals_3", - "modelPart4": "minecraft:block/tiny_flowers/pink_petals_4", + "model1": { + "id": "minecraft:block/tiny_flowers/pink_petals_1" + }, + "model2": { + "id": "minecraft:block/tiny_flowers/pink_petals_2" + }, + "model3": { + "id": "minecraft:block/tiny_flowers/pink_petals_3" + }, + "model4": { + "id": "minecraft:block/tiny_flowers/pink_petals_4" + }, "particle_texture": "minecraft:block/pink_petals" } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json index 3e3a3e9d..3ae6cc0a 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json @@ -1,9 +1,17 @@ { "id": "minecraft:wildflowers", "item_texture": "minecraft:item/wildflowers", - "modelPart1": "minecraft:block/tiny_flowers/wildflowers_1", - "modelPart2": "minecraft:block/tiny_flowers/wildflowers_2", - "modelPart3": "minecraft:block/tiny_flowers/wildflowers_3", - "modelPart4": "minecraft:block/tiny_flowers/wildflowers_4", + "model1": { + "id": "minecraft:block/tiny_flowers/wildflowers_1" + }, + "model2": { + "id": "minecraft:block/tiny_flowers/wildflowers_2" + }, + "model3": { + "id": "minecraft:block/tiny_flowers/wildflowers_3" + }, + "model4": { + "id": "minecraft:block/tiny_flowers/wildflowers_4" + }, "particle_texture": "minecraft:block/wildflowers" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json index dc8f6574..b99d6de4 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_allium", "item_texture": "tiny_flowers:item/tiny_allium", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_allium_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_allium_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_allium_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_allium_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_allium_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_allium_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_allium_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_allium_4" + }, "particle_texture": "tiny_flowers:block/tiny_allium" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json index 3eb78067..560e659d 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_azure_bluet", "item_texture": "tiny_flowers:item/tiny_azure_bluet", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_4" + }, "particle_texture": "tiny_flowers:block/tiny_azure_bluet" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json index ad2c5570..68d20fc7 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_blue_orchid", "item_texture": "tiny_flowers:item/tiny_blue_orchid", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_4" + }, "particle_texture": "tiny_flowers:block/tiny_blue_orchid" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json index 835ec045..ef06c760 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_cactus_flower", "item_texture": "tiny_flowers:item/tiny_cactus_flower", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_4" + }, "particle_texture": "tiny_flowers:block/tiny_cactus_flower" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json index 28ebfe95..a11e58c5 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_closed_eyeblossom", "item_texture": "tiny_flowers:item/tiny_closed_eyeblossom", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_4" + }, "particle_texture": "tiny_flowers:block/tiny_closed_eyeblossom" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json index cbcfd378..10d3478b 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_cornflower", "item_texture": "tiny_flowers:item/tiny_cornflower", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_cornflower_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_cornflower_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_cornflower_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_cornflower_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_cornflower_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_cornflower_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_cornflower_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_cornflower_4" + }, "particle_texture": "tiny_flowers:block/tiny_cornflower" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json index 9959d50f..cf860295 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_dandelion", "item_texture": "tiny_flowers:item/tiny_dandelion", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_dandelion_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_dandelion_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_dandelion_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_dandelion_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_dandelion_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_dandelion_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_dandelion_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_dandelion_4" + }, "particle_texture": "tiny_flowers:block/tiny_dandelion" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json index 22efc9ad..e19e498a 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_lily_of_the_valley", "item_texture": "tiny_flowers:item/tiny_lily_of_the_valley", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_4" + }, "particle_texture": "tiny_flowers:block/tiny_lily_of_the_valley" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json index fb92ae83..122804a1 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_open_eyeblossom", "item_texture": "tiny_flowers:item/tiny_open_eyeblossom", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_4" + }, "particle_texture": "tiny_flowers:block/tiny_open_eyeblossom" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json index f5b09ff6..b87f4d9a 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_orange_tulip", "item_texture": "tiny_flowers:item/tiny_orange_tulip", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_4" + }, "particle_texture": "tiny_flowers:block/tiny_orange_tulip" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json index bd5b9ebc..8aa64d40 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_oxeye_daisy", "item_texture": "tiny_flowers:item/tiny_oxeye_daisy", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_4" + }, "particle_texture": "tiny_flowers:block/tiny_oxeye_daisy" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json index bfbaf80b..beb31e03 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_pink_tulip", "item_texture": "tiny_flowers:item/tiny_pink_tulip", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_4" + }, "particle_texture": "tiny_flowers:block/tiny_pink_tulip" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json index 01d9904b..b728d560 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_poppy", "item_texture": "tiny_flowers:item/tiny_poppy", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_poppy_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_poppy_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_poppy_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_poppy_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_poppy_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_poppy_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_poppy_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_poppy_4" + }, "particle_texture": "tiny_flowers:block/tiny_poppy" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json index faacbc44..fe8dd97d 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_red_tulip", "item_texture": "tiny_flowers:item/tiny_red_tulip", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_4" + }, "particle_texture": "tiny_flowers:block/tiny_red_tulip" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json index d82785d2..170f84e9 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_torchflower", "item_texture": "tiny_flowers:item/tiny_torchflower", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_torchflower_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_torchflower_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_torchflower_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_torchflower_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_torchflower_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_torchflower_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_torchflower_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_torchflower_4" + }, "particle_texture": "tiny_flowers:block/tiny_torchflower" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json index dfa998bb..9c23247c 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_white_tulip", "item_texture": "tiny_flowers:item/tiny_white_tulip", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_4" + }, "particle_texture": "tiny_flowers:block/tiny_white_tulip" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json index fd6bd99a..ef8a6d61 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json @@ -1,9 +1,17 @@ { "id": "tiny_flowers:tiny_wither_rose", "item_texture": "tiny_flowers:item/tiny_wither_rose", - "modelPart1": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_1", - "modelPart2": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_2", - "modelPart3": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_3", - "modelPart4": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_4", + "model1": { + "id": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_1" + }, + "model2": { + "id": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_2" + }, + "model3": { + "id": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_3" + }, + "model4": { + "id": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_4" + }, "particle_texture": "tiny_flowers:block/tiny_wither_rose" } \ No newline at end of file From 10f947d23ee85e5a6d2b3e71bfc0eddf92ddc92e Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 17:04:34 +1300 Subject: [PATCH 033/113] Fix crashes when placing flowers --- .../tinyflowers/blocks/TinyGardenBlock.java | 12 +++++++++++- .../tinyflowers/items/TinyFlowerItem.java | 9 ++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java index a70a2847..7edb219e 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java @@ -46,6 +46,7 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; @@ -136,7 +137,7 @@ public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, Co // the garden_contents component (normal). If it's the latter, then the Block // Entity will handle this so we just have to set the direction. // If it's the former, then don't do anything. - GardenContentsComponent gardenContents = stack.get(ModComponents.GARDEN_CONTENTS); + GardenContentsComponent gardenContents = stack.getOrDefault(ModComponents.GARDEN_CONTENTS, null); if (gardenContents == null) { return blockState; } @@ -308,6 +309,15 @@ public void performBonemeal(ServerLevel serverLevel, RandomSource randomSource, } } + protected boolean propagatesSkylightDown(BlockState blockState) { + return blockState.getFluidState().isEmpty(); + } + + protected boolean isPathfindable(BlockState blockState, PathComputationType pathComputationType) { + return pathComputationType == PathComputationType.AIR && !this.hasCollision ? true + : super.isPathfindable(blockState, pathComputationType); + } + @Override protected ItemStack getCloneItemStack(LevelReader levelReader, BlockPos blockPos, BlockState blockState, boolean includeData) { diff --git a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java index 1201ae0f..10bce38b 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java @@ -1,5 +1,7 @@ package co.secretonline.tinyflowers.items; +import java.util.Optional; + import org.jspecify.annotations.Nullable; import co.secretonline.tinyflowers.blocks.ModBlocks; @@ -28,11 +30,8 @@ public TinyFlowerItem(Item.Properties properties) { } BlockState currentBlockState = blockPlaceContext.getLevel().getBlockState(blockPlaceContext.getClickedPos()); - Direction currentDirection = currentBlockState.getValue(TinyGardenBlock.FACING); - - Direction newDirection = currentDirection != null - ? currentDirection - : blockPlaceContext.getHorizontalDirection().getOpposite(); + Optional currentDirection = currentBlockState.getOptionalValue(TinyGardenBlock.FACING); + Direction newDirection = currentDirection.orElse(blockPlaceContext.getHorizontalDirection().getOpposite()); return newBlockState.setValue(TinyGardenBlock.FACING, newDirection); } From b8951b1c6ec42bfe7b8e2e76f968186f8d302187 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 17:36:34 +1300 Subject: [PATCH 034/113] Set breaking particle from item texture This is just re-implementing the previous mixin. --- .../mixin/TerrainParticleMixin.java | 99 +++++++++++-------- 1 file changed, 59 insertions(+), 40 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/mixin/TerrainParticleMixin.java b/src/client/java/co/secretonline/tinyflowers/mixin/TerrainParticleMixin.java index 3798d173..2b7003a8 100644 --- a/src/client/java/co/secretonline/tinyflowers/mixin/TerrainParticleMixin.java +++ b/src/client/java/co/secretonline/tinyflowers/mixin/TerrainParticleMixin.java @@ -1,65 +1,84 @@ package co.secretonline.tinyflowers.mixin; -// import java.util.List; -// import net.minecraft.util.Util; -// import net.minecraft.client.Minecraft; +import java.util.List; +import java.util.Map; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import co.secretonline.tinyflowers.TinyFlowersClient; +import co.secretonline.tinyflowers.blocks.TinyGardenBlock; +import co.secretonline.tinyflowers.blocks.TinyGardenBlockEntity; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.resources.TinyFlowerResolvedResources; +import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.SingleQuadParticle; import net.minecraft.client.particle.TerrainParticle; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.BlockPos; -// import net.minecraft.world.item.ItemDisplayContext; -// import net.minecraft.world.item.ItemStack; +import net.minecraft.resources.Identifier; +import net.minecraft.util.Util; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.state.BlockState; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -// import co.secretonline.tinyflowers.TinyFlowersClient; -// import co.secretonline.tinyflowers.blocks.FlowerVariant; @Mixin(TerrainParticle.class) abstract class TerrainParticleMixin extends SingleQuadParticle { - protected TerrainParticleMixin(ClientLevel world, double x, double y, double z, TextureAtlasSprite sprite) { - super(world, x, y, z, sprite); - throw new Error("Should not directly instatiiate mixin"); + protected TerrainParticleMixin(ClientLevel level, double x, double y, double z, TextureAtlasSprite sprite) { + super(level, x, y, z, sprite); + throw new Error("Should not directly instantiate mixin"); } @Inject(method = "(Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;)V", at = @At("RETURN")) - private void onConstructorReturn(ClientLevel world, double x, double y, double z, + private void onConstructorReturn(ClientLevel level, double x, double y, double z, double velocityX, double velocityY, double velocityZ, BlockState state, BlockPos blockPos, CallbackInfo ci) { - // TextureAtlasSprite override = getOverrideSpriteForBlockState(state); - // if (override != null) { - // this.setSprite(override); - // } + TextureAtlasSprite override = getOverrideSpriteForBlockState(level, blockPos, state); + if (override != null) { + this.setSprite(override); + } } - // private static TextureAtlasSprite getOverrideSpriteForBlockState(BlockState - // state) { - // if (!(state.getBlock() instanceof GardenBlock)) { - // return null; - // } + private static TextureAtlasSprite getOverrideSpriteForBlockState(ClientLevel level, BlockPos blockPos, + BlockState state) { + if (!(state.getBlock() instanceof TinyGardenBlock)) { + return null; + } + + if (!(level.getBlockEntity(blockPos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + // If there's no block entity, don't do anything + return null; + } - // // Select a random flower variant to render as the particle - // List flowers = GardenBlock.getFlowers(state); + // Select a random flower variant to render as the particle + List flowers = gardenBlockEntity.getFlowers(); + if (flowers.isEmpty()) { + return null; + } - // if (flowers.isEmpty()) { - // return null; - // } + Identifier flowerId = Util.getRandom(flowers, TinyFlowersClient.RANDOM); + Map knownVariants = TinyFlowerResolvedResources.getInstances(); + TinyFlowerResolvedResources flowerResources = knownVariants.get(flowerId); + if (flowerResources == null) { + return null; + } - // FlowerVariant variant = Util.getRandom(flowers, TinyFlowersClient.RANDOM); + TinyFlowerData flowerData = TinyFlowerData.findById(level.registryAccess(), flowerId); + if (flowerData == null) { + return null; + } - // Minecraft client = Minecraft.getInstance(); - // ItemStack stack = new ItemStack(variant.asItem()); + Minecraft client = Minecraft.getInstance(); + ItemStack stack = flowerData.getItemStack(1); - // TinyFlowersClient.ITEM_RENDER_STATE.clear(); - // client.getItemModelResolver() - // .appendItemLayers(TinyFlowersClient.ITEM_RENDER_STATE, stack, - // ItemDisplayContext.GROUND, client.level, null, 0); + TinyFlowersClient.ITEM_RENDER_STATE.clear(); + client.getItemModelResolver() + .appendItemLayers(TinyFlowersClient.ITEM_RENDER_STATE, stack, + ItemDisplayContext.GROUND, level, null, 0); - // return - // TinyFlowersClient.ITEM_RENDER_STATE.pickParticleIcon(TinyFlowersClient.RANDOM); - // } + return TinyFlowersClient.ITEM_RENDER_STATE.pickParticleIcon(TinyFlowersClient.RANDOM); + } } From fe61a2a21101e3e34641c66e7a14b869892cb9a0 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 18:16:55 +1300 Subject: [PATCH 035/113] Remove old FlowerVariant enum This marks the completion of this mod being entirely data driven rather than having a hard-coded list of allowed variants. --- .../tinyflowers/blocks/FlowerVariant.java | 197 ------------------ 1 file changed, 197 deletions(-) delete mode 100644 src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java b/src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java deleted file mode 100644 index a987931b..00000000 --- a/src/main/java/co/secretonline/tinyflowers/blocks/FlowerVariant.java +++ /dev/null @@ -1,197 +0,0 @@ -package co.secretonline.tinyflowers.blocks; - -import org.jetbrains.annotations.Nullable; - -import com.mojang.serialization.Codec; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.Identifier; -import net.minecraft.util.Mth; -import net.minecraft.util.StringRepresentable; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.component.SuspiciousStewEffects; -import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; -import net.minecraft.world.level.ItemLike; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.SuspiciousEffectHolder; -import co.secretonline.tinyflowers.TinyFlowers; - -public enum FlowerVariant implements StringRepresentable, ItemLike, SuspiciousEffectHolder { - EMPTY("empty", false, null, null), - PINK_PETALS("pink_petals", false, - Identifier.withDefaultNamespace("pink_petals"), Identifier.withDefaultNamespace("pink_petals")), - WILDFLOWERS("wildflowers", false, - Identifier.withDefaultNamespace("wildflowers"), Identifier.withDefaultNamespace("wildflowers")), - LEAF_LITTER("leaf_litter", false, - Identifier.withDefaultNamespace("leaf_litter"), Identifier.withDefaultNamespace("leaf_litter")), - DANDELION("dandelion", true, - TinyFlowers.id("tiny_dandelion"), Identifier.withDefaultNamespace("dandelion"), - new Entry(MobEffects.SATURATION, toTicks(0.35f))), - POPPY("poppy", true, - TinyFlowers.id("tiny_poppy"), Identifier.withDefaultNamespace("poppy"), - new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f))), - BLUE_ORCHID("blue_orchid", true, - TinyFlowers.id("tiny_blue_orchid"), Identifier.withDefaultNamespace("blue_orchid"), - new Entry(MobEffects.SATURATION, toTicks(0.35f))), - ALLIUM("allium", true, - TinyFlowers.id("tiny_allium"), Identifier.withDefaultNamespace("allium"), - new Entry(MobEffects.FIRE_RESISTANCE, toTicks(3.0f))), - AZURE_BLUET("azure_bluet", true, - TinyFlowers.id("tiny_azure_bluet"), Identifier.withDefaultNamespace("azure_bluet"), - new Entry(MobEffects.BLINDNESS, toTicks(11.0f))), - RED_TULIP("red_tulip", true, - TinyFlowers.id("tiny_red_tulip"), Identifier.withDefaultNamespace("red_tulip"), - new Entry(MobEffects.WEAKNESS, toTicks(7.0f))), - ORANGE_TULIP("orange_tulip", true, - TinyFlowers.id("tiny_orange_tulip"), Identifier.withDefaultNamespace("orange_tulip"), - new Entry(MobEffects.WEAKNESS, toTicks(7.0f))), - WHITE_TULIP("white_tulip", true, - TinyFlowers.id("tiny_white_tulip"), Identifier.withDefaultNamespace("white_tulip"), - new Entry(MobEffects.WEAKNESS, toTicks(7.0f))), - PINK_TULIP("pink_tulip", true, - TinyFlowers.id("tiny_pink_tulip"), Identifier.withDefaultNamespace("pink_tulip"), - new Entry(MobEffects.WEAKNESS, toTicks(7.0f))), - OXEYE_DAISY("oxeye_daisy", true, - TinyFlowers.id("tiny_oxeye_daisy"), Identifier.withDefaultNamespace("oxeye_daisy"), - new Entry(MobEffects.REGENERATION, toTicks(7.0f))), - CORNFLOWER("cornflower", true, - TinyFlowers.id("tiny_cornflower"), Identifier.withDefaultNamespace("cornflower"), - new Entry(MobEffects.JUMP_BOOST, toTicks(5.0f))), - LILY_OF_THE_VALLEY("lily_of_the_valley", true, - TinyFlowers.id("tiny_lily_of_the_valley"), Identifier.withDefaultNamespace("lily_of_the_valley"), - new Entry(MobEffects.POISON, toTicks(11.0f))), - TORCHFLOWER("torchflower", true, - TinyFlowers.id("tiny_torchflower"), Identifier.withDefaultNamespace("torchflower"), - new Entry(MobEffects.NIGHT_VISION, toTicks(5.0f))), - CLOSED_EYEBLOSSOM("closed_eyeblossom", true, - TinyFlowers.id("tiny_closed_eyeblossom"), Identifier.withDefaultNamespace("closed_eyeblossom"), - new Entry(MobEffects.NAUSEA, toTicks(7.0f))), - OPEN_EYEBLOSSOM("open_eyeblossom", true, - TinyFlowers.id("tiny_open_eyeblossom"), Identifier.withDefaultNamespace("open_eyeblossom"), - new Entry(MobEffects.BLINDNESS, toTicks(11.0f))), - WITHER_ROSE("wither_rose", true, - TinyFlowers.id("tiny_wither_rose"), Identifier.withDefaultNamespace("wither_rose"), - new Entry(MobEffects.WITHER, toTicks(7.0f))), - CACTUS_FLOWER("cactus_flower", true, - TinyFlowers.id("tiny_cactus_flower"), Identifier.withDefaultNamespace("cactus_flower")); - - private final String name; - /** - * The identifier of the BlockItem this variant corresponds to. - * For Segmented blocks, this is the ID of the vanilla block. - * For items that are added by this mod, this is a mod-specific ID. - *

- * It would be nice to refer to the RegistryEntry directly, but that causes a - * circular initialisation loop. - */ - private final Identifier itemId; - /** - * For variants that correspond to non-Segmented blocks, this is the original - * flower type. This gets used when using shears to convert flowers to a tiny - * garden. - */ - @Nullable - private final Identifier originalBlockId; - private final boolean shouldCreateItem; - private final SuspiciousStewEffects stewEffectsComponent; - - private FlowerVariant(String name, boolean shouldCreateItem, Identifier itemId, Identifier originalBlockId) { - this(name, shouldCreateItem, itemId, originalBlockId, null); - } - - private FlowerVariant(String name, boolean shouldCreateItem, Identifier itemId, Identifier originalBlockId, - Entry stewEffect) { - this.name = name; - this.itemId = itemId; - this.originalBlockId = originalBlockId; - this.shouldCreateItem = shouldCreateItem; - - if (stewEffect == null) { - this.stewEffectsComponent = null; - } else { - this.stewEffectsComponent = SuspiciousStewEffects.EMPTY.withEffectAdded(stewEffect); - } - } - - @Override - public String getSerializedName() { - return this.name; - } - - @Override - public Item asItem() { - if (this.itemId == null) { - throw new IllegalStateException("Entry does not have an associated item"); - } - - return BuiltInRegistries.ITEM.getValue(this.itemId); - } - - @Override - public SuspiciousStewEffects getSuspiciousEffects() { - return stewEffectsComponent; - } - - public boolean isEmpty() { - return this == EMPTY; - } - - public Identifier getItemIdentifier() { - return this.itemId; - } - - public String getTranslationKey() { - if (this.isEmpty()) { - return "block.tiny_flowers.tiny_garden.empty"; - } - - return this.asItem().getDescriptionId(); - } - - @Nullable - public Block getOriginalBlock() { - return BuiltInRegistries.BLOCK.getValue(originalBlockId); - } - - public boolean shouldCreateItem() { - return this.shouldCreateItem; - } - - public static FlowerVariant fromItem(ItemLike itemConvertible) { - Item item = itemConvertible.asItem(); - - for (FlowerVariant variant : values()) { - if (variant.isEmpty()) { - continue; - } - - if (variant.asItem().equals(item)) { - return variant; - } - } - - return EMPTY; - } - - public static FlowerVariant fromOriginalBlock(Block block) { - for (FlowerVariant variant : values()) { - if (variant.isEmpty()) { - continue; - } - - Identifier blockId = BuiltInRegistries.BLOCK.getKey(block); - - if (blockId.equals(variant.originalBlockId)) { - return variant; - } - } - - return EMPTY; - } - - public static final Codec CODEC = StringRepresentable.fromEnum(FlowerVariant::values); - - private static int toTicks(float seconds) { - return Mth.floor(seconds * 20.0f); - } -} From 88c609b7fbd6d0fc6f10374e99aadb58edbe52e4 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 18:35:16 +1300 Subject: [PATCH 036/113] Fix suspicious stew recipe --- .../items/crafting/TinyFlowerStewRecipe.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java b/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java index 31ab0d2d..0a1daae9 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java +++ b/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java @@ -12,10 +12,12 @@ import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.items.ModItems; import net.minecraft.core.Holder; +import net.minecraft.core.Holder.Reference; import net.minecraft.core.HolderLookup.Provider; -import net.minecraft.core.Registry; +import net.minecraft.core.HolderLookup.RegistryLookup; import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.component.DataComponents; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.effect.MobEffect; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -48,6 +50,10 @@ public boolean matches(CraftingInput recipeInput, Level level) { for (ItemStack itemStack : recipeInput.items()) { // Ensure exactly one of each of bowl, red shroom, and brown shroom are in the // list. + if (itemStack.isEmpty()) { + continue; + } + if (itemStack.is(Items.BOWL)) { if (hasBowl) { return false; @@ -85,7 +91,7 @@ public boolean matches(CraftingInput recipeInput, Level level) { @Override public ItemStack assemble(CraftingInput recipeInput, Provider provider) { - Registry registry = provider.getOrThrow(ModRegistries.TINY_FLOWER).value(); + RegistryLookup registry = provider.lookupOrThrow(ModRegistries.TINY_FLOWER); Map, Integer> effectMap = new HashMap<>(); for (ItemStack itemStack : recipeInput.items()) { @@ -98,12 +104,13 @@ public ItemStack assemble(CraftingInput recipeInput, Provider provider) { continue; } - Optional result = registry.getOptional(tinyFlowerComponent.id()); + Optional> result = registry.get( + ResourceKey.create(ModRegistries.TINY_FLOWER, tinyFlowerComponent.id())); if (result.isEmpty()) { continue; } - TinyFlowerData tinyFlowerData = result.get(); + TinyFlowerData tinyFlowerData = result.get().value(); for (Entry entry : tinyFlowerData.getSuspiciousEffects().effects()) { effectMap.merge(entry.effect(), entry.duration(), Integer::sum); } From f34fb35074bee1051412127d36c5c99de072adcd Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 21:21:54 +1300 Subject: [PATCH 037/113] Load item models dynamically --- .../TinyFlowersModelLoadingPlugin.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java index 5efd7866..9164b584 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java @@ -1,11 +1,22 @@ package co.secretonline.tinyflowers.resources; +import java.util.ArrayList; +import java.util.List; import java.util.Map; +import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.items.ModItems; +import co.secretonline.tinyflowers.renderer.item.TinyFlowerProperty; import net.fabricmc.fabric.api.client.model.loading.v1.ModelLoadingPlugin.Context; import net.fabricmc.fabric.api.client.model.loading.v1.PreparableModelLoadingPlugin; import net.fabricmc.fabric.api.client.model.loading.v1.SimpleUnbakedExtraModel; +import net.minecraft.client.data.models.model.ItemModelUtils; +import net.minecraft.client.data.models.model.ModelInstance; +import net.minecraft.client.data.models.model.ModelTemplates; +import net.minecraft.client.data.models.model.TextureMapping; +import net.minecraft.client.renderer.item.ItemModel; +import net.minecraft.client.renderer.item.SelectItemModel; import net.minecraft.resources.Identifier; public class TinyFlowersModelLoadingPlugin @@ -15,6 +26,8 @@ public class TinyFlowersModelLoadingPlugin public void initialize(Map data, Context pluginContext) { TinyFlowerResolvedResources.setInstances(data); + List> itemModels = new ArrayList<>(); + for (var entry : data.entrySet()) { TinyFlowerResolvedResources resources = entry.getValue(); @@ -30,14 +43,31 @@ public void initialize(Map data, Contex pluginContext.addModel( resources.model4().extraModelKey(), SimpleUnbakedExtraModel.blockStateModel(resources.model4().modelId())); + + itemModels.add(ItemModelUtils.when( + new TinyFlowerComponent(resources.id()), + modelForIdentifier(resources.itemTexture()))); } pluginContext.modifyItemModelBeforeBake().register((model, itemContext) -> { if (itemContext.itemId().equals(ModItems.TINY_FLOWER_ITEM_KEY.identifier())) { + return ItemModelUtils.select( + new TinyFlowerProperty(), + modelForIdentifier(TinyFlowers.id("item/tiny_garden")), + itemModels); } return model; }); } + private ItemModel.Unbaked modelForIdentifier(Identifier id) { + return ItemModelUtils.plainModel(ModelTemplates.FLAT_ITEM.create( + id, + TextureMapping.layer0(id), + this::consumeModel)); + } + + private void consumeModel(Identifier id, ModelInstance model) { + } } From 04db81bdd3b12ce5179b8d3091c3340ff00aca81 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 21 Dec 2025 21:24:37 +1300 Subject: [PATCH 038/113] Fix torchflower using incorrect model --- .../datagen/generators/mods/TinyFlowersDatagenData.java | 2 +- .../models/block/tiny_flowers/tiny_torchflower_1.json | 2 +- .../models/block/tiny_flowers/tiny_torchflower_2.json | 2 +- .../models/block/tiny_flowers/tiny_torchflower_3.json | 2 +- .../models/block/tiny_flowers/tiny_torchflower_4.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java index dc9b557b..c5fff92f 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java @@ -185,7 +185,7 @@ public Builder layers(Identifier lowerTexture, Identifier upperTexture) { } public Builder layers(Identifier lowerTexture, Identifier middleTexture, Identifier upperTexture) { - layers = 2; + layers = 3; particleTexture = lowerTexture.withPrefix("block/"); textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_1.json index 1b657fb8..c5b8d0cd 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_1.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_double_untinted_1", + "parent": "tiny_flowers:block/garden_triple_untinted_1", "textures": { "flowerbed": "tiny_flowers:block/tiny_torchflower", "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_2.json index 63b9bb02..ef8272ad 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_2.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_double_untinted_2", + "parent": "tiny_flowers:block/garden_triple_untinted_2", "textures": { "flowerbed": "tiny_flowers:block/tiny_torchflower", "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_3.json index 6a673a3d..86193e9a 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_3.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_double_untinted_3", + "parent": "tiny_flowers:block/garden_triple_untinted_3", "textures": { "flowerbed": "tiny_flowers:block/tiny_torchflower", "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_4.json index 3b65e266..4bb8a1c2 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_4.json @@ -1,5 +1,5 @@ { - "parent": "tiny_flowers:block/garden_double_untinted_4", + "parent": "tiny_flowers:block/garden_triple_untinted_4", "textures": { "flowerbed": "tiny_flowers:block/tiny_torchflower", "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", From c84e043d01cc71a67ad6a8b46ae5b090a20dc17d Mon Sep 17 00:00:00 2001 From: secret_online Date: Tue, 23 Dec 2025 17:25:11 +1300 Subject: [PATCH 039/113] Add block drops for tiny flowers when breaking Also break when no longer supported --- .../tinyflowers/blocks/TinyGardenBlock.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java index 7edb219e..82b85c34 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java @@ -1,5 +1,6 @@ package co.secretonline.tinyflowers.blocks; +import java.util.ArrayList; import java.util.List; import java.util.function.BiFunction; @@ -16,6 +17,7 @@ import co.secretonline.tinyflowers.items.ModItems; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.RegistryAccess; import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.Identifier; @@ -32,6 +34,7 @@ import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.ScheduledTickAccess; import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; @@ -47,6 +50,8 @@ import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.gameevent.GameEvent; import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.level.storage.loot.LootParams.Builder; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; @@ -95,6 +100,44 @@ protected boolean canSurvive(BlockState blockState, LevelReader levelReader, Blo return this.mayPlaceOn(levelReader.getBlockState(below), levelReader, below); } + @Override + protected BlockState updateShape( + BlockState blockState, + LevelReader levelReader, + ScheduledTickAccess scheduledTickAccess, + BlockPos blockPos, + Direction direction, + BlockPos blockPos2, + BlockState blockState2, + RandomSource randomSource) { + return !blockState.canSurvive(levelReader, blockPos) + ? Blocks.AIR.defaultBlockState() + : super.updateShape(blockState, levelReader, scheduledTickAccess, blockPos, direction, blockPos2, blockState2, + randomSource); + } + + @Override + protected List getDrops(BlockState blockState, Builder builder) { + BlockEntity blockEntity = builder.getOptionalParameter(LootContextParams.BLOCK_ENTITY); + if (!(blockEntity instanceof TinyGardenBlockEntity gardenBlockEntity)) { + // If there's no block entity, fall back to default (probably nothing) + return super.getDrops(blockState, builder); + } + + List flowerIds = gardenBlockEntity.getFlowers(); + RegistryAccess registryAccess = builder.getLevel().registryAccess(); + + List itemStacks = new ArrayList<>(); + for (Identifier flowerId : flowerIds) { + TinyFlowerData flowerData = TinyFlowerData.findById(registryAccess, flowerId); + if (flowerData != null) { + itemStacks.add(flowerData.getItemStack(1)); + } + } + + return itemStacks; + } + @Override public BlockState rotate(BlockState state, Rotation rotation) { return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); From 109fc62822202695e5706e24b2c754dcbfdc75b5 Mon Sep 17 00:00:00 2001 From: secret_online Date: Wed, 24 Dec 2025 08:50:12 +1300 Subject: [PATCH 040/113] Remove particle texture from resource definitions Also make the tint source apply over all parts rather than specifying it for each part. --- .../mods/TinyFlowersDatagenData.java | 34 +++++++------------ .../block/TinyGardenBlockEntityRenderer.java | 2 +- .../resources/TinyFlowerModelDataLoader.java | 23 ++++++------- .../TinyFlowerResolvedResources.java | 4 +-- .../resources/TinyFlowerResources.java | 23 +++++-------- .../tiny_flowers/tiny_flower/leaf_litter.json | 22 +++--------- .../tiny_flowers/tiny_flower/pink_petals.json | 17 +++------- .../tiny_flowers/tiny_flower/wildflowers.json | 17 +++------- .../tiny_flowers/tiny_flower/tiny_allium.json | 17 +++------- .../tiny_flower/tiny_azure_bluet.json | 17 +++------- .../tiny_flower/tiny_blue_orchid.json | 17 +++------- .../tiny_flower/tiny_cactus_flower.json | 17 +++------- .../tiny_flower/tiny_closed_eyeblossom.json | 17 +++------- .../tiny_flower/tiny_cornflower.json | 17 +++------- .../tiny_flower/tiny_dandelion.json | 17 +++------- .../tiny_flower/tiny_lily_of_the_valley.json | 17 +++------- .../tiny_flower/tiny_open_eyeblossom.json | 17 +++------- .../tiny_flower/tiny_orange_tulip.json | 17 +++------- .../tiny_flower/tiny_oxeye_daisy.json | 17 +++------- .../tiny_flower/tiny_pink_tulip.json | 17 +++------- .../tiny_flowers/tiny_flower/tiny_poppy.json | 17 +++------- .../tiny_flower/tiny_red_tulip.json | 17 +++------- .../tiny_flower/tiny_torchflower.json | 17 +++------- .../tiny_flower/tiny_white_tulip.json | 17 +++------- .../tiny_flower/tiny_wither_rose.json | 17 +++------- 25 files changed, 114 insertions(+), 317 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java index c5fff92f..b92eec21 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java @@ -29,11 +29,11 @@ public class TinyFlowersDatagenData { private Identifier id; private Identifier itemTexture; - private Identifier particleTexture; private Identifier originalBlockId; private boolean isSegmentable; @NonNull private List suspiciousStewEffects; + private TintSource tintSource = TintSource.GRASS; private ModelPart modelPart1; private ModelPart modelPart2; @@ -45,11 +45,11 @@ public TinyFlowerData data() { } public TinyFlowerResources resources() { - return new TinyFlowerResources(id, itemTexture, particleTexture, - new TinyFlowerResources.Part(modelPart1.id().withPrefix(BLOCK_MOD_PREFIX), modelPart1.tintSource()), - new TinyFlowerResources.Part(modelPart2.id().withPrefix(BLOCK_MOD_PREFIX), modelPart2.tintSource()), - new TinyFlowerResources.Part(modelPart3.id().withPrefix(BLOCK_MOD_PREFIX), modelPart3.tintSource()), - new TinyFlowerResources.Part(modelPart4.id().withPrefix(BLOCK_MOD_PREFIX), modelPart4.tintSource())); + return new TinyFlowerResources(id, itemTexture, tintSource, + modelPart1.id().withPrefix(BLOCK_MOD_PREFIX), + modelPart2.id().withPrefix(BLOCK_MOD_PREFIX), + modelPart3.id().withPrefix(BLOCK_MOD_PREFIX), + modelPart4.id().withPrefix(BLOCK_MOD_PREFIX)); } public ModelParts modelParts() { @@ -60,8 +60,7 @@ public ModelParts modelParts() { modelPart4); } - public static record ModelPart(Identifier id, Identifier parent, Map textures, - TintSource tintSource) { + public static record ModelPart(Identifier id, Identifier parent, Map textures) { public JsonElement toJsonElement() { JsonObject jsonObject = new JsonObject(); @@ -91,7 +90,6 @@ public static class Builder { private Identifier id; private Identifier itemTexture; - private Identifier particleTexture; private Identifier originalBlockId; private boolean isSegmentable = false; private List suspiciousStewEffects = new ArrayList<>(); @@ -160,14 +158,8 @@ public Builder itemTexture(Identifier itemTexture) { return this; } - public Builder particleTexture(Identifier particleTexture) { - this.particleTexture = particleTexture.withPrefix("block/"); - return this; - } - public Builder layers(Identifier flowerbedTexture) { layers = 1; - particleTexture = flowerbedTexture.withPrefix("block/"); textureMap.put(TextureSlot.PARTICLE.getId(), flowerbedTexture.withPrefix("block/")); textureMap.put(TextureSlot.FLOWERBED.getId(), flowerbedTexture.withPrefix("block/")); @@ -176,7 +168,6 @@ public Builder layers(Identifier flowerbedTexture) { public Builder layers(Identifier lowerTexture, Identifier upperTexture) { layers = 2; - particleTexture = lowerTexture.withPrefix("block/"); textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); textureMap.put(FLOWERBED_UPPER.getId(), upperTexture.withPrefix("block/")); @@ -186,7 +177,6 @@ public Builder layers(Identifier lowerTexture, Identifier upperTexture) { public Builder layers(Identifier lowerTexture, Identifier middleTexture, Identifier upperTexture) { layers = 3; - particleTexture = lowerTexture.withPrefix("block/"); textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); textureMap.put(FLOWERBED_MIDDLE.getId(), middleTexture.withPrefix("block/")); @@ -225,10 +215,10 @@ public TinyFlowersDatagenData build() { data.id = id; data.itemTexture = itemTexture; - data.particleTexture = particleTexture; data.originalBlockId = originalBlockId; data.isSegmentable = isSegmentable; data.suspiciousStewEffects = suspiciousStewEffects; + data.tintSource = tintSource; if (layers == 0 && customModel == null) { throw new Error("TinyFlowerResources.Builder: layers() or special() must be called once."); @@ -261,10 +251,10 @@ public TinyFlowersDatagenData build() { textureMap.put("stem", this.stemTexture); } - data.modelPart1 = new ModelPart(id.withSuffix("_1"), parentId.withSuffix("_1"), textureMap, tintSource); - data.modelPart2 = new ModelPart(id.withSuffix("_2"), parentId.withSuffix("_2"), textureMap, tintSource); - data.modelPart3 = new ModelPart(id.withSuffix("_3"), parentId.withSuffix("_3"), textureMap, tintSource); - data.modelPart4 = new ModelPart(id.withSuffix("_4"), parentId.withSuffix("_4"), textureMap, tintSource); + data.modelPart1 = new ModelPart(id.withSuffix("_1"), parentId.withSuffix("_1"), textureMap); + data.modelPart2 = new ModelPart(id.withSuffix("_2"), parentId.withSuffix("_2"), textureMap); + data.modelPart3 = new ModelPart(id.withSuffix("_3"), parentId.withSuffix("_3"), textureMap); + data.modelPart4 = new ModelPart(id.withSuffix("_4"), parentId.withSuffix("_4"), textureMap); return data; } diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java index 6843b3c6..7cb67535 100644 --- a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java +++ b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenBlockEntityRenderer.java @@ -112,7 +112,7 @@ private void submitPartForFlowerIndex(TinyGardenBlockEntityRenderState state, Po } BlockColor tintProvider = ColorProviderRegistry.BLOCK.get(ModBlocks.TINY_GARDEN_BLOCK); - TintSource tintSource = part.tintSource(); + TintSource tintSource = resources.tintSource(); int tintIndex = switch (tintSource) { case TintSource.DRY_FOLIAGE -> 2; default -> 1; diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java index 423e58b3..ea037db8 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java @@ -71,19 +71,16 @@ private Map resolveAll(Map(entry.getKey(), - new TinyFlowerResolvedResources(resources.id(), resources.itemTexture(), resources.particleTexture(), - new TinyFlowerResolvedResources.Part(resources.model1().id(), - ExtraModelKey.create(resources.model1().id()::toString), - resources.model1().tintSource()), - new TinyFlowerResolvedResources.Part(resources.model2().id(), - ExtraModelKey.create(resources.model2().id()::toString), - resources.model2().tintSource()), - new TinyFlowerResolvedResources.Part(resources.model3().id(), - ExtraModelKey.create(resources.model3().id()::toString), - resources.model3().tintSource()), - new TinyFlowerResolvedResources.Part(resources.model4().id(), - ExtraModelKey.create(resources.model4().id()::toString), - resources.model4().tintSource()))); + new TinyFlowerResolvedResources(resources.id(), resources.itemTexture(), + resources.tintSource(), + new TinyFlowerResolvedResources.Part(resources.model1(), + ExtraModelKey.create(resources.model1()::toString)), + new TinyFlowerResolvedResources.Part(resources.model2(), + ExtraModelKey.create(resources.model2()::toString)), + new TinyFlowerResolvedResources.Part(resources.model3(), + ExtraModelKey.create(resources.model3()::toString)), + new TinyFlowerResolvedResources.Part(resources.model4(), + ExtraModelKey.create(resources.model4()::toString)))); }) .collect(Collectors.toMap( Map.Entry::getKey, diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java index 9057e0a8..027026a1 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java @@ -8,7 +8,7 @@ import net.minecraft.client.renderer.block.model.BlockStateModel; import net.minecraft.resources.Identifier; -public record TinyFlowerResolvedResources(Identifier id, Identifier itemTexture, Identifier particleTexture, +public record TinyFlowerResolvedResources(Identifier id, Identifier itemTexture, TintSource tintSource, Part model1, Part model2, Part model3, Part model4) { private static Map INSTANCES = new HashMap<>(); @@ -20,6 +20,6 @@ public static void setInstances(Map map INSTANCES = map; } - public static record Part(Identifier modelId, ExtraModelKey extraModelKey, TintSource tintSource) { + public static record Part(Identifier modelId, ExtraModelKey extraModelKey) { } } diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java index e6393918..425d168f 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java @@ -6,27 +6,20 @@ import net.minecraft.resources.Identifier; import net.minecraft.util.StringRepresentable; -public record TinyFlowerResources(Identifier id, Identifier itemTexture, Identifier particleTexture, - Part model1, Part model2, Part model3, Part model4) { +public record TinyFlowerResources(Identifier id, Identifier itemTexture, + TintSource tintSource, + Identifier model1, Identifier model2, Identifier model3, Identifier model4) { public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerResources::id), Identifier.CODEC.fieldOf("item_texture").forGetter(TinyFlowerResources::itemTexture), - Identifier.CODEC.fieldOf("particle_texture").forGetter(TinyFlowerResources::particleTexture), - Part.CODEC.fieldOf("model1").forGetter(TinyFlowerResources::model1), - Part.CODEC.fieldOf("model2").forGetter(TinyFlowerResources::model2), - Part.CODEC.fieldOf("model3").forGetter(TinyFlowerResources::model3), - Part.CODEC.fieldOf("model4").forGetter(TinyFlowerResources::model4)) + TintSource.CODEC.optionalFieldOf("tintSource", TintSource.GRASS).forGetter(TinyFlowerResources::tintSource), + Identifier.CODEC.fieldOf("model1").forGetter(TinyFlowerResources::model1), + Identifier.CODEC.fieldOf("model2").forGetter(TinyFlowerResources::model2), + Identifier.CODEC.fieldOf("model3").forGetter(TinyFlowerResources::model3), + Identifier.CODEC.fieldOf("model4").forGetter(TinyFlowerResources::model4)) .apply(instance, TinyFlowerResources::new)); - public static record Part(Identifier id, TintSource tintSource) { - - public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( - Identifier.CODEC.fieldOf("id").forGetter(Part::id), - TintSource.CODEC.optionalFieldOf("tintSource", TintSource.GRASS).forGetter(Part::tintSource)) - .apply(instance, Part::new)); - } - public static enum TintSource implements StringRepresentable { GRASS("grass"), DRY_FOLIAGE("dry_foliage"); diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json index e0894c1e..970f959a 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json @@ -1,21 +1,9 @@ { "id": "minecraft:leaf_litter", "item_texture": "minecraft:item/leaf_litter", - "model1": { - "id": "minecraft:block/tiny_flowers/leaf_litter_1", - "tintSource": "dry_foliage" - }, - "model2": { - "id": "minecraft:block/tiny_flowers/leaf_litter_2", - "tintSource": "dry_foliage" - }, - "model3": { - "id": "minecraft:block/tiny_flowers/leaf_litter_3", - "tintSource": "dry_foliage" - }, - "model4": { - "id": "minecraft:block/tiny_flowers/leaf_litter_4", - "tintSource": "dry_foliage" - }, - "particle_texture": "minecraft:block/leaf_litter" + "model1": "minecraft:block/tiny_flowers/leaf_litter_1", + "model2": "minecraft:block/tiny_flowers/leaf_litter_2", + "model3": "minecraft:block/tiny_flowers/leaf_litter_3", + "model4": "minecraft:block/tiny_flowers/leaf_litter_4", + "tintSource": "dry_foliage" } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json index 2335ad1d..d9237fec 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json @@ -1,17 +1,8 @@ { "id": "minecraft:pink_petals", "item_texture": "minecraft:item/pink_petals", - "model1": { - "id": "minecraft:block/tiny_flowers/pink_petals_1" - }, - "model2": { - "id": "minecraft:block/tiny_flowers/pink_petals_2" - }, - "model3": { - "id": "minecraft:block/tiny_flowers/pink_petals_3" - }, - "model4": { - "id": "minecraft:block/tiny_flowers/pink_petals_4" - }, - "particle_texture": "minecraft:block/pink_petals" + "model1": "minecraft:block/tiny_flowers/pink_petals_1", + "model2": "minecraft:block/tiny_flowers/pink_petals_2", + "model3": "minecraft:block/tiny_flowers/pink_petals_3", + "model4": "minecraft:block/tiny_flowers/pink_petals_4" } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json index 3ae6cc0a..1a3e3cd8 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json @@ -1,17 +1,8 @@ { "id": "minecraft:wildflowers", "item_texture": "minecraft:item/wildflowers", - "model1": { - "id": "minecraft:block/tiny_flowers/wildflowers_1" - }, - "model2": { - "id": "minecraft:block/tiny_flowers/wildflowers_2" - }, - "model3": { - "id": "minecraft:block/tiny_flowers/wildflowers_3" - }, - "model4": { - "id": "minecraft:block/tiny_flowers/wildflowers_4" - }, - "particle_texture": "minecraft:block/wildflowers" + "model1": "minecraft:block/tiny_flowers/wildflowers_1", + "model2": "minecraft:block/tiny_flowers/wildflowers_2", + "model3": "minecraft:block/tiny_flowers/wildflowers_3", + "model4": "minecraft:block/tiny_flowers/wildflowers_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json index b99d6de4..38da3f85 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_allium", "item_texture": "tiny_flowers:item/tiny_allium", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_allium_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_allium_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_allium_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_allium_4" - }, - "particle_texture": "tiny_flowers:block/tiny_allium" + "model1": "tiny_flowers:block/tiny_flowers/tiny_allium_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_allium_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_allium_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_allium_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json index 560e659d..61053dc1 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_azure_bluet", "item_texture": "tiny_flowers:item/tiny_azure_bluet", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_4" - }, - "particle_texture": "tiny_flowers:block/tiny_azure_bluet" + "model1": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json index 68d20fc7..2fc89595 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_blue_orchid", "item_texture": "tiny_flowers:item/tiny_blue_orchid", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_4" - }, - "particle_texture": "tiny_flowers:block/tiny_blue_orchid" + "model1": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json index ef06c760..8a8723ea 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_cactus_flower", "item_texture": "tiny_flowers:item/tiny_cactus_flower", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_4" - }, - "particle_texture": "tiny_flowers:block/tiny_cactus_flower" + "model1": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json index a11e58c5..0474db31 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_closed_eyeblossom", "item_texture": "tiny_flowers:item/tiny_closed_eyeblossom", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_4" - }, - "particle_texture": "tiny_flowers:block/tiny_closed_eyeblossom" + "model1": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json index 10d3478b..9972c8a5 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_cornflower", "item_texture": "tiny_flowers:item/tiny_cornflower", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_cornflower_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_cornflower_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_cornflower_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_cornflower_4" - }, - "particle_texture": "tiny_flowers:block/tiny_cornflower" + "model1": "tiny_flowers:block/tiny_flowers/tiny_cornflower_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_cornflower_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_cornflower_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_cornflower_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json index cf860295..8c5f3200 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_dandelion", "item_texture": "tiny_flowers:item/tiny_dandelion", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_dandelion_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_dandelion_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_dandelion_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_dandelion_4" - }, - "particle_texture": "tiny_flowers:block/tiny_dandelion" + "model1": "tiny_flowers:block/tiny_flowers/tiny_dandelion_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_dandelion_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_dandelion_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_dandelion_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json index e19e498a..a0682034 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_lily_of_the_valley", "item_texture": "tiny_flowers:item/tiny_lily_of_the_valley", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_4" - }, - "particle_texture": "tiny_flowers:block/tiny_lily_of_the_valley" + "model1": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json index 122804a1..350968eb 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_open_eyeblossom", "item_texture": "tiny_flowers:item/tiny_open_eyeblossom", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_4" - }, - "particle_texture": "tiny_flowers:block/tiny_open_eyeblossom" + "model1": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json index b87f4d9a..3ce448e5 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_orange_tulip", "item_texture": "tiny_flowers:item/tiny_orange_tulip", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_4" - }, - "particle_texture": "tiny_flowers:block/tiny_orange_tulip" + "model1": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json index 8aa64d40..851d1971 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_oxeye_daisy", "item_texture": "tiny_flowers:item/tiny_oxeye_daisy", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_4" - }, - "particle_texture": "tiny_flowers:block/tiny_oxeye_daisy" + "model1": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json index beb31e03..d76a726b 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_pink_tulip", "item_texture": "tiny_flowers:item/tiny_pink_tulip", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_4" - }, - "particle_texture": "tiny_flowers:block/tiny_pink_tulip" + "model1": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json index b728d560..356f5adb 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_poppy", "item_texture": "tiny_flowers:item/tiny_poppy", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_poppy_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_poppy_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_poppy_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_poppy_4" - }, - "particle_texture": "tiny_flowers:block/tiny_poppy" + "model1": "tiny_flowers:block/tiny_flowers/tiny_poppy_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_poppy_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_poppy_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_poppy_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json index fe8dd97d..e4b63ea4 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_red_tulip", "item_texture": "tiny_flowers:item/tiny_red_tulip", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_4" - }, - "particle_texture": "tiny_flowers:block/tiny_red_tulip" + "model1": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json index 170f84e9..c0016ec4 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_torchflower", "item_texture": "tiny_flowers:item/tiny_torchflower", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_torchflower_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_torchflower_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_torchflower_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_torchflower_4" - }, - "particle_texture": "tiny_flowers:block/tiny_torchflower" + "model1": "tiny_flowers:block/tiny_flowers/tiny_torchflower_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_torchflower_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_torchflower_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_torchflower_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json index 9c23247c..09e13302 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_white_tulip", "item_texture": "tiny_flowers:item/tiny_white_tulip", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_4" - }, - "particle_texture": "tiny_flowers:block/tiny_white_tulip" + "model1": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_4" } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json index ef8a6d61..cf9b492e 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json @@ -1,17 +1,8 @@ { "id": "tiny_flowers:tiny_wither_rose", "item_texture": "tiny_flowers:item/tiny_wither_rose", - "model1": { - "id": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_1" - }, - "model2": { - "id": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_2" - }, - "model3": { - "id": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_3" - }, - "model4": { - "id": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_4" - }, - "particle_texture": "tiny_flowers:block/tiny_wither_rose" + "model1": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_1", + "model2": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_2", + "model3": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_3", + "model4": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_4" } \ No newline at end of file From e5e5878102868f0791233974899299f0ecafbe87 Mon Sep 17 00:00:00 2001 From: secret_online Date: Wed, 24 Dec 2025 14:47:18 +1300 Subject: [PATCH 041/113] Make florists' shears properly dyeable --- .../generators/mods/BaseModDataGenerator.java | 6 - .../datagen/providers/ItemTagProvider.java | 1 + .../datagen/providers/ModRecipeProvider.java | 56 --------- .../data/minecraft/tags/item/dyeable.json | 5 + .../decorations/tiny_flower_from_allium.json | 32 ----- .../tiny_flower_from_azure_bluet.json | 32 ----- .../tiny_flower_from_blue_orchid.json | 32 ----- .../tiny_flower_from_cactus_flower.json | 32 ----- .../tiny_flower_from_closed_eyeblossom.json | 32 ----- .../tiny_flower_from_cornflower.json | 32 ----- .../tiny_flower_from_dandelion.json | 32 ----- .../tiny_flower_from_lily_of_the_valley.json | 32 ----- .../tiny_flower_from_open_eyeblossom.json | 32 ----- .../tiny_flower_from_orange_tulip.json | 32 ----- .../tiny_flower_from_oxeye_daisy.json | 32 ----- .../tiny_flower_from_pink_tulip.json | 32 ----- .../decorations/tiny_flower_from_poppy.json | 32 ----- .../tiny_flower_from_red_tulip.json | 32 ----- .../tiny_flower_from_torchflower.json | 32 ----- .../tiny_flower_from_white_tulip.json | 32 ----- .../tiny_flower_from_wither_rose.json | 32 ----- .../recipe/tiny_flower_from_allium.json | 16 --- .../recipe/tiny_flower_from_azure_bluet.json | 16 --- .../recipe/tiny_flower_from_blue_orchid.json | 16 --- .../tiny_flower_from_cactus_flower.json | 16 --- .../tiny_flower_from_closed_eyeblossom.json | 16 --- .../recipe/tiny_flower_from_cornflower.json | 16 --- .../recipe/tiny_flower_from_dandelion.json | 16 --- .../tiny_flower_from_lily_of_the_valley.json | 16 --- .../tiny_flower_from_open_eyeblossom.json | 16 --- .../recipe/tiny_flower_from_orange_tulip.json | 16 --- .../recipe/tiny_flower_from_oxeye_daisy.json | 16 --- .../recipe/tiny_flower_from_pink_tulip.json | 16 --- .../recipe/tiny_flower_from_poppy.json | 16 --- .../recipe/tiny_flower_from_red_tulip.json | 16 --- .../recipe/tiny_flower_from_torchflower.json | 16 --- .../recipe/tiny_flower_from_white_tulip.json | 16 --- .../recipe/tiny_flower_from_wither_rose.json | 16 --- .../tinyflowers/data/TinyFlowerData.java | 21 ++-- .../tinyflowers/items/FloristsShearsItem.java | 12 -- .../items/crafting/ModRecipeSerializers.java | 5 + .../crafting/ShearTinyFlowersRecipe.java | 119 ++++++++++++++++++ .../items/crafting/TinyFlowerStewRecipe.java | 2 +- .../recipe/shear_tiny_flowers.json | 4 + 44 files changed, 146 insertions(+), 901 deletions(-) delete mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java create mode 100644 src/main/generated/data/minecraft/tags/item/dyeable.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_allium.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_azure_bluet.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_blue_orchid.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cactus_flower.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_closed_eyeblossom.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cornflower.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_dandelion.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_lily_of_the_valley.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_open_eyeblossom.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_orange_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_oxeye_daisy.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_pink_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_poppy.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_red_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_torchflower.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_white_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_wither_rose.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_allium.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_azure_bluet.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_blue_orchid.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cactus_flower.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_closed_eyeblossom.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cornflower.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_dandelion.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_lily_of_the_valley.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_open_eyeblossom.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_orange_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_oxeye_daisy.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_pink_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_poppy.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_red_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_torchflower.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_white_tulip.json delete mode 100644 src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_wither_rose.json create mode 100644 src/main/java/co/secretonline/tinyflowers/items/crafting/ShearTinyFlowersRecipe.java create mode 100644 src/main/resources/data/tiny_flowers/recipe/shear_tiny_flowers.json diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java index 1ad1804e..03c43c3b 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/BaseModDataGenerator.java @@ -1,15 +1,12 @@ package co.secretonline.tinyflowers.datagen.generators.mods; import java.util.List; -import java.util.concurrent.CompletableFuture; import co.secretonline.tinyflowers.datagen.generators.PackContributor; import co.secretonline.tinyflowers.datagen.providers.ModFlowersProvider; import co.secretonline.tinyflowers.datagen.providers.ModModelProvider; -import co.secretonline.tinyflowers.datagen.providers.ModRecipeProvider; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator.Pack; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.minecraft.core.HolderLookup; public abstract class BaseModDataGenerator implements PackContributor { public abstract String getModId(); @@ -22,9 +19,6 @@ public void addProviders(Pack pack) { List data = this.getFlowerData(); pack.addProvider((FabricDataOutput output) -> new ModModelProvider(modId, data, output)); - pack.addProvider((FabricDataOutput output, - CompletableFuture registriesFuture) -> new ModRecipeProvider(modId, data, - output, registriesFuture)); pack.addProvider((FabricDataOutput output) -> new ModFlowersProvider(modId, data, output)); } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ItemTagProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ItemTagProvider.java index b392ffc7..75069298 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ItemTagProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ItemTagProvider.java @@ -19,5 +19,6 @@ protected void addTags(HolderLookup.Provider wrapperLookup) { valueLookupBuilder(ItemTags.BEE_FOOD).add(ModItems.TINY_FLOWER_ITEM); valueLookupBuilder(ConventionalItemTags.SHEAR_TOOLS).add(ModItems.FLORISTS_SHEARS_ITEM); + valueLookupBuilder(ItemTags.DYEABLE).add(ModItems.FLORISTS_SHEARS_ITEM); } } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java deleted file mode 100644 index 15e9ce04..00000000 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ModRecipeProvider.java +++ /dev/null @@ -1,56 +0,0 @@ -package co.secretonline.tinyflowers.datagen.providers; - -import java.util.List; -import java.util.concurrent.CompletableFuture; - -import co.secretonline.tinyflowers.datagen.generators.mods.TinyFlowersDatagenData; -import co.secretonline.tinyflowers.items.ModItems; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; -import net.minecraft.core.HolderLookup; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.data.recipes.RecipeCategory; -import net.minecraft.data.recipes.RecipeOutput; -import net.minecraft.data.recipes.RecipeProvider; - -public class ModRecipeProvider extends FabricRecipeProvider { - private final String modId; - private final List flowers; - - public ModRecipeProvider(String modId, List flowers, - FabricDataOutput output, - CompletableFuture registriesFuture) { - super(output, registriesFuture); - - this.modId = modId; - this.flowers = flowers; - } - - @Override - protected RecipeProvider createRecipeProvider(HolderLookup.Provider registryLookup, - RecipeOutput exporter) { - return new net.minecraft.data.recipes.RecipeProvider(registryLookup, exporter) { - @Override - public void buildRecipes() { - // Generate recipes for each flower variant - for (TinyFlowersDatagenData data : flowers) { - var flowerData = data.data(); - // Create tiny flower items for variants that need them. - if (!flowerData.isSegmentable()) { - shapeless(RecipeCategory.DECORATIONS, flowerData.getItemStack(4)) - .requires(ModItems.FLORISTS_SHEARS_ITEM) - .requires(BuiltInRegistries.ITEM.getValue(flowerData.originalId())) - .group("tiny_flowers") - .unlockedBy(getHasName(ModItems.FLORISTS_SHEARS_ITEM), has(ModItems.FLORISTS_SHEARS_ITEM)) - .save(output, "tiny_flower_from_" + flowerData.originalId().getPath()); - } - } - } - }; - } - - @Override - public String getName() { - return "Flowers recipes (" + this.modId + ")"; - } -} diff --git a/src/main/generated/data/minecraft/tags/item/dyeable.json b/src/main/generated/data/minecraft/tags/item/dyeable.json new file mode 100644 index 00000000..ca1c98e4 --- /dev/null +++ b/src/main/generated/data/minecraft/tags/item/dyeable.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tiny_flowers:florists_shears" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_allium.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_allium.json deleted file mode 100644 index 6e3ab38f..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_allium.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_allium" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_allium" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_azure_bluet.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_azure_bluet.json deleted file mode 100644 index ef2424ec..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_azure_bluet.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_azure_bluet" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_azure_bluet" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_blue_orchid.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_blue_orchid.json deleted file mode 100644 index 66e9a84d..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_blue_orchid.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_blue_orchid" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_blue_orchid" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cactus_flower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cactus_flower.json deleted file mode 100644 index 4874fac2..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cactus_flower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_cactus_flower" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_cactus_flower" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_closed_eyeblossom.json deleted file mode 100644 index 3fff11cc..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_closed_eyeblossom.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_closed_eyeblossom" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_closed_eyeblossom" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cornflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cornflower.json deleted file mode 100644 index f24326c1..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_cornflower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_cornflower" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_cornflower" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_dandelion.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_dandelion.json deleted file mode 100644 index ff9c8de7..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_dandelion.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_dandelion" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_dandelion" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_lily_of_the_valley.json deleted file mode 100644 index eefff8e7..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_lily_of_the_valley.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_lily_of_the_valley" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_lily_of_the_valley" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_open_eyeblossom.json deleted file mode 100644 index f5e182d3..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_open_eyeblossom.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_open_eyeblossom" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_open_eyeblossom" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_orange_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_orange_tulip.json deleted file mode 100644 index c44d163e..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_orange_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_orange_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_orange_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_oxeye_daisy.json deleted file mode 100644 index 65016def..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_oxeye_daisy.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_oxeye_daisy" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_oxeye_daisy" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_pink_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_pink_tulip.json deleted file mode 100644 index 17f1cba8..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_pink_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_pink_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_pink_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_poppy.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_poppy.json deleted file mode 100644 index b5516e98..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_poppy.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_poppy" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_poppy" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_red_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_red_tulip.json deleted file mode 100644 index e67106fe..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_red_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_red_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_red_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_torchflower.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_torchflower.json deleted file mode 100644 index df23594f..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_torchflower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_torchflower" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_torchflower" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_white_tulip.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_white_tulip.json deleted file mode 100644 index 09d7a657..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_white_tulip.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_white_tulip" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_white_tulip" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_wither_rose.json b/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_wither_rose.json deleted file mode 100644 index 0a4b6807..00000000 --- a/src/main/generated/data/tiny_flowers/advancement/recipes/decorations/tiny_flower_from_wither_rose.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_florists_shears": { - "conditions": { - "items": [ - { - "items": "tiny_flowers:florists_shears" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "tiny_flowers:tiny_flower_from_wither_rose" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_florists_shears" - ] - ], - "rewards": { - "recipes": [ - "tiny_flowers:tiny_flower_from_wither_rose" - ] - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_allium.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_allium.json deleted file mode 100644 index 3f8b011d..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_allium.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:allium" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_allium" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_azure_bluet.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_azure_bluet.json deleted file mode 100644 index 4f1afb5b..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_azure_bluet.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:azure_bluet" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_azure_bluet" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_blue_orchid.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_blue_orchid.json deleted file mode 100644 index e2ac980e..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_blue_orchid.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:blue_orchid" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_blue_orchid" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cactus_flower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cactus_flower.json deleted file mode 100644 index 5ed42504..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cactus_flower.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:cactus_flower" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_cactus_flower" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_closed_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_closed_eyeblossom.json deleted file mode 100644 index 81d76507..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_closed_eyeblossom.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:closed_eyeblossom" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_closed_eyeblossom" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cornflower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cornflower.json deleted file mode 100644 index 44cd8aff..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_cornflower.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:cornflower" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_cornflower" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_dandelion.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_dandelion.json deleted file mode 100644 index 9a53cd24..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_dandelion.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:dandelion" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_dandelion" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_lily_of_the_valley.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_lily_of_the_valley.json deleted file mode 100644 index 92f3379f..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_lily_of_the_valley.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:lily_of_the_valley" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_lily_of_the_valley" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_open_eyeblossom.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_open_eyeblossom.json deleted file mode 100644 index 269b250f..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_open_eyeblossom.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:open_eyeblossom" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_open_eyeblossom" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_orange_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_orange_tulip.json deleted file mode 100644 index eac2fb0c..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_orange_tulip.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:orange_tulip" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_orange_tulip" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_oxeye_daisy.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_oxeye_daisy.json deleted file mode 100644 index 17002d35..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_oxeye_daisy.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:oxeye_daisy" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_oxeye_daisy" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_pink_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_pink_tulip.json deleted file mode 100644 index 2acdee40..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_pink_tulip.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:pink_tulip" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_pink_tulip" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_poppy.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_poppy.json deleted file mode 100644 index 5b0261b7..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_poppy.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:poppy" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_poppy" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_red_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_red_tulip.json deleted file mode 100644 index c814bd3b..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_red_tulip.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:red_tulip" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_red_tulip" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_torchflower.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_torchflower.json deleted file mode 100644 index 834527e8..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_torchflower.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:torchflower" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_torchflower" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_white_tulip.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_white_tulip.json deleted file mode 100644 index 37e667d0..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_white_tulip.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:white_tulip" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_white_tulip" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_wither_rose.json b/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_wither_rose.json deleted file mode 100644 index f7be5beb..00000000 --- a/src/main/generated/data/tiny_flowers/recipe/tiny_flower_from_wither_rose.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "misc", - "group": "tiny_flowers", - "ingredients": [ - "tiny_flowers:florists_shears", - "minecraft:wither_rose" - ], - "result": { - "components": { - "tiny_flowers:tiny_flower": "tiny_flowers:tiny_wither_rose" - }, - "count": 4, - "id": "tiny_flowers:tiny_flower" - } -} \ No newline at end of file diff --git a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java index e5c14bf7..109e7ebd 100644 --- a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java +++ b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java @@ -14,7 +14,7 @@ import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.items.ModItems; import net.minecraft.core.Holder.Reference; -import net.minecraft.core.RegistryAccess; +import net.minecraft.core.HolderLookup; import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.Identifier; @@ -85,30 +85,31 @@ public ItemStack getItemStack(int count) { } @Nullable - private static TinyFlowerData ofPredicate(RegistryAccess registryAccess, Predicate predicate) { - return registryAccess.lookupOrThrow(ModRegistries.TINY_FLOWER) - .stream() + private static TinyFlowerData ofPredicate(HolderLookup.Provider provider, Predicate predicate) { + return provider.lookupOrThrow(ModRegistries.TINY_FLOWER) + .listElements() + .map(ref -> ref.value()) .filter(predicate) .findFirst() .orElse(null); } @Nullable - public static TinyFlowerData findByOriginalBlock(RegistryAccess registryAccess, Block block) { - return ofPredicate(registryAccess, + public static TinyFlowerData findByOriginalBlock(HolderLookup.Provider provider, Block block) { + return ofPredicate(provider, flowerData -> flowerData.originalId().equals(BuiltInRegistries.BLOCK.getKey(block))); } @Nullable - public static TinyFlowerData findById(RegistryAccess registryAccess, Identifier id) { - return ofPredicate(registryAccess, flowerData -> flowerData.id().equals(id)); + public static TinyFlowerData findById(HolderLookup.Provider provider, Identifier id) { + return ofPredicate(provider, flowerData -> flowerData.id().equals(id)); } @Nullable - public static TinyFlowerData findByItemStack(RegistryAccess registryAccess, ItemStack itemStack) { + public static TinyFlowerData findByItemStack(HolderLookup.Provider provider, ItemStack itemStack) { var key = BuiltInRegistries.ITEM.getKey(itemStack.getItem()); - return ofPredicate(registryAccess, flowerData -> { + return ofPredicate(provider, flowerData -> { if (flowerData.isSegmentable()) { // If the block is already segmented, then just check the original block ID. return key.equals(flowerData.originalId()); diff --git a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java index d4f10717..0c48fb70 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java @@ -13,7 +13,6 @@ import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ShearsItem; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.Level; @@ -33,17 +32,6 @@ public FloristsShearsItem(Properties settings) { super(settings); } - @Override - public ItemStack getRecipeRemainder(ItemStack stack) { - if (stack.getDamageValue() < stack.getMaxDamage() - 1) { - ItemStack moreDamaged = stack.copy(); - moreDamaged.setDamageValue(stack.getDamageValue() + 1); - return moreDamaged; - } - - return ItemStack.EMPTY; - } - @Override public InteractionResult useOn(UseOnContext ctx) { Level world = ctx.getLevel(); diff --git a/src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java b/src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java index 0ddee6cb..7487153f 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java +++ b/src/main/java/co/secretonline/tinyflowers/items/crafting/ModRecipeSerializers.java @@ -12,6 +12,11 @@ public class ModRecipeSerializers { TinyFlowers.id("crafting_special_tiny_flower_stew"), new CustomRecipe.Serializer(TinyFlowerStewRecipe::new)); + public static RecipeSerializer SHEAR_TINY_FLOWERS = Registry.register( + BuiltInRegistries.RECIPE_SERIALIZER, + TinyFlowers.id("crafting_special_shear_tiny_flowers"), + new CustomRecipe.Serializer(ShearTinyFlowersRecipe::new)); + public static void initialize() { } } diff --git a/src/main/java/co/secretonline/tinyflowers/items/crafting/ShearTinyFlowersRecipe.java b/src/main/java/co/secretonline/tinyflowers/items/crafting/ShearTinyFlowersRecipe.java new file mode 100644 index 00000000..80516da6 --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/items/crafting/ShearTinyFlowersRecipe.java @@ -0,0 +1,119 @@ +package co.secretonline.tinyflowers.items.crafting; + +import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.items.ModItems; +import net.minecraft.core.HolderLookup.Provider; +import net.minecraft.core.NonNullList; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.CraftingInput; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; + +public class ShearTinyFlowersRecipe extends CustomRecipe { + public ShearTinyFlowersRecipe(CraftingBookCategory craftingBookCategory) { + super(craftingBookCategory); + } + + @Override + public boolean matches(CraftingInput recipeInput, Level level) { + // Quick size check. The recipe only supports florists' shears and a single + // flower type. + if (recipeInput.ingredientCount() != 2) { + return false; + } + + boolean hasFloristsShears = false; + boolean hasFlower = false; + + for (ItemStack itemStack : recipeInput.items()) { + // Ensure exactly one of each of Florists' Shears and a flower are present + if (itemStack.isEmpty()) { + continue; + } + + if (itemStack.is(ModItems.FLORISTS_SHEARS_ITEM)) { + if (hasFloristsShears) { + return false; + } + + hasFloristsShears = true; + continue; + } + + if (itemStack.getItem() instanceof BlockItem blockItem) { + Block block = blockItem.getBlock(); + TinyFlowerData flowerData = TinyFlowerData.findByOriginalBlock(level.registryAccess(), block); + if (flowerData == null) { + return false; + } + if (hasFlower) { + return false; + } + if (flowerData.isSegmentable()) { + // Prevent duplication of segmentable types + return false; + } + + hasFlower = true; + continue; + } + + return false; + } + + return hasFloristsShears && hasFlower; + } + + @Override + public ItemStack assemble(CraftingInput recipeInput, Provider provider) { + + for (ItemStack itemStack : recipeInput.items()) { + if (itemStack.getItem() instanceof BlockItem blockItem) { + Block block = blockItem.getBlock(); + TinyFlowerData flowerData = TinyFlowerData.findByOriginalBlock(provider, block); + if (flowerData == null) { + continue; + } + + return flowerData.getItemStack(4); + } + } + + return ItemStack.EMPTY; + } + + @Override + public NonNullList getRemainingItems(CraftingInput craftingInput) { + NonNullList nonNullList = NonNullList.withSize(craftingInput.size(), ItemStack.EMPTY); + + for (int i = 0; i < nonNullList.size(); i++) { + ItemStack itemStack = craftingInput.getItem(i); + + // Florists' shears should be damaged. This can't be a regular recipe + // remainder otherwise it the shears duplicate when combining or dyeing. + if (itemStack.is(ModItems.FLORISTS_SHEARS_ITEM)) { + if (itemStack.getDamageValue() < itemStack.getMaxDamage() - 1) { + ItemStack moreDamaged = itemStack.copy(); + moreDamaged.setDamageValue(itemStack.getDamageValue() + 1); + + nonNullList.set(i, moreDamaged); + } else { + nonNullList.set(i, ItemStack.EMPTY); + } + } else { + nonNullList.set(i, itemStack.getItem().getCraftingRemainder()); + } + } + + return nonNullList; + } + + @Override + public RecipeSerializer getSerializer() { + return ModRecipeSerializers.SHEAR_TINY_FLOWERS; + } +} diff --git a/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java b/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java index 0a1daae9..25c48aaa 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java +++ b/src/main/java/co/secretonline/tinyflowers/items/crafting/TinyFlowerStewRecipe.java @@ -38,7 +38,7 @@ public TinyFlowerStewRecipe(CraftingBookCategory craftingBookCategory) { public boolean matches(CraftingInput recipeInput, Level level) { // Quick size check, since the recipe needs a bowl, the two shrooms, and at // least one tiny flower. - if (recipeInput.size() < 4) { + if (recipeInput.ingredientCount() < 4) { return false; } diff --git a/src/main/resources/data/tiny_flowers/recipe/shear_tiny_flowers.json b/src/main/resources/data/tiny_flowers/recipe/shear_tiny_flowers.json new file mode 100644 index 00000000..263085a3 --- /dev/null +++ b/src/main/resources/data/tiny_flowers/recipe/shear_tiny_flowers.json @@ -0,0 +1,4 @@ +{ + "type": "tiny_flowers:crafting_special_shear_tiny_flowers", + "category": "misc" +} From 7ac3eafe5881bc30535ebb7a086e2ce666cce032 Mon Sep 17 00:00:00 2001 From: secret_online Date: Wed, 24 Dec 2025 15:43:29 +1300 Subject: [PATCH 042/113] Fix eyeblossom state changes not propagating --- .../tinyflowers/blocks/ModBlocks.java | 3 +- .../tinyflowers/blocks/TinyGardenBlock.java | 26 +++++------ .../tinyflowers/helper/EyeblossomHelper.java | 44 +++++++++---------- 3 files changed, 37 insertions(+), 36 deletions(-) diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java index bbd85d0e..626d6f4e 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/ModBlocks.java @@ -24,7 +24,8 @@ public class ModBlocks { .mapColor(MapColor.PLANT) .noCollision() .sound(SoundType.PINK_PETALS) - .pushReaction(PushReaction.DESTROY), + .pushReaction(PushReaction.DESTROY) + .randomTicks(), TinyGardenBlock.CODEC, true); diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java index 82b85c34..6d27ca24 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java @@ -39,6 +39,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.BonemealableBlock; +import net.minecraft.world.level.block.EyeblossomBlock; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.SegmentableBlock; @@ -245,7 +246,7 @@ public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, Co @Override protected void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (doEyeblossomTick(state, world, pos, random)) { - EyeblossomHelper.playSound(world, pos, world.isBrightOutside(), true); + EyeblossomHelper.playSound(world, pos, !world.isBrightOutside(), true); } super.randomTick(state, world, pos, random); @@ -254,21 +255,21 @@ protected void randomTick(BlockState state, ServerLevel world, BlockPos pos, Ran @Override protected void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (doEyeblossomTick(state, world, pos, random)) { - EyeblossomHelper.playSound(world, pos, world.isBrightOutside(), false); + EyeblossomHelper.playSound(world, pos, !world.isBrightOutside(), false); } super.tick(state, world, pos, random); } private static boolean doEyeblossomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { - TriState expectedState = world.environmentAttributes().getValue(EnvironmentAttributes.EYEBLOSSOM_OPEN, pos); - if (expectedState == TriState.DEFAULT) { + TriState openTriState = world.environmentAttributes().getValue(EnvironmentAttributes.EYEBLOSSOM_OPEN, pos); + if (openTriState == TriState.DEFAULT) { return false; } - boolean isDay = expectedState.toBoolean(false); - Identifier correctVariant = EyeblossomHelper.getIdentifierForDay(isDay); - Identifier incorrectVariant = EyeblossomHelper.getIdentifierForDay(!isDay); + boolean shouldOpen = openTriState.toBoolean(true); + Identifier correctVariant = EyeblossomHelper.getTinyFlowerIdForOpenState(shouldOpen); + Identifier incorrectVariant = EyeblossomHelper.getTinyFlowerIdForOpenState(!shouldOpen); BlockState currentState = state; boolean didChange = false; @@ -278,19 +279,19 @@ private static boolean doEyeblossomTick(BlockState state, ServerLevel world, Blo return false; } - if (gardenBlockEntity.getFlower(1).equals(incorrectVariant)) { + if (incorrectVariant.equals(gardenBlockEntity.getFlower(1))) { gardenBlockEntity.setFlower(1, correctVariant); didChange = true; } - if (gardenBlockEntity.getFlower(2).equals(incorrectVariant)) { + if (incorrectVariant.equals(gardenBlockEntity.getFlower(2))) { gardenBlockEntity.setFlower(2, correctVariant); didChange = true; } - if (gardenBlockEntity.getFlower(3).equals(incorrectVariant)) { + if (incorrectVariant.equals(gardenBlockEntity.getFlower(3))) { gardenBlockEntity.setFlower(3, correctVariant); didChange = true; } - if (gardenBlockEntity.getFlower(4).equals(incorrectVariant)) { + if (incorrectVariant.equals(gardenBlockEntity.getFlower(4))) { gardenBlockEntity.setFlower(4, correctVariant); didChange = true; } @@ -299,8 +300,7 @@ private static boolean doEyeblossomTick(BlockState state, ServerLevel world, Blo world.setBlock(pos, currentState, Block.UPDATE_CLIENTS); world.gameEvent(GameEvent.BLOCK_CHANGE, pos, GameEvent.Context.of(state)); - EyeblossomHelper.getState(isDay).spawnTransformParticle(world, pos, random); - + EyeblossomBlock.Type.fromBoolean(shouldOpen).spawnTransformParticle(world, pos, random); EyeblossomHelper.notifyNearbyEyeblossoms(state, world, pos, random); } diff --git a/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java b/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java index 7969f497..14aa83d2 100644 --- a/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java +++ b/src/main/java/co/secretonline/tinyflowers/helper/EyeblossomHelper.java @@ -9,6 +9,8 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundSource; import net.minecraft.util.RandomSource; +import net.minecraft.util.TriState; +import net.minecraft.world.attribute.EnvironmentAttributes; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.EyeblossomBlock; @@ -18,29 +20,27 @@ public class EyeblossomHelper { private static final Identifier OPEN_EYEBLOSSOM = TinyFlowers.id("tiny_open_eyeblossom"); private static final Identifier CLOSED_EYEBLOSSOM = TinyFlowers.id("tiny_closed_eyeblossom"); - public static Identifier getIdentifierForDay(boolean isDay) { - return isDay - ? CLOSED_EYEBLOSSOM - : OPEN_EYEBLOSSOM; + public static Identifier getTinyFlowerIdForOpenState(boolean isOpen) { + return isOpen + ? OPEN_EYEBLOSSOM + : CLOSED_EYEBLOSSOM; } - public static Block getBlock(boolean isDay) { - return isDay - ? Blocks.CLOSED_EYEBLOSSOM - : Blocks.OPEN_EYEBLOSSOM; - } - - public static EyeblossomBlock.Type getState(boolean isDay) { - return isDay - ? EyeblossomBlock.Type.CLOSED - : EyeblossomBlock.Type.OPEN; + public static Block getEyeblossomBlockForOpenState(boolean isOpen) { + return isOpen + ? Blocks.OPEN_EYEBLOSSOM + : Blocks.CLOSED_EYEBLOSSOM; } public static void notifyNearbyEyeblossoms(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { - boolean isDay = world.isBrightOutside(); + TriState openTriState = world.environmentAttributes().getValue(EnvironmentAttributes.EYEBLOSSOM_OPEN, pos); + if (openTriState == TriState.DEFAULT) { + return; + } - Identifier incorrectId = getIdentifierForDay(!isDay); - Block incorrectEyeblossom = getBlock(!isDay); + boolean shouldOpen = openTriState.toBoolean(true); + Identifier incorrectId = getTinyFlowerIdForOpenState(!shouldOpen); + Block incorrectEyeblossom = getEyeblossomBlockForOpenState(!shouldOpen); // This is to detect whether the central block of the area is a real Eyeblossom // flower. @@ -62,14 +62,14 @@ public static void notifyNearbyEyeblossoms(BlockState state, ServerLevel world, // Gardens if (nearbyBlockState.is(ModBlocks.TINY_GARDEN_BLOCK)) { - if (!(world.getBlockEntity(pos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + if (!(world.getBlockEntity(otherPos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { // If there's no block entity, don't do anything return; } // Tiny Gardens should also recieve updates if they have eyeblossoms. - for (Identifier gardenId : gardenBlockEntity.getFlowers()) { - if (gardenId.equals(incorrectId)) { + for (Identifier gardenFlowerId : gardenBlockEntity.getFlowers()) { + if (gardenFlowerId.equals(incorrectId)) { scheduleBlockTick(world, pos, otherPos, ModBlocks.TINY_GARDEN_BLOCK, random); return; } @@ -87,8 +87,8 @@ private static void scheduleBlockTick(ServerLevel world, BlockPos centerPos, Blo world.scheduleTick(otherPos, block, numTicks); } - public static void playSound(ServerLevel world, BlockPos pos, boolean isDay, boolean isLong) { - EyeblossomBlock.Type state = getState(isDay); + public static void playSound(ServerLevel world, BlockPos pos, boolean isOpen, boolean isLong) { + EyeblossomBlock.Type state = EyeblossomBlock.Type.fromBoolean(isOpen); if (isLong) { world.playSound(null, pos, state.longSwitchSound(), From 1f1314e6dc2659225c9b7647688d7e494aba2da9 Mon Sep 17 00:00:00 2001 From: secret_online Date: Thu, 25 Dec 2025 18:54:15 +1300 Subject: [PATCH 043/113] Start building a mock datapack --- .../tiny_flowers/tiny_flower/tiny_dirt.json | 10 ++++++++++ misc/tiny_dirt_flower_data/pack.mcmeta | 9 +++++++++ .../assets/tiny_dirt_flower/lang/en_us.json | 3 +++ .../models/block/tiny_flowers/tiny_dirt_1.json | 8 ++++++++ .../models/block/tiny_flowers/tiny_dirt_2.json | 8 ++++++++ .../models/block/tiny_flowers/tiny_dirt_3.json | 8 ++++++++ .../models/block/tiny_flowers/tiny_dirt_4.json | 8 ++++++++ .../tiny_dirt_flower/models/item/tiny_dirt.json | 6 ++++++ .../tiny_dirt_flower/textures/block/tiny_dirt.png | Bin 0 -> 489 bytes .../tiny_dirt_flower/textures/item/tiny_dirt.png | Bin 0 -> 447 bytes .../tiny_flowers/tiny_flower/tiny_dirt.json | 8 ++++++++ misc/tiny_dirt_flower_resources/pack.mcmeta | 9 +++++++++ 12 files changed, 77 insertions(+) create mode 100644 misc/tiny_dirt_flower_data/data/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json create mode 100644 misc/tiny_dirt_flower_data/pack.mcmeta create mode 100644 misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/lang/en_us.json create mode 100644 misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_1.json create mode 100644 misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_2.json create mode 100644 misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_3.json create mode 100644 misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_4.json create mode 100644 misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/item/tiny_dirt.json create mode 100644 misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/textures/block/tiny_dirt.png create mode 100644 misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/textures/item/tiny_dirt.png create mode 100644 misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json create mode 100644 misc/tiny_dirt_flower_resources/pack.mcmeta diff --git a/misc/tiny_dirt_flower_data/data/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json b/misc/tiny_dirt_flower_data/data/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json new file mode 100644 index 00000000..e9977c93 --- /dev/null +++ b/misc/tiny_dirt_flower_data/data/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json @@ -0,0 +1,10 @@ +{ + "id": "tiny_dirt_flower:tiny_dirt", + "original_id": "minecraft:dirt", + "suspicious_stew_effects": [ + { + "duration": 10, + "id": "minecraft:darkness" + } + ] +} diff --git a/misc/tiny_dirt_flower_data/pack.mcmeta b/misc/tiny_dirt_flower_data/pack.mcmeta new file mode 100644 index 00000000..f8447593 --- /dev/null +++ b/misc/tiny_dirt_flower_data/pack.mcmeta @@ -0,0 +1,9 @@ +{ + "pack": { + "description": { + "text": "A tiny dirt flower. Used to test the Tiny Flowers mod." + }, + "min_format": 88, + "max_format": 999 + } +} diff --git a/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/lang/en_us.json b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/lang/en_us.json new file mode 100644 index 00000000..5a5fed3b --- /dev/null +++ b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/lang/en_us.json @@ -0,0 +1,3 @@ +{ + "block.tiny_dirt_flower.tiny_dirt": "Tiny Dirt Flower" +} diff --git a/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_1.json b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_1.json new file mode 100644 index 00000000..a8ae98e7 --- /dev/null +++ b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_1.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_dirt_flower:block/tiny_dirt", + "particle": "tiny_dirt_flower:block/tiny_dirt", + "stem": "minecraft:block/pink_petals_stem" + } +} diff --git a/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_2.json b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_2.json new file mode 100644 index 00000000..2acf2ea1 --- /dev/null +++ b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_2.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_2", + "textures": { + "flowerbed": "tiny_dirt_flower:block/tiny_dirt", + "particle": "tiny_dirt_flower:block/tiny_dirt", + "stem": "minecraft:block/pink_petals_stem" + } +} diff --git a/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_3.json b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_3.json new file mode 100644 index 00000000..7af31cf4 --- /dev/null +++ b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_3.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_3", + "textures": { + "flowerbed": "tiny_dirt_flower:block/tiny_dirt", + "particle": "tiny_dirt_flower:block/tiny_dirt", + "stem": "minecraft:block/pink_petals_stem" + } +} diff --git a/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_4.json b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_4.json new file mode 100644 index 00000000..2379e0b7 --- /dev/null +++ b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_4.json @@ -0,0 +1,8 @@ +{ + "parent": "tiny_flowers:block/garden_4", + "textures": { + "flowerbed": "tiny_dirt_flower:block/tiny_dirt", + "particle": "tiny_dirt_flower:block/tiny_dirt", + "stem": "minecraft:block/pink_petals_stem" + } +} diff --git a/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/item/tiny_dirt.json b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/item/tiny_dirt.json new file mode 100644 index 00000000..3f93b7bf --- /dev/null +++ b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/models/item/tiny_dirt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_dirt_flower:item/tiny_dirt" + } +} diff --git a/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/textures/block/tiny_dirt.png b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/textures/block/tiny_dirt.png new file mode 100644 index 0000000000000000000000000000000000000000..eeaeb88f0961cc22e20a443decca618a88741bfc GIT binary patch literal 489 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}f0G|-o%22CmIbJzAIgz%SJ6mJg+uMOM+Ohe&ffRd5kYDhBFkq1KW_AM# zaTa()7BevL9RguSQ4OyKprB-lYeY$Kep*R+Vo@qXKw@TIiJqTph=Qq}p`M{(7l+t6 zprReA5uRzDo>~kXKn^Q|6eBAGBar0<#L`eU$O{^b%wTaQAls0Ui9rxZM*(qWI}2Dm z2gnA2Pi2e@FMvLU(df1^FaRYdursg#)fyNX8!#?_m$N zv;eZ8x(p2rK(aA!6Mu2OSOp4@L{AsT5RKs2en+7L3LMOw9{>J7@iVxUX}jRy28RhL z8b4n2>a2cx{_%<<$8GHuZ-;hea5yiDwTtM?HGS;5vtaw4&J#vSnu-se6_v6o=O?G8 pPg%U>poaOImg%>Z6@PD+DY4(l$ja)x-3t_v44$rjF6*2UngFDfc#Hr5 literal 0 HcmV?d00001 diff --git a/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/textures/item/tiny_dirt.png b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/textures/item/tiny_dirt.png new file mode 100644 index 0000000000000000000000000000000000000000..6e15f9c6175cecc37db852bb2975869ab924d66e GIT binary patch literal 447 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}H0G|-oovks`a=apKHQU?UD?_b_GLU58Dhcun z{tp8To6hK*2a0kQctjR6Fz_7$VMb96uLhu?WQl7;NpOBzNqJ&XDnmeGW?qS&pKFMM zsh**pp-iXD}xjxD+42tab`OUSUd;F27ymyj0`V;zJ}50wlXjPB`2^mfP7?NWNg5=0Aeo4PSynwv!(&r zAixAPnF*{i$kGDHg6c9fFaXKMyiNSY`C`>>AXD4Z#W6%9IQfAKGf%U3L*qow(1wXK uSwkCIIel5xwWqXkZ&=8^VKH~X0TzZ0O&mL!o`}o?8R6;b=d#Wzp$P!vO=BPc literal 0 HcmV?d00001 diff --git a/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json new file mode 100644 index 00000000..be4e3100 --- /dev/null +++ b/misc/tiny_dirt_flower_resources/assets/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json @@ -0,0 +1,8 @@ +{ + "id": "tiny_dirt_flower:tiny_dirt", + "item_texture": "tiny_dirt_flower:item/tiny_dirt", + "model1": "tiny_dirt_flower:block/tiny_flowers/tiny_dirt_1", + "model2": "tiny_dirt_flower:block/tiny_flowers/tiny_dirt_2", + "model3": "tiny_dirt_flower:block/tiny_flowers/tiny_dirt_3", + "model4": "tiny_dirt_flower:block/tiny_flowers/tiny_dirt_4" +} diff --git a/misc/tiny_dirt_flower_resources/pack.mcmeta b/misc/tiny_dirt_flower_resources/pack.mcmeta new file mode 100644 index 00000000..62f45984 --- /dev/null +++ b/misc/tiny_dirt_flower_resources/pack.mcmeta @@ -0,0 +1,9 @@ +{ + "pack": { + "description": { + "text": "A tiny dirt flower. Used to test the Tiny Flowers mod." + }, + "min_format": 75, + "max_format": 999 + } +} From 3275977abaaa420e62625deef2a8632b71f3393a Mon Sep 17 00:00:00 2001 From: secret_online Date: Thu, 25 Dec 2025 20:36:53 +1300 Subject: [PATCH 044/113] Finish tiny dirt flower definition --- blockbench/icon-dirt.png | Bin 0 -> 833259 bytes blockbench/icon-dirt512.png | Bin 0 -> 182974 bytes blockbench/icon.pdn | 170 +++++++++++++++++- misc/tiny_dirt_flower/README.md | 9 + .../assets/tiny_dirt_flower/icon.png | Bin 0 -> 182974 bytes .../tiny_dirt_flower/items/tiny_flower.json | 19 ++ .../assets/tiny_dirt_flower/lang/en_us.json | 0 .../block/tiny_flowers/tiny_dirt_1.json | 0 .../block/tiny_flowers/tiny_dirt_2.json | 0 .../block/tiny_flowers/tiny_dirt_3.json | 0 .../block/tiny_flowers/tiny_dirt_4.json | 0 .../models/item/tiny_dirt.json | 0 .../textures/block/tiny_dirt.png | Bin .../textures/item/tiny_dirt.png | Bin .../tiny_flowers/tiny_flower/tiny_dirt.json | 0 .../tiny_flowers/tiny_flower/tiny_dirt.json | 0 misc/tiny_dirt_flower/fabric.mod.json | 29 +++ misc/tiny_dirt_flower_data/pack.mcmeta | 9 - misc/tiny_dirt_flower_resources/pack.mcmeta | 9 - 19 files changed, 221 insertions(+), 24 deletions(-) create mode 100644 blockbench/icon-dirt.png create mode 100644 blockbench/icon-dirt512.png create mode 100644 misc/tiny_dirt_flower/README.md create mode 100644 misc/tiny_dirt_flower/assets/tiny_dirt_flower/icon.png create mode 100644 misc/tiny_dirt_flower/assets/tiny_dirt_flower/items/tiny_flower.json rename misc/{tiny_dirt_flower_resources => tiny_dirt_flower}/assets/tiny_dirt_flower/lang/en_us.json (100%) rename misc/{tiny_dirt_flower_resources => tiny_dirt_flower}/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_1.json (100%) rename misc/{tiny_dirt_flower_resources => tiny_dirt_flower}/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_2.json (100%) rename misc/{tiny_dirt_flower_resources => tiny_dirt_flower}/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_3.json (100%) rename misc/{tiny_dirt_flower_resources => tiny_dirt_flower}/assets/tiny_dirt_flower/models/block/tiny_flowers/tiny_dirt_4.json (100%) rename misc/{tiny_dirt_flower_resources => tiny_dirt_flower}/assets/tiny_dirt_flower/models/item/tiny_dirt.json (100%) rename misc/{tiny_dirt_flower_resources => tiny_dirt_flower}/assets/tiny_dirt_flower/textures/block/tiny_dirt.png (100%) rename misc/{tiny_dirt_flower_resources => tiny_dirt_flower}/assets/tiny_dirt_flower/textures/item/tiny_dirt.png (100%) rename misc/{tiny_dirt_flower_resources => tiny_dirt_flower}/assets/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json (100%) rename misc/{tiny_dirt_flower_data => tiny_dirt_flower}/data/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json (100%) create mode 100644 misc/tiny_dirt_flower/fabric.mod.json delete mode 100644 misc/tiny_dirt_flower_data/pack.mcmeta delete mode 100644 misc/tiny_dirt_flower_resources/pack.mcmeta diff --git a/blockbench/icon-dirt.png b/blockbench/icon-dirt.png new file mode 100644 index 0000000000000000000000000000000000000000..295f72c9137ac20d417f59df73e1ae1e512019a5 GIT binary patch literal 833259 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

jp*bSHqf%9iM9nBBiJr= zW&q3;fb#$W#f<=mu>etfTmf*gjN)p#=UucY8<3h`9i%H^gxXy=FvFo|Y~HXC3N=9Q z(nUX5UP!vThHgC~y3!z9D;CBHOiFcs{OYpbX7t$av-N15`)!Wv zY?s(SB^&lnqdi9MNML)_o<7p}FqMtLDGsPwpB*i9#iMGZ4!x*=D z`KFIs*@plJigDu3=QZnZHXSom##tW;C^Z|05?oOPhBo=|RmUy+W6OKWK_(MI#J0ya zZZk(B(0kl(lVt16k$vl}V=8ou1wEp&?;mcrXFs1lzJGlD+)3eoobuC;zcY?dAJ+A!r?*c}Zy#TM z_wL=F<(?o#F@lee-+g%hw8U~igR+$ z#f>w9a}bH%In$e*=-HXt^x(2rQjo9G!g^nchqScT*_?U)&(Q$aum3U1b$_QZ(aySE znxvzqywT!s!JPPWh~Zq`zWLpKe>X>7uW#@ByKlbzVc{JM@_7IL_fMbRT(55dDB#8I z_V(%1n={yd%!ceQP=E4MPWyV|yG+qSLM#+u^I|9#JS&&kP$oIJ^s zFL$o{(vOeM{ibsYuCntxF?* z6gQ#CGpj(=2ARJNLO$_ocJ^%MlSJ0iEr3OB#V@k36)U|WtRk!ISV(_L+oEjD6DEV$Qm_V}7=hZqpsC&^RY#bF zX8pu)nNX-Ow^V{@hgoNX#X!1%ndrN3ooKc;g0P}Rr}j%i0YS1q`j;H05M`An2F{>PTiVz93kpuVOW|F*=4h+ah>1g_2b-;3^CY;Un7L##M~R3EaPy{w}gS%4f#cYPqo2H>mFfq)n}GJueOi((xzRcYq}dy_B<*ZPs3Zb+Jz4Xo;}kv**{sj=~K zv4vBV_V^}n9`Gr}&NI75yZkW1vOICV-%8JDEtNLkKzrnG3Kc}O&nwq0wo$|GjH7CD z4v9R0t<=^+y{1#Q;(n{OFMqddRrD-N!g&a0L%-pbJ9nrV-&L{cWJ=D2@PKyw?|zI! zA|~6Au1ua--@#g$45`7Rn=JPvBpos%1h~x%jUb&N{CqUL*tf&y+bBNSzBQT~Hq6%M zX-BGa0bQ^g1Ic6Gw&$2uzF`nURL^3|6_1M4ahFsr#_-^hnYa_e?XZ|?byes`@7|b$ zTvtEhm6S(z{^;)c1S5?4kj@V4XBaN+lM!FyA13BgI8m`(;l(%6GPQoR9Bu&f6I>Q| z@x5UIr)(*s^Zv+!W`^6`acb?{6}s&_JVk@3jL|CO_W5nd!a#rSyL%*Gnb>FfEq~9bN39OR&6)3#~U6@sPQXpAJQ`txx4= zg3@$t=@fR>z!#|R;PhHQdiJNMr;Y!JwY%fdRc z1-zf=hXvn;_x65WZoX~Gb`HEY+9$D`kZ^cJLHAL0)j!bZoP>qw<33RxSX!(I!%J#5 zI?68}wU5fb9hm2DVvH&MLgLteZNx97KAJiRiCC#!@>+eK&@iV4c>g(REzR+AkPW3nb5N$5kfMhz|T=xx6rR5|JhY z)b?%7@?*eZ6%t^&F|uQJG!Iv#)M;6$xWdL{D@w4NNHP_9KV3Q|Kid}7R>fit*tT4h zI#;$N9O$T)p+<7<*JW80qNOak>pOyg4!FbrEDu}FFFwY}pNEQJ)mUWTmp0fce<{o^ zTHrWuF|8M3xGCWCqGp#Kkzw>R&Jn<`9l4ec{z@B5MAk5|m52bxpdTbIjOeJ0gQTSi z+ScOJV76o9Eev@#=yQfhOa74Dvai`x8$W`z=mr0XjkiSERMCU<^tgl#;H1{OBGeabE% zB}CsGGjCiWpXToZ00&>9uHCV}Joe{M;3dHxxjD4Kr$wSu!uDR%V5MIuRxDm4X<$)| zXCt)Hv8wcgXMJHkwo8%fsB=DPL%$oY;%yz8LB_XuGRN^cahA9pRK60q1`BQmOZ)j_mLb!9Uqo%<8fy$TeRp&Ltgrp z;4tPk1^N=b;&_Cba?!$3NTm?rIcL4-%}qLVWcHyw6qe6DsH#a6j#*tlfpVQXv4Uyl)gXmYmFS~o5;IMH|3 zd%=90dCsPdj_|m)uHSH4q{L#9+r$O54Fx=lZfDBbMlmBK>Z!@H&yZ?w?Rs~FPexE@ z(l6?YIGb8eIO>*u9cTDksBIEx7VjxT)n)7CYo!Tf)%pfs_nX>e;*h+ z_#miyQp}<3_hVitkcriXONk`LHAWj#lOSlOak8&&+rsGUdsS||<&A;PhXw6og!{AP zjBg}I+kSN|1)s(_ME zn{InBWWoFbwOYJF7j+!b9dELVud!R6kgrXrI@E&#?)K>DTb*7I$p0D9t&9m*y^Ka_ zMFMzGUO5K%PJZm1ig3Y39A9u3?}+0+nH#GYd4ew#ri4~gbV0(u4xW)F zE$j1Tl-$$oUw#YP? zuI7!i9q(OhF70J7h+CRP+!E#frigY$NGMTUym^zvSp@0COcr@zF>uP;LTt?r0s#0uK+do=a4v*8n z@^L&0A>f$P^a}joo-~jIha#PUB+aV;#l`?kw!`u7YPs$&ZIqOs8AH>%#TWu%LP%4| z&53|)=hOa?-vi>@pNb@bg>r6cnjTr(w;^y}>SY?<;XMNeMV1ysiPAA#=J()ZXP5+2 zA&4^>lDC+z>GE;=bjyw{TlY8`QRec3(#ddiS96Lgq;Tv% zdAhxl7yaW^PSPG8E(jq^O!lru>Ziow$(ui)D&O%G%VHyWcEC3&5qu5yRo?+xE$uQz zR27$ucbky$TJ`=IE>c>o+3zgTsVB4dL)y@4aUARtnEBIv{B}$Ik1FR_W2_wwz3jC0$4BEz!cJTW45j&W zqB9(G*%H)klxwA&pW~nnKi*l?8piXD1Iy=)Exkz6-!Y!^(CP=%-MS_~hX-o-t-dh? zLVM?XhKBE)d2yn40DMjWblB$c!&40sOHF#*P&g$!E|e?-3?p*H_8P@&sSB*ULfzY& zch_r-rD7MuNS$*F)9ON0`h_XAYv}#NvU}PKXw_6(n-S`>VSXB0n2>T$nrbPAp^Nh_ z>%tRSHfjlk%pv@M0s=EbC4+r2TBb`)F)^DoE1zVOpYeg2GAg7l_Wk81-|W@keNsHa z38<)^38-*~ewcIqS{C@xfB$T>Rh2?;+j^-0d8>B;HS#g0#5s;RY*|;py3k--@uKnP z$-e#dk_H0^94s0E9|y;U>x03_5qs&b`xduBFJ=cDYg-n(*Vk?DM1TY6zWuY16j%|u zj!a6{)wV&xe+Lzpulp3LywN0-mM)rpZT=lGczyoLKBtN6ooOx(X2>?Nxjz3T=n16` z&L1wmwUTQDj6wZ!=4P`?X9DOB;fJ?;;~=W$t&g($*lNeXTKj3*wyj$F?Y|C^6|&zA z&3Ld0cd~c~|C^wKQ*k#hM-xR+_Ri!P5+*LsmH;Va=fj9a80e?Zl`XN-3nSoX3A|BH zvbKxr7p&f><_wqHUEeQ(Z=qMS-yZLMu2==BxH`=pBECGVk-_^7Q}086+1hM-_ zMDVN<`uCnvzPEN510jc=SDX`oRiR`|?I@!hf0F+&Jm@iAVq}ZwL6gTG!dCP&&ptIH zJCwfKQ-D+D*+Fd&vFr)$CT6|(+69Ljpp3@aD1_PupaZ0^hYS?1qw@a_*%rFJb0hpGh%sKm zGxisadABp_zLG7H)SBRt?ObVG$Q*quTc5xl>#3JGJmln^8D+Obi*LVWc!JibX^$cBcMt58(K>h9oav7k1;`f>jGc$qxaEG)48)7V;yHvNQokNxG~q5e7^A zR;Hpx^CE{&+IXqOz##YifDKFho@K75p*rgldJ9klCj6kWK<(%Z;S;RCOaQKc$6ZIU z-kdOG?>7f;nmuqz)-e@~1;90w8=yM^z;KVlq*bs~D9jAUFOJnBDY^&VVQjI=x9NAV zg5{v>bQ+vjzHhJ+z|rZ`gv;fmy?cBJIt zNMIu=FXluGWci9`j23s2drqV&vX~Lc)Ev3f;Y}~yYP@4AA~AD1+UOGdxTaYyS0);) z!6mew71d6(%|bR~hax76Nqx8C+~zP*m6&EJ^bI;%V=o7YAH3Xah>1_NtmcMrld9I< zjHstcO$4lTl+ZSCjx9|V%Kmk~?rjIoG=qr%O-tu*4s^r8M>v{rm2L^7EZyP0r$yJ# zY4VzBny<@6#5#j6wpEZfC=M6<$@dSi)6QQ%L|}3_-g*Dp8E!Lx3b^*Uj$fZTH%YBX39CIE!n$gMiP>+?6ne49Cw}lEaIa*BEtzCp z5#Ki+!Bk)v`ubU=`y;4tnAztN{F)~Ck_BcBdf0dre0f3#Z#6Y;S#0g5*}oqS$liyT zYvtxe1>ky1TAC1Ik4$|#U6vU8;_QbeXgT@CDdKqV7pYDDgN~2oC-(-@_O0OZnT2G~ z^4BxoP>O_@{a;&N-{HUr1MhAJuaK>&7@`ruqT!RBwM*}5ruLWTx|==07gsMdQ1K#z zPFuvrx}Vdy=#5mmYq6lZ3`r24>Qx|mrKynjaw(^D(G??7kXQY3>;27}WF0eV=yPCTB)>yi9)(l`gX=h2B((VU zZ4Uf&O1$~Psad`Z3q9&yUGeK`THfEb@;CKt4}hVGScKQZgfx(yVhv&`#`9w_ERRq) zhwc-aK|zvz2->6_0sjHbDdId?G2x;zqPI14ThfOKM$}?t(#>gcM}@zpyMAsXtm@;*)6Z zepUMCy#Zq6mea}{G2cnLtXht2Wx>XE8f>lXE*o^m*&L56!0=G*GX0bDy zP!TcoI8{*#E|frDQxo_*pic=<8>ioY{3%5}Kdd-kMT=DJ&;(?;tWrW8l3&Pz922QP zE3sd0J7HHQ$C)6Gm6DH&{RQzLiO>llY8yJaVF*%ra1Um5d4ehr#tXfAp@JGy58L7F zlv=S=ejzD(poI6uA7nQcP#ukP?;fV0Lk<;u$j9}Q#0#T=@>qK$AM^5=cZxdyULQm5 z@LcAkJ!k^f2Qhl!@30&bdI^4@DW%J>>odhj3kp+SzK~LLvYgbN?Hv#|T<`PpDno$C zybI;+ws=p&KjG~V0qj9`PDvDan11sObt54Bx${rOBCp-?_Xa<5I=c@1@e&|Xshkl} z(1NPQWs(%el4EIjDvB@FzZbC$J-GapR3%w3Z9&5#W%x+xarMTn`^=Z$RvMCvSk7Jj zB4`QN`gIMP1Nw`57fF-npI+Vd+o2OgneXqOaoe2L$r5=rta*{6RG@8mF^*DAV2g5c z;+c=)HO^gKvG~Ma?AnxIZH4urpU`e;ll^GlzXZ01lCEFK)7+@oxjy95L|S}M#p8f}Fy}pnE}tpEI&68jJrSzL?)m8Ad+gTJl=BDGVIr!SF>A9P&E1-f1n`+F{Ll z3dihenhR2ttv6J}V|1FTk3I*{ZE#yd;YIQxQnlm6Dqi>F2~gyF+h+>%q9E0GW z)0;~EObBIW#ki8~-meYMwvGFZFD-(hNJGKqfj=rnw7ql!-b-<%4n{pT5y$*|$^w1e4p^qvF4Cy#)H&L5gn2q#Bb%opp<}cT z0+d6omXZGiETC-fmM7E~Ah6kGnYOOeAG26!azzP@3Q7lk#6C;I4=9f$psuH`bAcJ+ zt|T_$CR6TX+%-i<+`Z|xG-`{Ypbs}07b9Qc=^>_~q^-39_pq)wcz$o{QdF-V$JM$e zHoHx;2Tx~#*9%~~*P6Pz1UhCqUE4Y`sNVCbg0KsLHN~*J?sM1ZKBAf>jC2lbK@TXt z&w;T5MzHk@qX))aI)i_cxG(B)kslGmz0Ro&9+eg$|Q0A z6)MmaSPS;!I~OhGpV{6UcNEwLM+25?>m9UyV^iy(eE0;D)c8kEs;!Y&f|fX2hvYQ! zQSTb(rHd8_qf05ub~TK*oE-T#y;WH=WBTLge-e^`xy!9N7#NKaK#4rC*&cah**sEI z<$_OYNCOV1nd6K+@ow{SO=(C$kyeVQH<)XC;I-S~ozqjjb#Qm!Sjpus=+FnBYwDww z)e;Up@&I{>pltsyc9fFf)c*1G5II}AOZ4#1YV5QrH#5;XV%+B0W4%&y6ssm7kLCUK zWA5T{#%d|)S~CK&53uCo4&VPxk&4%7H}D8i9yuD69?7-Z9479=BMJbp2F|TLT`XvQ zk{ce%_VC6(h`Bi!iWg2NB$rr{0Zb``+43Cy7?_b@oP&B9`^8Lc4JXeY0$_2eMQbfZ zcrS9kU;w@jDspTL*&18kTVtd#G01G)l(%rIw9T7iZ=gy&d`<_gw!&UsMR9ob3H#Ts$EYOuHq8{N|t6EXr% zb%wy@y<KZJX$mg=WuBJU^rq^2E=1*) z0qhrCOn#pBK0@=N94m`5)S9 z)5{0L04Gwu4e^Q|f0ZtGmEiM-kK3MK>zJ3TQiLwhFh^-0N@pZ`G1G0TDP$HugrulJ zyzomlK)nn#m&HpKgc@YzWF9UU%NGV0My=oowj~-g< zV#Z^zP4%59b)wQifq4YCexhihivF_qqtxt?{%4((`%1xXP@l_i)Td?g1^ z_E`u&Q!1i}`x(hvVLz^IdW?D4oIPG&dqaM9y&mJ#L9txY>D(IR_4R0k>-`EH3~uXa z+uEe3-G$0eZ@*V#1dILytAxBlZ?fFMl*OCCV{K(vDn$@6(`jm!HoY za&>jy_Urv$+a>rvR{+`O>$gM5+W9$D@FI7)hFYO?f&>42fcx^htuq5Vr6uYYfRObX z`sF%WD{1m-h#+w$M_P?q`|*^$i~Ht>Ht(KhbpFkzFL1dpg)st1H$e-$_uG9YU%p+` zo+GnGf|~V=C#B&>qqHfo5x*d?zY#~66o~O3Nh};Cs0H*u{RzUOjk&fAFDD>`qZY)c z-~VTkhrE4H3nUo!PD7q@+uC|Rt1DX<=v?SUF*J$LE@f}4#I*!v%R7IObfh%vF2>#} zczN-h`Kj|G{_C!H7Dapx24JJ*VJ>NEY_bxRP#8gQ=e9vk+`cIZz?^A{RtS@jFfNs2 zrtXo*qiod8+7$3|zrDLVJU)&j6h(JUvx-ipY6?a$TsOz^veB{<^@!rPxReiVWv_cJ zdcOxNukC#5|HzAn%HHKJWvDq zvj#Osa7naAI8Mu|gNDn-2_t9n5JAZW&kdlu0i!cpaKY<iK6rL&#Ol zK)6#^dWu*O4fTd8fq0w5s4n50NWcKyjOWM>msI^k$N?ES_K1+k=2k)e!i94u+5Gge zm;A)TD~)71RN~P_jqH#B)1~;B&$prT%Tgxb4$5%kt0A$Vyx~yLZ=cpy zYr=7{Bdzwr5~2=_VsKp$kAy1Tsn*Lk;zkTE($DMW?ARIgOdnD(a8BaRPyQHrRJENo z4x3@+AC}5WaW4jZ6XVHK9y#WdNH|GEKp?NO?VlOF7= zm@r=x_J-=tX6SiT<7}wiHkePHYDYcbldwqET>d`x#Ktb42)HpJ=41;lsuasmLu4@D zM#J3{M~npSv{08g67m&&yYwc+I^d0d zThyd%s_gnBZ2@t2hP+V1H^UBNGtM+#$7KRjA`lOkL}Tp&Ls&kOd-+=NU`oErfWNLC zHkWmAnKzM95E)%#gbENC8JUbrv=Vzx(HP8Kb^D*AUL0OBZ*crP=e!9tL=4fT;5gx; z!H|47&v2Q{DDsfL!nAF?$?<3##rCUy!fMYH&d>2+ zSnLkCiTFg|mOMQ>KDSl)mr#I5xjr#F8g{LJg;o!x#K7F3*b(gP2N zNn-QoKEb_QPc6raD-D7(O=~^ur~aDo;w6OCBtZLCUOwLGWSX|$pPuYQ$#&Gfkb^7s z3w&1OUZ>t_9LQNsfjbfon<0F-eAK(WoT`XHe$>A4_@C{H&+GZgtuO(~VYESKuwK@t z_wD)n4X7Jt8#&aKJaE872vz{64E_6Ic z_F4l6hgyAmpzn@>*35fDdD*mdx33o}@0MSlMZ5&n7saP` zM4(Oe_PFiR3KMKvA_G_)`OS@_CCR?IAQFbz>Km*dE=9%^!Dk<*I9T*kr`^v+*M%>B z`QL@Drj2w;yW?+tV{d)|5e#`j+3Ht?C^{Q_J>8!Yr#Xfx2H@AP(3`V6WxL?e2Iidv z{}Sx1K8@jx%GLgco1|<1Kn#gz=)7DZ0^{vzDvr$se+`ZJm>UCk&bEv8!z&h5nhZw%P#(L=)HbY}O*R^&e6~@R|?c9~A2N8|eo?2dC%$zMwG%BTO^Uec^UWJkd1fW?@SSVkvKYg=HZw08C?`$SC?qO~0`RWI}~(^(cde-AwPq)YDCuz&3}zZ#O&01fU8 zaDyB%K3Qg)2Hn0A?cu?HG2i^vMi^e3uj7tI-sYr{hE#+muwViZ#~DgCNx#%k4846- z>mvKMb*Y&q_^Ye$kB`&pcZFX(nrP%rsU7-9J~+`0(HNS3(~Qtfp@g_&rY%AQ?Am~yy1cE2-2+jCqfBm+LgS9q_vLJlPa2v<*ht^YeL(eH ziT;pM9lEXPZSrJ}=^xbZY+}S8SR};(>i7`8>XP04&-GQLb{2zF=tmFB{S@@2MAq%4$uIVHcaN+u6A z?sj*VmX6!wu3ZJI@;$c0xp(=H51+o;dJrMp|6A0UM3OOKW zX_aIC(Rropz_va9 z*9|knP%`tYCH{;lQWdGbp`FAL7Va3fRMrG+?8nF9pQ_k^Zkk5fb$j!tSh@~ks6npg zgHLZpeZ|DaxxLQ*Fx#)DoNgvxGuin?+~G>=hVTCw+B_-~w z?rwr+VAPNdVFJ-H2|O3CHsU_dFa;az8}f0LbrYpgo|KU7R$i*1OoX#P*A;{?b*@4d zSBBr>Mu*dN{hdx0O&p$}P5yw2=Uc*OVd-0d=WC=1=gVF2)^WAA0$cOe;A59Jq5cjO z7RSlZs>CerLCpr5M3aJA|84jOOYd&o;euW59*-UaobwESb;#Kspo1BFd$9pVaO|4G z4bkw@&HF(F*YD>Z#dWCc{s@^)S?Azv9IZwIHCE8)`x$qSZEXJ}D^`?eP{u2$10MD+ zAEnpX%m0>F%S8QwziH3W>p*j{l!Fct!0izh<9b+W8ti^$pvu$s7T1<^ZV_x_LRjXx zT&m%(hq#E{qLq2r3Ytl(GB6B9yeyNt&)!$|2CKOYUh?)_yp-{2GEiO$*&?um2mcw$~c=FCzC zQtFI)a4j;t{G;GftWMPfztt3!(PR_q<~T`zm0KQaJz9>)Oo%T+wOX;>OdNdfQl4o&42 zDoh#m3BKc>*aKyp{p+VwEThAeF)_*QR4Iw8+WEeZ<3KC8zJzqU9$(ApdTNP{!MocJ zDcH=cvQDg>Tai7uW`dl~I6xpq=ducNs27mMoo(xDYtN!T<`FS4vzlDvhsMHU?uY^f zN5j(YJo}$`C1LW!iV%g^<9(fdnAbIf!tXokma`=r8o08o#WW)9qk~4w$tn6G7ZeRB z%3GBfnJ4|Nm7f_+ery;}2u?6&ZACeY=-StHAA6I@usWfxFlnadyNgAyjV@~GI%wq~ z692SK=@sk!SkS4(CPsd&XhM0S#>b*eJCTX2eC4u;mlYc5Fg7nb*9`k7e!23ZXhQT4 z^9krysV_R8Y0*}$IL)I!26-u}!Ug4D``wSQ&Hn}J-sshS+a2QN(5mJJiX zLiI8&WSH1rUyTiH;H_unJ?l)HxeSI*_h)lERO;l005ftGnskmyN(!eEEV&FudeOm| z%s17jT9M_#CSw2it(vkag;j?r`tTO0Hq1_AsHk=j|G-7tAavtt3a|n)bv)-oMro%x z-aPXgLSwa;J0sFpzDp1e;oq~RDVNakwv15o7IC#t<(fp#Y%5Ms_k+J%fG$9Eh3vc3hu!Nivy`1UdRUeou=}D}@R3eUbOLG~~%Le6nkcjo?z3BRpWD4nNHXcRiJIBf7R8KtYK5km$ zF2iL&kB>Z)q5RJ zS6?54mdd!I?SR+MbmlEmJqsu*r=sI5%0y9@+^`YMt-)g0ll1>IVPMx2!sOaF#_fEbo z|F{g8`+bEjG(4^dD*zgYD`*IC86d<+@PHms?#lE31Bk7In!EH^~{;(_F?(!g<+X9ZZemX zgtB@ZBnF8pp3&I4UTFM|$3h05f;3E)h_sk#rQrYc@wH0odVM5_it%k63;XyJ?jFX6 zST3w-yFD(yoRLYHLH19Owwg!e0j1NCn_B6TDYZp~js3&IZ>!-H9_z_;E7glS_M>DI zF?e$E?s8Tl`=yqB6of-!lcDp6!%nD;V)MkEGj9lV+h*|kQ$PxQJ9i1Sd;OQ!@3;v< z>|c40PwF9Kg}U1|E-%HFW&Cd}%x&GE1Mm^j2F+=(S1H1305Ibx0?}dxy?^I#XWD$d#}92%B`Ji@`NI3`^J* zHPE7gcbj`neqDnl9kkL%qnOZRf{ERz^n`TokB;WfpqGB)(D4LIukR$*C0etCG0|93 z%5*jNcy>xY;$q}kS#)=UHQS~WSz=^nsZ4e0UD@%9ceT{fPPJ@9F!dgc(>#lINC*k- z##VKh#C;zpl`FVzp0|NH)Di!Z*(N|9;UtNl#R`>BcunPGDOVAUO_QqGIby3*zTh?) zkAPh-`5YQ5hP>uS6h!vp_ro?z(U6(bLK7m@G7_|Y`FW9$11{#%>x{Eoz0=Gw@+IJi zw4m+_c^g3|LGr4A8^#h#D!eqIdk=QV-cgWScwJeFi0Pc`3 z$_L8`DKSb~?m^W4{lVxHWsX^G`QX}V08wCo8~7!l1kXp{TW<#>CJ&0Vy%n8l7mvSR7O^cGe*h1MDDiVUgg>ZV8Pd%k36 zH>RR-#Gjn5EL&&^r!}ZCka2bQATBD;3zdrqQCLl_WesT|cRTPDpQ6yrsD@W^_Lk~& zOQN5&+M3k|23f4k1L^2!&c|ft%`dV) zixTkVd4|hd!ai|eBd0SlB-UFCYjK7inCEK9-b}7OMCeKpE4;dc6fnnIOyL?f*k6@1 zm2}3N=?$WbYNQBe*dAvY#ny61ZZT!Lsj4hXgt=iTe_%{dSEK!&a^NxhxuZXv-oxK} zoV9zhU|m7H($N-d%r2RaTW9ulGRD#d)4dp7hXCQrxG&fFK%{u&Nl4XiH}dl?#k1im z;LR+er8h^6BCTl^e23Ng$2KA%KJ=&2T7F#^$-9+Xr>75mX^Ot;dx^))djy{1b5|;) zxI&9#ryaW&M9tdXrLs5&poOD?hSGV7vXRo5E4#`%Yf-HM-Nx_Lj}K3!CdO+#_P?L3 zKWEVr9r3T^*<qTABv-8yL|)31V`A;)9!8wp*^sQo4716R*i z=7vGOX3*e}cFkZKFiUFu{_W822QX56$eaPM;chO@6HUtQB5b{7Z34ON+oI1-uX54V^3J0 zkY1BTU14!zeQp}IWH*xI#UPvk5`7h36vYXth(*P^71L(~R3+N6c2t~Pt)@5gN`8#|v*S@E7PIdHbqG>}dv5r5{kHgDP1Vo zIT<^K^T#{a<)=Rv?UPb{*hxn>A$~(S!V)HYm(@(5?L|aEfbTiafnj7_2sf&U#}oe7 zGCsbDi-0kTmiLIf9c@82(ikXk*+e1mz!YkWv2=#`-Oz6YE$lZB92HxPnX@<3?T0|i zZ{LxO)p;8dPLa1S{uZEVD1j>}Gh~+XcdXCvn4w609}_cCwtjtSir94pP|eRdk;N1t z$4uihAfc-IJ=QJbwdOd|dY?FjS8BK{;!9jf-paI(EFt}Jj2^#?E-B=o=AQW(4|9CY zG)SU>Bf0yhuIvckkrID$H-|fK$b`H9pRLf4se*avhjslt3=CnL6_Y`C-!!a!1AzlPQ5voj-7OG6T5Wy$W{ zkX&nF%R)3pJxu|WhbenglRG^AWy;pJ$6QO`BZL4#Y%(b~z^p)L_lE6XhNv@%jvgx~ zN1{g=nwfepDx~l;+!hTs43DrpIa>%l#eEWKOj-LXMcY)VZ1s~Y`L1vOaI_GY%8JVZ zBweMBaRLuOnAC~on*Egpj9H>Ew?m!IZ6-O&t0z6rksJ_9Yz>FFFqu zt6gHJ0eaz3(QjQLHWjRs%T@#0&)^sDsE_pM;m|6W0QTA>iZhYo1E$m-3Tx$u&BT=P zuHtTD0FJODOqX#KbzMI!4E7I<>?%Zns*hYAoY0{x3JO~|+#g+@ip>P~48ia-=4Dx; zIVDkJ7($*Dr3uF-dSL>oJG@{+IW~Q9!O+`TgzV_9*@kRj;Ba69*VWyV6JoBI}y*3b|VMB;dk;$*jmDhnYI8%0$3-7sHtp2jD~`My=bIZmJFp> zZD(2#Hm#kcdL<*yT_O#t^}q3P+!=`mX_-uYTDb{I7>~3vukaJ-F>nl3k-sxi1?&9n z)~shKl=i&4%xI~k4B2y=mi^cyDA^M=-0Z4|2;JiM1Bh9weQsmBHhNE9{5a~>(I)B! z@!3#3LrIw%b5~sWmmcfosv~-#FTt+A200eI>15q3rZ zVv2qFik2`!hs}ybKl1~lra4Z*B~p!_3wPKUpe6Z9*i;uys z;PQhAjIDhbI6|OHkO(7cIJ@PZ;z~PyW@_UtER`Y@kVmkyT>K*yF8@h-JU5Kj0}N@I|um+7wsyQB-%(KT2T|*ugf%2om)dgjBZP8G28L7A6K$^=hr+pG`V1CF)` z9e~;J8xzS)1$|O^=4VsqB1z$x2YNt$CdCSc?TYS`Hl-c|N zVoqop8`(dPS?{t7*h;0o)~75uX6j|eb}1&do;F3Tcr0rdsiuKcd~DZbR!Uy5!rq)n zFNsr>^|IkpH@6zNVj^VgdxnwQ9*B{RlzXD;En3^>N0?>F>|a}UX_x}*B}CE4&3eM7 zqyyozRr3RVVaIai@1@MR9Z5{Dyh)_?#~-HI(Qm)5b@Gc{%w{t46uI7ioP#mx6hDqH z{Nb`gO!PP1;#uQ_#T$Ga0f=pmg%!(nI69yh&wR3<)&{ddnhKMXNLk0je3I?a>m=K- z>vI%w)3J)APKKsE8v*SJQA!HL>nYmku#@$h3fruUa#1A*5gj{`Bfcp@d0%%v1;t36 zwazQ*N)?YTWqv8wnm%oR1i^_7mD4Jj!WLG$t$Z^{@l|B#i86``MA>EO<7WeUn-cUg zHf$|*Wv&WxMmh6r4t6Ig`>MDy%Dr3llpt!vNc|97YY&dQmN1^pd>)p*y4Egs+|K5% zf8In7+T=y3fxWQo9~v-*vN5%pnR_vU@X+&u7^9NwLJ=FUFkd+iS{93|rP$!hK&fJ^ z9G?n}I*R-BZvEmjf9$IbXBgPIkxNIKc08J{X47AN)j>QJ!RVoX5cIm0wvwd$?8_Vv z5}7oPONRGbA*MX?bgIQYQ*6Qu zg<&=fglfSeQ-jrS&-WG$%3zR?f+~W1&{N z-*3kw}O85NDWdLj; zUQp4KyqeuYkuZ=wI`t^SEbLGpmTb)F>0dxt%C2qpPLF|SQmzBA;xw?dHv`kMAKX>-}pWEffDfB{Y3~Y;9yYpalS>*w? zg$&K;H=yPbxOOB)#s-A3UnVKt5&1*CSdVUQXX_6CN~ccONp((x?FJ4`1uE;heki-c z+$}L<*VNocYyGgDArmzcX3yDvc!c`1C>t?cC2|c`myaG+FZfz)=rU$Z){BhqLIm%a z&CPX1Qesy?4>M$|>l~qP7!_*}1gfU0=jMs=vnom!wqJ05F%gl}T$t@g=bhmx;~O=$ z4O|gv8@s5|)PQjc3pSQ-a>Knejni%i7Bu(?4`Kl9Yx3+Pf~(xEo1}dVd|V~wRQw*q zuk+^k69Vo4lGl3WZi0S1bN5k_v4sBtV?dn0{H2zOSYn{p-Uac9c;KAKVOJ9**g5Yf zTWH_wWfIV)dF-eFVt{mT=f>Peuz;yy=YvPH8J7+z7yryU3PXpJa3#Mg%M(#$+P-5VXN*wq$3N zYFldgk}DufZ74A1Qrsj+pNjT2iwEUMV)04aiWK4JPi6UNSVEA-ZQq>x%tXJm`*lb< zQ25elJ|xumYw)F>%hX`G+|HDAO=RYt?N!SG0oJ*D$w~*@zUt#TLY7b?(J=R%_lb=e zh%Lsa$p^+m%$sq>lAI_%bbB5U1Sz-HX-fMX4N>k?1KdKO60+oKpt6{4jJ>uoTi+BT zT06eEkhG`Lre93WVu0=M{=;9dApZ;r!NM=RazyHSNl7YxCo7}Mx~QWn(4o#WfBS6) zNmCajDGD!?A=4PC#YQr=HZ#$c=AnpAkRG5_G1ClMFAv4BR~rIuSOHz-(C+4WAPAH) z>|Fw2RIbp3P^H!m^|B7+IcGX9U=y4Gn?Mgnv-1@Ji6G0Kq_z>LIEcnbe?tnRSz5G? zf5~ULUH!k(+1LKJGQt}8s#ya_#Th->!bro{n37?!NHc}BIqPR+7E9f*g@uh5+)j1J)UPUhs*NB=U`h$? zVbhzRElOJ(O!=`mHBUUV`mS=j?&25wRMG2Co&g}dozCMMVfu$GV&q&!)C42~3}X%(yt7F5X#M=cWStUIqwS86fyzi+i@{)D(PHtB+K3@*ueECQ zE_GVp4~wOyAA9J?kx^gzq zSd^yLEXeGbsq`ocsdmTpwLjOWs-}u@O!>CdQ0pz#0Lr*So4Z8$!t&G*6Gpq((IY3= zqjj<|HR8go6Y?n5R4sdWBMv?hm2g}=Qc-MQFGK)@LJJd@hbCWiOJWk4W`;wylcdgC zPBtblOPf?WTPEh74_|L9v`2qz_m3m@ynJH=WB~oK-9HGdVj|lXw-0;2G#$)p09PCK zPorJhoH_TY~n1E|`(1uP!uZ)?qofJ|c`(M-Eqs}-?m0*UQ) zjC&HmG)jwrnw0yAm6)WF0GkM=mQQthaYb40DyyKFiCJImk6LJYO5&Coqb??>9op>$ zf$ec~zU`(Tz{fow08y`+Y`7yI|hM)L=E?0l8s$TYZtwT~ zst=yf#H?&4_v?_S34mx}v_;X`TO5^K-(Ih80jw*Fh&20SnJJbiTa2F@(kc>8LI4Rl z_7P2gEj-bFH|u_}-$Q#(SK_-*F&9|J76kfNZ9Yu|$EO*Wn2Ginv5~)E*-5rXrys%RFBv(;5m==J1eUz`{x} z(k?TX=!2Z-uUbCM_R!j1W=epVY`M>8iavFsFfpg>IP|KZf~d6?W!ksKiMm05$O59; zbKK(n23GZ3m)?AMe}&9qoqx!(Li&`%<^v($Cr~!xlgL1W15%QdGxt&#z4EJVB$88E zi9`@*F;TQween=WoU-h`XfYx6ELCSBl+Qv@+;opyq=yk54y`AV3&`{#zF)3MCZMCT znIwDIlA;_s067tgHB|f8`cJKfGU-=5PN5h=^%jp4TTw5-4q|p>5RDl?4|Ldd7LI`; zch{rKei&_n$k3s3(Wtad4Pzn+4G~~N5(GKHMwS8oF#zh3`kR*D(8w{S%qvv2A-qzI zU)&$$7_+yqj{qF#z}i-=B7p*oQl4wRM5-ECZK!LUr*;PWw$Y|&?ydEYSl%3(m!hx5 z%Vb2Lwbvqazclt#QUO4@Z?Sf(^n*&`0RY6zSqDD#G93k14R!G-_3+P^&%e_8Xg%hB zhMbT02?^53pW~+p_sPVB!&2yG8IPnKWYRROMWoPFFMWIf0Mi~)a9-qAv>KcN#nd$v zvQf!z7jQ$}tmD>z{Ld#cK)qcp(bAan=TVXswzsm+n!ddWK{i$?V;{G?#;6DHGQ$JP z`BOKLBy7Q<>L6||G8D5@f=_F?L^#ih-@9#>Vg~kTD6)F&;bMv3V!ich zRkD`c>KDUXyX05(RX4P9ZqqXZ;4G-TjB&VhdO#?PU&X0}k%ucpIXOo9!3&$rv?aV4$G7{PA zy>m^Qf1QC39}(BHrj6&o$5Pu=mAP{9h9ll*DP!g`HkhjsV=>;-7}m`RQ0ctraR)%x zQ!Q5;{IN`FJZ_6f2oRS`mkp`5E(6~Zb;O-o0NC$yj+`^cK3fZ&H)=}MJo&c@zYv@> zhL2FS%~ktcx~!usOrs3$oNaWA)+5LjWmBfS5^W{C)~kI&=pUfXs|5-2IT2(3H0C|UN%l{(KgNEWt;e1-cKdPV%$%5*aO7sPExu>QwWd$~ z(xz#s?!+|Yld?)|fz;_JsieyjTB@0e$+@FnV#vDWa3f+gMvu%vA#Pp>W+sc9d1;6X z6t-xQ*e#;osJ^W8wqy8;BUQEN{qqEZ0yt`sEXjiK-XYV|MOq3NMo^x6p)FIiB?&na zU|D0hSV+dO9jbOKD4sD`dQ)Rwr@Fsrs%9BFnaczoB4=g*oqLX!!9-qSj44-_ z9O+;UpM_(v?k2KLtOyrreW3pFNLoSAKj;4bTucD14eCSDKWQU{)BTeF<>641eJw`!cP8mvFxn8^ zJqdEBfr55byZ@y2&@~8J2pY_lxI}Lg>!_MdkR+oAJ7bIJSkVT=gasq^$0o2_fuc!D z)DgSx55Zt;a)IrQg!eWv;nfI=9GvKL+Ea-pwW588?jyt6t2Lj-!2DKBKrQP_>?QX!ybG6Dh-*4F42 z)=5hc0yXPQuVgrO#Kzc2j5LT)K{SGFw5F%iM|}n<`ODjhq>3{#2fthz^}fy7GCQ)R zK5UMtV16Xh$xI!ivr8IEAkqEEjEunql1yeF4okzCk&Q@gutJO`rFx34)=3`<5$8o=AT+_EEWtn4avYyg*sN<<>m^a1R<+a%e z8+{IB(6~xMt_nJeU*ZI{kz{opz_WXxCW-|r0bx<8`UWBuT2)JYK~(yDEdGS`>S{Uv zzwG_ruWws+9|(QM7;~-fckgq5Rh3;;uCkkUh!fjoyCWc-CLMk#MDU6b>O>-sfP@G{ z2wu~n)9?ll5si=l@j&-e3nBghS|W71oyKnHMi4s@YN5n-TxGjlRrj8=_xHQz9D|3? z7;~-tJ?GrI*R)dil=r;*?(^O2yVhKDjydL>V|?cLv8b5P;Mv|1bY{DDAMV2$bcXVY zyJzIB*B;6HQ*_Ao0|0`n2}hh(a#Bb9xdP_Q6|iFg>ca%rR8x;6(aQD#0%3kk*4#Bh znWqk_A}U53@#;>Me+7wNt zshYyT?ZE}zeMGcE?zq3?#7weeB+39HKsPQAs!Qpc$ZcMBBX$yi^-cBx0B$5K7Gm!$ zado?I(qmcI%nzB1o&p$SsF~ClB;x|x*l2ekhzlyW~6o|gv;h6Z{*_#Azn;UF{WI8pnwR^NcSC`D+Il1rs$tU0qjjUG_h{${R?mT`evhYr+gkrfU zye1Si#zj(M8PWuFg)k|1LUkHOQLHS71u6jif2C^epqU%ZJy-)#n~Y{(8-1b`(>^)y zM&RRkk&Wg1a(a-!6yI4y$!h`Rq1!~?ydE;qJgq?%cp*SE84yoW5BmkRYD}x~A+Qma4f*Nhn z4Ba1Si(WH4=b%UW;jI9eoU4`+q@daE%zN0K(d>B|4=#5$E-p>RqiajyZ@Fvz;s7Ho zh_DARB zn3b8+Q)P^>B~K%CiS61+bdl-+4d%1=k_g>lB^hHs?&kwh6Rw7ukSB@OUao?wKXnlwVXI~~YaZR@9Lc?#avhI6)A5j)z=-is(HtPz zT27p5Bn6D+MH>&U=X4XB?i5r&2&|t!So(F$@#GsPRw52P>)4!m)0r%csdoJ8de3-I zJl$7Ljp-CKtv|#;&lmY`{8#=tCXk_u#XZfPp)@g(V-7_wd|Y=(mIy8l+_8$r81sy) z@QA%DoO@-Al=pX^TfVJ2HYY=i2+=439>-W!Ckt{1qm8ACM0+w|)Lc`474gC2a7gN- zx%ehcb4dW@vlQQHToFP0J@!;ofFPvG-gpmNwD%z@bnD%cOVZSmO;wyIOzO0G_zcM1 zUgs>wIsAID&Bn4j4t(}9u5oY67_KTFsY?-17&%xJPvd3*J=#_YCV9n~prX_=PQO%y zf{+VT7{@gGvv<5ICol0%5t!cw53 zyjn1D@eo;s%^@47Y8=^4QBW5pMwuL5J*cV5u8ZX+4Iae^xd8}7GaVy_d-+2GDA`V+ zqDOBgrr?Pn<|Q>VNn8NvwzHWVT_ zGTAj_OolL^AeV7kM)2s);9JDV{H8TE5Wq6%{#Go(|7oAaeW9lC9B!v&eUtFuE2ds8 zmDj))fnaQ0E!eyoO`4xnr+BD4HcxVKzf+-!H3Yup!ZpPga&_)h#ux2cbvE~~W#rf= zy|Yl@UU=eB>>)sJsS2i)gB+TC>Uc3g@Q5M~6Q%K@_hg9xMB!U-87Xb8C`QRK0f_os zX=2sjj6sV`!a@us26zsiMe}p+?7P8vT|vqib2=A-7UZcZnPdw2i1pmIS7W(1e;n;a z+dk=bXMOWsZW}wLY5zreLj_&KJ`Q4R*by^1E7$-1Po6+-bK9qAm-BM6*1`KG zCSrbbLq31(IR*4X0#r7Jdhfh{S&iOjqlY!2icSLo5{GrN!RgRf`fPx{6o>$v>kmXQ z80R9Hhbv6VEnFoE_JXJ^>oOaY8`G9pJb-1@Z5yrGB*ExRVZBeh{3an?R>a7qLgEbX zX}NHidYpIsGtKFF%1DNF0I(*`v;C-a%MP;z0igqI@*XG-uqYD(Kn6vdk`O=zOa#DC z;ui^*R9BGU9_o){kM^loce2c9IVB@fw8#mlv0a8O&HK=1gCSH7PaUe@JNWf(8~a&` zk7RE(nJQM|BfuP^C+uCrT^UJ(M>|}Hd2S)~?QZK$hN6vBc?deAQM=iwEmc_Pf=gJcZ?e#4<8vD3MgAVZqM6|`q86?zXyc%h44iqn8jtR$< z*4dS!&MEN5al8PE*)+XRaH&oZDas~n#Kj9z0f&Yf$PaA}3Q&E1~7ckV@Qhv!R#nKqAxh@3WWv=;Cl~61b*-aQg5HgMe@b zO(i2&_#sw7?y4?8#00dw$W=PRnqEKY?Jiv!0rba_(jDbVemQHQNEH6^%%N@K|`R1*g+p@BQw4 zxAg>K16czKYU0w6NC(|Db(xcpCh=(j0W{TMtRR4UxdY*`nr+b2G-goZ}I- zK#GVbQeHHtG)6Dk5dbU$o=b^Rw!Ek~q3PtVIafGG zJfXum0FsZSQk2UmZ&#+&$vahq{`6d$Y7pxkd}Up#r6m91C?u)@Nnf+97~pcnO4+;u zXtF|Lj(~*-(4bCfEGrKH8Z+cpmITqC&g+b3!k3q1&K;NPdfo&8wEfP+F?>}n6e1w! zORf(@vd1EBkfy>^XFPbx|8euf-tko&U(b9=Fo@k*yc&An=m{xq9&StzTF?wr@siH+DlF?-I2q44;)CD6DPzNYs&(8L;sHemE;JE}Q#+su}3l5}7bFE#H z^F@=M0lM#rfn@aRi}Xl z35)r|&eOM!RPiK50<4oJY)n-yb&M*CC@m!~@|=ZD;)B@^aQ!cXqom{PPIEB`qj(C? z&c?xPXY)sg)1Nca)SJI*j;E(2g2_JkH3wJrc7P3gGN>%Il*QAGr$DYM5ddOlAEYR` zUENG%qYGCt4^TZn=YzLx=-in(KM;Z@MNhllg?#Jn|1`-v?Jq$&kYLIGk){- z8#s2a^>3;I@(63r@_*7>s3V#l&^d*0h;egEgTae-T+kAMGg&9_?h(>#L}nJ$QOw>qW_7w6WzC zF0dYI(uRe)EgBy5u`hqC*OGul6rYmc4u}5{k*6RD+SHgL#}OFashiD+zw-w2C_C7o zk@n&BO$5Uw7O%n+AdqkDlfC(M#29x6?xr41lVU|?uATP^6T0<7n@5n+!Yxfs@W9%SZfbI8-dlCwWy zj%q&l@e+M=2`6^2?_Z(;j86@IQC^L2j5kSo<~zM8#t#mp;vzn1c#dq0$F%7P#zs(4 zn%;v_dPGD+KXDB?tFA(KjB#;cMEt;VZ_C+)F(?61 z8CMtPMe&%9RhYrg0i486s*9+Kb}(S)6W1Z`0wEYY4|t6TETqrVNkJw&{#n=dvM+-a z;mY`e&QKy^71NjTwi#x7@)%bHrwMINB}$KwCO#rA4#l{5M6|Pcu}nG~l`hF>Ahsyu zK(Q(c=P9CW*b~V`VrbI<2LMi@CZfU^toBP4kAvG3w?J}iCV!2&kLM;Ukabx^wT~?+ zHCea}H$+4uLpbH42THfWoyofkJsm`P9}Hf?77h;)S=BrucnB!~V4_e{gsIZ=v8Im@ z)p;_m0j6}}hQy7tSOEts!H``E$!EE^P5_wS1%jf3Wsn%y88NcWlSLxJmi!~dJPWsQ zbuV9%p%E78T4F&s1D1>Y&CfP`zt zfVRQR+=VC7Zu`P)Z6lh7E_ ziGbN*@_!0ihkzI9qH>txnahLx089-Z><^N35r}w#V$@it@W5w-{tgxBgyCa2pGd2! zS(EtyGeyvpgV14~TC7IrQb^OGwV<07FD5=e+%v~&F3W5S1ZW}_m8}!HKqO*;8UYR- z&4rYVDofpOp$nuzeR$)*IKc3VKnj1{!?G7bPmonq9Yd1C0Z7nf5dsK3%Q%iA+{+ne zA=RFoI3yMr;I=z%Nr=aB6hQa0Il3yKU6!EQMy`hN^hWbHJNG*9 zk&#v=Z4bmRj>2Sv7#TB}H_J4}A(PA*n>%`DX{oD7rL;b?J8XP%LK2E`7DK$&G$(Cly;UbCQ26F4ReSItWcpEWS5H}p0LR3t0A?SY=>Yf^ zb)l`bK}-}LX=_c7xJZxI)Z~xG*ksELJ_4oMUoFma0!Rk^MHuajvO|!jTvODfU;TO= z%W7&A}V11sf4^aREwB|gl7!@Y+)1nmYHa}pdScrPzkgX z<0Oi9i5_B*EdgQ?2}EmZi!Q4=K=_zFn%gT!*Ps=k3ARWeFbW_;M5I-3PM6|k&IuJe zvf>;-oFw|>1jq@fY%G(3*B3_EBYFs+cN#qqLCX<4DefdO3;ENdql zkAx>75S&C8?Gbd3S3m=@Ks&_6PJ(M#h(R%U-io%$b{QHn5bU!I@;>dVqaBif5JsUI zO!kusG05qZr$jY{Qlf~6h~7On(}Pt}3$8a%K!|EZ>qdm6wN&yd7>qSwsS@LW zia`K7srGbRnCd$J* zts*!{jL>_dNbe7>p7JC~wFkLBsh-p$l!rGIa&CxFqmW}TOQInOg%EDL4J=hR2K`1I z9#GTNBl0~rZ1#k~C@Sz-W)Y&uL_t(nr60Pj%DAe!s4aBGRcT_YhQgXAr&a11>`R^? zAdArYwGP^Iwx&EN5{O9vD31Ys9K^_-hTSiA>i^xV2C+*&@%2qq## zxk|sjEhWp{vPrHtK!0=u#x;V!>EaHs8FM!nSEsMz*x&CpIU{pToKucIJHuQ~;s~@fs=VnVfBK_)kI}<>cn>(d1F{=^ z+*o`hU9VBVO+q$4Kplpo9D&7_RI{o(#S)<3IxQpE&1ngyIo6nlJPx554ryKMKieb% zIGspaWhALNsf)}wf7&vuA0ikicL-e2py{FlNuP7_Pk>G^B6YZie7lG^rJEWh8a}Ag zeLu;SR!af!EHtqXj^nHf?9?PNC9~9j3NAtVwI#Qd8V0R6uagtz_QqF?nlhAM=gp}W z?dlPx##N6eHq1!}NsCmKH0R13Lqrwxp*?Vp!u&96A{ltmH}@H*kl#^Eq?^4U zuCDjZJ+x`RjPrU=lMMk>O(3lq7=wmlG=ir1X6j>v1ooK0kwF0hSe1c+*qVt}L^YE0 zo*NbdnMFCx`bd?u@|-HJ@S=*X8Vt!iXSDM7ZvHT}Vv^-xBY+eug_>|~K-nO0?pLkk zRS}wYBfxBt)&qUS}?ht1%q)?gw%BBx$N zLLC}BX__rR)+W+ir#6_T0Xe}$9qJSKizbY%75nV3QJ(L$GVv!SOKO-0vJTTiXO8iDls@gB>) zadBV>I$hJnH#o;rIz}1`)Vf!|H!xYE8qH;pG|0=OIbEqq8`7jr&PdYEUh^|AGJ!>S zgkoX1xOyq6J4N~BzAb0twB@)Y>sE{pAIW(XYQyO%7BkGpe##wB%;9pGr})ZcIXlmr zA!G}J{B^_Jc9J-8T;%5L&vkfE!W01X*c2bmnRU8r3>he;^fSxv?yGW)pHk`sNf-!p zU;rUnLsPWoF9K;IkO~T$#tsrW%Ok*0AOL!}gh=tZG>HHq7;=R*g-JWHT~-d!Yoz)p%5s@fS4l=cYSZPB3SMpwRoH4Q_I5J;@htHcuGnNG!N z2gn_*)h^Id@j!4H3637clDRL;B@KB<2S26Y3F4sHj5&K`4Rtp2kJ14x@I?7babZ<-ycRh8MUn) z5Lwku>fy+U7AcDcr|OkDd58$879k-n(nRl-j_uUjp#n$49)ZH3x@ue1n&yJJVJ8BA z6B*1fvAJf}BE`E>jpgUcSjW+lVyy#KLN0si0+Wx6R3Ay-lq+b(S-ik^A3p~|Vr~aq z_|wdj?uwEe!VFL}o0HHGkVS#^!ba>k6af3>Kk+qksG9ccP}2Z&j5|R-QT5@ed4S`c zfRvfOdU#d60z^!w3x5WDR2U@Ool9yuiC9L^O9erNkwod`%8s4X2>SU56WQEBEhR!I zIv}R50tjRHa}`J(vUam%DkuyebR zDw+w!N|W6AH+`@8wty>h=z_=yMbdF`@8KiH7Qv8Lbv#I}jYvCi_KU6Jcoh&MltdZt zcS`WuL{x%-vPBR$x7H~SSlmZ zUHHz#P;y5Pk|mq4gY7kBfC!8+6!MX&4@=1k@oO8oHz-bl#lguSuPRt?P&Y&qXOEH1)@!O;u&JQ-t@v z@$`oM8=j|sV++(?%NJ}_p5fSPoFjd6QPHM$ z(g@foec=1U7#9c7?#(xEcjjC87NXK$jdpK#((RKx0jCLFj@|5NE(1v?M1TZFE;8A= zxuxwZJb3`%DHfA@CbMUmfAnpnUHynr*=IR`UTQN?LkwYt9WhPwNs;LV%>WkD)1H)M zz>(yLy)vG+3ut)(0r@Hrz;fRPBXkI_qgbpqPT_jXPjf$I&HTl?c{4dY7th>6NuK}! zTQiFd#nGwP9iH8tYY29bcIqO4mC{QsF`b&pne`G5E{Rq5C%cld4r2&A^OPGR5|=>Y zq<~{w-B$GxaVZ+7oCYzB9uQexsBe%JA+g-4trFCf24INJu5K>RZrjX?x`aIIPLIQg@Arh>_u7wg>kfwun1XLy1cWGXsW? z0TH1eByFyJLyWMq*-1wP*LFHU>8jB~S8QY0(4j6}LV+t{0h;Inp2-n(qsAyA!2mP> znL*Er9`?dw%N?9*u)Q$P5QE85wN8edl){_<_QG^422O^1o!j|qXVap$aM_MLgfBsPzLoooyjM+jV~e!&&!0K!fdJ=%TKMFxROHnm(BXw_27 z!V|_m;vkGpRqpmBf+mCKQp5w8C~Y(q)S@m|;h983gj-K4{CRX&c{&b0FJSV!po?+I zXT&}@*~{21rNlRxgmCrdo3&O0Ihce9n3lLltYS^a)u}s7&7ZpSG@#>znN|<9_>cgc zk;eDsnKVgKcuXy0(j5C5kZV&o&1)HOqQ0wDH-k$)x|EXz0(8zIJqefiHArHQP)J1B zokf5u#@IYO+MVgD(t~G^928wSJu~Z;j}Qk|(UV4psnRa}wYacy1GwQX4tHGzouS5v%%@9b$Mb9cGue+HY6#|^ zggmmSiYn3`N0nIuVuan9d&D(#;r4;Cxqa(rze;f`5XLMg5XuUpdt1}r+q;JcB*qw& zMb4-5&r8CZ=YJ?Iq z{wN6BGp!vxSb|JBMQ5))lG?QwTnFLFFndJu&PO0%q^rEHGKM1_zJRlJzYP*&fppL9zu z6r@WtmuJQ;*C)0cTv)^;2wnuYUItJE9jhwUKour>%=KPCTVfOMoXIGn?#n5D=AyG)9;KFPKz?B%{YuqAHA@Sv5142dyn&d6s)r zfutPf6Sb^_1)h!;`w|$LST{$3oXjE~JmjJ+<*X(>9wO4tZ4M=$V(<7@QcV^}gT!#r zH1*t@P*_zyEdUtIkK)6D6ZRbtgB5b!$Y-n`OcD^BNjmd}x?U`ou<1^Pwcf zr89faD>-$@$=MJRgbc%2^Ce}n52#T zaTDsSgN>Q6&i?8-iU)X?&6rQ6I95*p0H>JkZj5f>8q%w$wY=ntkvU?rZozGxCX(7$ zjuqsjP!Wv`TvFM5Q9yHcr!L|(;3GVe!Py<&Ro%(WxCp@!nPFBr+3wSFD$Afmya;+ZE~zd1C} z?k%=Bz2Ev}tS_2xzT7ti+G0uhT7sEQg;DYPMtcW{qF3sQCtB$)r!twYiSuYEn&2HaAl>HB(0{ z=jNM3WO-rHQ^4No$mQZVor}BLogHKPwmb9g)GNlLFK5fV42#AHno`?IM`aJuRo#g@ zgX<)X!nDcuDgs!}>X#Vq;}MQn?`;?8ncq=S!4GC1Yn8}0>T)N`S#6bZ4Kdh>)Q+~O z_h=_=C*7_t4m+zmygLUb9NM6!5$+f0NmOHOZYyk2G7Qh~ZI#if6hc*l=Jy;_4X7+< z3HR|BwkiT5p@z7EWY-1OG$d?MS;QT%u%;sDSLZ8|=mHTL4e569BCYdo0$Y@|!d!pYaTe;2{7q91{+Th+K`n1rxQGTuKo}K8b~70>?GHm2 zbr0&=H0t} zBU%x8{z;L3mmoxVQD_+TI#yC-d;@pYtlBL{9E|qO1Vg90);C`kOUI6>5xtoMb6(Vu z>fXM+sOX|V6dILErKreX`7iy_WIGWdph)_{_mm=JPfkU);C#M&yga1JH06~eWJ3pW{KWY!x$q`B zz(z8&0Dy7vnHGT(Bmt^id&p182)Sa;2KKcX0U%mSf;A5%Wt)#)@L046s{wn@nHxAst#|y zZ%cHo;NY0*39nRqEFV;F~|dxHF8$6(mEdw z1Z7{2&eT+Me5o@q7vpjqxi^>o=WE-G6BW7k_>X>Ik91dly>L|C^5tG4@sp%; zT|RzJX4{X5cfIkmlqbUdEFws*nFzuUAK5pQW7WsjALq=cOrGP#A6jN@ua_Hoy{+8T z@CLd(EuW>%|G3HzZ48j|Z+-+m!&AF9aKH-oZ{OC%*E#n%aL1ATp=G|~vp+J+TibVA z4$J59eZl4QOQ-nR4-pIVk2W>Ae7rHV`@VN;>LcJODN6CL}c_)DIxZ!s9yj9=on*Jm1lcngq7pr z%q77O5o#@gxwOb0G0lh~_6!#kFYEeYPy!|O06jQ2SwH=QnC*y_Z=WRAMtw;DJ!?ex zg^@P$E&k}46mq@;VkZjHmAr4hmqN0GSQF_uC;^nSxeP4#Z9I&WcoXxDwixXVc~IZC zAtHYDc4rY7eOR-j4L?6`uljP|RORx?M&WL`Z~axDT6*%Z(3q6WoX)Wn7DxdRu{+zg zVFOWmwQMmO8f~~9LL&5DnI}ag!AHu#^UOaUJze|-5$F~ZStH-Sk?o4SIuY%H3fWxDE!fHCdHKKC{;=Dpo9-%j941s7EXqocOvkR zp(REJlDyP&XYDsLo2}ym0HZF(Ztjr{ixnSA15}N64 zpL8Z?<#gi|laBVn#;XyKFrJQxB6vJcie+fI0(3a~8MlkzW-%O<4)$VrOg^bARUzn+ z7J0}A1j1A+cMMMf(LL;}+rvzSW0h1KxFj6H&ELQhY#OXO_B5I%#n-0<@(42x_L!ZMjuOC$Jji=v!_ML~B~YOw3_)>z%iJ>&SRj`%L}XQ!3bl~2SSZ)=%#&>>RXKBWI%wHGM%rA^ zQHpKmpr)Rmek&mmHQBC%h{kROTI@2tyhJcIB8G5;Lfw5oA1j+B>X4jyJh9y#oOw(# z3yDA~E(V8Ln|f#C3t+OO75yX=``|fSYQ#Ac@^N;P2^yJ+ZOLKs9#nC2Bg}c9&#qw} zY-y0UavfyII(7|?2x$^y9@YUW={X!+t0WCiSa<+ikY}ps)Pk9;k!v|=P?jcp_i5)W z$Wy_`@yR*A@njJz!nri3sRq9+j%jC;g|q4Izx8d}RQ ziNpVr&NPh?)R8Vk((}1MuEX?)AVN(&!cN(Rv3>5O#r-j{vE)n<(S)x4V=Vm|bm?E* za_t&Pc`lB5G)NP{I#=fv&VJsw^*%?RY(#1VU?QT@2mZky>UBDLK9}e6T)vRy!!!QG zmopRv1!XRAnSxYmrM#KSfr$8z{y@I>_&mp-%R5<4hF|z8EF~VWsPR~f%HbOoEzr-G z^QA;SDj7i$g6IZ60~kFs`-)%;&yZCBkN^kuv8kH!Oyy?E)ixd0bh``!2UJ&b?k1|}Jaux4Ypb=V6V zFNd5n4gm9R#>MApiU{PSxCBl)j{eG1=NAwj;#)bEsXYPYgU*0qpeUDcKwY?9N--%# z{@K~%N!c!)vVB`BC36X`a>(n!BXAM%5pnf&_c#dl0BMt^9EY((hO+?`y_5q<5NZlM zKAc0APcc*<<;hCsn!2qZC&;`znP~pOzLP4S*8S2Ab7Uv0P0!7|EoD&({JVirhFR02e0L5^Z zllI5a&WRnWNq^};G;*v6B(V~Arwb1*F|iVy#2-c_qrq0rBKts4k4suXDm4#_{nF2V z71U0X!Lp(B2o)7Z{~{vLbWzbjh@khawdLXAVT_*YS?YYO0VZvD=K#xL9pP#vG<;2p zq<%|}@;zQlq8=eC9gFv-)lx3S}@p&g5yBKv020F8P(Dg;+2!iE2tcb3M&g zam80v6G^BtIWhuf$|R0+a?{T_J;Y4tZ<$6s3DNE31rR;7W%&J>Y?Y2Jg0eBGp`qzV zhRLMm@FaMh-lwicvxpGU1gH~|V65pUZqLczhxu4%3!bx`#G4Tog9HR<{F0UP41n{R z1gC1qCUMgtSETt27nn300BY=&`KsiDcc!7Q5H|2cQH$P zU^#p+YV4=w?&%lb4|zzNrrFd(l-c9WGk#&!e@I1qc#Dr18{FX|zv34n&_W+bd3GmF z`bit4oRb{|DngJnm8}nQB^hXL8zgrGE?+~O$_(=@Ai(Yml)Cc)BK_I#dG7?bcaJBZEqSr{d|08358Bt&mD&mP&;* z&6tRkD*4ha6_{i3W(C6TPv@b zY@26VQ%YW?aY4jPD9bUGteN`oWo^b-9tyTIOl0@+K%LxDCr@e=4k9kmn0~^eHS^&- zkaNbxB>u8!nmhm^5+d#1{J{xu5LD7tWh5d)fk^}j0nH(*)1XGTm)8TM(ly4P2D#kv z5dKr8qBivIPB$4y8V$9>z$iy2#aBrkEx-fp1FbUl`A)9)L?T&a?CkgeXQ12?@h|GXdplM7|7RK(Ab_1}))t z?Pa2LNq0|QzLVKvN~;Z8@H7#+P((zW5Dk)nDnh85vOU=*8QmF;HfL}heS+kv1-fnJq7;D?poze0S{@{7Qtj^;sC+hRda} zLws+}f~>!oZaygK&s;bNzvuW&lZ4qMzMcQmOiLjGT^pJ>GH3-IyH!LBs`V^Tq8hpjESR{vTlk*KJqrQN<>6BFiznX(lbg(ehm5s-i%!P zA~L~EmSmn}W-=9N#e6_ayD)p59bm?#V$+-ZGY0I<{bYl@SoibKxqNX}YNkG2L_H89 zO@)Hpp-K?QpcN1Ot0KZh>8hh5TY1kR;51<(i$_ktmz#X|vAF-aJeTM4MJ?whUw*N} z8T-<6DBE@TA$i`EeE#s&Gsf{;-qqrc5ASeZ_A7-W09O#!3y(%X4=Q+zPRn55TO!U>>w91-dAoB@MG4hk>> zLr{hSAWgI>gX}P{8Z8kR_@*`8uA?p1H&10VVhpGG?HJ)BTGKIt))u|Hnl!KM6^cqx zgw~WuOz%E=G#;lj2>?KWCG}3q52~aOn@>_xY-4Bo=0Wizg$+>=nAoafkhX`qfYFJC zt5zOR1rL(bza_J8`UqL_s5KZs*CPf(pr-C29nnM1>b*ow0eFbWp*cjj$Sbst=NaCF z14M)g-6AX%&dhzo6en-Y5fdI7B7lXgFIxJWQ)+(-1VkbvNtrA&EXeEOQ5h42IRqH& zrea%^DF>=U+4}6`jP4<~(LGYzPwA97{w8aS08M6=9~?8hWav{DFEfG+QBk}?iM={X zQfD-fB*N3+AhY}VQ>3^-g@U1sEyI660TZ6Mdq5UR1W-i^QzNXFQ_q9JElH<|l`!`T z-$D_ZWY`ldLdYSLTy}3`gPnx{E6u^S%dnH>xjWg8Ifg{Mhn^LHo^(98oJ3FRS4WTN zff3RKO>hYe%m^cxL5*~Wr5HoRzV)+T-PfT~xj`<=gfTfK(*3OLFUA;VI{KgzUK|4e zlDS9S-Ax)Gjv=CeFk}OXIG^Is&`K>K4;7~7+J=t^E`lUKt;R_d#CFWW706SVOTXF}YF)0qT1z37c6-> z|0Fs$uN^1rOsYbX627Fw!&gM1CX#$CU}#2S7RRWujK54+XRZk%6KE(&Wp zdJxwrzl7ZGt;yJY$`V4I*`X@bnIpnGPj}K-gGX8ATvCc!s%!O+&y)(0sf&;2*gWpw zwk<*rSqg7F`nl2EShnk6RnB9jh!nPYqUjNpnTXOmfMvA^j1fw|l8lv;dp#J|0|Lhk zdEA=DB~JyF<|C^zp${A59<7;dF%YqZFtsgYy>B9-z0#UO7=;u7@gRm>Y)!-A^rK0g zyM!i6v8nZzu##U><$Ax@Zc&1CxF&Blz@Zjek+h%>JB2ZNH~;~nibsTmv==4>i#c=w5uy4J4hgL9H8qVMzC~=_po{~`CkO

P*yNSauR=^dD;D(KL;3yKTV~nE&Eqy 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%0AQ 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

6S|{5zZ2&8l&@YG&M@tsG5)fL`7&R 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

+pen@vX{9;fWQKcC-`eb)=5 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

)E~N=by7F|00#96`R#h0M5E<+SyF5npY$ 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�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

#2sV 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�L3TT$|ann9j=UgYAqu! zS=da@DAk3h^9+Y-o_Z6Z91^2_cAJKgSHenDqw56$b07uFpNEtaoQ{m?G1i`OG=2Lt z;*!L`4Uva17SBtlzEpwW4lDDJsQ_WvdPh4MIiv>FhW3Mt8 zg`v;bxzT2X+EGsXcUj?DqlZp_{w1`}&NDw&a{ctlTQex%KKgQ&C*?+9^J|$}RH#5m z{Cu}XZqv@`v0j$Rda7E`fSmIpON7(!s5HK~bn5lJ;9!`!a3QB!zDZ%02IzWem>+Fn zuNe!APJ32qc;$$F99zHfgJIHcRLA@RmWf7{sN`Bkj@84nMRVrcXN$eN_Y9*0#O$iD zp9Z%eq5Bpj5XEjxJ^`~F(n;jcC4+^}kHOwCVs;$g7X^;qILps!?zR!pa1#X-#f<4I zznVNwFiq==!_VsP+@X4iAW^x7(WyQ7z5Ig`kZ;$78q6Gzj7eh^V~z$_cv z9lX{R?dBj>7*7HDFGCBwihTjhflB~m&@5ONpDf(_wvz3*ykPi$(XSYXT5MYFw9rFP z53mttj?GU%RSi&)qfgKJ@%DEFKRUqpBs{&0)FWZDR4?6yLZyO#KO3iiN_ICQbfZN?QSMQGyIn>d zb0;XIA-952$bC7SU%G6wSW;}=0bhPEC6SIoBl7Za-mn(7VRZi4_cICTvJURS$jr5( z&sDp1lRr6wp&e=Kq+(^hDJ#kXcz<)h z-wCll*eT!6t^K-RuDRo%!~M~;WEvNrzme4{QKb#&un-hlcG`&XMPlj3(*cjp<-(eo z1M5G9H=2`>7YfXfHw3pJp$xf*sH_t)QSy5xaUb87eWQfNP|vW=PSwW({@YU3!HbCO zE=TkqG4{B~z{ntluI=k^f}rQK(4HniXR3$KNqgq;KSkn{jG~mSrB%x5LT^dU2bSD} zg{Wio>X>~9Y_9kmjQ`;h>YFmrXZV)~&-J_c5cDP}xlI6L2hKCgYddyO74Kc$fhCA` z9qOcy54iH)Et}HG#g+r?o?L{}?PBmwwSl+~Q-(MV##Aa{8tT_*L9n+zDw8j6A1L5m zwsKn6Aa{PKx$2795X!_B&w!OfB43xQK;-#R{)-(y z)1&*8ti&6(k%F+R0!&G7I?G2YlN7Bk)9d=an6j9%`CsTRjE`&>EBS4P?5J3Bq6(is zg5xdP|H8CM;yyTN)Mx1pkyqK!VnygBuZF6=@i;!6E0VW7R$>u!BXY4QtWU5tLw_IQ zbvC52;}Tz64*bUXbrtlJ3(n=_S^5p`efsL4U-!n$*Y-iD zgr~{#T8omKs$pS^8bX`d?4Y(l$2BsQGFbQiEB?NYSvH@drI_GqFVG=w7d*-Qx(NCi z@cJlH)emnQx^}xBYrY)Z-%%IDr{w$@tISDEh9xCa+-LkOtVK|>C`O?x*Hlpc)-Ch4 zj!#I`Cl#gRyw^s3lwzn2smh=4QgZIwUl*>aW)=@!)s*}+$X}u@5pezif3TTchRgQW(S)ze>;5;g(uZEE1^@hf7zmx!J+L^8-wqG9**VqVZdcZ?L3ETc z`iR5DrDvIK_~kH@pSDD(6^}_^>08M=dLs(pZiC8~rdE|MeF1OF&5cGr8~#dfqNS~_ zR%`gpO#0`zFRJ+>5MR}D^GDu2=d)=aTaAPcI3}L(5>C`J%5Wx=UP$iJt`7g0#aCOd zhoeo(^{5L{4$eeAn2**|8|SF?(2~^S!yQZmZ2a?xGXCcaX!>b$$IrF$Hnn&zP2 z!fSi1SfZEkRUK?X&j}6*9QhF40ZF-#^zh)V1P>5!EZM;ldl~mu&-9V$qvudCw!AVLjYPA^$kMStG z>d$llQFH=}Owh8ZsT=?fWqvIyg)FfsO3vh zlxT}zsQsK~Ca%mcotNqK?Hht4x;0F;1Gxx-$+P`JA&)pC$RwFr(e0imv!Sh8F_b478eyH-|J~{d=8VR=|idkj@J7J zAkTpIrB~f{hnlb1PRpNca#nBMiTHXpPeISJFU8~%{M6C!1nrRE^l;vkoQS2hDH1I* zrrp~Ay-$g!c}zB4vB0!os zI9+cp&o30JZ=eLT-l-eZ4Y89PFYK3m(-LwYllby+vAd%mGo{PKi4W&~-~Uq1`}zPu zhU2?d;2FQsl(Q_0PgbyL-Ha~2v*!5O)m}N|P5=}G$Oyh6C#N#H+Yh}%osL-5t+d;d zB|=s#Yr^p;1z^=y!VszaiE1GRMcX<7Fa{oLyHm;AX;<@G0y&j@<-a2XggtMe11;Tb zn}CGWL`#XI9G$g}ln3T)Oo;+Zz#ouBPVdr`ouWFix!O8lyl9UdH* z-dKi<&b5Itk(FZYQt8>mw>PZ>2t)XCn@Qc0(Qj$1fTQI4^7{~o%F%0jKWg9}Ke&AL zVk^(UJ?9&3Ul=ovZ;0!}ncnh`J2Ah6hU9=iw>;)fSW9mvq&eQ&@eTyQNX5>(ov$c- z&qtOlxoQWA89Pc3pw7<18&d6*V-i*#YBz5c$}Hl(tu9}G0KF)#8}wDF^bjNpb6l1! zA>Cqx1LZrLiRT9ZVfC_dTw_s+qYHdVzrXuz?i_u#{nggtVJa{MsF90B zG2gs#V_DJr8^~|<;2g%AcF3oORtt%4xm^+DKQ%tMHB2+GTjf%rlVpa2xl(inr9h2^ z?)qs_;_&KAM~<%(f>IA!1}_tTjgoD9e-av)&anZ`Vu;Xq^;TynYcreKn?o)MupkIR z9}X}s`sr-%{Jryp^$ssx{SWnn9ISW7Dx|yN7pC4SSogfe8TV-98JLV!7t3KR%*Dfu z*+XC0leqP^pe4SLmXb17lUp;68Z2QmU2H-RxBrTD8Z{h1--Q1@ujjVaj`2K(BEfi5 zehV~15!cENpAIzBmTc`j7}_!PE^Q{`B@rCP&+8Tj_lTv#esC?`4gS9O_6`U(0VM=z zncu|H#DLxzm)g;-x3Y7? zF4j;!`}fwMhYl)1@Fh|^m8@4a(4jQiXe)aEpFuFC?Y~IsE@DUZM($#_$!;VVxZ~6Z zGMBoRdYO0xZ+z9r_rCs5<7rDg!Su6s<EKmgf9=E@p%-Jn#W&`BY16Ri=Dh+M7p z)LpyMB64g1a#aAE%uo)w7XUrBftUv`--Oq$W7_~9&xQWxkoe~i^wm432B;j&Ff&eC z=1-ajV?n5rnVlU+JWSb^J%k0bU>N^Ii5ZSYLUF7tJ!4Sdb|AISG09b=mg}XH4bFai zy`^Xvl^WjqsN_CmI-9O#q$elmk-=@+MZO0yJ~WBklOL&WD{|r%-9eZ(RJ;&6JCOCT zCwouYsQ-vt^fW;>x*U8`Fu}B;gn3cdlE!Sd&c01IB;->8vT*EV9Gw7Oy5PAwzBZby6tAAn9=ym^IVV>r z?2IXm>%{}c8}Gmwkap234ED)Qgh-IR9U$(#)e19oFmF8Gj1FzV-JRPzMM<%IOP7Fh z4>G@?5B<9J&lvZ$GxV6XEX=4Swh!wyem89DC&TOG2ilGF9~OR^2}nU8=g%PwJ-y~; zis^+=4Y2B0ZRWb8x=O)Nm)%=?8mqi%({UsxNQMHoN$qw#VSzNsyB|U-t2q62ouT#C zn9CGkg4lPqBnIJl z_P91=X3dAYHac%8s1_82!giu>nc;eGxx|W{ed=o0fw18{Og?{eD8B`HxDixzW9V8} zLSLxbHWS;51k=lb6je=28jD6t&F;@TC+<%V5FXKvn+dPtQbWwFK@j>EQc>b8dmah8 zK1?8l=VDeuQ}sky16x#4Q2s~mnv+A8;U9_O=j?aNEHnmPVz_orhN^Zxoe_xUSqaA^ zyOqGg{rn(95pP2pj=1Uzv$5|`RBJ^Dc!#cdOC1-5SJMKs18nP96`A}=@I36FV|I&PVvjyCpN7k!PH%L;lhr65z>YbSJ_p?wc4otdAhtu=o132DgbV{mvBB)$T5a*J{4A zbagvYB{oJdBwWl8kyb z+^CT6OeaaC(OjUBFs-75xlaVz#2UP?ueBY0W4K?3ULpcvnC4B2jYT-#VN);$38&lb zK>qj8;yvA0J@z;Ya#aJ`PRK=s1R0Y=78mX=l>%F5+d1;_7|<{kai+2}AoTcj`UcOs z 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%0A`RFSW4v;SM;rJO1t08;UdsXy^VO;mk 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 JQmtf-{y#Aa+35fP literal 0 HcmV?d00001 diff --git a/blockbench/icon-dirt512.png b/blockbench/icon-dirt512.png new file mode 100644 index 0000000000000000000000000000000000000000..7aeab4889c83bcd740ca82a53c6c6ebe38e88567 GIT binary patch literal 182974 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

  • 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 YE>?%wsd4ZC0000ÿÿÿÿ PPaintDotNet.Data, Version=5.102.9119.37914, Culture=neutral, PublicKeyToken=nullPaintDotNet.Document -isDisposedlayerswidthheight savedWithuserMetadataItemsPaintDotNet.LayerListSystem.VersionæSystem.Collections.Generic.KeyValuePair`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]][] ¡¡  PaintDotNet.LayerListparentArrayList+_itemsArrayList+_sizeArrayList+_versionPaintDotNet.Document  System.Version_Major_Minor_Build _RevisionfŸ#”äSystem.Collections.Generic.KeyValuePair`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]øÿÿÿäSystem.Collections.Generic.KeyValuePair`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]keyvalue $exif.tag0[0] -Dõÿÿÿøÿÿÿ $exif.tag4[0] /òÿÿÿøÿÿÿ $exif.tag5[0]7ïÿÿÿøÿÿÿ $exif.tag6[0]7       PPaintDotNet.Core, Version=5.102.9119.37914, Culture=neutral, PublicKeyToken=nullPaintDotNet.BitmapLayer -propertiessurfaceLayer+isDisposed Layer+width Layer+heightLayer+properties-PaintDotNet.BitmapLayer+BitmapLayerPropertiesPaintDotNet.Surface!PaintDotNet.Layer+LayerProperties  ¡¡   ¡¡  !¡¡ " # $¡¡ % & '¡¡ (-PaintDotNet.BitmapLayer+BitmapLayerPropertiesblendOp&PaintDotNet.UserBlendOps+NormalBlendOp )PaintDotNet.Surfacewidthheightstridescan0PaintDotNet.MemoryBlock¡¡„ *!PaintDotNet.Layer+LayerPropertiesnameuserMetadataItemsvisible isBackgroundopacity blendModeæSystem.Collections.Generic.KeyValuePair`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]][]PaintDotNet.LayerBlendMode+ -Background ,ÿÓÿÿÿPaintDotNet.LayerBlendModevalue__ .¡¡„ /0Layer 3 ,ÛÎÿÿÿÓÿÿÿ  3!¡¡„ 4"5Layer 5 ,kÉÿÿÿÓÿÿÿ# 8$¡¡„ 9%:Layer 2 ,ÿÄÿÿÿÓÿÿÿ& ='¡¡„ >(?title: Background ,ÿ¿ÿÿÿÓÿÿÿ)&PaintDotNet.UserBlendOps+NormalBlendOp*PaintDotNet.MemoryBlocklength64 hasParentdeferred ½~,äSystem.Collections.Generic.KeyValuePair`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].)/*½~3)4*½~8)9*½~=)>*½~ ÷½‹ +PDN3\Yÿÿÿÿ OPaintDotNet.Data, Version=5.109.9343.2610, Culture=neutral, PublicKeyToken=nullPaintDotNet.Document +isDisposedlayerswidthheight savedWithuserMetadataItemsPaintDotNet.LayerListSystem.VersionæSystem.Collections.Generic.KeyValuePair`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]][] ¡¡  PaintDotNet.LayerListparentArrayList+_itemsArrayList+_sizeArrayList+_versionPaintDotNet.Document  System.Version_Major_Minor_Build _Revisionm$2 +äSystem.Collections.Generic.KeyValuePair`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]øÿÿÿäSystem.Collections.Generic.KeyValuePair`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]keyvalue $exif.tag4[0] +Dõÿÿÿøÿÿÿ $exif.tag5[0] /òÿÿÿøÿÿÿ $exif.tag6[0]7ïÿÿÿøÿÿÿ $exif.tag7[0]7          OPaintDotNet.Core, Version=5.109.9343.2610, Culture=neutral, PublicKeyToken=nullPaintDotNet.BitmapLayer +propertiessurfaceLayer+isDisposed Layer+width Layer+heightLayer+properties-PaintDotNet.BitmapLayer+BitmapLayerPropertiesPaintDotNet.Surface!PaintDotNet.Layer+LayerProperties  ¡¡  !¡¡ " # $¡¡ % & '¡¡ ( ) *¡¡ + , -¡¡ . / 0¡¡ 1 2 3¡¡ 4-PaintDotNet.BitmapLayer+BitmapLayerPropertiesblendOp&PaintDotNet.UserBlendOps+NormalBlendOp 5PaintDotNet.Surfacewidthheightstridescan0PaintDotNet.MemoryBlock¡¡„ 6!PaintDotNet.Layer+LayerPropertiesnameuserMetadataItemsvisible isBackgroundopacity blendModeæSystem.Collections.Generic.KeyValuePair`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]][]PaintDotNet.LayerBlendMode7 +Background 8ÿÇÿÿÿPaintDotNet.LayerBlendModevalue__  :!¡¡„ ;"<Layer 3 8ÛÂÿÿÿÇÿÿÿ# :$¡¡„ @% < 8Û½ÿÿÿÇÿÿÿ& D'¡¡„ E(FLayer 5 8k¸ÿÿÿÇÿÿÿ) I*¡¡„ J+KLayer 2 8ÿ³ÿÿÿÇÿÿÿ, I-¡¡„ O. K 8ÿ®ÿÿÿÇÿÿÿ/ S0¡¡„ T1Utitle: Background 8ÿ©ÿÿÿÇÿÿÿ2 X3¡¡„ Y4ZLayer 6 8ÿ¤ÿÿÿÇÿÿÿ5&PaintDotNet.UserBlendOps+NormalBlendOp6PaintDotNet.MemoryBlocklength64 hasParentdeferred ½~8äSystem.Collections.Generic.KeyValuePair`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]:5;6½~@6½~D5E6½~I5J6½~O6½~S5T6½~X5Y6½~ ÷½‹ ì½×vcI–¦y3•!\Q“ ‚Ö ÖÂtí:"CdfefuWuuõÕ¬yƒy„yŽyŽyŸ=ëû÷±CÐÃ#2»++½:.l<8úÌŽ}öïwÏ¿³æáVÛûÄŠƒÇ*ÕÁ…åzVÚ|b©æ¡Õ÷ßX¦sb¥áS•l÷ÜêûŸZ}ó¡Õ6.-Ý:´\÷Ü¿ß|bÉú®åzç–jX²¾§²TÚ°…ÜšÍ&k¶ZݶÕê–Ö£,z¶TX"·f ÙŽ-æ{6µT°ùtSÿ³Íryæ—K¶RjéÖ‘•6®­2|fÕíç–ikË•M[*´î|ºe Ù¶o_Ý~W×o¿¶ß°å2Û÷ãíçRh{ßçJeSû dZG–[;µ<×¾ùD¥0xlµÝ×Ö9ýÆj;/-»vf©ÆA|Î Ù5KÖvõ7ßQVªÛ–iÅÇŸK7uL®.Y·™•ŠîÍäBVŸœëe;'Vì?²òæmÏ5ríܳùLË 뺗®o±¸nKÅu]ëð9½R¶D¾kS{)»×L؃ޒ=è/ÛÄÆŠMî$mj?m÷[ {°¾lƒ›Ø\µ‰áª}œ™²W؇ËìNiÖ>ÎMë-_}`$îÙ‡‹÷íNiÆ>JNØÇùi»[³ûE{0XöõïÛG«v·:ow˳ZÆ:ìïëWæìãô¤þþ(=©ïæÓþ<8çdmËVk;–ë]ZsóÒª;¯¬yô¥uο·ÁÅ·Ö½øÑºß[¡ÿHëä×/­4|â÷­±¡gHýHä×,±ZÐröAÝî}f퓯móô3ëœ}oOÿ«­_ÿÉ6ý`ÝËmxþ¹–wþÁÖ¯ÿüÎåOÿ9^>xügK5öUx.©Fô»È6UÿyÆ3«›]LéÙR? ý+«¯­ºýÂJ›­¶÷Æ*Û¯¬¶÷©µŽ¾²öÉ7Ú/×Ìom±Ð·D®kÓËe=ÿ¹TÝf“Ußu‡c-ûª»ùÞ…5>Õo½°þÐ’}[©liœ÷–RÜxl…Æfü{ήêüWÊ›¶Zìêyp¬•T^÷“åºÇÝcÝûòð©­í\ëÚ©‡|Çop9ײ•"mBÕæR5[XÎéwN{ÂvµÍ+«l=·êÎKË÷.u?*;/õŒh¯*ýs+o=·ÂàJ¥Ö;ˆ×i~nåá3ko]Z‰óï?Ò:Õήåºú¿²ýB×]ëª}ãúR´eÕu[­më\VÊý=³RÖ=ü?þeÖ*ÿϵ>ù %«CËuÏtï ƒk«ì¼Òóãžó{ í¿iêl"ß³TsßæÒþ\Ðï´«öefµï?Y߉±\ìEmÖ¾¾cÿœ'×°\êeZVnmYm÷ÕÚcîÏ–zOݡͫu÷U_hwXÎ÷´'+;EKTtÎ<£j÷À2c=kž9÷›vŸ{Ëþ¹ïí­‡ªéö±5>³LçT÷”çWÚ|jkÛ—ºç£ßó;þpéÝ­Í©ÐnÜ)ÏÚývÂ>Îùï?¹ß±Õ–%ÖliPµÕÝ–Ùÿ÷ÿŽË‚B¿0÷¸lÓÇY»ßLØäNʦ²v¯± 6ün}^} oÛ)÷Z êGè7hÓéC¦26µ›Òö³›}X°™³¼-|R·™“œ¯³Ÿ¶™ó¼J⓺%ÞÔíAwÉîÕçí^+¡cÒWÜ«ÍÛýÞ’êÒÝÚ¼ú¯ÉÝ”Í=.Ù«šþ¿W_Pß3¹´‰U›>ÉÙôiN}ßq¼;ÅYŽ¡¾ª½hÓǹŸ|÷€mj\ïœMfõÉùh߃›QѹOfmr7­u9ÿOíÝ^~·ÆòœMíg½æí^mÑ&6²61ÈÚôqÕì^}Õmb·»¥%{ÐÍÚÄFá½×‡ÿ]Káé®5ûȺ~a­ï®ô7ËF× mhqpmùõGêwx' O¢¿ L·,ÝÜ×{ ýÛrx‡Ìµm>U·…Õ¢-æ»jis+ý +o>Ö;ý/û¦?Ê´Õ†ÓÆ³ŸdcÏR• [.õ-Y\Ó» @@ -2628,7 +2629,40 @@ c íÃ1 0y{PŠÉñ"¢MšFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUõ=‚*f&‹ íÃ1 0y{PŠÉñ"¢MšFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUõ=‚*f&‹ íÃ1 0y{PŠÉñ"¢MšFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUõ=‚*f׋ -íÃ1 0y{PŠÉaƒ£MšFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUí·"y½!‹ +íÃ1 0y{PŠÉaƒ£MšFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUí·"y½(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4= (‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4= +(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4= (‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4= (‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4= (‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=(‹ +íÃ1 0KSü‹/"Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUß Ù4=Ø‹ +íÃ1 0KSü‹68Ú¤™mTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUÕ~{NÖ๽!‹ íÁ1 õOím Þ"êâ!‹ íÁ1 õOím Þ"êâ!‹ íÁ1 õOím Þ"êâ!‹ @@ -2803,6 +2837,76 @@ x "%þ•\ˆˆæ ©‚ùÏ»g`fÝ×~wúߣAPÑ (iÐT4h*4 €Š @Eƒ ¢APÑ ¨hÐT4h€ÿy í.!‹ íÁ1 õOím Þ"êâ!‹ íÁ1 õOím Þ"êâÑ‹ +íÁ1 õOm  € t² ˽!‹ +íÁ1 õOím Þ"êâ!‹ +íÁ1 õOím Þ"êâ!‹ +íÁ1 õOím Þ"êâ!‹ +íÁ1 õOím Þ"êâ!‹ +íÁ1 õOím Þ"êâ!‹ +íÁ1 õOím Þ"êâ!‹ +íÁ1 õOím Þ"êâ!‹ +íÁ1 õOím Þ"êâ!‹ +íÁ1 õOím Þ"êâ !‹ +íÁ1 õOím Þ"êâ +!‹ +íÁ1 õOím Þ"êâ !‹ +íÁ1 õOím Þ"êâ !‹ +íÁ1 õOím Þ"êâ !‹ +íÁ1 õOím Þ"ê⻋ +íÜ; +„0@Qâ¬Sº[[ë,`fÿà Œèüt0‰çÀ#J,/áU°%t±]SŸý]¥hÚ¾nÚ~˜Îêzíùº8.fºÓ£öwçiîMÛϳèý¦=¯ ð}{ž»óÚÌ-º˜ýC{Ö£ŽmÏEõèÅ®ç=íYøl߯žÉ¢GôæY8öÍsÖ=ú„öüªG'ñO2kÏÉõèDÚ³·Ñ@qþ°o#›h{Ö£.ämW_†æ‹ +íÝËnSW€a$V¨&H)HIr3!D\Ò*E•h¥Dí¤/ÔÇ<Õ±b䤶åË9gß¾OZsÙü^]~ðò´¹5ØØÜ\ln n6·U¤ssûgÜhêïý¨µñ¨uq;×úWUbs=ñçoìçPP{žÕ¢WîÑí9Åî¬GQK´=¯Ý£3mÏz4SwΡ=/Õ£ jÏÿ›^~Z{o €ç¥{ôÃçï—ڞdz½{¾òÞ8Àý¹¤ö|gêþº‡šû—£¿ÿãgo–Þ˜fâæÄhŽ÷ßïÀ!æé‹“jx4¨¾ž ª§ÃѼ:ø¼ GÒžõh`)³î{ä +M2éö|9<­†ÃṾͺG¯Øžõh`¦e¾k/ç=¯=O›qΡE7Øžõh`éö [FÛžsÙôy‚ åÜz¾N¸e6Ò×iÏ©öèˆ>;У ëî<çÒ£×ÝyN¹GGÔžõhÈDWí9öÝe{Ž­GGÞžõhHL÷6Rí ¡ÛsÈ`{Ö£ b!wžcÛŽ±=ÏëÑM¶èLÚó¼­E@‡RhÏ]ôè¶¾g0•ÝèŒÛó¬­G@A÷6BõèTvžÛêѵçisú-@NRÝyncŸ7·ö<«Gÿ:8¯~;yWõ_nm‡<Áq—TB{^t7º„ö<97ç'Õ_G»Õ—ƒ^5èõGsül/tÖž %¶çi3|uZìõGóÇÙqð.ÜÅ|¾­~ys\½{½_õz½;s¸÷²:üiw4;Oû¡»°ö éöç¢Ûóaït´÷{ÔÛýÖ_ë&[·ÙzêN[R{ž6™÷híZr»ÿ¼ÇÒž§MN=zÙö<¯GgТµgSw¦ÛÞ49Å·§‰;ÅÜâX´=ÏëÑ©µè&ÚsF»ÑÚ3@ó}±ÈÖr¯;×ÝI‹*ø.ô:í9ÅÝèqwnº='Ü£½w€öZâõÄ®ëFAíùfÉ6¥Oe¶=îÎMµçzt;Ï ÷ho ûn8îÑÙõ˜Ú³]ÉL{t“;Ï©ôèÐí9²í„¿ŸÅnô÷6ìOt«#T{ž×£ÛnÑ1¶ç€=Z{ˆ³&·ÝÐγ®•ÉntLíyV‹nºG§Òž;êÑÞ(@í/úÝèŽÛ³ÝèÈ{tÌí¹­r{ž×£WlÑÚ3@º7¢ÙnñÞ†àïiß3cέ=ÏjÑ öhí ñýÒv£ï<ÛÅŒìw7µçUzôý=îÎ9·çY=úìÙNõ~{§Úyòóä[ûgskð»·í÷¾µ¾éγÝè€=:çö<«E—ØïÏǽçÓ´wöÎs°Ýè„vžíFwôùJIíÙ¬|ZHw繓Ýè Û³F¶Æg.ÇûÃêjÿ`4Ÿz/‚÷ÐSê.ôšßMè­¤»óÜøntâ÷6ôè†Ô?ƒïžœþýýöðßíÝóªž7Û{£û õÔ·Jlϥ݄n =Ï{kÅ¿3 ™ì<¯µ]ÀÎó2sñ P‹þÔM²n“u£,±=O›qΡE·Ôž}î§°ö@ÓwWrèÑë´ç”{tÀö¬G9ögݹU½:øX}8ŽæëÙ zúâ$twÒº:ÒÅÝ•Ônu4ÝžSéÑ‘µgoHÞíîsðþC{¾¼×Ú.‡§Õðh0šztq;Ï¡n~Ǽ=îÎm·çoG'Оõh I¥Þá˜Üy¾ßž§Í¸GgØ¢µç€?ÿXzt;Ï1îF»s‚íÙ[’TÂ÷ÎÚy^t2Ù.vw2–ö<·GwØ¢cjÏ]öèDwž½o 9îF¯Ûž3Ù.rO²éïÌa7:ööÜVμ=Ï{óŽ{ )ïF/{ocÝq.½=Gß»êÑ)¶ç&ztíÙ€ä¤Ô¢ÛØy^¶GGÒ¢‹lN9´ç¦ouäÒžçõèy-ºþ¹…þ÷‹h.B¿Q€Tït„lϳZt€]ìÿ{Ÿk{^g7:çö<­Eÿy¼_ýu´[}9èUƒ^4G¯OªÃ^ø·¦ÈϤºð3¤Y¥‹ +íÝKoW€a~;DªÔJ**U¡¢`HE”KÔMñ®¿~ªqm”¸ñÄŽÏ̹=ô-Ø”fð™Å›OÇ·n}ÙÝÞîÎÎ÷FgMŒyqôGóþít>Ÿ¦ïšétšÜ|š¾m¦¯&ÍÏ¿Ž›{&}ÍìÞ£Éé½G“Û·*Òþ¼‹Ÿûtñ ššæåïûÍÁÁÁ¥99|Ö|~óz>=}ÍìxÒ|Ÿ4£Ã—Þ?>5÷çóðÉ›èÿnO•ï Ø=X^¶çT»sW‹Ü£koÏÕuç‹óò`Ò¼:Ïgòüh>OÇÑ?ëß­wó÷Aû^¸îݱìÑ´è*ß @ùúÜÎaçyÛ}ýlKUö¥E®º=·ý´í¨mO-ùœ„lÏëZt=Z{ª²Eç¸ó¼m‹Þ°GkKÿ5èÓ:_rí¹ôßÛ„jÏ÷hï J»ÜÓQr{¾jfÓqs²Ôüøøµ¶Ô¡Æ{8¶mÏ¥ž§Ðí¹íý°Ånt©{›tx5|aˆö\¢=wõèD[´÷Àõ-ú¯½ÑÙ?mëyòâsóîåûfv<‰Þ»¾ºê{ kêÑ}´ç{t¬öœøn´ö pû9F‡›?'ÇI¶°ÈíY‡ªà®Žew¢=wõèÎ_*í9±íÌúŽÂÔw3CtçÚóº.¥Meº=ÔÎó¶-:ÆùK¹=GìÑÚ3@ßG¸ÚÃroÑ;îû³ @†÷t\Úá\þ]Ñr€i޶_¸»yÓ­=sc4%°Ýùa¥4è‹.ôè«Z´ï$ €Ê[tg{^*±A/­ìFëÎ¥APá=WÞ·Ñ¥ä }Ò ¨¬GoÜ/ŠÝ5hrÕwƒîsb?;ê»kÐä*vGÖ ÈAì~¬A“«ØYƒ ±û±M®bwd €ÄîÇ4¹ŠÝ‘5hr»kÐä*vGÖ ÈAì~¬A“«ØYƒ ±û±M®bwd  -ÿ¶Ãê4F‹ +íÜMK”QÇá>ˆ»6½€›@ˆlÑÂÞµb¢©¥ííûÂVˆÚÌÔø?÷s_Ü àBçl~ÜÌ;\åî«ÇSõIŸ!=Ý[<™ªNúìè#Ý5hªJwd € +ÒýXƒ¦ªtGÖ ¨ Ý5hªJwd € +ÒýXƒ¦ªtGÖ ¨ ÝuhªJwd € +6m¾«¶®u~VS£’tGö^¨`Û­Kƒf®ÒÙ{  6“îÈÞ hа™tGö^¨@ƒ†Í¤;²÷@4l&Ý‘½ªH÷0MŠÒwÞ{ ŠtÓÔ¨(}罪H÷0MŠÒwÞ{ ŠtÓÔ¨(}罪H÷0MŠÒwÞ{ ŠtÓÔ¨(}罪H÷0MJöOvöO–ß¿žî|¿ûÞ £K÷0MJíyïðätïðd:›Go§Š-:}–ô’îašZÞîþñÎîþñò|vÒ¿Ïèíùò\´è*=:}¦ô’îašÚíùÇîþñt>g_·oÑ«´ç›zôÈ-:}¶ô’îašÚ0íùò\´èv=ú¼?¯Õž+íF§Ï€^Ò=LS®=ßÔ£gÝ¢7Ý}®¶>gzI÷0MmèöÜb7z[íyÔÝèôyÐKºkj%Úó,w£o«=¶>wzI÷cM­\{.ߢ“íy„ÝèôùÐKºkjeÛs¹Ïé©='w£ÓÿzI÷cM­|{~7zôö¼íÝèôùÐ[ºkгjÏCíFWkÏ×Ìéùß0DÏ€u¥û±=ËöÝžI{¾®EëÑ”’îÇôìÛó­íFÏ´=Û ´t?Ö Û´ç­íF7jÏv£('Ý5è–íù¿´èÆíÙn4e¤û±ݺ=_×¢oìÑÚ³ @é~¬AÿÖ¸=¯´­=¯5Ëìm€ßÒ ¹{ƒÖžÿÞ¢|y¢=¯4ö Nº!wíÐÚóêóüÙ»tÛ}´g†•îÇÝ´ö¼ú¼8x=}~ónú~ôfúzôa:z¹H·ÞÑF{`xé~ܰA/Gè»Úó·O¦ÅbñkξעµgjI÷ㆠÚôšíùò\´è†=Z{ œt?îÖ ¯hÑí{ôªíù¦=ó­=PVºwmÐêºý/í¹ÑnôYÖž(+Ý5è~-ú¶çïFÛ}`ÒýXƒîó9ÛnÏ3iÑÚ3³’îÇôüw£o»=ýœí™+ýRÊáà‹ +íÝïŽÕÇáÜEâ] Ú”–?¦¥Òª¥‚v½dSâ$lº¡T‰ä%Z!!òŽ7\\—:hŒ‚ñì®í™9çwÎóHGf#fäDÊ'_ÎÞºÛí³4ÑÏ­ +Î^;8œ=98œ½88œ5Î'ÞmŸþ§ùߣÍÙÙY§}/_ÜÐÜ?9k&ÓyçÛÉtþd2¿–ú3CHÝ5èòZtŽí¹«E'ìÑÚ3UHÝ5è½[t6=:B{Î`­=P•ÔýXŽ¿ŽÚžGnÑÚ3U²÷jÄe·èRÚsW‹î©GkÏ0 ºÌ{:JmÏl£Ûþ¬=À@4è²¶Ñ5µç=·Ñ¶Ï0 ºŒ]s{îêÑÏNî5Ÿÿ®EkÏ0" :ö=Ús÷¹œÝmþ{ü ™Ÿ¯úów“éü¹ ãÑ ãôèÏŽ5|ò¸i_Ï?øhq.ïßMÞzƒÞm ‰ƒÃÙ+‡³Yûšú½@ÚNºì¥m7]Ü/1?>]œv뛺ùÿÞ„«­G¤kÏ_-ÿÿžöU‹€DíyÓi{kÛ]k¾‹cÇöl Œb2ÿa2Ÿ¶¯©ßK†ýyÕž×ϪEëѨ=kѽ¶g-²=?]þÚòtùuÕ=zÃöùº£G@ÂöÜÕ¢KîѶg÷t}öçU{ÞtžÖØ¢¯Ù>ëÑq{®eÝþ·ŒÐžm£¾¶Ï×*¶Ñ;lŸõhȸ=—Ø¢GÜ>ÛFCmŸ«ìÑ=lŸ·éÑZ4ŒØž»Zt¤Q{¾ªGkÑP±¶ÏUôè¶Ï¶Ña{¾ªGçÚ¢3oÏ]-Z†Êô°}Þ¦G‡iÑ#mŸõhȰ=çÞ¢ƒµç«z´ hû|ÓmN´}Ö£¨VÎí¹«E§êÑ´g-*¨=‡èÑ™lŸ·éÑZ4aEjÏWõè1Ztíyý¸§ +1Ò½áîêÈxûl @Éý9d{³EWО7Ûh(£ísvÛè@Ûg=€ð¢oŸÇjÑ•¶çõc Ad¼}NÚ£oŸõhÂ)¹=÷yg´öÜyl£!C¶Ï£ßÕQÐöY k5µç}·Ñíߣ=_{´hÈ@aí¹×mtáÛçmz´ À joÏÛ´hÛçΓԟq¨Uà{7íÑÚ³m4ãОo~OÇÅìžö¼Ûi?[vÐ0²Â·Ï{õèÊîÝØåÌÒ}r(…ö¼ý™Ÿ'ÁŽ{8 ‘ʶÏ7îÑùðüÛg €aiÏ»7§§Í'ÿZ¼¦~/Žö ‰Ø>_}>~ø¹ÓüéäïÉr zý¹¾sôìňÛç›t-*“raû¼M EëÏÀÍF/¦ z®Dé¨YV3}fáŸk$Ënúb2ÿ4t{.±E¿ü,Û¦°ì½_eðsdý¸§*5Ö6:êöyÄm´?Æh6Õö’WµÏ•p5«Ïjgî¹F4™Î_™Lçc¶ç’Zt€ö¼éè P¡!·Ñ¥lŸìѶÏÀØÞËZZÉÈ«šçJøŽš¬™frGIqÏ5x{ž¥îÏ›Zt˜}ü^¬=¯-*ÕW.uûÜcöë,ÜÀÏ'JÌ ö‹ +íÝMo[UÀñ~ [šà¾ÑÁ…BÝ$´IPâZÆI'3Ñ$¥¹©é b³bÇX²bÇ'=èe\_ç^û¼œ\»†NoðN§7xÖé Î:½Aˆ´ÎÆÿÍw®”hÏÜï+D~ßOë΄ª»znÑ gŸ›ž«œ­£¨Õˆi$ŠöLÝÞÂôs–ü™eÏ^Ï®â©='mÑ´ç&‹ ØïÏµí¹®E{éÑsÎ>·9[9_PLq«)ÖKï™ø½…«ç,Å3û{eM¼ûžÛsÔM{žgÑKg³ÏÞ{t¤Ùç6ç+g+ +¸;¢H3qØEÞ}bÃç,æúVÀgиhÏNVë;£«þL{^tÑKG³ÏM–¥»:Î>7=[9_ÈxÛJÒPŒõz1û +wïgòu»·~º7úµôgQ´L½ß´çùzôÔÍìsŠ5(ýŽÈ;ûl}6:ãìóU‹ €ÎÚV”Ù]g{æ®UI3~ÞxÖæmÏž†ÍÍÝÑŸ‡ª_«ßÓ¢ý¼Ï´çˆ-šöœb1 (“böÙZÔŸ9s(ÌùüîÜ}…öœnoQo¼§¥¿¶ªÛóä¢EÛiÏqWÕ¡«þ,à9µ²è €29fŸµßÕQðîyÏ`Îa¡¡¶ï-Î{}Ò½E3¼·ñÚ3-ÚÇû:îÏ´çHëþöó°¶snõÏK?«VVÕ>h€"%fŸµÍF ž}nr&Ó£ˆ€†:_¡ûEYÏÊ=ùöðLÆkÏ´hÓí™Ùç˜í¹6¶Ÿüñžlným´nmþ«ôó«q1û (#eöYòl´¢ÙgÎi¡WÍwW4ûm/Mµ-IxFãµg§-Úìû9îÏÅÛ­µö<õ]÷hZt£EÓ’8û,m6ZñìsÓs›³€èS ­‹yñÒŸCs×2Ù¶$òü®ÇnÏNZ´Ùö|9è8ýy}F{¦E·Z´g@!-³Ï%{´±Ùç¦g9ç9Ü·eÝ]=[;'áý_ÿ,Ê–ù®%§º=mÑîÞQZtšÙgZt«ÅÏ€BgŸsßÕaxö¹éÙNxïOæÛSÒö¼{ööþF¿V¿¯þ}éÏ&|¹ëZÒYnѹ۳‘íþ¥E§oÏu-ÚqföPÈÊìsêÙhçý™óàwGÄiÏ“‹]»Üw-é,µèÒíYi‹æ­oÑôèDíyVvÒ¢i€RVgŸcöhgwoÌ{þó=`ž¥Þ$¡=Ó¢k]K­gÃEw–Ôž•´hÞѼÏFçhÏÎZ4íPÊËìó¢wu0ûÜj J?×ä µ7åìÎmÚó´í°Cós Ðr6H›yVÔ¢iÏsðÖ¢K´çºm¨Gsç3 ”×Ùç6³Ñ+ÿJ1ûÜ|-ŸüPü3(Zôg€[R[“Ööì¨EÓ´r>Xhϳztâ]}íxO#²Ø¢«þ¼.¬=+oÑ´g@1fŸÛ­¥ÍÕ°´±Vüs_|_@XkÒr߆ãM{v¨Ôù`µ=gjѼ«‰YhÑRgŸ·h`Àø=.}žˆ_Uw¾¾ù0¼ÛïŽVõÏÕ¢G¿±˜}ÀÙý©gž ßÍ]ÏÈÚ¢½´çD-šö\®E«éÑÛs]‹Ô£i €4è«WÕ™Gíy÷}yñ½G3ÑÚ³Ò™hZ²ž^Ûs¤Íû*€ôÙh íyV.Ô¢™}Œá.èúsMvØ¢ùÞ€£-­=+jÑ´,d=#hÏ µhÞW¤µh«í¹p‹¦/~Z4=zòî&ýÙïl4³Ï8¸Ÿ£Ä]φZ4- YÏÚsó}óþQ¸þáI¸Ñ{þÇZÙÿ7ï«|¥[´—öœ¹EÓž‡¼ÏF·š}öÝ£éÏŸ‰–>ó,¼EÓž‘õŒ =·_«ûáÎãóË}ñtÜ6ùsŽ%Zt՟׵ç wFÓç¼ÍF/4ûܰGÙKþ~ã-ÚB{žÖ¢3th~Î ²Ÿ´çökã³ÏÃÚgƒpû¸®5Ò¢ÉÑ¢½Î>'ž¦-p7uöyÆšØKûÉßO`´Ek¼oCÐL43ÏÈâö£Ã{7×~«V§wªµòé³âÊP{¦EÛhÑÑz4í9I‹¦=¸’ò~šöyJƒ®ÙO {IÀà]Ñgž3¶hÚ3r·µÓ7:ÙúpÔVK7(cí™í|6šöœ¤EÓž¸ìѹfŸg5h%{É÷ ÎD{lÏ[4íåÛóÿõ²ãQc¥EGoÏ´hg-šög­~~–¶þ–×_ŽV§7xÝé Žé +¥lž·HžÕ köRÂ~2û €¡íá¾Ä-šö Qí™­=Ó¢·hÚsÜYè[ýó°´ùu]c`Æ À„õÓâwoÌÓ kö3÷^ò}C÷s0óÜlm휄åÿ^×iÏÛžiÑÙÚ3-Úh‹®úséçWûâNh¥H›.5û¼Hƒž²—9ö“ÙgŒÌDÓžÛ7襎Â{Ÿì_ìá·ÞàíZÚ³×] =Ó¢õ¿oÇÝþð¼úúÝyú¿ð—§ÿezÑÙçfí¹®EÓ£¨Ÿ.=û£A×ìgн¤?` EÓž£ßÅÁHÙ£·g/-Z@{¦E+Â}ÅgŸ›öhÞêf£%Ì>ÇìÏ5{c?9ëPèö£Ã{7×~»Ñ{:½£pýÓðþƒ¯hÏ-ºsËŸIXµh:4DÎ<{jÑÛ3-Z0~.¡øöLŸ v6ZÒìsªq?™}ÀHúóø<ôŸÝ=osÑøhM)÷‹G€XtV¥3ÑÝóÕÂE c±¥êçóâ¯Á@¹É>{sÏ¥\4îYÏœŽ ÷¼Úòu]ôúĹc‹l4¨ Sñà¬rºhƒ³žS¹h:2û¼«˜ÓªÀA€—YÏ’³¢qÏ£ ]tz÷|µšÇCo-Ü3í¢qÏYk‘)ûÜW.²Ñ‰³Ï}E6ÄÁAÀ6<9{ÉGãžõ8è„îًΘ}î+²Ñ +6ÁKÅ»hÜsòz(Ý–¡çó¸g\ôK…{¦’øèÛ÷>Æ=ç­ÁîwâÜl¯G;…³Ï}E6ŠƒƒæmÄÏçà}³e ÉA—½Ðÿ‰Ý3.÷L¥­½ß?•ÞŸ,×j„{Α}693Z™{¾Z¸h( +À'äe¢?ü,¼ñÎçÒçF+Åü A¸'äsÏ]´+÷¼Ñ?¸çŒÕôÌ«³_‡ëwîHïUÖJ[ö9Ùëu÷ÙhÈÀ^½R_u|óÒC¿öîLú÷ÙhPÁÀ¾äz "dãwôýÌŠn½3îÙ Š¿¢Ó™Jûä +]4î9\´{öí¢½ÍÝȶ>[zÚkö¹¯p{yæHlk›®/ÉF ØÙ›k;MæÙ1Êžiít¦Ò¹"{N.zâû ⢧øUÜsMöypáöò¹T<žçB¬+€_Tª.ýŠÈ|X[.÷ Zî%ƒœ©´?®ÀEãž3âÙEÏ>ûrÑÌ݈_»­ëGöyrf¹‘dä3œižçBºÍÜŒk»ÿÞÙ/pÏ“ ÿ\Þ¥ºq¦…/Á­ç(‰!ÝëWÄϽu¸hÜ3hºŸLö¦â½^ÐE÷¬7îY–\´èÌgû.š¹êƧߊ÷Q…åÆƒÆ’1coÖ™*ø½³k  …Šçs ö+ºÎ¾êæsàžA“‹Žö¦â=^°v¬÷àÙ%Pžš]tuÙçº\4s7 +ÕÿfOþf¿¿üê;ñ¾ª¤È>ëËñšy& p&»™µÐFE™èÖOÕý»ùò™èÖ;ãžAË=%YfW¼¿ VÇz¾?‚5¹hSîY§‹4w£eíŸÅ]nîùè‹¿…Å'Âr¹¼¬ÅÇ.]4>zkáâôçx«Îï*ôÏfÖ@3Š3ÑQ~Jï¹·¸‹&ó Úî)ÉçEˆ÷uÁJµf ‹fmÚ=oqÑ…³Åƒ³Ï›0ƒcšÞtÏ]Õúh\ôó"û\ŸG­æ™‚Ùf× ”e¢“ø)ýçÞìó9pÏ íž’mV±x?¬Ôk²hsÑUÏ|ލ99g]LrÏ›0czö¹¯pѸ6Uu~W‘³7·¶5"좓ú)éó¬`&÷ j¸2/"Û¬ñ^.X¹Ö®ywÑn²Ï=}•ÉóŽš»ÑG!gîÂ=osÑÎ|4Ùg{UÍ3Åξúµ°@áùY²‘ÒçY{·xue`}ÑîÁÒ×¶¶¾J䢣³Ï}þ¿ŽqÏN³Ñ¸4›þ¹ëg,òs®tͪX[KdÎDOzŸÁ1HŸgK¹èæs›ÿƒ{Ïxwe`.ú¹{n¿¦ôµ­µ¯&:Þìî9Ñ묾RdŸºh²Ïþr¼EŸ9÷Ï¢k `•Ä™èló`»>ÓæœݺçæsñRàñžUâÊÀ™\ôE×>,}mk龜7éܱxrÑ9²Ï\4®lF=jÖkÀ³Y[z @.]Ô=·HŸiSg¢[ï¼éžñR•÷zWöHä¢_Ê>o"}m×ÒW;oñì³W]"ûltf4Ùç8ñ¨É}©Qg»¾ô@-âž[¤Ï´)]t—wÆKü€xŸ*ue`‰.z§{n‘¾¶kë«+ï ¨Æ=[ÿÂÒÙg#Ùh\ØœzÔèkÄéºY[z ý|Žì³ž‡"}¦­á `éÞ£ÏA©‹äž[¤¯mú*?5g£¥³Ï»h²Ïq’}NîKY·IëKOÄe¢E3Ï]HŸi9C”A²ïn,ß.ZÒk j÷â«>ºsæó.¤÷0öÏrÔ䢵»gÅs:p]# Ã;íbÝ¢Ö–Þ˜~þUãž[¤Ï´œ¡ÊQÊKúg4ŒðÑ£÷dé=Œý³<Ú]´¶¹e£ñ[#À£NËF³nÑu*{å@J¤Ï´œ¡ʃˆCzcÿ”C›‹®-û¬ÈE“}3$â¼ézí¤_O­Ås"cHŸi9CØuÐþ 9‘ÞÃØ?åÑðþ…µgŸ]4Nkdx§ÕÙ“oÂã'_]ÖŸ?¿,ÎÂÑÃ/Å_WEÅs"£HŸi9C”£¤ÆAƒE¤÷0öOßÙhkÙç!.:‘Æi€ìóôj\óéý?†ÙlöB5‡‹T<'0Žô¹–34@pÐqHïaìŸ~]´åìsæl4Nk$Ì_[ns—îrÑøè΢W }®å P4@Ò{û§?í)ûœØE“}ž:Mö¹¯ÈF¿Pøg'HŸkSn + 4@ÒûÚ‹Æ=÷»è>Ÿ•fó8dŸqÑ;‹gEÎÈ駺bÜ@zpÐqH{à\{5}¥ëý =ÏÝ[ó§ÏÂëÿøoØÿë÷ÏZ­k_úgofCo÷ϱî™9<+ðHn¥Å?sŽïà âtÀô•ýl4Ùçñyè·žý;ìý²•™!×?;ÌF㟜’ÛCá tP²Ïès°ˆä5-ÝWÒkoÝE¿¶úW˜ùLÜëÖäŸÌ…n]4>:!^³Ñ©fo8ÏFó|Àÿ‘òn± +-‹ +íÝ_‹]Wð| éušš"XH!¶‘H2©Á:DSêHiL +*‚ xé…—Þ´ŸÅÏwä 3e:?ûœ³×~Ö»öï ÚRHØYOïsÞìܺ»yÿåO7­ÎíO>øÞiùãM9éç )Kæ,õô³fLéϯd®ÒÏ~$wï¿s÷þñïÞ?þëÝûÇ›÷¾øÏæ½?½9úꟛ—/_:לãß¿Ú<ùòüå¿›{G¯w9¯î½~~ïèõÒ¿þ£Ø>ËÓgº}¶›‘Ïãß|µyþé‹Í“'Obgûãÿòøó“ŸKúyìy¶÷Dþ`åZÏË:hèC:{rNué{­ƒ¦~³íž/žùïÍã/þvrŽÿð*Þ÷öØ?ïÑ=뢗뢇ì£{èŸ/뢋õÑúgàDëyY }HgOΩ.}¯uÐå»çã«úç«úh]ôA»ÏSºh}ôŒFÚÞö»Ûž·§þ¹èn´þøVëy¹§þÙÍš¥³'çT—¾×:èñvŸuÑ‹ì>Oí£õd3©ÞE÷¶û\t7Z®€Kµœ—uÐЇtöäœêÒ÷Z=öî³.ºùî³ÎlaßÓQ­ît7Úî3p¥–ó²úΞœS]ú^ë ×±û¼ö.z¡Ýg]ôÂzß®ðî"»ÑúgàZ-çåžúgs4k–ΞœS]ú^ë ×µû<¥‹©í>Oé¢õуwÑÕwŸ;ÚÖ?7j=3ë !/=9gÉ{­ƒî×RÝó¨»Ñì>Oí£õkƒ½§côþy¡.Z>€ÉZÏÌ:hÈKgOÎAúnËÔzÞ»±†.ºÃÝg]ÛJv£G{÷Æ>]ôL}´Ýg`'-çÖžúg³4k—ΞŒS]únËT?’»Ï#tÑvŸ§tÑúè‚»ÑkÚ}n¼­vÖrnÕAC?ÒÙ“qªKßm™êC/»Ï»è‚»ÏSûh]\ç»ÑkÞ}žÚEOì£Ýy`o-çV4ô#=§ºôÝ–©¬^wŸ§tÑ=ôÑÅwŸõr…»h»Ï»÷ÑWtÑvŸ€ƒ¤g[³4,#=§ºôÝ–©œ +»Ï½îF¸û¬‹.ôžýóa]ôö|þö_Ûgé^³HÏ·fih/=§ºôÝ–©åUÜ}î©‹|÷yJ­· íF{÷Æ|çÁ£gÿ;ý}ðô¯?P_z¾5KC{éìÉ8Õ¥ï¶L-gÄîyÉ.ze»ÏSûh]ôB]´Ýçyγç¿Ú<}þëÍGO?;û}ãÍéï‹úh`oéùÖ, í¥³'ãT—¾Û2µŒÞ»‘ì¢W¼û¬‹îä=Ûýçt;Bÿ|®{¾ìœõѺh`'éùÖ, í¥³'ãT—¾Û2ÕÖvŸ§tÑûöÑvŸwî¢õÑ3ç÷ý^¼ýуϾ9þ­ºqÿ|Y­&IÏ·fih/=§ºôÝ–©vÖ¶û<µžÚEÛ}>¸ÖEϘßmº}‡ÄölûÔt§[øÝ»»ÑÀÒó­YÚKgOÆ©.}·ej~kß}>´‹¶û<ÛyžÎ¨ßõѺè›ûçºg]40Yz¾5KC{éìÉ8Õ¥ï¶LÍG÷|xm÷yÖ]h{Ð3¬‹^¬¾¬‹ÖGßJÏ·æih/;ù¦ºôÝ–©yxïÆa]ô“·ÿ°û¬.›aïéX¬¾ªÖEÀÊ¥ç[ó4´—Î|S]únËÔaì>Ïs½x›îmG9úçðwHkÞžáÝχvÑúhX©ô|kž†öÒ¹“qªKßkyÚŸÝçùÎÇ6?|öó“s÷Ù£t[ñø{;ûim]ô‚»Ï7»Ñ°Ré×< m¥s'ãT—¾×ò´¿Óž#Ý·”>w=ؼûøg›ÛG÷6·?ùàä¼ûìC]ôîý³î¹ÓïÖ𞎎úçóÇn4¬LzÆ5OC[éÜÉ8Õ¥ïµ<íO}xÿ|¾{¾xtÑ“ºg»Ï…ÞŸ3ÚntðÝ»»Ñ°é×< m¥s'ãT—¾×ò´?o÷ùº£‹¾²Ö=}λÑî>ßtìFÀÀÒ3®yÚJçNÆ©.}¯åépºèùvŸuÑvŸGïŸGØ.Ú?_䨀ÂÒ3®yÚKgOÆ©,}¯å©µwÑsî>¯¸‹öîõϽîF¸û|ÓÑE@Aé×L í¥s'ßT–¾×òÔ޻薻Ï+ê¢í>ïaļ%»èöÏç÷t@!é×L í¥s'ßT–¾×ò´œ»±äîóÀ]´Ýçï>÷òžŽ•¼{c—c7 +HϹfjh+;ù¦²ô½–§åÚE§vŸ§tѧî«ÑwŸÏÝ­‹gøÞlôþyÉÝè•ï>ßtìF@ÇÒs®™ÚJçN¾©,}¯å)çB_X¶;ëe÷ùº³}ÞÛn·ã.úàÝç:Øaw8GýN'ÕEëŸw:Ãæ +ªJϹfjh+;ù¦²ô½–§>TíÑzÜ}¾ªƒ>Óa=×îó›µufkÛ}nýžýóÞg¨\@eé9×L m¥s'ßT–¾×òÔ—*]ô•»ÏO?ÜÜyôñwÎö¿õÔAwÖEÏÑ?¿Ycg¦žo7Ú»Ÿg;Çé\ÀÚ¥ç\35´•Î|SYú^ËSŸzî¢/Ý}>ëž>üþÿÿða¼‹¾îY‡ºèÖïÞöݶ=g£ân´ÝçÙΛ*€‘¥ç\35´•Î|SYú^ËSßzêÛ®Ý}¾¤{î©‹žò¬ÏuÑ­ûè%ß½±k‡Öum÷yÞÝhýó:rk’žsÍÔÐV:wòMeé{-O5¤»è]wŸ{ë¢w}Þv£{Ù}.Ù©éŸç9ŸþîO›ñøälÿ9ýó)~ì>@gÒs®™ÚJçN>©, y¬eé.úÐÝç^ºè}Ÿ÷Œ]t¯»ÏÝwÑéï_F;'y>ËÆÑ½“ßæ<ýó*xôÏСôœk¦†¶–̈¬1šôç–ÏËš–èåæÜ}Nwч>ïºè*»Ïݾ3úôÇM÷CœK3­‹Þç蟠Sé9×\ ã3F“þÌòY9L=[Ýr÷yJÝ¢žëyïØEWÜ}žÒ½-ÚEwÐÁÝ?ë¢ËýÙàzéY×\ c3F“þÌòY9Ž9:Ë¥vŸ—ÞžûYOøû çèŸ{î]íâZ|ײ–såwJºh}ôwŽÝg("=ëš«a rÆhÒŸY>+dzOÚ}^ª‹nù¼/ôÑggäþ¹‡½h]ô\»Ïûè•wÑúg($=ëš«a rÆhÒŸY>+Ç5µ«ëe÷¹e}«€âÝêâïŒ.þ¼jôÏv£Ïî¶þ +IϺæjƒœ1šôgÖ>+ÿ°o»Äi‹ +íÝOk\UÀá|®k1Ò¢bj %B ıЅXPhÝ*îüì#Ú:&“I&¹sß?çyà ñž¹w¸¿¼=Œíðxñàðx±8<^œ/–këü³ïŸ.ž-þøÕ뇯—^¼Xÿ÷Ò¬ÕÏõèäÙÅÏø¿ŸyË:¨³G—÷§ê:ÿðy{0ãµ[\ór=:y~õ¾žr-WÏŽ®÷ù\Ÿc`:_¼þf9ÊŠ¾ÖЙûŒn¢¿³|WŽãR«»h„WÚóɳ´ýù®-ú æï:¬Y[ô×óæûâäùEÞk^»¯_ïÙ?»Àt¢ßu½ CîWº‰þþó½;¶ +³Ï·iÑ[Q³ÙçT=¯q›}Þò»f³èfŸ ¸}¾z¿…q¸·é&ºkÐc«4û|‹nôi¾û ¹úsèÒ¢çîÏÛþ~Añk®?[y¿…q¸·é&ºkÐãjÜAÓþ=úâ}®ì5›Ó 9{c×3n +~ÖõgàFÞoaîmº‰nÁôx +¶¡-ºqó/µG]>ÿ³Ï»4è ×;ó5ן€[ñn ãpÓMt Ö Ç2h mÑ]šg·=ª¼/Ñýy—üš§ú=Ÿw[‡û›n¢[°=†„ígˆÞ4hóŸbœÓ‘¸?ßµA'»æfŸ€y·…q¸¿é&ºkÐýé ÛÓ^§æ_cŸ*í[äÙÏS7è×\îÄ{-ŒÃ=N7Ñ-Xƒî+sOëô†k¾ë®?÷æ½€Š¢[°ÝK†f6b‹vÝkìS¥ó‹³½1Wƒ¾æºß÷šû“ñN @EÑ-Xƒîà nLãtÝC×bž»ëÊ~ïµEg}ž»AOtÍÍ>“òN @EÑ-Xƒ®Ï nL‹vÝÇlÐûÞÿ +ýyî½ášßöºëÏÀä¼ÓPQt Ö k3ƒÓ¢]÷+E_\~|Ÿÿ&ýyÒߤø|ýxŸ ¢è¬A×d7´{®®û›?˨+íÙ¾«~¼:Ãy×ýìçŒ ú†ÙhýØï³TÝ‚5èzÌàÆ¯Ï_¼ ÿ]©Ûâ§N»C‹®2ûœµA_Ó£Ó~F€ú¼ÏPQt Ö ë0û¿žœþ¾üöåo˧¯Þ]üsõçèŸi •º?¯\éµZôu=ºbÎÜ æà}€Š¢[°]ƒÙçøµêÍ'/Yžžž~Z«?kÑãž½qÙÖv»Ö£?®ŠýYƒ€z¢[°]Ç݇ž}¾ÜŸµèYVúÙçuÑmX/6‰nÁt ÎáÈ3û¼miÑãö畈î«A7‰nÁt-ZtÞþ¬EwöF4°Mt Ö kÒ¢cÏÞØµEëÑ}gŸ3Р€m¢[°]›göÙlô½—þ|4pè¬A÷ Eç™}Ö¢w^ÎÞ˜€ ·jgC6ˆè¬A÷¢Eçš}Ö¢o\fŸ'¢AÀÖ^v>ò<\t Ö {Ò¢sÍ>kÑ—þ<1 vêcôèè¬A÷¦Eçš}Ö¢Çz¾ÏMƒ€;õ°ösrÑ-Xƒƒ»?ojÑM{tûgz4  Õ¹ÃÞ?œèÜ]šEÛ½ŠnÁôXFnÑYÎÞx6Zž ²¹x'®Ó¼Z¶èè¬Ai´}ö¹y‹nùìÎLH9{ëý¸Vãjµ_Ñ-Xƒ[÷]qö¹Y‹ö{Þ4@ê®Òªm=wc¸Ý‚5hº¶èê³Ï Z´þDƒ(ÑQZ´Í:VéýŠnÁ4[ÎÍ/Û£;÷ç-ºô3¹  Lûô]k†²ä~E·` šä÷õÐgoìÚ¢ôh³ÏIhÐåÎ}ðNîFÛÝ‚5hº´èQfŸÏFû® ™»H©®9‡]ªD‰nÁ4ÕïùQgŸµhß´ÜA†×ÎÚ¡ªîWt Ö ©ü 0ûÞ¢Kü®*v +mss7ÊïWt Ö ©øL6ûœ¢EëÏ´’¸}¦m›û«ýŠnÁ4ÕžfŸS´hý€6 +µÏ–ïã…®ÙÝ‚5h*=/ôçé[ôŽ=:ͳmŸ­ÞÍÏž·Ú³è¬ASáùíìyzô -ºåïZOÑöœ®kÞG“=(³gÑ-Xƒ&û³Äìóü-úñâ¯åã_ÿ^>ùéýÅ?+§@óîYªE7݃ô{Ý‚5h²>[Ì>Ç­g¯ß/¿|ýÏòèìíj½;:{»8:{[â» =ó!ýß_`ÒîYt Ö ÉØ¢Í>Ç­“—‹åÑ«??öçõ¥EPÎ`s·)g¢Ûƒ”{Ý‚5h²=wôç¸öüÝÏ\ןµhò/¿Š*«‹ +íÝOkœUÀá~®Õ’hi± bÈJؤÐv“…U°ÐR\HÅMqãå ™0f2ÿß{νÏÛ]ì%-ùåpòà°Ž½ƒÑýƒÑhï`tµw0ꛫÛÿ÷‡Þ ÍìôÍö/¾íZœ]üY’Ëøï¡ýó÷_\wû§v^ìϯ»££#3àüð|Ô=;ûÐ=;~·Ê\>;~7º¢ÿ¦À˜î9\×\â¼A7+Ý‚5hJé»åm¿¼wÍ'ÿv_ÿö_wøêíM-Ýf[˜5ûó¼­EPŒî9l×¼ç | Ø›•nÁ4ûó]{ž9g´è·çþÏw ýY‹ (Ýs¥®¹“¯Ù½Aì]ºkЄìÏZôÎûó–Û³ ÀàtÏrMsÆ;xƒÀïVºkД¼½±ÒhÑYú³ ÀNiÏ囦wÈõn¥[°MÈÝg-:Ëí -€AÙ¹-ß4µç|wUJ·` šÐ»ÏZôÖús¡ö<¯EëѬD÷ŒÑ¢} ÔŒ–ýü)Ý‚5hRì>kÑ5ôg»Ñ¬L{ޱ_ëòÿ|ÉÒ=Xƒ&Íî³åö† ÀF4Ï;ÑÞ¡ŽþÜ+݃5hÒí>kÑYwŸµhrï!Ìôoð{€ÃláçH–îÁ4Õôg-:kÖ¢°ûp}Yüc0ëï>O*݃5hRÞÞТ³ÞÞТø„öož]u?þè~>¿¼ùoÿûÒS£³Ñîó¤Ò=Xƒ¦šÝçF[t»ÏË´h= 2ÚsÜöüúâMwqqq7ýïuèœíyL&›ð»Ï µèÊûó¼­ETà¶±•n}ævúÆ<Ýž§;´èw7f)Õƒõgªß}®¸EWx{C‹hŒŸ={÷Y‹Î¿ûM³ýyF‹ÎÔ£Û}Ö¢*æGžö¬EçÛ}ŽÀ-š¸½±FŽÜ¢õg- FZt¬»Zô`Såîó$ šfwŸ¶èÆoo,;Z4@rZtìÝçE-Z‡^iªÝ}ž¤AsŸfvŸ´h»Ïk·h= )·¢ó´g;Ñ+Oõ»ÏÓ4hfir÷9h‹ÖŸ7»ÑIÙ‰ŽwwC‹ÞhškÏc4“ì>ÇiÑnol}´h€¤´èØ»ÏZôRÓÄÝy4hÆì>ÇiÑvŸw:Z4@RîsäiÏnEßM³»Ï“4hzúsœ­?6Z4@Bv¢÷çHí¹ñè¦wŸ'iÐms{#N‹v{£ØhÑ iÑñwŸnÑvŸ§hÐí²û§EÛ}Õ¢õh€DZ¿Ï‘©=7Тµç94èöØ}ŽÕ¢õç3*ýy +ÀòZ݉Ž|w£ÁíîÆ=4è¶Ø}ŽÓ¢ÝÞ;ýç‡3j¥EgÞ}^Ô¢vh»ÏKРۡ?ÇiÑvŸÃŽþ PZïsÔÚžïDÛ}^’]?·7âµhý9Üø¹„•©m'º–»•´h»Ï+Ò ëf÷Ù˜…c÷ bÙ[t »ÏÉZ´Ýç5hÐu²ûs¾<>éöO~¼™þ×¥?£?´"[‹n½=lÑvŸa‚Ýç˜Ó7çÏO¾é>;}z3ý¯õ袣?4(íèÖîn¬Ú¢îÐÚ3Ìp»ÿ\ºï™{úóôŒ{´=ȸý и¨;ÑvŸÃíD»»shÐñnoÜןµèAÇî3áZ´ö®EÛ}†܂αû¬E>ú3áîs¸»®EÛ}†hÑ9û³½“ÑŸµm÷y7-zƒm÷6 Eǽ½¡Eï|Ü~ T‹ÖžÃíDkϰEZtŽÝg-zkc÷€P÷9ÜÝ×¢Ý݀Ѣsög-z¥ÑŸ³m÷¹|‹~òü¯î«_ÿ鿸îöÏÞÛ}†ahÑqoohÑþ @ˆ­=Ç™ãówÝã—µ(D‹Î±û¬E/·ŸsŸÃÝ8óò—7Ýw§ou@‹ÎÙŸgµèßÐ÷/±m÷9μ:ÓŸ½ÕŸ§›‚ Ó¢ãÞÞXv{Cý€b-º¿-Üßþâøï››ÃÚsšö<«/hÑ0°Æ:fÚÝçYÓÐêÏ1ý5wk¸¿9\º¿¶>sînh \³ªþ<Ù +~Cß› ˆû¾ÆîÛg¿Ûïá–n±­Íš»ÏºÃŽýZÛ˜H‹‹ +íÝÁj[W€a¿FÖ ›–‚!”Ò.³‘²hšh“U@¡Ð·W¸&$ÈÒ•uï™™s¾†Ð®BO#áŸars—¹ßì_Üoöïî7ûÏ÷›ýa„¹Ûl·Ûׇ—ÛW‡ŸÞüVf:Ãé÷þ¢íÿýðíçê³?SÿñæÓaóï§ÃÛ»Ýά<ÿ¼ÿøðß|¥1uë¤cÎêÏÕÚó¹}ä «½£þ @™2uÑ©F7Ú^gjüSë_©?ÿØ#´hÐs‹®ÜŸç4è¢ï¨?ÐÔ?3Û‰.Ýžµ -j˜ÝÞÞ¸¦AxGŸï¤½»¡EwswãÒV¡S@€Ä sv®Þž¯iÐIßÑg:M­ýs±ûåvŸO5 ;s$Yî?_Û ½£þ @3-¶]r÷ùT¿Ð¢!H‚†9Ìí5tð;êÏ”½»1w´èr»ÏçZ† A²¶èÞvŸ×jÐßÑç5Ã5 ÷9Êí>kT–ÏõÞûóZ ºÁ;Ú}`¸Fñ8v¢Kî>ëTäç|¯·7Z6è•ÞÑç2]ßݘ;£¶èŽÚó½ÃN4 Ô¢{ß}nÝ |Gý€!wŸOÍH÷9 +ßݸ¤}hÑÐùw€þœò}þ°ºjíy¤èNwŸµì;a”Ûô…ïh÷€›ÑïnŒÜ¢Ø}>5ºtÒ¢GÚ}ÎÔ g¼£ÏYVUy÷¹÷ûî>?5v¢¡ø÷Ũý9Sƒ>òŽã³€UôÚž{Ù‰|÷ù©Ñ¢¡Ø÷Lj·7²7hh¡—»=¶h»Ï³F‹†-º×ÝçÛÝïMô;@K#ì>WmÑÚó³F‹†¤ß--ûó±î»T?^b¢ßZ½=g¿íîÆÕãïÓ‚Dß5¿¼ÝîÞÿÒ{5hho´»•v¢í>/:v¢!PdoÖ  †ÝçÜ-Úîój£EC€èæ<·CkÐp=í9÷}»ÏÍF‹††¢{³ m¸»‘w'Z{·¢¡èÞ¬AÀºì>çnÑîn„hXYtoÖ `ÚsîûvŸÓ +‰îÍs;´ 󹻑{'ÚîsêyýçzÝš5hXŽÝçÜ-Úîs‰Ñ aaÑ­Yƒ€ëiϹïshÏ%Æ-XItkÖ à:înä܉Þ|Ø6»ÿ´ç3ýùÑža%Ñ­yn‡Ö à{vŸóϯÿþ{0'Çî34Ý™5h¸Œö\cî6ÛÃÏÛ?~þ½˜£c÷‰îÌ4ÌçîF™ºóËí«‡¦1ýªC§»ÏÐXtgÖ à<»Ï5fjÍ·Û×ßúóãLÿ<ý{-:|ì>C€èÎ<·CëÏŒìkŽîwfæîóS£E‡Ýgݘ5h8Ï Žz»ÏZtš±û Á¢³ ó¸ÇQ¿=kÑ:ôjc÷’ˆnÌ4\ÆNt»v¢CÇî3$ݘ³Nô»À)v¢ëî>kÑ«ŽÝgH(ºõfèw€9ìD×Ü}vŸc•±û IE·Þ¬ý.0—躻Ïv¢»ÏXtçÍ<Ño—Ò¢ëî>kÑÏ»Ï\tçÍ<ÑoÏå>GÍÝg÷9.»ÏPDtçÍ<Ño×°ÝG{¶}tì>C!Ñ7óD¿ ,ÁNt»ZôÙ±û EwÞÌý6°;ÑuwŸÝçø®?kÏPPtçÍ<ÑoKÓ¢÷çjíy°h»ÏP\tçÍ<Ño­|Q6[¨ ‹ +íÜ1n\GP]C±È‰†.à„tæD' îƒV0„Ц¸ØÙ­îž÷€:YÔ¥ÆÿðØÍÃãóLJÇç¯ϧ]óÇãÓéÓÓߧߟþ:ýöÏŸísþ9Î?ÏùçJÿnæü7ú1ýï¸Î§/ŸOòzÒÝÀvèwÛ¢§mϯmÑvè¯ÿýmÚŸa€ôÎ[9énàvº‰>o³S·çA7ÑnŸa˜ôÎ[9énà^¦ßDO¿}²E»}†¡Ò;o夻€{›x½Ëísó-Úí3 –Þy+'Ý $ º‰þ~W»ûþür‹.¶C»}† ¤wÞÊIwIÍ·èwµéÝ·Z +ÝD»}†M¤wÞÊIw4û>ÇOwµéÍ·j‚[´ÛgØLzç­št/PIƒ›èÿÝ5Ó[oõÜùûnŸaCé­·jÒ½@EEo¢ßÜ5Óo§›èvëö6–Þz«&Ý TUè&ú]»fzßí”uëö6—Þz«&Ý Tޢ߽k¦wÝNyÑíµ½º}¾Ko½U“ó÷9.Þ5Ó»n•\º‡\ù nŸÒ[oÕ¤{€Nîp}ÕMmç]8½‡\Ø­Ûgà'é·­jÒ½@G7º‰¾ú¦¶Ò&\uþÕòŽnÝ>¯J¿mU“îºZx½ì¦6½3LØ ßèÖí3ð¦ôÛV5é^ »JßNï S6èWºµ=¿”~Ûª&Ý lú}Ž›ÜÔ¦w†i4À%Òo[Õ¤{€ o¢oö=áôÎpŒ ØMúm«št/°ÑMôÍ¿'œÞޱA»I¿mU“î¦zñ-á»|O8½3cƒv“~Ûª&Ý °Nzg8¦êþln%ý¶UMº`ôÎpŒ ØMúm«št/À:éá4°›ôÛV5é^€uÒ;Ã16h`'éw­rÒÝë¤w†clÐÀNÒïZ夻ÖIï ÇØ ¤ßµÊIw¬“Þº$Ý0Oú]«št/ÀZé­¡KÒ=ó¤ßµªI÷¬•Þº$Ý0Oú]«št/ÀZé­¡KÒ=ó¤ßµªI÷¬•Þº$Ý0Oú]«št/ÀZé­¡KÒ=ó¤ßµªI÷¬•Þº$Ý0Oú]«št/ÀZé­¡KÒ=ó¤ßµªI÷¬•Þ:%Ý0KúM«št/ÀZé­¡SÒ]³¤ß´ªI÷¬—Þº$Ý0KúM«št/Àz齡KÒ=³¤ß´ªI÷¬—Þº$Ý0KúM«št/Àz齡KÒ=³¤ß´ªI÷¬—Þº$Ý0KúM«št/Àz齡KÒ=³¤ß´ªI÷¬—Þº$Ý0KúM«št/Àz齡KÒ=³¤ß´ªI÷¬—Þº$ÝÓ¥¾—̇‹ +íØAmPCÑÐ ‚B $ €nÿôÎ<#%/üõlöýóç¯ü›ºàóê¿áJꞀ·Ô›¶5u/ÀçÕÕÔ=o©7mkê^€Ï«ÿ†+©{ÞRoÚÆÔ3êÏáJꞀ·Ô›¶1u'ÀŒús¸’º'à-õ¦mLÝ 0£þ®¤î xK½iSw̨?‡+©{ÞRoÚÆÔ3êÏáJꞀ·Ô›¶1u'ÀŒús¸’º'àõžmMÝ 0£þ®¤î xG½g[S÷̨?‡+©{ÞQïÙÖÔ½3êÏáJꞀwÔ{¶5u/ÀŒús¸’º'àõžmMÝ 0£þ®¤î xG½g[S÷Ì©‡ ©;ÞQïÙÖÔ½sêßáBꎀwÔ{¶5u/Àœúw¸º#àõžmMÝ 0§þ.¤îxG½g[S÷Ì©‡ ©;ÞQïÙÖÔ½sêßáBꎀwÔ{¶5u/Àœúw¸º#àõžmMÝ 0§þ.¤îxG½g[S÷Ì©‡ ©;ÞQïÙÖÔ½sêßáBꎀwÔ{¶1u'À¬ú{¸º#àõžmLÝ 0«þ.¤îxG½gSw̪¿‡+©{ÞPoÙÆÔ³êïáJꞀ7Ô[¶1u'À¬ú{¸’º'à õ–mLÝ 0«þ®¤î xC½eSw̪¿‡+©{ÞPoÙÆÔ³êïáJꞀ7Ô[¶1u'À¬ú{¸’º'à õ–mLÝ 0«þ®¤î xC½eSw̪¿‡+©{ÞPoÙÆÔ³êïáJꞀ7Ô[¶1u'À¬ú{¸’º'à õ–mLÝ 0¯þ.¤îxC½eSwÌ«ÿ‡ ©;ÞPoÙÆÔóêÿáBꎀûêÛšº`^ý?\HÝp_½c[S÷Ì«ÿ‡ ©;î«wlkê^€yõÿp!uGÀ}õŽÙF RRwÜ·i³lð?Õÿî…Ô÷mÚ[ÀV¿”Ÿb±‹ +íÚA­CÁO'%ü‘$ rÚž7^UIF`©Vÿüð~ýùýWþŸº#€Os뀧ÔûîBêŽ>Í­žRï» ©;ø4·xJ½ï.¤îàÓÜ:à)õ¾»º#€Os뀧ÔûîBêŽ.¸uÀê}w!uGÜ:à õ¾»º#€ nð„zß]HÝÀ·xB½ï.¤îàŠ[\«÷Ý…Ô\që€kõ¾»º#€+np­ÞwRwpÅ­®ÕûîBꎮ¸uÀµzß]IÝÀw¸Vï» ©;¸âÎ×ê}w!uGWÜ9àZ½ï.¤îàŠ;\«÷Ý…Ô\rç€Kõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€Uõ¾»º#€eõÆûöÔý,«7Þ·§î`Y½ñ¾=u?Ëê÷í©ûXVo¼6d€ïõ–}Øf ð}Þò?lƒàÊÅýÓcÑQ‹ +íØA À@Áµs +"%þ•\ˆˆæ ©‚ùÏ»g`fÝ×~wúߣAPÑ (iÐT4h*4 €Š @Eƒ ¢APÑ ¨hÐT4h€ÿy í.!‹ +íÁ1 õOím Þ"êâ!‹ +íÁ1 õOím Þ"êâÑ‹ íÁ1 õOm  € t² ˽‹ í×Á 0ðî¿ôu…üB@á÷Xsw’$I°§ý’’$Iiìi¿¤$IR{Ú/)I’”ÀžöKJ’$¥°§ý’’$Iiìi¿¤$IR{Ú/)I’”ÀžöKJ’$¥°§ý’’$Iiìi¿¤$IR{Ú/)I’”ÀžöKJ’$¥°§ý’’$Iiìi¿¤$IR{Ú/)I’”ÀžöKJ’$¥°§ý’’$Iiìi¿¤$IR{Ú/)I’”ÀžöKJ’$¥°§ý’’$Iiìi¿¤$IR{Ú/)I’”ÀžöKJ’$¥°§ý’’$Iiìi¿¤$IR{Ú/)I’”ÀžöKJ’$¥°§ý’’$Iiìi¿¤$IR{Ú/)I’”ÀžöKJ’$¥°§ý’’$Iiìi¿¤$IR{Ú/)I’”ÀžöKJ’$¥°§ý’’$Iiìi¿¤$IR{Ú/)I’”ÀžöKJ’$¥°§ý’’$Iiìi¿¤$IR{Ú/)I’”ÀžöKJ’$¥ÀªžzâÀ‹ í×Á 1Áôßt®á"™mÀŸçÀ»î½’$I°§ý%%I’ÒØÓþ’’$IiìiII’¤4ö´¿¤$IR{Ú_R’$) €=í/)I’”Àžö—”$IJ`OûKJ’$¥°§ý%%I’ÒØÓþ’’$IiìiII’¤4ö´¿¤$IR{Ú_R’$) €=í/)I’”Àžö—”$IJ`OûKJ’$¥°§ý%%I’ÒØÓþ’’$IiìiII’¤4ö´¿¤$IR{Ú_R’$) €=í/)I’”Àžö—”$IJ`OûKJ’$¥°§ý%%I’ÒØÓþ’’$IiìiII’¤4ö´¿¤$I6P{Ú_R’$) €=í/)I’”Àžö—”$IJ`OûKJ’$¥°§ý%%I’ÒØÓþ’’$IiìiII’¤4ö´¿¤$IR{Ú_R’$) €=í/)I’”Àžö—”$IJ`OûKJ’$¥°§ý%%I’ÒØÓþ’’$IiìiII’¤4ö´¿¤$IR{Ú_R’$ýë¢2Vc’‹ @@ -3061,4 +3165,58 @@ gk:c íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõtÔ‹ +íÃA ¡ú7}³±$TKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUÝ·VÒ½#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt‚‹ +íÝKˆgÇñ_&“™Éd2i2¹gšd’L&3¹§MšK/iÒ{³µ–Ö6­¶ŠV¡hqã¥BA¤›P]ŠÔÛB±v%‹TŠ +*‚¢(ˆ]XT´‚n|å„N©az.™sÎs&ý,>ÛÃyÞó_}ç?Ï[UU*€ É`’usXUú»°°$¹9ÉSI~œä_Iª:þäI¾™äÑ$»JzO’'ùeƒæÜŒ/jÑ´¹=kÑtº=ÏÕ¢·•>/—dE’gºÐž/ôpé³Ð9IF’ü¤@žõ±ÒÏ€ÎHòý‚ýyÖ£¥Ÿí•äñyµãE}Õâ%CU_ÿ@;:ôU¥Ÿí‘d}’W[éÄËÇ6U&¯¨v¹¥Ú{êþêÀ½nßéªékì;YOUã­6èJ?Ú#ÉG›íë7ÏTSÇîø¿æÜŒñ™ãÕÀÐH+úÒÏ€îì@/î;Ùr{¾ÐÊ;šmп.øL¦“|(ÉsI~šäOIþ3‡Wjß3ÉóIÎ%¹±ôï ÐKšÙ^Ô×_M^uë¼ûó¬µûzr:É#I~5Ï»¬ÿ™ä3I¶—þmÂôÄÁÚÖŸgÕî‰î•]è$ïOò»6¼KñBŸ×¢€·ªfv ×lÙÝöþÞÖ3M»½Z::Ölƒ~9I_é¹àÒ‘dy’$ùÖkw¾4;‹Nr.ÉáÒg`áJrS½µ¸ ký¹fûok{ƒnvzÉвjòè­9×þ36s×µ]hÚ&ɦ$O%yµÅ;aæòR’c¥ÏÀ“äázíipä²K¡A7ܮݗ1yä–ŽŸodÕ»Ð,¤ö¬E0/I>^¯9-Û´ t³;ÐNwå|{®¿¯Yiš…Öžµh.J’ÏÖkM+7îXè ºáôºíºzÆWÞdš¶zí}‚/w¡=_è}¥Ï@oKòíziíľ®öÙm‡nl[ƒN²¶QC«í$wó|³Vïl¦ïÝZz>è}Iž(Оßè\ég@ïJòB½¾´i×Ñ®¶Ù­ûOµ³A?Ô¨ŸM¼¡HƒÞ}Ý=Í´½Ï•žz[’Ç +÷çYgK? zS’ßÖkK[÷_ßÕ6»yϵZ×s-œíõ>kñ’¡"ýyÖòÕãÎú‡ÒóAïJòžùtã%ƒËª¥£««ÑÕãçß•9°t´Ê¢¾‹ý¼ÚÔ»J?zO’ÔkK;ßÜÕ.;>}¼QëúN gûQ/Ýu}¡ÚŽym¯¿ôŒÐ{jw…×þFÑJ'^´¸¿ßuþïJµwc¾Ù\Î\{wµqçájéò±V;ôJ?zK’áF]i׉;»Úe7NiÔ¹¾ÚÂù~Sï³¶ì;Y´AO_sW3]o[é9¡÷$y²Ù6Ü?°´Ú0yEµ÷Ôý-ÏèäÑÛªákZéÐ'J?zG’­šÒžëÏvµË®ßq¨QãúB çû{/íxÏ%YÔè¼'KÏ =¹ý—fšpí¾—™kï™÷œŽOÙ… eIÖëI}}ý]o²ë¶íoÔ¸žnWƒîöŽ÷\†F4h:²½nb[gµv?‡]hZQë›õZÒ’¡e]o²k¶ìnÔ·>Ý®]ïNÜnY¶rMÛw Wožîȼ^¶~Â.4MKrG½–44²ªëMvìò]úÖíjÐÓWßU¼A jдuzå†í›×ÚÒM̬]hÎKò`½ŽTÛÑív“]µq²QÛúH»ôä‘[Š7èÚ}'4ÍjfºÓ[ÙvðL3 úk¥Ÿå%y¬^G]sy×›lÿëÿÁÎ÷ûzŸ5qàtÑþ¼ûä½Í´¼©ÒsBoHrªÑ¼¬Û~ +³;¼bm3³;Sú™PV’O–úŸþ73ºvs£®õÞÎ÷b½ÏªÝ=]²AoÙ{]3o¸ôœÐ’œk4/»¯{WWfwóÞk›™ÝO”~f”•äéï5«gùئF]ël çûn½Ï-Ú k¿ÁY_)=#ôŽ$ÏÔ›—e+×wu~—­h4¿Ï—~f”•ä+uÿ¯Ûþ®wÙZGkеîlá|7ÚÕœ:v{±Ýß?Ôè¬_/=#ôŽZÓ­7/wîêü®›ØßÌ.ôÊÒÏ €‹ó?ÄÐJ÷‹ +íÝ{œYYÇñßôôÜzî÷™ž[ÏLϽg&“™Ì$3¹Í$Ùl–,$ÙÝl’Ýì²[¢X.”W¤°ÊUuYð¥Pb %ŠºZ.…H!” ¥”àYªÄ»” +Š^9Öi:[+Lú¼Ýýö{zº¿|þH*Ý9Ï{NwWýúéç5ÆÈ@‰$½G’¹äܦ9tÇ#‘Jtößv=9wPß‚ã¹LGÿxä5ZCéî:­‡|ŸTI‘DVNGz†§7.9ÃW}_7ø#écùò£±¥‘g³ÍmÝ®Lk¯ÀÿÔ•“g¢­sáÄ}¦®.$¿ëó}Fpp2èôÆ…È_¯õ ®3ü3¾¯ü‘ôé|ùÑä¡3‘gZ Í­®Lk»À/»²ÞxSÂÌï\‰¬Æ®ÁÉ ùó¾ÏV=¿}9ò×kç@ÊuŽ?àûºÀIŸÏÛWyä®È3­X}ƒ+ÓZ-¢Ng/tK[—Y:u­ìõõŒÌÉŸéÆÈ G޹Îñ_ú¾nðGÒWóåGsÛ—"Ï´d³EÔéì…¶]&súzÙjëŸÈÍŸéFÁôœ‡ zêðAÎsÌ÷µ@ô$5º²£¥S÷GšgevoɳºŠ¬×Ù m5¶´›ô‘pçꮞ}Øt MÍŸéFQôìÖÝ‘gÐ Çï ržÓ¾¯¢'©Ç•­œ¹qžu¯3Ï2ÆÔYo ^è[F¶C©iîØ‹LKG_!ù3=Ð(j~{ØßàLŸ÷}í=;Ó"on‹EžeÍ}¡+Ëú·k~g!9ts[·[Ú)ª–™­‹…ö>[#©Á÷Ù@e’ô‡ùÎÏäÚY/´ýí€ã\_õ}í=IKùr£X¼1ò,kzý¼+Ëúëk•ôÙsaoJdï%˜ZÝ5Ë{Þ>wÞ¼h§™Dg¡Ùó-×}Ÿ T.IÉw~Æ3'½dÐm=I×¹~Ä÷µ@ô$Í—54µFžeM¬ìº²¬? +¡îeIÿTdFüõ|¾>nšZÚL¢³Ï4µv™ú†æ¢Ÿëy¾Í÷™@e“ôÞ|ghd~ËKÝ9˜ríÇ|_;DOÒÙ|¹QSkgäY–ÁìȲ>RíÇ%}1„Ü8,ßçû< òIúÅ|çh(}ØKÝL»Î÷+}_;DÏu>{½¨³¬á™uW–õk!Ö?ãšmÿ•ô€ï³€ƒAÒ›ó§þTÆKÝ;6ï:ç¯ñ}í=IæËÚz†#ϲRW–õ¶2\‡·zÊŸÿÄÎCñ}ppHz"ß™êó’AxݾÁ÷µ@ô$½4_nÔÑ?y–Õ3:ëʲ^W¦k±*éç#Ìžé}FÁ$}¾³Õ54å%ƒš^sùŸð}í=IßSiyV×à¤×¹²e΢ɞqëœõHš’´&i'µÜ̘ÎÜã¾=ÿ÷Fc^2èäìgmï¹¹G%=$醤«’®H:%iIÒ ¤¸ï½¨6c’tXÒ½¹^Ç•ô“’~NÒ/Kz¤îãw$=-éí’Þ(é‡$}W.Û±yÎlžÿóñ¼¿ë™<˲ó?YÖ·F´afÑŸ {†¤=I?&éÏ‹Ok;/éýe~{»hÀ>èr°¹ôUßg Hê^æü¬‡¬f?6÷~K¾38µy–ÕØÒîZ÷¹ˆ¿+¸œ››m{ÆŸÜÇwçîíx\RFÒ€1¦Î÷™«6¹¹ çs{a¯û»%ý~ßßü¤ôIIï•ôò|¿8(Ùó-‰/ôð̆Ï÷2²hPË}™vÎé37ÅæJQgYõñF׺6ʼoÓ¹lþÓEö›ÿ†Í­}Ÿ¿<õ%$¥$mJÚ݇?<éyÍ’î°³¿%ýª¤ÏEpÞÿLÒë%Äìù–xc³Ÿ :½îýýŠ,Ô +I—$½KÒU@&S’‘ù£‘gYÖ•.söÖõûh¥dÑ’îÎÍ +ÿãÖÿ¹ù-¯µýà¬ÑÎÊøNIï“ô5çþË¥dÑ’Þäó5[WWï%ƒJöVó>~¯R^{a’t-7ÛÙT‹±¥ã‘æX™ÝAÖÕ[áÙsÅdѹìùƒ!Õñ agѹžk{¾Ïø>ëadѹù ¾×í%ƒ˜\ñ^÷>Þæûs ’^,éS·„.µ²i޵püž 늅´oí÷¬F–E‡œ=‡šEÛï$½ì}_c³è—¨ë°Ö¬å½›‘gÐöþ¥¾ë¾7úþŒ(V5gÏ·L­‹4ÇšÙºèZÓ—BÚ»{o/ã™<[Æìy¿,:YÀÚÖ%½Ã÷™.Á‡$mݦ¶Wû¼±x£iln3Ím=&ÑÙÿœæöžìý9ÌGÿ&Ë{DžA÷ŽÎí[[s¢#[OGߨéš4=ÉÓ32kz’iÓ=<ý»ÎÁ”é7­]ƒ¦©µÓÔ74‡½w¯ñýyPIٳ͜lþÔ90aúS™ìœÕäÜ–[Ü1˧Ìä¡3fzý¼™Z?oR«»Ù¿OÎ1ƒS‡Lßø¢éN¦MçÀ¸iLt”¼–ôÆ…Hs¬©Ãç\kú\Hûg<{wÎåãêøW{=ëÚ‘ô+pÍÃ`ï9yìê;Zèó´veï÷9·})ÐëbùÌM³xòª™=ú"3½~çs¯{{@ûš·9n{ïˆijë2uõq³rö¡È3èÉÕ½ììûÞ´pü^³r¦ô^ì¥SײßKÙßcØ÷¸®ÁÉRòéyߟ.’î ;{nhnÍöŽ.n›ôæ ²™K˜¹Pf÷3½q§IÎmf³éæ¶î‚Ö7¿s%Òk|ù¤kMŸ(qOU@ŽyËëB<›?ë¹–kû¬iWÒ3>îÉWßÐh¦¡¹Í4%:M<ܾÚ‘´ñ¼:Ÿúضždö{–¨óájcsiÛ;]à¾=åû3À1¿ö­aäWõ MÏeÎQç»·Øœ{d~+û»w×zí=£\ÛÈÜ–kMï/aû$ý]1ûÖÐÔj:údzó§VŸ×:e]¥œ‰—†p>_uÎ{d϶¶­7izGf³û`0³yÑùýÍÊÙ‡¿ÞK¼u·™\;kúÆJù­À?JZ-¤:9»é=»­6é#we_—ì½Ð âHz‰¤/”’™ÕÕ×gsg;CÃwfólng}Ü®?:êõØy"Žëù®öòÇ Ù·¦–6324мÛožZÝ+4³þÖSWâüç¢Îe,Ïöá·tôegCØyÄöÏ%œõ„=×ÕÅL[ϰH-›‰•ÓÙ{V†}ææŽ]2ó&Þ”(f>t h›“û~­W3û^À=£T IM’~©”ü¬£,;[ÂÇlÖb¤í™–ö^¯´íMu\ן*r?gçž±xvvI±5¤\(4‹~U çô· :“}£Ù~\;Wøvë·s|íüûÝ„íÿ3SÂÎΰ=æ“kçÌ깇#;{Ë{š¾±ùÐëÏœðþÚ®v^tÀ=¡x—ûý'‹ÍœºSÙÙξ3™0z +£þ¿íl Çõýárö@·v ˜ùíË¡Ôbgv”³ºhÛKlïWLö>sñÆ–²æÎöœö}a]ûRØëd{ÃèkhzÍ{=µÄ^ïûB/4ðJÒý’¾RLÞÔ=œ6³G_è=‡ Kÿøbäÿg{ïˆë:¿¼\=Ðvÿ®ÇÎ`(W/tÐh›…—ZGæôìõ 3w®7fûŽ+ñû;[%ÑÙ_R}‰Ž>ïuÔ¢3¾¿èûsÔ.I?XLÖÔÞ›¬ªìÙ§ý§–£ÚÞŸ±\5 Ϭ‡Þ ´ztñX¨µØÿR³çDGo¶·Ú÷YsY:}ý›fÓ"µºë½†ZdûéìÏ£¾?o@í‘ôd1}œ£ ÛÞ3—jÒØÒîºîÂîŽÇ›Íâ‰ûÊZWïè\¨½ÐAz í}üÊQK±s*l_qjå´÷3VˆÅ“Wo{¿Î|Z:z½¯½VeN_²G?âû3ÔI¯/4cê™ÉöIúÎ[ªM,Þèºö[a÷¶Û{™•».›q8WŸ XÓNùÏåªÅÞs±×Jk÷I:ãýl•2ºÐ÷‡råÿ¦;éœóߟ; vHzSAùR]ÌŒ/Ÿôž±T£Õs/²3îïÇó=Ÿí»Žª¾Éå õ­¨é-®ç™:|®¬µô§2ÎZš[ÄÌ z’3eÐÅÞÿ‘Ý›ðþ?{@môÓ…äJö7ùÌ}.ÛW`z +Øß×ó N–~¿¾ æw®©ï•êz6ßs$:Ê^ËÜöåü×uj5û‚ï3–Å“÷›X,ø½"³{ÃûškÙxæ„kþÊ÷ç¨~’~ ü¹s0e–ÏÜôž­T³í× +Üã#®}Mo¾ ÒÌ~³£¦9WM#óG#©¥½odß×ÉÂñ{¼Ÿ%÷º3uuõÞ×Zë¦7îtíÓç}€ê&éZ!ù³íéô©Ô‚ô‘»\{ñ…÷ùî|Ïoj‰¼F;'ØQãÓŽšN¹Î«Íò£¨ÅÎÙøÙ÷Ü–÷3TNË{z¿°3H|¯µÖ-¿— x“ëýï ùópzÝ{žR+R‡ö\ûñl{ý-ùž¯¥½7òm²£Æ:jº”ïñ‰ŽÈjÉäf§$:ûÍâÉ«ÞÏO:ÆÉ €¥“÷“A/$õJúLàüyfÃ{–RKÆw\{ò±03èö¾ÑÈkœXÙ-5ƒ~8ßã[»#Þ³ê¸ç`P㙓Î÷ú†Fïë¬uvn?4ðAÒ3Aóçäܦ÷¥Ö Ϭ»öå7ÃÌ {’3•8oÄ•A?’ïñýcÞ÷±š­œ¹iêêbÎ÷ßë¬uSkçÈ @ä$}GÐüyd¾ºçÚVªþ‰ŒkoÞ~Ð3è÷JseÐæ{|÷ð´÷}¬vö¾‹®÷™­‹Þ×Yˆ҇]{ô)ߟI ºHJKúÏ ùóÀäŠ÷ü¤Vu'Ó®ýyê gÐS‡ï(5ƒ~,oL{ßÇj74½æ|IÎñ¾ÎZÖÖ=äÚ£÷ùþ\µ9ƒ£kpÒ{vRËì ǽâ gГkg]5þ®£¦WAû•ZuÞ;Ó´÷&½¯³Vevo8÷GÒ¾?—@íÍàhéè5+gòžŸÔ²Vwïâ£îýc•–A§qÕøGMç{|ïØ¼÷}¬vó;W‚dœÙ¹+¾×Z‹RËAögÏ÷g¨’z$}Ù•GÄâf~û²÷ì¤Ö%:z]¹Ñ¥÷ÿ{+.ƒ^ÝuÕø[ŽšžÌ÷x;SÛ÷>Ö‚X,îÌ9;úǽ¯³Ö,ž¼ßHu®½ù’ïÏ&P~ÿCý:|Ý‹ +íÝ{ldçYÇñÇ3ãñø2¶×ã»Ç÷Yß½ëõú¶kïzo¹ìf“lîÉ& jT%$¢*@£¦åÑBH[PJSA¡D 5 RQª’ˆRM[ŠBŠ@©T©´jÕ@[Tµ@Q¤ƒÞ‰·ZE»ïsŽ=~ß3ãï©tOÞç9~óú9AHà€ˆ¼_DÍÐÞcÁÞ“? ÏÒõYí^xÿßc»^®ÌySkZŸVjú°íßwÌz¿;A}sN}®Ý£û¼¯u'iîs_rñýªŸˆôŠÈ›Z‘Ë»Ï!qiÉÚŒ–í¸±]¯cpÒyýµŸUjzÂöï{vï÷~w‚Öî‘P´‘ŸXñ¾ÞÀ<ËCÜÿ‘”ïï'PDäCZaÎÝλË{v‚·ÔÔ$´ü¨qüŽízÃ3Îkì[Òj|J©émÿ¾wÏ‚÷û¸´å‹¡3èÒo~ØN¹üž°÷‚3Р,Dd$LÁ Žø˜9vg˜ü¨+â>øhÜæ$ôçµ?®ÔôgÖ3·ãËÞïåNÐ>0)ƒ6šÚz‚á}ǽ¯½šŒ¯Þ4îê{8 ÊFD×òfpÄËäá[ÃdH™ˆûàO­gS‹óÎë4¹·RãG”šž³ýûþÉCÞïåN`ÎÐGÍ /0³¤ÍÜîÂÂ)ïuTª©#·CÓQ{Ïhàì t"•¦žóž£ØL¯ßŒì¿"è-Úûǃl{>¨kl j3A*]$Sé ‘L•þwº¡9hhΕþ?&—1ï½Û³|­÷¢;xVËþw{áù¸‘›=¦ÔôÛ¿˜^ó~/w‚îÝs›Î /V“H ÍíA[_¡4Ë{`j5Ù2سr]0µ~»÷:ËÅ&‰Ä&êNÉÚº iDŸÆYßßM`çœ6ç†gŸ÷žÕ\`Κ\©6ݰ­YV}6WÊ­|×{9æì§RÃë›Ø_µ]ÓÇlÞÖî‘-Í Ð2èjŸ7<~èÆ`pf½tž¼©­7H¥Ò¥º]¯#?¾â$ƒŽšÛ¦3MA¦©-hë-x¹?¾{p÷ùþn;ë ´™má;G3Ìß•‡È#Ë.ÓÔZšñá»þ·3¹¢²ö/mb?|ÓvÍÝ®v^§™—²•¼LË ãxoËñ;™SQßÜ~Ùº]ÏÖéŸ8è;WµJÖf¼Ü+‘ﵿͽ¾¿—@õ‘zù±-0g}çi[}ŸY¹˜wãùîCÄLïÅMì‰Ú®écfvck§Vç9¥¦¿Ý ´™lÞÙÐÒj?»žGb¿Zçvo73/ÙÇ}K$k½?Û6|CDÖ}/€ê""?§å}c‹^s5ó®rÍz.‡–ÎïYãæ]cÊzŸ¸RqË-÷ÿ´R×—«9ƒ6ï¬ËõE>Oëú÷„ô‰ÈqŸY´ûgfy~®}_D~ED¾¿“@õ1³lÙDM2éüïõ/68}8¨)Ï»µÊª©­'˜^¿Ã{öhÎe+kýxÄýСÕ>}Ô}ݵuZ«J]¯ÙþýèüUÞïåfì^8µ¥Ù4®ë“A_tϼdÑ>îcº¾ÙwöÜàû»T'9¬e¹üoùZ~bÙW.Š™³;sìN¯dÇД¶ÎGÜEûõj¼Ô™H¦´:g¶’A–®ñz£šZ¿=hë+nyÍm}ѽ[‘÷‰È+.>×>~sËdÛ\?¿Èž€"ò -«(,ž®ÔüÙÌ4~ID>("?/"׈Ȕˆ mä¬ûEäÔFó”–Q^NK××,2—ÓÖøHÄ=±`»^²¶Îy3Çχ¹ƒJ]¯ÅmÆõfõO*½;¯Y¤¹VÜ3è·ÝÇFY‘»Eä"òäÆû&ÿED~PŽžL¬Ýìüž6èóÎÍÌþïˆÈë"òï"òÆÆ3îÿ"dÎÿ,"¿'"gÉž€+Ú»[»¼dlÃûŽo6?zYD~ADf7ÙÑÿb”ÿn×Ȭ·ÇƒZ_îõý•ˆ<ǹ¨Ïyþ“6x‹=º!ìZZ:¼d“Ù\Ÿ¶¶»"Ö|¯ízM¹^ç5Nk5þG5gÐ=…ù²gÏäúÇœÖÒÚ5¬­éw<ûþÕ¶†‘¹“qü{†wùþΈJD¾nË›w¿*}yØ÷w@"2¯ç©‹N3sæ:•®›¯}Ìq¿Eä´ue²mγ+3CY×Uk}Ôv=“•¹®qpú°Vã«1ƒnnÏo&{þÁÆ;8k6ê¾ßöÿonïwZSˆ9;·:ø<ÿ•m ý“«ÎïuÇà¤Ö—÷ûþÞˆBDÞ«eYã‡ntšÁtÏÄ2;'ÙWiÚ¥õëHÄ:ÿÐv½Î¡iç5šóåJ/T[Ýڭά¸”OˆH×Ûê>—÷ŽŽ¯Þ¦†ŸåglkÈ/;¿ßf.·ï%å$"ŸµåõÙœÓüeæø]A"ÜûÖž÷Ü·÷Å-ƒN×7k=[ŒXã³¶ë™ÙÄ®kìÞ=§Õøt5eй|1jöüºˆ\™ºÏÄeÏL­…©%ïàsü¤m ½ÅqÜãàû{ +ó7[ÞÑ52ë4éݳ&›zÃE>¥ôm..yÞµ™&­o‘ÞÙ("/Ù®—ŸX‰ãœ‚VKÝ185þKÉYê>¢]cæØ]q™yü GŸã'lëèÝçü¾‡x~Ò÷÷@X"2ªeRæp1›'aœAïb—A‡˜¯[ŒXãWlלYã{ù~³2èüÄrÔüùÑ­îYctþJ7{UŸ÷î$g‘ÆmÞL~|EëÍs¾Ÿa‰ÈÍZ&5yøVgÙKqéÚ0Y۟Ĥw±Ë “µ­wÃküº5¯Ü…ó[:µ¬ô º°tMÔüùîéO|Ÿû 1ÓÛ¸ÇÑçøÛ:ÚÆßÿsJ>ëûù–ˆü–-먫orš½tì “MíIïb—A‡˜£i~‰ˆ|Ïv½âÒç56îêÖj¼»Ò3è†æ\”üùLÄ{ú9ÛõÌïÛ]_]CK˜ºz}޲­£-_t~ÿ‡f×µÞ|Þ÷ó ,yÑ–u´t 9Í^Ln«d/¯Æ¨w±Ë k’)­]k|Óv½ñC7Æ1Ÿ½¡’3h“yFÈŸïØÄ¾ýuíº}c‹ÛV_×ðl˜º>âðsü‹¶µ´v8ßfþ‘ÒŸôýüKD¾eË:z +ûå.fæGˆlê×*&ƒnrŸAKMBë_[„ú²Úý˜:r›óÓõY­Æ£•šAΉ’?ojV…ùB»vMMb[θ›Ù-!kwø9~§m-ÍÎ÷Áîù«´þü›ïç@"’в ‘¹“qËßæbÔ¿}±Ë õþe#Ô—×®7sü¼ó“µuZû+5ƒ6{&dF«Î¼Vê\ûoÔ7ç‚©õ;ÊVÛîWéŒúÎL§g 7zqζž¦¶^çû ¸¨Îÿ¦ïç@"2 åAk7;Ë]rýcZîòFÌú« zæø]aò½ºõMÚ®U“HyÉi%¡žõÞ]‰t~|9lþü±2ì]õ,ô[{xW°gùº²ü¾TSS»3н¸Þ¶ž†–ç{alåz­Gß÷ýüCDV´<ÈeîÒØÚ¥å.ŸŠYÿ*1ƒND¨oÁv­T]ƒólnúè¹05vTZ={âgJý Qۗ˸Õ³ÐF"YtÌ–fåD­ktþÊ Ûž›=;?½Ñ‡“ZïzŸO¬Þ¤õé'¾ŸaˆÈͶœÃüݼËÜ%•®×r—ûcÖ¿Xeг'Î‡Éø’ê[³]«®±Å}6·vK˜Ó•–Awî ›ÑªsFÊ}ú§jj‚Ö®¡ ·x (,œ +&/1 ÜäÔfæsçÐtPŸUßéý ôFZŸƒõYçû|êÈíeÙ羉Èqùôç[×bÖ¿ø½“°Œ¹•v>ÔÌ v]ߨÁ³Z}?Y[¬2躆–0÷îÛ°‡C…¾¼šÒoG!ft‡ñ^OŸã½¶uզݟ÷Ÿ9êoZ}?4"ò˜-ãhér–¹—® “¹ôŬ qË CÌÜÍD¨ïŒíZfvŠëúL6¬Ô÷íŠÌ [¼Ì¡‘Zyµ ùñV½ìñs\°­-‘ŒíÜóX=.EDž°eíÎò–‘¹ZÞò£öoÙšAgÛâ˜[5–kVKS[¯óú +‹§µú¾V¥ô¾mþ-å‡óç¿7ïGõø9î±­Ïü®ãzŸ‰T­Ö·‚ïg €FDž´efî««¼e`rUË[^aÿVã6«¢¦FÍ ³ê;o»Vs{¿óúvÏ_¥Õ÷Z•fÐSÛ¼—gEä«òçOE™Q¾Mµ7këœ>v§ó½b>þŒïg €FDž±eùñegyKOa^Ë[^ˆaÿÖã2Oû‚šD²l3dEä¶kµt¹›ÕrÁÈÜI­¾/UfÝê5ƒÞèI«ˆ¼ODÞp=NDNùþ oÔÔÖ;u‰÷/n7ó.De]‹¾{ ‘ÏØ2Ž©UgyKÇà”–·<Ãþ°fЭÎs+3»Véc.B}÷Ø®µ«gÔy}Ã{iõ}¾J3èi‡ûz;³èØdÏo«ù¿mëžX½Ùù^Ï4©{bÝwß4"ò7¶ŒcpfÝYÞ’ë+jyË£1ìß•¶57îêvž[%’ê ÙÎõÝo»V[oÁy}C³ëZ}²62h·Yt,³ç‹jýžmýcÏ:ßëõÍíZO¯öÝ7ˆ|Ñ–q ï;î,o1gj•¼åÁJË ›ÚzœçVÉTZëcw„ú°]Ëün຾ÁéÃZ}Ÿ®È Z?ó:ãyVÅM"ò!yEDþ3Dælrë—EäÝ"2ïû³¢ÆoÙê).q¾×ÍoXJoðÝ7ö²Ñù+å--ƒZÞrO¥eÐÙ\¯óÜ*Y[§õ±/B}Z3èþ1çõ L­iõ=²62è­íý”ÙK—Ðá{m›¬çu[ÿ §œïõl®OÛç|÷ `«tañtœò–»cØ¿ØeЩtFëã@„ú~Év­ö çõõOÒêûóJÌ 3–AWyÕú{Üþ+œïõ¿ËÅî™5ƒÞ³|³¼%Ûž×ò–‡+n‡ º®^ëãp¹2hóI×õå'V´úž®Ì z—V׬ïý^ÍDäâ2—è‚ÖîmOÜç»o[>íðïÏÍû피å÷cØ¿ØeÐéLƒÖÇÑJΠCœƒþ‹µ‘Aãâýðr\ÞÏúÓgbŸúL|—ï¾ly´Ã¿?ïž-K¶¸Ó3èÚL£ÖÇb%gÐÕúNÂô^ßû½š‰Èó¶þ›9ä®÷º™·®ì‰wûî€FD^±eC{:Ë[úÆ–´¼å 1ì_ìæA×Õ7i}œ¨ä zhö(4¶ã³üŒ­ÿýïõŽImOüªï¾hD䥸œý ‘-=1ë_ì2èt}¶lY¦žAO:¯oxï12hlÇgù)[ÿûÆ—ïõΡimO|Àwß`«þ)1í"Ä‹ +íÝlUÇñïíïÞö¶]{ûûv½mï½ý½®ëÚu]×m]Ç6º±ƒ¹16ˆh$!jˆ‰ þˆ5!Ä`b &D~Bb$D0ŠJŒ b"Dj¢ø˜Ól±;ç<Û½çÜûôýÇëßÓçû}¾ÏóÇçžž' Dšˆ< "Á¹¤F¶/:íDvfùœ×±ÊuEÖ¿}ºëM´t9ëßYÕñFSgBÔw‹n­dϰóúú6î6Õ÷ em?Õ­3¸õÓºjê×™êšô=ïQ&"wëúß58ã|ÖÛû7šfâ3¾û`""_ÕeÙÍN3—ʪSæòp‘õ¯è2h‹,s>D}7ëÖjI cýemdÐX=wêß…SÎg½33eš‰;}÷ ÀDD¾PLcswΔ¹(MEÔ¿¢Ë k’¦þíQßMºµš»²Å˜A§43èfS]›|Ï{”‰Èºþ«=É®g½+7mš‰/ûˆ|BŸ¡v»Í'—l2èO–J]ßÜé<·Š7µ™ú·?D}ïÒ­µ®s 3è§J2ƒNA{~–?®ë[zÜù¬wÍšfâk¾û`""7è2u¶°ëÜ¥¬¼Ò&‡^(… º®©Ýyÿê×u˜zw(D}×êÖjêès^_ÿÔE¦úž³¬ «çáúþ'×8ŸõžÑyÓLÜï»o&jO¬.ãˆÅÊœç.jo­Eýªˆd‹ {tשÎÅpÝ?µwÝл+BÔwR›A·»Ï 3Ó›ê{!¢ô”ïy2ù€®ÿ-Ý9ç³Þ;¾Ã4úˆ ›òÞ‘…+æ.ƒ[ÛdÐ+û]E$á¹ ºkTgüºÎ­Z{L};¢¾ãºµZ×;¯/·å ©¾_—b'ƒöJDÞ[lçΤ'M3ñ„リˆH)ëUçïºÎ^Ôÿ½[æÐ{ì]Ÿˆü¬Ø2è¦ö´©gׇ¨ñ +ÝZ‰dÊy}ƒsÆß(^-É º¡ÅT×fßï‹(3}ÞØžv>ëý“{L3ñ¤ï¾Ø‘WŠí[\c;åU¶9ô]z¶CD^4]› Úâ,“›CÔyi1}³Rž?bªï/¥™A'É =RÿPl{þ¦öšfâiß}°!"érŽº¦6çÙ‹Ò™Ýl›A+ß‘6Gýz·íuùÈ [Rƒ¦ëúPˆZjgc]‡óúFŽšê{½3èÚ„qô´ïwE”‰ÈÑbÛóŸ™ÞŸ—ïoø&"ï׿±X°aé¤óüE©kj“C¿$"sìS¹Úsâz‚x“ûŒ¶µwÔt]·ç뛕ñÆVçõíÜzØ[¯º·˜®ñ¾}˜Ò­¥ö¨û¨1+3ÕØlQ4¬÷üûÈ Õ ’A€¨8“ÓjóŽììAo¹ª’™;ßú¬ßŠÈ#gÎt¾MD®?“3¿OD>-"÷ŠÈS"òÚùþ u~õж˼ö©gd›é:1£¦ýÞ>j´ØßZztÒTÓß|&4À…‘1S¾Ú–÷š­*}“{‚òÊê Í¢ "Ù3ì½?Jzb—éZŸ 1ÝZê^ø¨±¬¢ÊTc§EmdÐ(õ ú—¾û†Ê&uyGU¼Á{¾ª m»<ˆ7¶zϜϊÅb+{´}÷嬩½¦k~1ÄL¤tk••Wx©Ñâwˆžfг¾ßQV¢gqüÑwß‘šòV•oúÎXÏZ×9à=VYxnÖÏ·ÏE™b¸î?…˜‰VíZee^j¬¬ª1Õ˜¶¨ «ça¹Ø2hu®4ˆ’3ßáÓf ­ë½g¬«¥†çV¾è#NO,z¯ÿ¾x‚ D’ˆµÝPß¶ÒË ßÙœóýnˆ2¹Q×ÿ¦Ž~/Ï24ˆ"9Yª{¡ßÎðö+‚¾É¥ 52t L-©Á ¡µ'ˆ7µ‰–®•ýë:3AëúÑ +7ôŽï2Ó¯ìAô}íÌh†˜‡¿êÖY¸Òy}qóo Ku‘Acõ<Ü¢ësWÖ˳L ¢JD~QªßäÃé•ï§îßM!fẵ†·q^_¼±ÍTßÁfÐÆ½Ý¸ wÞGtýoI k]í»w…Ú ­öÚúÎZñöÛÓ¦Üêö³ðŠn­¡m—;¯¯¾¹ÓTß‹ºÈ ±zîÐõ¿µw¬X3èFß½(ä^è¶¾ ÞóV¼U²gØ”[Ýb^.¶³ÁÉ4òý¾»K×uŽgYbe¦¹èðÝ;€Bî…V²³¼g®x³ÎÌ”é¾};ļTLY­¢Îð^ƒô¼ïwB”‰ÈWtýïœñò,—WT‘AYë{¡ã Iï™+Þ¬gtÞ”[ý<_3›=è¼¾hfÐÆ3®É  û®»W×õMSÏryU 4ˆ4Û½ÐÍÝ9ï¹+þ§ÓE¦{öÏ3 Íj³3ËÎë‹dÝdÌ ·û~D™ˆ|C×ÿõcÛ½<˱² +2hy"r¿MíkŸ Þjpî°ñ~‰È€åýÿ‘nÌôþbÌ YÔEÕóðˆ®ÿ½ã;¼<ËÏ14(y"2b“AÇb± 7{‰÷ü§ƒ »¯¶É®ö[ÞÿèÖ˜Ú[Œô5Ì |¿ ¢LDžÐõ?=±è|ÎÇOØ<Çõ¾{"r«M]][ m»Ü{‹Ó+÷Âp¿n²¼÷O[ÝÔÑgªí¥–AבAû~Ç=¥ëßä’ó9]8j|çúî@>‰È³V9t]S0²p¥÷ v­K´t›îÕ§ò±?ÔG½®s€ ù~¿=Wls>´í2ÓL¼æ»où$"S6´R›h FwóžÃ®eÉžaÓ}º×ò¾?^lÙ\s*Á ºÝTÓßï€(‘týÏL_ì|Î33˦™ø½ï¾䛈\g›C«ómÇw]å=‹]«:³›M÷èÉ|dÐ>Î(hîÊ’A#ßï¶ßèúŸÛrÐùœ÷ŒÎ›fâEß}(¹Ë:‡nHÃóœíCïø'tÏÈ6çµ%’©µ˜Aïôýì¯å zpî°ó9oëÛ`š‰ïûî@!ˆH¹ˆüØ6‡®ª‰Ù™eï™ìZ“™ÞŸ¯ úaÝ:™MÎkSg½j»Ö¢.2hXgÐÃóGœÏyc{Ú4÷øî@¡ˆÈ€ˆ¼d›CÇbåA߯ÝÞsÙµ$½ag¾2è/éÖQ9™Ëº&öœ +b±2Sm,ê"ƒFQgÐ5‰fÓLÜê»o…$"c"ò;ÛZéÚâ=›]+ºgò•AT·NYy…ÓºÔo³¶ùB3h×çÿªskÈ ½¾ÏŠ*ƒß}µÍœõÝ7€BSYŸˆü9LÝÔÑŒí:î=£º–Ôé^|Ýò5ÝÓþM{Ö5hªë ©¹Ð z`j¯ÓûUYSGí÷]¦Í ³3Šñ·–Iß}pAD¶‹ÈßÂäЕ5õAߤ»Ür-ª¨Ž›îÃg-ïoÂt?-]NjÞ~Äf¾¾iY×sºuz7ìrz¿Ôy5†ºf}?ëk9ƒNo\t:ÉžaÓ<üÃwÏ\‘)ùU˜ZiKã‹'¼çµQ“Ùlü¡rcˆûû˜i½ôDá3ºæîœM]7XÖô¸nŽIg÷+·õM]ißÏy”‰ÈuýïÊÍ8}†«ëMóð&"ëEäé°9tEEMЕ›öžÛF‰Ú—lÑûž÷vŸi½ªxC0ºóXÁjRû’-jz9DM÷éÖªov³·[éÈl²©­Ö÷3e"ò€®ÿñÆVgóÝrÀfÞã»g>¨œLD ›C+ÕñÆ`ýØ‚÷ü¶ ÙÒÌ ‘LÙ©‚ýžÑy›~ï<îíc¾ÎäPߌ•Ϫ°Þ}¦žÛtkÅÊʃ‰¥SNæB囆ºž÷ýlGˆÜaš¯Á­‡Ìƒ:3ßbÖG}÷ À'ùüùäÐJM¢9HÌyϋ󽯱±­·àß¼ËÍ^”WTÙôyßyÜSã^h¥©£?ذt2o5ef–WöXçsô™zöšÖt±??=aµ¿ûc¾Ÿé¨‘9ól÷þ]1{ÐfžñÝ/ÖºÿžÒ` ‹ +íÝ[ˆ]gà·9LædÒ$“ãd&ç™I&M›&i“´MZÒšÖV­-jÓÒâ•"žQ‹ Þ‚RE<´ ¢P¬Ö^yÑ"ž¨(¢(ŠÐ;DDê-þ²6;j§9ì½gïY;™çâ¹²÷úÖÿ­\¼ó­oJ))Ô.ÉÙ$OR:±lÅpÙ´ûP™=u¶\{Ç›/KÛÞVV­ÛzÞú–¯)ûO=еïÚòMe`xu+÷öÙyœéwZ9»ÁUkËÞ_3ïš¶í;ÑNϼ­ÍZF’¼t±Ï\>8ÒóZ½®•ÚŽ×ýñúÚóæsª™ß*wÝÐv=K—¯(»®UÇß½uúÆv¾ïÙ.œå3íÖ8ºa²qSÇï-O?òŠÜöPÙuøÎ²qçµedÍÆNúâ-Ö2ÙÊçOÌÞÒõž©z¸ÅÚÌ@÷Ù,ôÒåƒeÏ÷tý‰ûÁ 4À$YŸäÝÈ¡ÏY>0\VM”Í»¯/»ŸééÞŽkN?ÒȽ«Ý*?›œ-#Wo*W-YÚ•ZÖO•=G_Ýâµ<\ÆgŽ•ãí~Ï™.œãT’¿Î§Ö*w_12Z†V•%K—Í÷Þ}mžõ\rº2yÍ©îåÏ3ÇZ­Í tÎBŸëáí]ê‰*¾ªµçÀ 4@ ’ìKò•nfÑÿoɲÆ>âjövlrÙ:}CcÇöƒ·6òãÝGî*SÇ^ÛÈ“«ùåÝGî,;ÝÞøù¶ý77æu«™æ;–«7ïjÌå ®ìɵžÏðèXÙ°ý@Ù:s¬ì¸ît™:öºF6]åT[¦Ž–UëÇûI:øì/vñ ÛÚÉÑC¿H24ÏZZš…®Tý1ß¼±ÚíÑF}f ûtúœõûsüöÃØöÙvúÁ 4@’êeÍËü*Éh—ÏïÁ$ÿª±¦Ÿ$™îR--ÍBWV®Ýܘ¹o7k¬~008ÜN}f û|úœê]ˆ±‰ý-ïš=õ@Ù2uCZ½¾~0 Ð!YtÏý¥[YíyÎîºf¾½Ð5=Ñå:Zž…>ghպƬ|5£¾ï–7–ƒ·ÿoÏuµ¦ú[“Ûö(k6í,ˆ:©ñHÝÏæb–äÉNzspxuY·mºñ>Åä“w,ª=.Uæ\½ß°fÓŽN{Þ 4@w²èÏ÷Af{%ùy•/ÀÙ½#Éó PÏ÷º±Óú5¼k¾×WíîpOÊ\¬ûy\ì’ljîz)}౺ïÀ•$Éx’$ù[d?ÝòL’»’|¿ós5œ]¯²èžeÏs®¿æñ¿P÷3ÈËrèçêþ¿£îûp¥J2ä I¾œä} ¶ëOI>žäÀœºÞÚÜeÜ«ï}<ÉLÍg×­,zA²ç9×þT=óxÝϯ臱$_­ñwW«ê¾‹E’{š»:þPs¶|1¿læÎ'Z¨§ÛYtíÙóyj¼?Ég’ü.ÉK-ÔðÏ$?Lòá$·ÔxÝ_ª¡wÞY÷yqÑžxw’°Þ_wÍ‹Y’ÍIîMòÑ$?Xà½/&ùcsF·ÊÄß—äÖ$#Ö2Ÿ,úÅ~Ìž/1Sºÿ›äcI>”äáj.·—Ya’cI>PíqNòÍ$¿=Ÿ%ùF3§º»ÚWR÷}¿Òõ0‹–=_¦z”EËž`ëb-{¾ò²èN÷UïoÈž€ÿJr¤9ÿÓ$NòïKdŒ¿OòD’‡’l©ûúéY_L'y{ó=†'›ïTÌõT3s~4ÉÙº¯¸<4÷\ÏeO +°àþ'Á¨ +#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt #‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt #‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt #‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõt#‹ +íÃA ¡ù7}ûV$T—ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªê|róõtÔ‹ íÃA ¡ú7}³±$TKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUÝ·VÒ½ \ No newline at end of file diff --git a/misc/tiny_dirt_flower/README.md b/misc/tiny_dirt_flower/README.md new file mode 100644 index 00000000..affafae3 --- /dev/null +++ b/misc/tiny_dirt_flower/README.md @@ -0,0 +1,9 @@ +# Tiny Dirt Flowers + +This is a JSON-only mod that adds a single tiny flower type entirely with JSON. This is about the minimum number of files required to make a single flower, which turns out to be quire a few. + +## How to use + +1. Zip up everything in this folder. +2. Change the `.zip` file extension to `.jar`. +3. Copy into the mods folder. diff --git a/misc/tiny_dirt_flower/assets/tiny_dirt_flower/icon.png b/misc/tiny_dirt_flower/assets/tiny_dirt_flower/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7aeab4889c83bcd740ca82a53c6c6ebe38e88567 GIT binary patch literal 182974 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
  • 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 YE>?%wsd4ZC0000=21", + "fabric-api": "*" + }, + "recommends": { + "tiny_flowers": ">=2.0.0" + } +} diff --git a/misc/tiny_dirt_flower_data/pack.mcmeta b/misc/tiny_dirt_flower_data/pack.mcmeta deleted file mode 100644 index f8447593..00000000 --- a/misc/tiny_dirt_flower_data/pack.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "pack": { - "description": { - "text": "A tiny dirt flower. Used to test the Tiny Flowers mod." - }, - "min_format": 88, - "max_format": 999 - } -} diff --git a/misc/tiny_dirt_flower_resources/pack.mcmeta b/misc/tiny_dirt_flower_resources/pack.mcmeta deleted file mode 100644 index 62f45984..00000000 --- a/misc/tiny_dirt_flower_resources/pack.mcmeta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "pack": { - "description": { - "text": "A tiny dirt flower. Used to test the Tiny Flowers mod." - }, - "min_format": 75, - "max_format": 999 - } -} From c9e9fa8e0a3ed79274c728ec4966419e2f51b580 Mon Sep 17 00:00:00 2001 From: secret_online Date: Thu, 25 Dec 2025 20:56:32 +1300 Subject: [PATCH 045/113] Tidy up a couple of edge cases when a mod is removed This is exactly why I wanted to create a pack that adds a single flower type separately from the main mod. --- .../tinyflowers/items/FloristsShearsItem.java | 13 +++++++++---- .../tinyflowers/items/TinyFlowerItem.java | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java index 0c48fb70..3cdc0ed0 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java @@ -100,12 +100,17 @@ public InteractionResult useOn(UseOnContext ctx) { int oneIndexed = index + 1; Identifier idAtIndex = gardenBlockEntity.getFlower(oneIndexed); - TinyFlowerData flowerData = TinyFlowerData.findById(world.registryAccess(), idAtIndex); - if (flowerData == null) { + if (idAtIndex == null) { + // This spot has no flower. return InteractionResult.TRY_WITH_EMPTY_HAND; } - - Block.popResource(world, pos, flowerData.getItemStack(1)); + TinyFlowerData flowerData = TinyFlowerData.findById(world.registryAccess(), idAtIndex); + // This condition fails if the garden has an identifier in this spot, but it is + // no longer registered. This usually happens when a mod is removed. In that + // case, don't pop an item, but do do the rest. + if (flowerData != null) { + Block.popResource(world, pos, flowerData.getItemStack(1)); + } if (ctx.getPlayer() != null) { Player player = ctx.getPlayer(); diff --git a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java index 10bce38b..e5eb2a6a 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java @@ -25,7 +25,7 @@ public TinyFlowerItem(Item.Properties properties) { @Override protected @Nullable BlockState getPlacementState(BlockPlaceContext blockPlaceContext) { BlockState newBlockState = super.getPlacementState(blockPlaceContext); - if (newBlockState == null) { + if (newBlockState == null || newBlockState.isAir()) { return newBlockState; } From 661f3c822e03ff9fa98cab0fd8f209dcf6875d9e Mon Sep 17 00:00:00 2001 From: secret_online Date: Thu, 25 Dec 2025 21:15:07 +1300 Subject: [PATCH 046/113] Rename fields in item definitions --- .../tinyflowers/resources/TinyFlowerModelDataLoader.java | 2 +- .../tinyflowers/resources/TinyFlowerResolvedResources.java | 2 +- .../tinyflowers/resources/TinyFlowerResources.java | 6 +++--- .../resources/TinyFlowersModelLoadingPlugin.java | 3 ++- .../minecraft/tiny_flowers/tiny_flower/leaf_litter.json | 4 ++-- .../minecraft/tiny_flowers/tiny_flower/pink_petals.json | 2 +- .../minecraft/tiny_flowers/tiny_flower/wildflowers.json | 2 +- .../tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json | 2 +- .../tiny_flowers/tiny_flower/tiny_azure_bluet.json | 2 +- .../tiny_flowers/tiny_flower/tiny_blue_orchid.json | 2 +- .../tiny_flowers/tiny_flower/tiny_cactus_flower.json | 2 +- .../tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json | 2 +- .../tiny_flowers/tiny_flower/tiny_cornflower.json | 2 +- .../tiny_flowers/tiny_flower/tiny_dandelion.json | 2 +- .../tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json | 2 +- .../tiny_flowers/tiny_flower/tiny_open_eyeblossom.json | 2 +- .../tiny_flowers/tiny_flower/tiny_orange_tulip.json | 2 +- .../tiny_flowers/tiny_flower/tiny_oxeye_daisy.json | 2 +- .../tiny_flowers/tiny_flower/tiny_pink_tulip.json | 2 +- .../tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json | 2 +- .../tiny_flowers/tiny_flower/tiny_red_tulip.json | 2 +- .../tiny_flowers/tiny_flower/tiny_torchflower.json | 2 +- .../tiny_flowers/tiny_flower/tiny_white_tulip.json | 2 +- .../tiny_flowers/tiny_flower/tiny_wither_rose.json | 2 +- 24 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java index ea037db8..89610b11 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerModelDataLoader.java @@ -71,7 +71,7 @@ private Map resolveAll(Map(entry.getKey(), - new TinyFlowerResolvedResources(resources.id(), resources.itemTexture(), + new TinyFlowerResolvedResources(resources.id(), resources.itemModel(), resources.tintSource(), new TinyFlowerResolvedResources.Part(resources.model1(), ExtraModelKey.create(resources.model1()::toString)), diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java index 027026a1..c3302a69 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResolvedResources.java @@ -8,7 +8,7 @@ import net.minecraft.client.renderer.block.model.BlockStateModel; import net.minecraft.resources.Identifier; -public record TinyFlowerResolvedResources(Identifier id, Identifier itemTexture, TintSource tintSource, +public record TinyFlowerResolvedResources(Identifier id, Identifier itemModel, TintSource tintSource, Part model1, Part model2, Part model3, Part model4) { private static Map INSTANCES = new HashMap<>(); diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java index 425d168f..cafbc29d 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowerResources.java @@ -6,14 +6,14 @@ import net.minecraft.resources.Identifier; import net.minecraft.util.StringRepresentable; -public record TinyFlowerResources(Identifier id, Identifier itemTexture, +public record TinyFlowerResources(Identifier id, Identifier itemModel, TintSource tintSource, Identifier model1, Identifier model2, Identifier model3, Identifier model4) { public static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerResources::id), - Identifier.CODEC.fieldOf("item_texture").forGetter(TinyFlowerResources::itemTexture), - TintSource.CODEC.optionalFieldOf("tintSource", TintSource.GRASS).forGetter(TinyFlowerResources::tintSource), + Identifier.CODEC.fieldOf("item_model").forGetter(TinyFlowerResources::itemModel), + TintSource.CODEC.optionalFieldOf("tint_source", TintSource.GRASS).forGetter(TinyFlowerResources::tintSource), Identifier.CODEC.fieldOf("model1").forGetter(TinyFlowerResources::model1), Identifier.CODEC.fieldOf("model2").forGetter(TinyFlowerResources::model2), Identifier.CODEC.fieldOf("model3").forGetter(TinyFlowerResources::model3), diff --git a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java index 9164b584..dbbba30e 100644 --- a/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java +++ b/src/client/java/co/secretonline/tinyflowers/resources/TinyFlowersModelLoadingPlugin.java @@ -46,7 +46,7 @@ public void initialize(Map data, Contex itemModels.add(ItemModelUtils.when( new TinyFlowerComponent(resources.id()), - modelForIdentifier(resources.itemTexture()))); + modelForIdentifier(resources.itemModel()))); } pluginContext.modifyItemModelBeforeBake().register((model, itemContext) -> { @@ -69,5 +69,6 @@ private ItemModel.Unbaked modelForIdentifier(Identifier id) { } private void consumeModel(Identifier id, ModelInstance model) { + // TODO: if this ever } } diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json index 970f959a..39a2e5a6 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/leaf_litter.json @@ -1,9 +1,9 @@ { "id": "minecraft:leaf_litter", - "item_texture": "minecraft:item/leaf_litter", + "item_model": "minecraft:item/leaf_litter", "model1": "minecraft:block/tiny_flowers/leaf_litter_1", "model2": "minecraft:block/tiny_flowers/leaf_litter_2", "model3": "minecraft:block/tiny_flowers/leaf_litter_3", "model4": "minecraft:block/tiny_flowers/leaf_litter_4", - "tintSource": "dry_foliage" + "tint_source": "dry_foliage" } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json index d9237fec..c74cede3 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/pink_petals.json @@ -1,6 +1,6 @@ { "id": "minecraft:pink_petals", - "item_texture": "minecraft:item/pink_petals", + "item_model": "minecraft:item/pink_petals", "model1": "minecraft:block/tiny_flowers/pink_petals_1", "model2": "minecraft:block/tiny_flowers/pink_petals_2", "model3": "minecraft:block/tiny_flowers/pink_petals_3", diff --git a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json index 1a3e3cd8..65d2acb9 100644 --- a/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json +++ b/src/main/generated/assets/minecraft/tiny_flowers/tiny_flower/wildflowers.json @@ -1,6 +1,6 @@ { "id": "minecraft:wildflowers", - "item_texture": "minecraft:item/wildflowers", + "item_model": "minecraft:item/wildflowers", "model1": "minecraft:block/tiny_flowers/wildflowers_1", "model2": "minecraft:block/tiny_flowers/wildflowers_2", "model3": "minecraft:block/tiny_flowers/wildflowers_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json index 38da3f85..6af68673 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_allium.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_allium", - "item_texture": "tiny_flowers:item/tiny_allium", + "item_model": "tiny_flowers:item/tiny_allium", "model1": "tiny_flowers:block/tiny_flowers/tiny_allium_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_allium_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_allium_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json index 61053dc1..669a8e9c 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_azure_bluet.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_azure_bluet", - "item_texture": "tiny_flowers:item/tiny_azure_bluet", + "item_model": "tiny_flowers:item/tiny_azure_bluet", "model1": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_azure_bluet_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json index 2fc89595..a613ad0b 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_blue_orchid.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_blue_orchid", - "item_texture": "tiny_flowers:item/tiny_blue_orchid", + "item_model": "tiny_flowers:item/tiny_blue_orchid", "model1": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_blue_orchid_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json index 8a8723ea..e524e133 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cactus_flower.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_cactus_flower", - "item_texture": "tiny_flowers:item/tiny_cactus_flower", + "item_model": "tiny_flowers:item/tiny_cactus_flower", "model1": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_cactus_flower_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json index 0474db31..55e4f082 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_closed_eyeblossom.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_closed_eyeblossom", - "item_texture": "tiny_flowers:item/tiny_closed_eyeblossom", + "item_model": "tiny_flowers:item/tiny_closed_eyeblossom", "model1": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_closed_eyeblossom_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json index 9972c8a5..d10858ae 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_cornflower.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_cornflower", - "item_texture": "tiny_flowers:item/tiny_cornflower", + "item_model": "tiny_flowers:item/tiny_cornflower", "model1": "tiny_flowers:block/tiny_flowers/tiny_cornflower_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_cornflower_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_cornflower_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json index 8c5f3200..40b120b0 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_dandelion.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_dandelion", - "item_texture": "tiny_flowers:item/tiny_dandelion", + "item_model": "tiny_flowers:item/tiny_dandelion", "model1": "tiny_flowers:block/tiny_flowers/tiny_dandelion_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_dandelion_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_dandelion_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json index a0682034..9c68832f 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_lily_of_the_valley.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_lily_of_the_valley", - "item_texture": "tiny_flowers:item/tiny_lily_of_the_valley", + "item_model": "tiny_flowers:item/tiny_lily_of_the_valley", "model1": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_lily_of_the_valley_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json index 350968eb..877663ed 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_open_eyeblossom.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_open_eyeblossom", - "item_texture": "tiny_flowers:item/tiny_open_eyeblossom", + "item_model": "tiny_flowers:item/tiny_open_eyeblossom", "model1": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_open_eyeblossom_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json index 3ce448e5..f70f72d9 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_orange_tulip.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_orange_tulip", - "item_texture": "tiny_flowers:item/tiny_orange_tulip", + "item_model": "tiny_flowers:item/tiny_orange_tulip", "model1": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_orange_tulip_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json index 851d1971..94f664fb 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_oxeye_daisy.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_oxeye_daisy", - "item_texture": "tiny_flowers:item/tiny_oxeye_daisy", + "item_model": "tiny_flowers:item/tiny_oxeye_daisy", "model1": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_oxeye_daisy_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json index d76a726b..de54f3c9 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_pink_tulip.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_pink_tulip", - "item_texture": "tiny_flowers:item/tiny_pink_tulip", + "item_model": "tiny_flowers:item/tiny_pink_tulip", "model1": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_pink_tulip_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json index 356f5adb..8313d5d0 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_poppy.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_poppy", - "item_texture": "tiny_flowers:item/tiny_poppy", + "item_model": "tiny_flowers:item/tiny_poppy", "model1": "tiny_flowers:block/tiny_flowers/tiny_poppy_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_poppy_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_poppy_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json index e4b63ea4..93fe8aad 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_red_tulip.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_red_tulip", - "item_texture": "tiny_flowers:item/tiny_red_tulip", + "item_model": "tiny_flowers:item/tiny_red_tulip", "model1": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_red_tulip_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json index c0016ec4..efe28931 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_torchflower.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_torchflower", - "item_texture": "tiny_flowers:item/tiny_torchflower", + "item_model": "tiny_flowers:item/tiny_torchflower", "model1": "tiny_flowers:block/tiny_flowers/tiny_torchflower_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_torchflower_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_torchflower_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json index 09e13302..2a8b2c96 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_white_tulip.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_white_tulip", - "item_texture": "tiny_flowers:item/tiny_white_tulip", + "item_model": "tiny_flowers:item/tiny_white_tulip", "model1": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_white_tulip_3", diff --git a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json index cf9b492e..8609323f 100644 --- a/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json +++ b/src/main/generated/assets/tiny_flowers/tiny_flowers/tiny_flower/tiny_wither_rose.json @@ -1,6 +1,6 @@ { "id": "tiny_flowers:tiny_wither_rose", - "item_texture": "tiny_flowers:item/tiny_wither_rose", + "item_model": "tiny_flowers:item/tiny_wither_rose", "model1": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_1", "model2": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_2", "model3": "tiny_flowers:block/tiny_flowers/tiny_wither_rose_3", From 59a109390a942d7c45e6806a81cddf1187ba6426 Mon Sep 17 00:00:00 2001 From: secret_online Date: Fri, 26 Dec 2025 09:57:18 +1300 Subject: [PATCH 047/113] Add some documentation for adding new flower types --- .editorconfig | 2 +- CHANGELOG.md | 22 ++++++ README.md | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 203 insertions(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index 9c75dfcc..553d1ed1 100644 --- a/.editorconfig +++ b/.editorconfig @@ -11,5 +11,5 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[*.{yml,js,json}] +[*.{yml,js,json,md,ts}] indent_style = space diff --git a/CHANGELOG.md b/CHANGELOG.md index 633a89cd..2686d154 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,28 @@ The versioning scheme is listed in the README. ## Unreleased - DATE +### Known Issues + +This is a ground-up rewrite of the mod, and is not compatible with any previous versions. + +Due to how different v1 is from v2, I wasn't able to find a nice way of upgrading worlds. As such, when you use v2 for the first time in an existing world, all previously made Tiny Flower items and blocks will be removed. + +### Added + +- After creating Florists' Shears with regular shears and a single dye, you can now use more dyes to re-color your Florists' Shears to almost any color possible. +- You can now use multiple Tiny Flowers when crafting Suspicious Stew. + - Adding more of the same type of flower will increase the duration. + - Adding different types of flower will combine the effects into a single stew. +- For mod developers: + - This mod is now entirely data-driven. This means you can use JSON files to add new Tiny Flower types. + - Read the README in GitHub for more information about what files are required. + - The `misc/tiny_dirt_flower` directory of this mod's source code contains an example mod containing only JSON and textures. + +### Fixed + +- Game startup times should be massively improved :) +- Combining two Florists' Shears together to combine the durability no longer leaves the old shears in the crafting menu. + ## v1.5.1 - 2026-02-02 ### Added diff --git a/README.md b/README.md index 8f4d863e..1738ef63 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,186 @@ Add tiny variants of all Vanilla flowers, much like Pink Petals. If you're looking for a more thorough description of the mod and its features, check out [the mod's description](./MODRINTH.md). +## For other mod developers + +So you want to add your own Tiny Flowers? This section explains the JSON files required to do just that. + +The files required are split into data and assets. The data files are loaded by the server and synced via a dynamic registry. The asset files are client-only, and affect how the flowers look. Unfortunately, most of the work is in the second half. For each custom file, I have written a Typescript definition, for those proficient in Typescript, and an example JSON file. Alternatively, you can check the source code of this mod for the codec definitions. + +To keep this README readable, everything in inside the following expandable section: + +
    +JSON files + +```ts +type Identifier = `${string}:${string}`; +``` + +### Data + +There is only one data file required per flower, which defines all of the server-side behaviour of the mod. + +#### `data//tiny_flowers/tiny_flower/.json` + +This file defines the behaviours of this flower variant. + +```ts +interface TinyFlowerData { + /** The unique identifier of this type. Should match : from the path of this file. */ + id: Identifier; + /** The ID of the original flower block. Will be turned into Tiny Flowers if crafted with or used on by Florists' Shears. */ + original_id: Identifier; + /** Optional. Whether the original block is segmentable like Pink Petals or Wildflowers. */ + is_segmented?: boolean; + /** Optional. List of mob effects to be applied if consumed in Suspicious Stew. */ + suspicious_stew_effects?: { + /** The ID of the mob effect that will be applied. */ + id: Identifier; + /** Effect duration in ticks. */ + duration: number; + }[]; +} +``` + +```json +{ + "id": "tiny_dirt_flower:tiny_dirt", + "original_id": "minecraft:dirt", + "suspicious_stew_effects": [ + { + "duration": 10, + "id": "minecraft:darkness" + } + ] +} +``` + +### Assets + +Each flower type requires edits to 1 shared JSON file, 6 individual JSON files (mostly to do with item and block models), at least 2 textures (1 for the item and potentially many for the block model), and a translation key in your language files. + +#### `/assets/tiny_flowers/tiny_flower/.json` + +This is the entrypoint for any rendering-related concepts for this flower type. It defines the models that will be used for the item and block, and any other visual behaviours. + +```ts +interface TinyFlowerResources { + /** The unique identifier of this type. Should match : from the path of this file. */ + id: Identifier; + /** The item model to use for this type. Usually of the form `:item/`. */ + item_model: Identifier; + /** How to shade model quads that have a tintindex defined. */ + tint_source?: "grass" | "dry_foliage"; + /** The block model to render when this type is in the first spot. Usually of the form `:block/_1`. */ + model1: Identifier; + /** The block model to render when this type is in the second spot. Usually of the form `:block/_2`. */ + model2: Identifier; + /** The block model to render when this type is in the third spot. Usually of the form `:block/_3`. */ + model3: Identifier; + /** The block model to render when this type is in the fourth spot. Usually of the form `:block/_4`. */ + model4: Identifier; +} +``` + +```json +{ + "id": "tiny_dirt_flower:tiny_dirt", + "item_model": "tiny_dirt_flower:item/tiny_dirt", + "model1": "tiny_dirt_flower:block/tiny_flowers/tiny_dirt_1", + "model2": "tiny_dirt_flower:block/tiny_flowers/tiny_dirt_2", + "model3": "tiny_dirt_flower:block/tiny_flowers/tiny_dirt_3", + "model4": "tiny_dirt_flower:block/tiny_flowers/tiny_dirt_4" +} +``` + +#### `/lang/.json` + +Each tiny flower type needs a translatable name. For most flowers, the English version of this string will be "Tiny <name of base flower>". + +```json +{ + "block..": "" +} +``` + +#### `/items/tiny_flower.json` + +Minecraft only starts the item model loading process from an item definition file, so we need to jump in and create one. This also allows resource packs to do more complicated replacements. + +This mod uses the `minecraft:select` model type to switch which model is displayed. If you want to follow this pattern, which you probably do, then you will need a case for each type of flower you are adding. The final `model` identifier key must match the `item_model` key in the main resources file. + +Read [Items model definition](https://minecraft.wiki/w/Items_model_definition) on the wiki for a full reference. + +```json +{ + "model": { + "type": "minecraft:select", + "cases": [ + { + "model": { + "type": "minecraft:model", + "model": "tiny_dirt_flower:item/tiny_dirt" + }, + "when": "tiny_dirt_flower:tiny_dirt" + } + ], + "property": "tiny_flowers:tiny_flower" + } +} +``` + +#### `/models/item/.json` + +The path of this file must match the `item_model` key in the main resources file and be referenced in the items file above. + +If using `minecraft:item/generated`, the texture referenced in `layer0` should be placed a`/textures/item/.png`. + +![Texture for the Tiny Dirt Flower item.](./misc/tiny_dirt_flower/assets/tiny_dirt_flower/textures/item/tiny_dirt.png) + +Read [Model#Item_models](https://minecraft.wiki/w/Model#Item_models) on the wiki for a full reference. + +```json +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tiny_dirt_flower:item/tiny_dirt" + } +} +``` + +#### `/models/block/_.json` + +These files define the models that will be rendered when the flower is placed in the world. The path of these files must match the `model` key in the main resources file. + +This mod provides a set of pre-defined models for common configurations. You are encouraged to use the model with the fewest number of layers that still gets the idea of your flower across. + +| Number of layers | Tinted stem (default) | Untinted stem | Texture keys | +| ---------------- | ------------------------------------------ | --------------------------------------------------- | ---------------------------------------------------------------------- | +| 1 | `tiny_flowers:block/garden_` | `tiny_flowers:block/garden_untinted_` | `flowerbed`, `stem`, `particle` | +| 2 | `tiny_flowers:block/garden_double_` | `tiny_flowers:block/garden_double_untinted_` | `flowerbed`, `flowerbed_upper`, `stem`, `particle` | +| 2 | `tiny_flowers:block/garden_triple_` | `tiny_flowers:block/garden_triple_untinted_` | `flowerbed`, `flowerbed_middle`, `flowerbed_upper`, `stem`, `particle` | + +If using one of these models, textured referenced by the layers should be placed at `/textures/item/.png`. + +![Texture for the Tiny Dirt Flower block.](./misc/tiny_dirt_flower/assets/tiny_dirt_flower/textures/block/tiny_dirt.png) + +Some specialty base models are also available. The most useful of these is likely to be `tiny_flowers:block/garden_leaf_litter_`, which gives a very low single plane like Leaf Litter. + +Read [Model#Block_models](https://minecraft.wiki/w/Model#Block_models) on the wiki for a full reference. + +```json +{ + "parent": "tiny_flowers:block/garden_1", + "textures": { + "flowerbed": "tiny_dirt_flower:block/tiny_dirt", + "particle": "tiny_dirt_flower:block/tiny_dirt", + "stem": "minecraft:block/pink_petals_stem" + } +} +``` + +
    + ## Contributing Contributions to this project are welcome. I'm still very must in the process of writing this mod, so might be a bit hesitant to include wide sweepeing changes, as this is a learning experience for me. From 5baa5539ce3a4a24d379a769cc41db1b1d990ae8 Mon Sep 17 00:00:00 2001 From: secret_online Date: Fri, 26 Dec 2025 14:36:06 +1300 Subject: [PATCH 048/113] Fix dirt flower pack --- gradle.properties | 2 +- .../tiny_flowers/tiny_flower/tiny_dirt.json | 2 +- misc/tiny_dirt_flower/fabric.mod.json | 11 ++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/gradle.properties b/gradle.properties index 71ded1e0..e900b3b1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ loader_version=0.18.4 # Mod Properties # Note: this version number is updated during release -mod_version=0.0.0 +mod_version=2.0.0 maven_group=co.secretonline.tinyflowers archives_base_name=tiny_flowers diff --git a/misc/tiny_dirt_flower/assets/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json b/misc/tiny_dirt_flower/assets/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json index be4e3100..3f67ab12 100644 --- a/misc/tiny_dirt_flower/assets/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json +++ b/misc/tiny_dirt_flower/assets/tiny_dirt_flower/tiny_flowers/tiny_flower/tiny_dirt.json @@ -1,6 +1,6 @@ { "id": "tiny_dirt_flower:tiny_dirt", - "item_texture": "tiny_dirt_flower:item/tiny_dirt", + "item_model": "tiny_dirt_flower:item/tiny_dirt", "model1": "tiny_dirt_flower:block/tiny_flowers/tiny_dirt_1", "model2": "tiny_dirt_flower:block/tiny_flowers/tiny_dirt_2", "model3": "tiny_dirt_flower:block/tiny_flowers/tiny_dirt_3", diff --git a/misc/tiny_dirt_flower/fabric.mod.json b/misc/tiny_dirt_flower/fabric.mod.json index f9a4b35e..ec9705bb 100644 --- a/misc/tiny_dirt_flower/fabric.mod.json +++ b/misc/tiny_dirt_flower/fabric.mod.json @@ -13,17 +13,18 @@ } ], "license": "MPL-2.0", - "icon": "assets/tiny_flowers/icon.png", + "icon": "assets/tiny_dirt_flower/icon.png", "environment": "*", "entrypoints": { "main": [], "client": [] }, "depends": { - "java": ">=21", - "fabric-api": "*" - }, - "recommends": { "tiny_flowers": ">=2.0.0" + }, + "custom": { + "modmenu": { + "parent": "tiny_flowers" + } } } From 8905b1b951775baae36fdf4120205c40a9c7dafa Mon Sep 17 00:00:00 2001 From: secret_online Date: Tue, 23 Dec 2025 16:59:21 +1300 Subject: [PATCH 049/113] Attempt to add Tiny Flower items to the Creative menu The Creative menu can't quite be fully data driven just yet. There are two main issues: 1. The menu contents don't invalidate on resource reload. This could probably be solved with a Mixin, but I didn't get that far because of the next point. 2. We don't have easy access to the registry contents at the place where items are added. I considered moving this code into the client side, but that didn't feel right. --- .../tinyflowers/items/ModItems.java | 60 ++++++++++++++++++- .../mixin/CreativeModeTabsMixin.java | 27 +++++++++ src/main/resources/tiny_flowers.mixins.json | 1 + 3 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 src/main/java/co/secretonline/tinyflowers/mixin/CreativeModeTabsMixin.java diff --git a/src/main/java/co/secretonline/tinyflowers/items/ModItems.java b/src/main/java/co/secretonline/tinyflowers/items/ModItems.java index 00ffcc82..749c71be 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/ModItems.java +++ b/src/main/java/co/secretonline/tinyflowers/items/ModItems.java @@ -1,19 +1,31 @@ package co.secretonline.tinyflowers.items; +import java.util.ArrayList; +import java.util.List; + import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import net.fabricmc.fabric.api.event.Event; +import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; import net.minecraft.core.Registry; +import net.minecraft.core.RegistryAccess; import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.world.item.CreativeModeTabs; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ShearsItem; import net.minecraft.world.item.component.DyedItemColor; public class ModItems { + public static final ResourceKey FLORISTS_SHEARS_ITEM_KEY = ResourceKey.create(Registries.ITEM, TinyFlowers.id("florists_shears")); public static final Item FLORISTS_SHEARS_ITEM = Registry.register(BuiltInRegistries.ITEM, FLORISTS_SHEARS_ITEM_KEY, @@ -34,9 +46,53 @@ public class ModItems { .setId(TINY_FLOWER_ITEM_KEY) .useBlockDescriptionPrefix())); + public static final ResourceKey TINY_FLOWERS_GROUP_KEY = ResourceKey + .create(BuiltInRegistries.CREATIVE_MODE_TAB.key(), TinyFlowers.id("tiny_flowers")); + public static final CreativeModeTab TINY_FLOWERS_GROUP = FabricItemGroup.builder() + .icon(() -> new ItemStack(TINY_FLOWER_ITEM)) + .title(Component.translatable("itemGroup." + TinyFlowers.MOD_ID)) + .build(); + public static void initialize() { - ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.TOOLS_AND_UTILITIES).register((itemGroup) -> { + Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, TINY_FLOWERS_GROUP_KEY, TINY_FLOWERS_GROUP); + + ItemGroupEvents.modifyEntriesEvent(TINY_FLOWERS_GROUP_KEY).register((itemGroup) -> { itemGroup.accept(FLORISTS_SHEARS_ITEM); }); + + // Tiny flowers should be added in the order they original flowers are in their + // own tabs. + // Thanks to the CreativeModeTabsMixin, we can be pretty certain that the tiny + // flowers group + // will be at the end. This means we can build up a list of he original flowers + // in order, which we can then use to make all of the tiny variants in our final + // tab. + Identifier afterDefaultPhase = TinyFlowers.id("after_default"); + ItemGroupEvents.MODIFY_ENTRIES_ALL.addPhaseOrdering(Event.DEFAULT_PHASE, afterDefaultPhase); + + List orderedFlowerData = new ArrayList<>(); + ItemGroupEvents.MODIFY_ENTRIES_ALL.register(afterDefaultPhase, (tab, entries) -> { + + // NOTE: This is the point where adding tiny flowers to the Creative menu breaks down. I've been able to solve a bunch of little problems, but this one evades me. If we could get the registry contents here, then we could do it easily. In fact most of the ode for it is below. Unfortunately, it doesn't seem like there's a reliable way to do so, so it sort of just stops here. + RegistryAccess registryAccess = ????????; + + if (tab.equals(TINY_FLOWERS_GROUP)) { + // We're pretty certain at this stage that all of the other tab groups have + // gone, so we can add all the flowers now. + + for (TinyFlowerData tinyFlowerData : orderedFlowerData) { + entries.accept(tinyFlowerData.getItemStack(1)); + } + return; + } + + for (ItemStack itemStack : entries.getDisplayStacks()) { + TinyFlowerData flowerData = TinyFlowerData.findByItemStack(registryAccess, itemStack); + if (flowerData != null) { + orderedFlowerData.add(flowerData); + } + } + }); + } } diff --git a/src/main/java/co/secretonline/tinyflowers/mixin/CreativeModeTabsMixin.java b/src/main/java/co/secretonline/tinyflowers/mixin/CreativeModeTabsMixin.java new file mode 100644 index 00000000..1f31b92e --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/mixin/CreativeModeTabsMixin.java @@ -0,0 +1,27 @@ +package co.secretonline.tinyflowers.mixin; + +import java.util.stream.Stream; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import co.secretonline.tinyflowers.items.ModItems; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.CreativeModeTabs; + +@Mixin(CreativeModeTabs.class) +public class CreativeModeTabsMixin { + + @Inject(method = "streamAllTabs", at = @At("TAIL")) + private static void sortStreamAllTabs(CallbackInfoReturnable> ci) { + ci.setReturnValue(ci.getReturnValue().sorted(CreativeModeTabsMixin::compareTabs)); + } + + private static int compareTabs(CreativeModeTab a, CreativeModeTab b) { + return Boolean.compare( + b.equals(ModItems.TINY_FLOWERS_GROUP), + a.equals(ModItems.TINY_FLOWERS_GROUP)); + } +} diff --git a/src/main/resources/tiny_flowers.mixins.json b/src/main/resources/tiny_flowers.mixins.json index 3f21b385..858da34b 100644 --- a/src/main/resources/tiny_flowers.mixins.json +++ b/src/main/resources/tiny_flowers.mixins.json @@ -3,6 +3,7 @@ "package": "co.secretonline.tinyflowers.mixin", "compatibilityLevel": "JAVA_21", "mixins": [ + "CreativeModeTabsMixin", "EyeblossomBlockMixin", "EyeblossomStateAccessor", "FlowerbedBlockMixin", From 62cedf685640116215fb750e3bb094503c987135 Mon Sep 17 00:00:00 2001 From: secret_online Date: Fri, 26 Dec 2025 15:49:12 +1300 Subject: [PATCH 050/113] Add Tiny Flowers tab to Creative menu After a very quick test, it seems like recipe viewers don't like this mod too much. It seems fixing that will mean depending on their API packages. which I'm trying to avoid for no real reason. The excuse I have is that it'll likely slow down updating the mod to new versions, especially if I need different implementations for JEI, REI, EMI, and perhaps others. --- .../tinyflowers/TinyFlowersClient.java | 31 ++-------- .../tinyflowers/items/CreativeTabEvents.java | 60 +++++++++++++++++++ .../block/TinyGardenColorProvider.java | 42 +++++++++++++ .../tinyflowers/items/ModItems.java | 47 ++------------- .../mixin/CreativeModeTabsMixin.java | 6 +- .../assets/tiny_flowers/lang/de_at.json | 1 + .../assets/tiny_flowers/lang/de_ch.json | 1 + .../assets/tiny_flowers/lang/de_de.json | 1 + .../assets/tiny_flowers/lang/en_us.json | 1 + 9 files changed, 117 insertions(+), 73 deletions(-) create mode 100644 src/client/java/co/secretonline/tinyflowers/items/CreativeTabEvents.java create mode 100644 src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenColorProvider.java diff --git a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java index 85da4164..d0c4d9bd 100644 --- a/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java +++ b/src/client/java/co/secretonline/tinyflowers/TinyFlowersClient.java @@ -2,7 +2,9 @@ import co.secretonline.tinyflowers.blocks.ModBlockEntities; import co.secretonline.tinyflowers.blocks.ModBlocks; +import co.secretonline.tinyflowers.items.CreativeTabEvents; import co.secretonline.tinyflowers.renderer.block.TinyGardenBlockEntityRenderer; +import co.secretonline.tinyflowers.renderer.block.TinyGardenColorProvider; import co.secretonline.tinyflowers.renderer.item.TinyFlowerProperty; import co.secretonline.tinyflowers.resources.TinyFlowerModelDataLoader; import co.secretonline.tinyflowers.resources.TinyFlowersModelLoadingPlugin; @@ -10,14 +12,11 @@ import net.fabricmc.fabric.api.client.rendering.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; import net.fabricmc.fabric.impl.client.model.loading.ModelLoadingPluginManager; -import net.minecraft.client.renderer.BiomeColors; import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; import net.minecraft.client.renderer.chunk.ChunkSectionLayer; import net.minecraft.client.renderer.item.ItemStackRenderState; import net.minecraft.client.renderer.item.properties.select.SelectItemModelProperties; import net.minecraft.util.RandomSource; -import net.minecraft.world.level.DryFoliageColor; -import net.minecraft.world.level.GrassColor; public class TinyFlowersClient implements ClientModInitializer { public static final RandomSource RANDOM = RandomSource.create(); @@ -33,30 +32,8 @@ public void onInitializeClient() { ModelLoadingPluginManager.registerPlugin(new TinyFlowerModelDataLoader(), new TinyFlowersModelLoadingPlugin()); - // See Pink Petals in net.minecraft.client.color.block.BlockColors - ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> { - boolean useDefaultColors = world == null || pos == null; - - switch (tintIndex) { - case 1 -> { - if (useDefaultColors) { - return GrassColor.getDefaultColor(); - } else { - return BiomeColors.getAverageGrassColor(world, pos); - } - } - case 2 -> { - if (useDefaultColors) { - return DryFoliageColor.get(0.5, 1.0); - } else { - return BiomeColors.getAverageDryFoliageColor(world, pos); - } - } - default -> { - return -1; - } - } - }, ModBlocks.TINY_GARDEN_BLOCK); + CreativeTabEvents.initialize(); + ColorProviderRegistry.BLOCK.register(new TinyGardenColorProvider(), ModBlocks.TINY_GARDEN_BLOCK); } } diff --git a/src/client/java/co/secretonline/tinyflowers/items/CreativeTabEvents.java b/src/client/java/co/secretonline/tinyflowers/items/CreativeTabEvents.java new file mode 100644 index 00000000..acdd3d64 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/items/CreativeTabEvents.java @@ -0,0 +1,60 @@ +package co.secretonline.tinyflowers.items; + +import java.util.ArrayList; +import java.util.List; + +import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import net.fabricmc.fabric.api.event.Event; +import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; +import net.minecraft.client.Minecraft; +import net.minecraft.core.RegistryAccess; +import net.minecraft.resources.Identifier; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; + +public class CreativeTabEvents { + public static void initialize() { + // Tiny flowers should be added in the order they original flowers are in their + // own tabs. Thanks to the CreativeModeTabsMixin, we can be pretty certain that + // the tiny flowers group will be at the end. This means we can build up a list + // of the original flowers in order, which we can then use to make all of the + // tiny variants in our final tab. + // We do also need to wait for other mods to add their own + Identifier afterDefaultPhase = TinyFlowers.id("after_default"); + ItemGroupEvents.MODIFY_ENTRIES_ALL.addPhaseOrdering(Event.DEFAULT_PHASE, afterDefaultPhase); + + List orderedFlowerData = new ArrayList<>(); + ItemGroupEvents.MODIFY_ENTRIES_ALL.register(afterDefaultPhase, (tab, entries) -> { + // I don't like that we are grabbing the registry from the Minecraft client, but + // I coulnd't really figure anythin g else out. Minecraft's Creative inventory + // code is already split across server and client, so I hope this isn't too bad. + Minecraft minecraft = Minecraft.getInstance(); + if (minecraft.level == null) { + return; + } + RegistryAccess registryAccess = minecraft.level.registryAccess(); + + if (tab.equals(ModItems.TINY_FLOWERS_GROUP)) { + // We're pretty certain at this stage that all of the other tab groups have + // gone, so we can add all the flowers now. + + for (TinyFlowerData tinyFlowerData : orderedFlowerData) { + entries.accept(tinyFlowerData.getItemStack(1)); + } + return; + } + + for (ItemStack itemStack : entries.getDisplayStacks()) { + if (itemStack.getItem() instanceof BlockItem blockItem) { + Block block = blockItem.getBlock(); + TinyFlowerData flowerData = TinyFlowerData.findByOriginalBlock(registryAccess, block); + if (flowerData != null) { + orderedFlowerData.add(flowerData); + } + } + } + }); + } +} diff --git a/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenColorProvider.java b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenColorProvider.java new file mode 100644 index 00000000..20d5753f --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/renderer/block/TinyGardenColorProvider.java @@ -0,0 +1,42 @@ +package co.secretonline.tinyflowers.renderer.block; + +import org.jspecify.annotations.Nullable; + +import net.minecraft.client.color.block.BlockColor; +import net.minecraft.client.renderer.BiomeColors; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.DryFoliageColor; +import net.minecraft.world.level.GrassColor; +import net.minecraft.world.level.block.state.BlockState; + +public class TinyGardenColorProvider implements BlockColor { + + @Override + public int getColor(BlockState state, @Nullable BlockAndTintGetter world, @Nullable BlockPos pos, int tintIndex) { + // Loosely based on Pink Petals in net.minecraft.client.color.block.BlockColors + + boolean useDefaultColors = world == null || pos == null; + + switch (tintIndex) { + case 1 -> { + if (useDefaultColors) { + return GrassColor.getDefaultColor(); + } else { + return BiomeColors.getAverageGrassColor(world, pos); + } + } + case 2 -> { + if (useDefaultColors) { + return DryFoliageColor.get(0.5, 1.0); + } else { + return BiomeColors.getAverageDryFoliageColor(world, pos); + } + } + default -> { + return -1; + } + } + } + +} diff --git a/src/main/java/co/secretonline/tinyflowers/items/ModItems.java b/src/main/java/co/secretonline/tinyflowers/items/ModItems.java index 749c71be..44624bc0 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/ModItems.java +++ b/src/main/java/co/secretonline/tinyflowers/items/ModItems.java @@ -1,23 +1,16 @@ package co.secretonline.tinyflowers.items; -import java.util.ArrayList; -import java.util.List; - import co.secretonline.tinyflowers.TinyFlowers; -import co.secretonline.tinyflowers.data.TinyFlowerData; -import net.fabricmc.fabric.api.event.Event; import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; import net.minecraft.core.Registry; -import net.minecraft.core.RegistryAccess; import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; -import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.server.level.ServerLevel; import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.CreativeModeTabs; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -56,43 +49,11 @@ public class ModItems { public static void initialize() { Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, TINY_FLOWERS_GROUP_KEY, TINY_FLOWERS_GROUP); - ItemGroupEvents.modifyEntriesEvent(TINY_FLOWERS_GROUP_KEY).register((itemGroup) -> { + ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.TOOLS_AND_UTILITIES).register((itemGroup) -> { itemGroup.accept(FLORISTS_SHEARS_ITEM); }); - - // Tiny flowers should be added in the order they original flowers are in their - // own tabs. - // Thanks to the CreativeModeTabsMixin, we can be pretty certain that the tiny - // flowers group - // will be at the end. This means we can build up a list of he original flowers - // in order, which we can then use to make all of the tiny variants in our final - // tab. - Identifier afterDefaultPhase = TinyFlowers.id("after_default"); - ItemGroupEvents.MODIFY_ENTRIES_ALL.addPhaseOrdering(Event.DEFAULT_PHASE, afterDefaultPhase); - - List orderedFlowerData = new ArrayList<>(); - ItemGroupEvents.MODIFY_ENTRIES_ALL.register(afterDefaultPhase, (tab, entries) -> { - - // NOTE: This is the point where adding tiny flowers to the Creative menu breaks down. I've been able to solve a bunch of little problems, but this one evades me. If we could get the registry contents here, then we could do it easily. In fact most of the ode for it is below. Unfortunately, it doesn't seem like there's a reliable way to do so, so it sort of just stops here. - RegistryAccess registryAccess = ????????; - - if (tab.equals(TINY_FLOWERS_GROUP)) { - // We're pretty certain at this stage that all of the other tab groups have - // gone, so we can add all the flowers now. - - for (TinyFlowerData tinyFlowerData : orderedFlowerData) { - entries.accept(tinyFlowerData.getItemStack(1)); - } - return; - } - - for (ItemStack itemStack : entries.getDisplayStacks()) { - TinyFlowerData flowerData = TinyFlowerData.findByItemStack(registryAccess, itemStack); - if (flowerData != null) { - orderedFlowerData.add(flowerData); - } - } + ItemGroupEvents.modifyEntriesEvent(TINY_FLOWERS_GROUP_KEY).register((itemGroup) -> { + itemGroup.accept(FLORISTS_SHEARS_ITEM); }); - } } diff --git a/src/main/java/co/secretonline/tinyflowers/mixin/CreativeModeTabsMixin.java b/src/main/java/co/secretonline/tinyflowers/mixin/CreativeModeTabsMixin.java index 1f31b92e..970b4133 100644 --- a/src/main/java/co/secretonline/tinyflowers/mixin/CreativeModeTabsMixin.java +++ b/src/main/java/co/secretonline/tinyflowers/mixin/CreativeModeTabsMixin.java @@ -14,14 +14,14 @@ @Mixin(CreativeModeTabs.class) public class CreativeModeTabsMixin { - @Inject(method = "streamAllTabs", at = @At("TAIL")) + @Inject(method = "streamAllTabs", at = @At("TAIL"), cancellable = true) private static void sortStreamAllTabs(CallbackInfoReturnable> ci) { ci.setReturnValue(ci.getReturnValue().sorted(CreativeModeTabsMixin::compareTabs)); } private static int compareTabs(CreativeModeTab a, CreativeModeTab b) { return Boolean.compare( - b.equals(ModItems.TINY_FLOWERS_GROUP), - a.equals(ModItems.TINY_FLOWERS_GROUP)); + a.equals(ModItems.TINY_FLOWERS_GROUP), + b.equals(ModItems.TINY_FLOWERS_GROUP)); } } diff --git a/src/main/resources/assets/tiny_flowers/lang/de_at.json b/src/main/resources/assets/tiny_flowers/lang/de_at.json index ba6999d1..1634ae42 100644 --- a/src/main/resources/assets/tiny_flowers/lang/de_at.json +++ b/src/main/resources/assets/tiny_flowers/lang/de_at.json @@ -1,5 +1,6 @@ { "modmenu.descriptionTranslation.tiny_flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", + "itemGroup.tiny_flowers": "Winzige Blumen", "item.tiny_flowers.florists_shears": "Floristenschere", "block.tiny_flowers.tiny_garden": "Winziger Garten", "block.tiny_flowers.tiny_garden.empty": "Leer", diff --git a/src/main/resources/assets/tiny_flowers/lang/de_ch.json b/src/main/resources/assets/tiny_flowers/lang/de_ch.json index ba6999d1..1634ae42 100644 --- a/src/main/resources/assets/tiny_flowers/lang/de_ch.json +++ b/src/main/resources/assets/tiny_flowers/lang/de_ch.json @@ -1,5 +1,6 @@ { "modmenu.descriptionTranslation.tiny_flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", + "itemGroup.tiny_flowers": "Winzige Blumen", "item.tiny_flowers.florists_shears": "Floristenschere", "block.tiny_flowers.tiny_garden": "Winziger Garten", "block.tiny_flowers.tiny_garden.empty": "Leer", diff --git a/src/main/resources/assets/tiny_flowers/lang/de_de.json b/src/main/resources/assets/tiny_flowers/lang/de_de.json index ba6999d1..1634ae42 100644 --- a/src/main/resources/assets/tiny_flowers/lang/de_de.json +++ b/src/main/resources/assets/tiny_flowers/lang/de_de.json @@ -1,5 +1,6 @@ { "modmenu.descriptionTranslation.tiny_flowers": "Fügt winzige Varianten aller Vanilla-Blumen hinzu.", + "itemGroup.tiny_flowers": "Winzige Blumen", "item.tiny_flowers.florists_shears": "Floristenschere", "block.tiny_flowers.tiny_garden": "Winziger Garten", "block.tiny_flowers.tiny_garden.empty": "Leer", diff --git a/src/main/resources/assets/tiny_flowers/lang/en_us.json b/src/main/resources/assets/tiny_flowers/lang/en_us.json index 85ae080b..e39411e2 100644 --- a/src/main/resources/assets/tiny_flowers/lang/en_us.json +++ b/src/main/resources/assets/tiny_flowers/lang/en_us.json @@ -1,5 +1,6 @@ { "modmenu.descriptionTranslation.tiny_flowers": "Add tiny variants of all Vanilla flowers.", + "itemGroup.tiny_flowers": "Tiny Flowers", "item.tiny_flowers.florists_shears": "Florists' Shears", "block.tiny_flowers.tiny_garden": "Tiny Garden", "block.tiny_flowers.tiny_garden.empty": "Empty", From 5e69e2f00f7dc35451c671e5a74c2a204b1c3367 Mon Sep 17 00:00:00 2001 From: secret_online Date: Fri, 26 Dec 2025 20:26:38 +1300 Subject: [PATCH 051/113] Add configuration for what blocks a tiny flower can be placed on So many edge cases, like a ridiculously high number. --- README.md | 7 ++- .../generators/DefaultDataGenerator.java | 2 + .../mods/TinyFlowersDataGenerator.java | 5 ++ .../mods/TinyFlowersDatagenData.java | 38 +++++++++++++- .../datagen/providers/BlockTagProvider.java | 26 ++++++++++ .../datagen/providers/ItemTagProvider.java | 1 + .../data/minecraft/tags/block/flowers.json | 5 ++ .../data/minecraft/tags/item/flowers.json | 5 ++ .../block/tiny_flower_can_survive_on.json | 6 +++ .../tiny_flower/tiny_cactus_flower.json | 6 +++ .../tiny_flower/tiny_wither_rose.json | 6 +++ .../secretonline/tinyflowers/TinyFlowers.java | 2 + .../tinyflowers/blocks/ModBlockTags.java | 21 ++++++++ .../tinyflowers/blocks/TinyGardenBlock.java | 49 ++++++++++++++++--- .../blocks/TinyGardenBlockEntity.java | 19 ++++++- .../components/GardenContentsComponent.java | 26 +++++++++- .../components/TinyFlowerComponent.java | 20 +++++++- .../tinyflowers/data/TinyFlowerData.java | 34 ++++++++++++- .../helper/SegmentedMixinHelper.java | 14 ++++++ .../tinyflowers/helper/Survivable.java | 8 +++ .../tinyflowers/items/FloristsShearsItem.java | 10 +++- .../tinyflowers/items/TinyFlowerItem.java | 28 ++++++++++- 22 files changed, 322 insertions(+), 16 deletions(-) create mode 100644 src/client/java/co/secretonline/tinyflowers/datagen/providers/BlockTagProvider.java create mode 100644 src/main/generated/data/minecraft/tags/block/flowers.json create mode 100644 src/main/generated/data/minecraft/tags/item/flowers.json create mode 100644 src/main/generated/data/tiny_flowers/tags/block/tiny_flower_can_survive_on.json create mode 100644 src/main/java/co/secretonline/tinyflowers/blocks/ModBlockTags.java create mode 100644 src/main/java/co/secretonline/tinyflowers/helper/Survivable.java diff --git a/README.md b/README.md index 1738ef63..e83c6455 100644 --- a/README.md +++ b/README.md @@ -35,9 +35,11 @@ interface TinyFlowerData { id: Identifier; /** The ID of the original flower block. Will be turned into Tiny Flowers if crafted with or used on by Florists' Shears. */ original_id: Identifier; - /** Optional. Whether the original block is segmentable like Pink Petals or Wildflowers. */ + /** Optional. Whether the original block is segmentable like Pink Petals or Wildflowers. Defaults to false. */ is_segmented?: boolean; - /** Optional. List of mob effects to be applied if consumed in Suspicious Stew. */ + /** Optional. List of block IDs or tags that this tiny flower can be placed on. Defaults to `#tiny_flowers:tiny_flower_can_survive_on`. */ + can_survive_on?: (Identifier | TagKey)[]; + /** Optional. List of mob effects to be applied if consumed in Suspicious Stew. Defaults to an empty list. */ suspicious_stew_effects?: { /** The ID of the mob effect that will be applied. */ id: Identifier; @@ -51,6 +53,7 @@ interface TinyFlowerData { { "id": "tiny_dirt_flower:tiny_dirt", "original_id": "minecraft:dirt", + "can_survive_on": ["minecraft:dirt"], "suspicious_stew_effects": [ { "duration": 10, diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java index ea15e85f..d2c14895 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/DefaultDataGenerator.java @@ -1,5 +1,6 @@ package co.secretonline.tinyflowers.datagen.generators; +import co.secretonline.tinyflowers.datagen.providers.BlockTagProvider; import co.secretonline.tinyflowers.datagen.providers.DefaultModelProvider; import co.secretonline.tinyflowers.datagen.providers.FloristsShearsRecipeProvider; import co.secretonline.tinyflowers.datagen.providers.ItemTagProvider; @@ -9,6 +10,7 @@ public class DefaultDataGenerator implements PackContributor { @Override public void addProviders(Pack pack) { pack.addProvider(ItemTagProvider::new); + pack.addProvider(BlockTagProvider::new); pack.addProvider(FloristsShearsRecipeProvider::new); pack.addProvider(DefaultModelProvider::new); } diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java index cff6f599..710a7390 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDataGenerator.java @@ -4,7 +4,9 @@ import co.secretonline.tinyflowers.TinyFlowers; import net.minecraft.resources.Identifier; +import net.minecraft.tags.BlockTags; import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.level.block.Blocks; public class TinyFlowersDataGenerator extends BaseModDataGenerator { @Override @@ -97,11 +99,14 @@ public List getFlowerData() { TinyFlowersDatagenData.Builder .ofCustom(TinyFlowers.id("tiny_wither_rose"), Identifier.withDefaultNamespace("wither_rose")) .stewEffectSeconds(MobEffects.WITHER, 7.0) + .addCanSurviveOn(Blocks.NETHERRACK, Blocks.SOUL_SAND, Blocks.SOUL_SOIL) .untintedStem() .stemTexture(TinyFlowers.id("tiny_wither_rose_stem")) .build(), TinyFlowersDatagenData.Builder .ofCustom(TinyFlowers.id("tiny_cactus_flower"), Identifier.withDefaultNamespace("cactus_flower")) + .addCanSurviveOn(BlockTags.SAND) + .addCanSurviveOn(Blocks.SANDSTONE, Blocks.RED_SANDSTONE) .customModel(TinyFlowers.id("garden_low_untinted")) .stemTexture(TinyFlowers.id("tiny_cactus_flower_stem")) .build()); diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java index b92eec21..9ac9e727 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java @@ -1,6 +1,7 @@ package co.secretonline.tinyflowers.datagen.generators.mods; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -12,16 +13,21 @@ import com.google.gson.JsonObject; import co.secretonline.tinyflowers.TinyFlowers; +import co.secretonline.tinyflowers.blocks.ModBlockTags; import co.secretonline.tinyflowers.data.TinyFlowerData; import co.secretonline.tinyflowers.resources.TinyFlowerResources; import co.secretonline.tinyflowers.resources.TinyFlowerResources.TintSource; import net.minecraft.client.data.models.model.ModelInstance; import net.minecraft.client.data.models.model.TextureSlot; import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.Identifier; +import net.minecraft.tags.TagKey; +import net.minecraft.util.ExtraCodecs.TagOrElementLocation; import net.minecraft.util.Mth; import net.minecraft.world.effect.MobEffect; import net.minecraft.world.item.component.SuspiciousStewEffects.Entry; +import net.minecraft.world.level.block.Block; public class TinyFlowersDatagenData { private static String MOD_ID_PREFIX = TinyFlowers.MOD_ID + "/"; @@ -33,6 +39,8 @@ public class TinyFlowersDatagenData { private boolean isSegmentable; @NonNull private List suspiciousStewEffects; + @NonNull + private List canSurviveOn; private TintSource tintSource = TintSource.GRASS; private ModelPart modelPart1; @@ -41,7 +49,7 @@ public class TinyFlowersDatagenData { private ModelPart modelPart4; public TinyFlowerData data() { - return new TinyFlowerData(id, originalBlockId, isSegmentable, suspiciousStewEffects); + return new TinyFlowerData(id, originalBlockId, isSegmentable, canSurviveOn, suspiciousStewEffects); } public TinyFlowerResources resources() { @@ -93,6 +101,8 @@ public static class Builder { private Identifier originalBlockId; private boolean isSegmentable = false; private List suspiciousStewEffects = new ArrayList<>(); + private List canSurviveOn = new ArrayList<>( + List.of(ModBlockTags.TINY_FLOWER_CAN_SURVIVE_ON_LOCATION)); private int layers = 0; private boolean untintedStem = false; @@ -153,6 +163,31 @@ public Builder stewEffectSeconds(Holder effect, double seconds) { return this.stewEffect(effect, Mth.floor(seconds * 20.0f)); } + public Builder replaceCanSurviveOn(TagOrElementLocation... canSurviveOn) { + this.canSurviveOn = new ArrayList<>(Arrays.asList(canSurviveOn)); + return this; + } + + public Builder addCanSurviveOn(TagOrElementLocation... canSurviveOn) { + this.canSurviveOn.addAll(Arrays.asList(canSurviveOn)); + return this; + } + + public Builder addCanSurviveOn(Block... blocks) { + for (Block block : blocks) { + var id = BuiltInRegistries.BLOCK.getKey(block); + this.canSurviveOn.add(new TagOrElementLocation(id, false)); + } + return this; + } + + public Builder addCanSurviveOn(TagKey... tags) { + for (TagKey tag : tags) { + this.canSurviveOn.add(new TagOrElementLocation(tag.location(), true)); + } + return this; + } + public Builder itemTexture(Identifier itemTexture) { this.itemTexture = itemTexture.withPrefix("item/"); return this; @@ -218,6 +253,7 @@ public TinyFlowersDatagenData build() { data.originalBlockId = originalBlockId; data.isSegmentable = isSegmentable; data.suspiciousStewEffects = suspiciousStewEffects; + data.canSurviveOn = canSurviveOn; data.tintSource = tintSource; if (layers == 0 && customModel == null) { diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/BlockTagProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/BlockTagProvider.java new file mode 100644 index 00000000..98b84834 --- /dev/null +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/BlockTagProvider.java @@ -0,0 +1,26 @@ +package co.secretonline.tinyflowers.datagen.providers; + +import java.util.concurrent.CompletableFuture; + +import co.secretonline.tinyflowers.blocks.ModBlockTags; +import co.secretonline.tinyflowers.blocks.ModBlocks; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; +import net.minecraft.core.HolderLookup; +import net.minecraft.tags.BlockTags; +import net.minecraft.world.level.block.Blocks; + +public class BlockTagProvider extends FabricTagProvider.FabricValueLookupTagProvider.BlockTagProvider { + public BlockTagProvider(FabricDataOutput output, CompletableFuture registriesFuture) { + super(output, registriesFuture); + } + + @Override + protected void addTags(HolderLookup.Provider wrapperLookup) { + valueLookupBuilder(BlockTags.FLOWERS).add(ModBlocks.TINY_GARDEN_BLOCK); + + valueLookupBuilder(ModBlockTags.TINY_FLOWER_CAN_SURVIVE_ON).forceAddTag(BlockTags.DIRT); + valueLookupBuilder(ModBlockTags.TINY_FLOWER_CAN_SURVIVE_ON).add(Blocks.FARMLAND); + } + +} diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ItemTagProvider.java b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ItemTagProvider.java index 75069298..ec7c551d 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/providers/ItemTagProvider.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/providers/ItemTagProvider.java @@ -17,6 +17,7 @@ public ItemTagProvider(FabricDataOutput output, CompletableFuture TINY_FLOWER_CAN_SURVIVE_ON = register("tiny_flower_can_survive_on"); + + public static final TagOrElementLocation TINY_FLOWER_CAN_SURVIVE_ON_LOCATION = new TagOrElementLocation( + TINY_FLOWER_CAN_SURVIVE_ON.location(), true); + + private static TagKey register(String string) { + return TagKey.create(Registries.BLOCK, TinyFlowers.id(string)); + } + + public static void initialize() { + } +} diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java index 6d27ca24..deb38df3 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlock.java @@ -23,7 +23,6 @@ import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundSource; -import net.minecraft.tags.BlockTags; import net.minecraft.util.RandomSource; import net.minecraft.util.TriState; import net.minecraft.util.Util; @@ -92,7 +91,19 @@ public TinyGardenBlock(Properties settings) { } protected boolean mayPlaceOn(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos) { - return blockState.is(BlockTags.DIRT) || blockState.is(Blocks.FARMLAND); + if (!(blockGetter.getBlockEntity(blockPos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { + // If there's no block entity at this position, that means we're in the middle + // of placing a block here. Let it pass for now, there will be another check + // later. + return true; + } + + // If there is a block entity, then check all of the flowers to make sure + // they're valid for this position. + Block block = blockState.getBlock(); + RegistryAccess registryAccess = gardenBlockEntity.getLevel().registryAccess(); + + return gardenBlockEntity.canSurviveOn(block, registryAccess); } @Override @@ -171,25 +182,36 @@ public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, Co BlockState blockState = level.getBlockState(blockPos); + Block supportingBlock = level.getBlockState(blockPos.below()).getBlock(); + ItemStack stack = blockPlaceContext.getItemInHand(); TinyFlowerData flowerData = TinyFlowerData.findByItemStack(level.registryAccess(), stack); if (flowerData == null) { // The item being placed down is a TinyGardenBlock block item, but doesn't have - // data. This occurs if the item doesn't have the tiny_flower component, which - // happens either if the item doesn't have any components (unusual) or if it has - // the garden_contents component (normal). If it's the latter, then the Block - // Entity will handle this so we just have to set the direction. - // If it's the former, then don't do anything. + // the tiny_flower component, which happens either if the item doesn't have any + // components (unusual) or if it has the garden_contents component (normal). If + // it's the latter, then the Block Entity will handle this so we just have to + // set the direction. If it's the former, then don't do anything. GardenContentsComponent gardenContents = stack.getOrDefault(ModComponents.GARDEN_CONTENTS, null); if (gardenContents == null) { return blockState; } + if (!gardenContents.canSurviveOn(supportingBlock, level.registryAccess())) { + return blockState; + } + return this.defaultBlockState() .setValue(FACING, blockPlaceContext.getHorizontalDirection().getOpposite()); } + // Ensure the tiny flower type we're placing can be placed on top of the + // supporting block. + if (!flowerData.canSurviveOn(supportingBlock)) { + return blockState; + } + if (blockState.is(this)) { // Placing a tiny flower on a garden block. if (!(level.getBlockEntity(blockPos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { @@ -215,6 +237,19 @@ public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, Co BlockState newBlockState = ((TinyGardenBlock) ModBlocks.TINY_GARDEN_BLOCK).defaultBlockState() .setValue(TinyGardenBlock.FACING, blockState.getValue(BlockStateProperties.HORIZONTAL_FACING)); + TinyFlowerData originalSegmentedData = TinyFlowerData.findByOriginalBlock(level.registryAccess(), + blockState.getBlock()); + if (originalSegmentedData == null) { + // The previous block was segmentable, but doesn't have a tiny flower variant + // registered. + return blockState; + } + if (!originalSegmentedData.canSurviveOn(supportingBlock)) { + // This only happens if the original segmentable block was on a block that the + // tiny flower doesn't support. + return blockState; + } + // Since we also need to update the entity, try to update the world now. level.setBlockAndUpdate(blockPos, newBlockState); if (!(level.getBlockEntity(blockPos) instanceof TinyGardenBlockEntity gardenBlockEntity)) { diff --git a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java index b51baae3..7d676065 100644 --- a/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java +++ b/src/main/java/co/secretonline/tinyflowers/blocks/TinyGardenBlockEntity.java @@ -9,6 +9,7 @@ import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.helper.Survivable; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; import net.minecraft.core.RegistryAccess; @@ -26,7 +27,7 @@ import net.minecraft.world.level.storage.ValueInput; import net.minecraft.world.level.storage.ValueOutput; -public class TinyGardenBlockEntity extends BlockEntity { +public class TinyGardenBlockEntity extends BlockEntity implements Survivable { public static int NUM_SLOTS = 4; @Nullable @@ -61,6 +62,22 @@ public List getFlowers() { return list; } + @Override + public boolean canSurviveOn(Block supportingBlock, HolderLookup.Provider provider) { + for (Identifier identifier : this.getFlowers()) { + TinyFlowerData flowerData = TinyFlowerData.findById(provider, identifier); + if (flowerData == null) { + continue; + } + + if (!flowerData.canSurviveOn(supportingBlock)) { + return false; + } + } + + return true; + } + @Nullable public Identifier getFlower(int index) { switch (index) { diff --git a/src/main/java/co/secretonline/tinyflowers/components/GardenContentsComponent.java b/src/main/java/co/secretonline/tinyflowers/components/GardenContentsComponent.java index 2ded548c..4dc4552a 100644 --- a/src/main/java/co/secretonline/tinyflowers/components/GardenContentsComponent.java +++ b/src/main/java/co/secretonline/tinyflowers/components/GardenContentsComponent.java @@ -6,7 +6,10 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.helper.Survivable; import net.minecraft.ChatFormatting; +import net.minecraft.core.HolderLookup; import net.minecraft.core.component.DataComponentGetter; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -15,12 +18,33 @@ import net.minecraft.world.item.Item.TooltipContext; import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.component.TooltipProvider; +import net.minecraft.world.level.block.Block; public record GardenContentsComponent(Identifier flower1, Identifier flower2, Identifier flower3, Identifier flower4) - implements TooltipProvider { + implements TooltipProvider, Survivable { public static final String GARDEN_TEXT = "block.tiny_flowers.tiny_garden"; public static final String EMPTY_TEXT = "block.tiny_flowers.tiny_garden.empty"; + @Override + public boolean canSurviveOn(Block supportingBlock, HolderLookup.Provider provider) { + for (Identifier identifier : new Identifier[] { flower1, flower2, flower3, flower4 }) { + if (identifier == null) { + continue; + } + + TinyFlowerData flowerData = TinyFlowerData.findById(provider, identifier); + if (flowerData == null) { + continue; + } + + if (!flowerData.canSurviveOn(supportingBlock)) { + return false; + } + } + + return true; + } + @Override public void addToTooltip(TooltipContext tooltipContext, Consumer consumer, TooltipFlag tooltipFlag, DataComponentGetter dataComponentGetter) { diff --git a/src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java b/src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java index 4aa34e43..8ae713c9 100644 --- a/src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java +++ b/src/main/java/co/secretonline/tinyflowers/components/TinyFlowerComponent.java @@ -2,14 +2,32 @@ import com.mojang.serialization.Codec; +import co.secretonline.tinyflowers.data.TinyFlowerData; +import co.secretonline.tinyflowers.helper.Survivable; +import net.minecraft.core.HolderLookup; import net.minecraft.resources.Identifier; import net.minecraft.util.Util; +import net.minecraft.world.level.block.Block; -public record TinyFlowerComponent(Identifier id) { +public record TinyFlowerComponent(Identifier id) implements Survivable { public String getTranslationKey() { return Util.makeDescriptionId("block", this.id()); } + @Override + public boolean canSurviveOn(Block supportingBlock, HolderLookup.Provider provider) { + TinyFlowerData flowerData = TinyFlowerData.findById(provider, id); + if (flowerData == null) { + return true; + } + + if (!flowerData.canSurviveOn(supportingBlock)) { + return false; + } + + return true; + } + public static final Codec CODEC = Identifier.CODEC.xmap(TinyFlowerComponent::new, TinyFlowerComponent::id); } diff --git a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java index 109e7ebd..3f0af3ee 100644 --- a/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java +++ b/src/main/java/co/secretonline/tinyflowers/data/TinyFlowerData.java @@ -10,6 +10,7 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import co.secretonline.tinyflowers.blocks.ModBlockTags; import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import co.secretonline.tinyflowers.items.ModItems; @@ -17,7 +18,11 @@ import net.minecraft.core.HolderLookup; import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.Identifier; +import net.minecraft.tags.TagKey; +import net.minecraft.util.ExtraCodecs; +import net.minecraft.util.ExtraCodecs.TagOrElementLocation; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.component.SuspiciousStewEffects; @@ -47,10 +52,34 @@ * for creating Tiny Flowers of this type, as the item * already exists. * + * @param canSurviveOn Block IDs or #-prefixed tags for what blocks this flower + * type can be placed on. This defaults to the + * `#tiny_flowers:tiny_flower_can_survive_on` tag, which + * contains `#minecraft:dirt` and `minecraft:farmland`. * @param stewEffect A potion effect for Suspicious Stew. */ public record TinyFlowerData(Identifier id, Identifier originalId, boolean isSegmentable, - @NonNull List suspiciousStewEffects) implements SuspiciousEffectHolder { + @NonNull List canSurviveOn, @NonNull List suspiciousStewEffects) + implements SuspiciousEffectHolder { + + public boolean canSurviveOn(Block supportingBlock) { + var blockHolder = BuiltInRegistries.BLOCK.wrapAsHolder(supportingBlock); + + for (TagOrElementLocation tagOrElementLocation : canSurviveOn) { + Identifier id = tagOrElementLocation.id(); + if (tagOrElementLocation.tag()) { + if (blockHolder.is(TagKey.create(Registries.BLOCK, id))) { + return true; + } + } else { + if (blockHolder.is(id)) { + return true; + } + } + } + + return false; + } @Override public SuspiciousStewEffects getSuspiciousEffects() { @@ -132,6 +161,9 @@ public static TinyFlowerData findByItemStack(HolderLookup.Provider provider, Ite Identifier.CODEC.fieldOf("id").forGetter(TinyFlowerData::id), Identifier.CODEC.fieldOf("original_id").forGetter(TinyFlowerData::originalId), Codec.BOOL.optionalFieldOf("is_segmented", false).forGetter(TinyFlowerData::isSegmentable), + ExtraCodecs.TAG_OR_ELEMENT_ID.listOf() + .optionalFieldOf("can_survive_on", List.of(ModBlockTags.TINY_FLOWER_CAN_SURVIVE_ON_LOCATION)) + .forGetter(TinyFlowerData::canSurviveOn), Entry.CODEC.listOf().optionalFieldOf("suspicious_stew_effects", List.of()) .forGetter(TinyFlowerData::suspiciousStewEffects)) .apply(instance, TinyFlowerData::new)); diff --git a/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java b/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java index 1df2813b..8aa741cf 100644 --- a/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java +++ b/src/main/java/co/secretonline/tinyflowers/helper/SegmentedMixinHelper.java @@ -53,6 +53,11 @@ public static void shouldAddSegment(BlockState state, BlockPlaceContext context, return; } + Block below = context.getLevel().getBlockState(context.getClickedPos().below()).getBlock(); + if (!flowerData.canSurviveOn(below)) { + return; + } + info.setReturnValue(true); } @@ -65,6 +70,7 @@ public static void getPlacementState(BlockPlaceContext context, Block blockBeing // inside a TinyGardenBlock. BlockState blockState = level.getBlockState(blockPos); Block currentBlock = blockState.getBlock(); + Block below = context.getLevel().getBlockState(context.getClickedPos().below()).getBlock(); // Early exit if the block being placed is the same as the current block. // This falls back to the original implementation. @@ -78,6 +84,10 @@ public static void getPlacementState(BlockPlaceContext context, Block blockBeing if (!(currentBlock instanceof TinyGardenBlock)) { TinyFlowerData flowerData = TinyFlowerData.findByOriginalBlock(level.registryAccess(), currentBlock); if (flowerData != null) { + if (!flowerData.canSurviveOn(below)) { + return; + } + try { BlockState prevBockState = blockState; blockState = ((TinyGardenBlock) ModBlocks.TINY_GARDEN_BLOCK).defaultBlockState() @@ -124,6 +134,10 @@ public static void getPlacementState(BlockPlaceContext context, Block blockBeing info.setReturnValue(blockState); return; } + if (!flowerData.canSurviveOn(below)) { + info.setReturnValue(blockState); + return; + } gardenBlockEntity.addFlower(flowerData.id()); diff --git a/src/main/java/co/secretonline/tinyflowers/helper/Survivable.java b/src/main/java/co/secretonline/tinyflowers/helper/Survivable.java new file mode 100644 index 00000000..507fa740 --- /dev/null +++ b/src/main/java/co/secretonline/tinyflowers/helper/Survivable.java @@ -0,0 +1,8 @@ +package co.secretonline.tinyflowers.helper; + +import net.minecraft.core.HolderLookup; +import net.minecraft.world.level.block.Block; + +public interface Survivable { + public boolean canSurviveOn(Block supportingBlock, HolderLookup.Provider provider); +} diff --git a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java index 3cdc0ed0..19e86ce9 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/FloristsShearsItem.java @@ -41,7 +41,15 @@ public InteractionResult useOn(UseOnContext ctx) { Block prevBlock = prevBockState.getBlock(); TinyFlowerData prevData = TinyFlowerData.findByOriginalBlock(world.registryAccess(), prevBlock); if (prevData != null) { - // Convert block into tiny flowers + // The block that was clicked on is the original block of a tiny flower variant. + // Try and turn into actual tiny flowers. + + // Ensure the block underneath can support the tiny flower variant. This is + // likely, given the block was previously holding the original block. + Block supportingBlock = world.getBlockState(pos.below()).getBlock(); + if (!prevData.canSurviveOn(supportingBlock)) { + return InteractionResult.FAIL; + } BlockState newBlockState = ModBlocks.TINY_GARDEN_BLOCK.defaultBlockState() .setValue(TinyGardenBlock.FACING, ctx.getHorizontalDirection().getOpposite()); diff --git a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java index e5eb2a6a..9f1a0c75 100644 --- a/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java +++ b/src/main/java/co/secretonline/tinyflowers/items/TinyFlowerItem.java @@ -10,11 +10,14 @@ import co.secretonline.tinyflowers.components.ModComponents; import co.secretonline.tinyflowers.components.TinyFlowerComponent; import net.minecraft.core.Direction; +import net.minecraft.core.RegistryAccess; import net.minecraft.network.chat.Component; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; public class TinyFlowerItem extends BlockItem { @@ -26,7 +29,11 @@ public TinyFlowerItem(Item.Properties properties) { protected @Nullable BlockState getPlacementState(BlockPlaceContext blockPlaceContext) { BlockState newBlockState = super.getPlacementState(blockPlaceContext); if (newBlockState == null || newBlockState.isAir()) { - return newBlockState; + return null; + } + + if (!this.checkSupportingBlock(blockPlaceContext)) { + return null; } BlockState currentBlockState = blockPlaceContext.getLevel().getBlockState(blockPlaceContext.getClickedPos()); @@ -36,6 +43,25 @@ public TinyFlowerItem(Item.Properties properties) { return newBlockState.setValue(TinyGardenBlock.FACING, newDirection); } + private boolean checkSupportingBlock(BlockPlaceContext context) { + Level level = context.getLevel(); + RegistryAccess registryAccess = level.registryAccess(); + ItemStack itemStack = context.getItemInHand(); + Block below = level.getBlockState(context.getClickedPos().below()).getBlock(); + + GardenContentsComponent gardenComponent = itemStack.get(ModComponents.GARDEN_CONTENTS); + if (gardenComponent != null) { + return gardenComponent.canSurviveOn(below, registryAccess); + } + + TinyFlowerComponent tinyFlowerComponent = itemStack.get(ModComponents.TINY_FLOWER); + if (tinyFlowerComponent != null) { + return tinyFlowerComponent.canSurviveOn(below, registryAccess); + } + + return false; + } + @Override public Component getName(ItemStack itemStack) { GardenContentsComponent gardenComponent = itemStack.get(ModComponents.GARDEN_CONTENTS); From bf692baafa6d1b05d2ed28d7f4b51d80b0917d95 Mon Sep 17 00:00:00 2001 From: secret_online Date: Fri, 26 Dec 2025 20:52:19 +1300 Subject: [PATCH 052/113] Add Svelte starter --- misc/mod-generator/.gitignore | 24 + misc/mod-generator/README.md | 47 + misc/mod-generator/index.html | 13 + misc/mod-generator/package-lock.json | 1462 +++++++++++++++++++++ misc/mod-generator/package.json | 21 + misc/mod-generator/public/vite.svg | 1 + misc/mod-generator/src/App.svelte | 47 + misc/mod-generator/src/app.css | 79 ++ misc/mod-generator/src/assets/svelte.svg | 1 + misc/mod-generator/src/lib/Counter.svelte | 10 + misc/mod-generator/src/main.ts | 9 + misc/mod-generator/svelte.config.js | 8 + misc/mod-generator/tsconfig.app.json | 21 + misc/mod-generator/tsconfig.json | 7 + misc/mod-generator/tsconfig.node.json | 26 + misc/mod-generator/vite.config.ts | 7 + 16 files changed, 1783 insertions(+) create mode 100644 misc/mod-generator/.gitignore create mode 100644 misc/mod-generator/README.md create mode 100644 misc/mod-generator/index.html create mode 100644 misc/mod-generator/package-lock.json create mode 100644 misc/mod-generator/package.json create mode 100644 misc/mod-generator/public/vite.svg create mode 100644 misc/mod-generator/src/App.svelte create mode 100644 misc/mod-generator/src/app.css create mode 100644 misc/mod-generator/src/assets/svelte.svg create mode 100644 misc/mod-generator/src/lib/Counter.svelte create mode 100644 misc/mod-generator/src/main.ts create mode 100644 misc/mod-generator/svelte.config.js create mode 100644 misc/mod-generator/tsconfig.app.json create mode 100644 misc/mod-generator/tsconfig.json create mode 100644 misc/mod-generator/tsconfig.node.json create mode 100644 misc/mod-generator/vite.config.ts diff --git a/misc/mod-generator/.gitignore b/misc/mod-generator/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/misc/mod-generator/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/misc/mod-generator/README.md b/misc/mod-generator/README.md new file mode 100644 index 00000000..e6cd94fc --- /dev/null +++ b/misc/mod-generator/README.md @@ -0,0 +1,47 @@ +# Svelte + TS + Vite + +This template should help get you started developing with Svelte and TypeScript in Vite. + +## Recommended IDE Setup + +[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). + +## Need an official Svelte framework? + +Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more. + +## Technical considerations + +**Why use this over SvelteKit?** + +- It brings its own routing solution which might not be preferable for some users. +- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app. + +This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project. + +Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate. + +**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?** + +Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information. + +**Why include `.vscode/extensions.json`?** + +Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project. + +**Why enable `allowJs` in the TS template?** + +While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant. + +**Why is HMR not preserving my local component state?** + +HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr). + +If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR. + +```ts +// store.ts +// An extremely simple external store +import { writable } from 'svelte/store' +export default writable(0) +``` diff --git a/misc/mod-generator/index.html b/misc/mod-generator/index.html new file mode 100644 index 00000000..f2853021 --- /dev/null +++ b/misc/mod-generator/index.html @@ -0,0 +1,13 @@ + + + + + + + tiny-flowers-mod-generator + + +
    + + + diff --git a/misc/mod-generator/package-lock.json b/misc/mod-generator/package-lock.json new file mode 100644 index 00000000..a5fbc86e --- /dev/null +++ b/misc/mod-generator/package-lock.json @@ -0,0 +1,1462 @@ +{ + "name": "tiny-flowers-mod-generator", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tiny-flowers-mod-generator", + "version": "0.0.0", + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.2.1", + "@tsconfig/svelte": "^5.0.6", + "@types/node": "^24.10.1", + "svelte": "^5.43.8", + "svelte-check": "^4.3.4", + "typescript": "~5.9.3", + "vite": "^7.2.4" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.54.0.tgz", + "integrity": "sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.54.0.tgz", + "integrity": "sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.54.0.tgz", + "integrity": "sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.54.0.tgz", + "integrity": "sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.54.0.tgz", + "integrity": "sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.54.0.tgz", + "integrity": "sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.54.0.tgz", + "integrity": "sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.54.0.tgz", + "integrity": "sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.54.0.tgz", + "integrity": "sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.54.0.tgz", + "integrity": "sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.54.0.tgz", + "integrity": "sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.54.0.tgz", + "integrity": "sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.54.0.tgz", + "integrity": "sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.54.0.tgz", + "integrity": "sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.54.0.tgz", + "integrity": "sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.54.0.tgz", + "integrity": "sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.54.0.tgz", + "integrity": "sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.54.0.tgz", + "integrity": "sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.54.0.tgz", + "integrity": "sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.54.0.tgz", + "integrity": "sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.54.0.tgz", + "integrity": "sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.54.0.tgz", + "integrity": "sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sveltejs/acorn-typescript": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.8.tgz", + "integrity": "sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8.9.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.1.tgz", + "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", + "debug": "^4.4.1", + "deepmerge": "^4.3.1", + "magic-string": "^0.30.17", + "vitefu": "^1.1.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.1.tgz", + "integrity": "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@tsconfig/svelte": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.6.tgz", + "integrity": "sha512-yGxYL0I9eETH1/DR9qVJey4DAsCdeau4a9wYPKuXfEhm8lFO8wg+LLYJjIpAm6Fw7HSlhepPhYPDop75485yWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.4.tgz", + "integrity": "sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/devalue": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.1.tgz", + "integrity": "sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esrap": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.1.tgz", + "integrity": "sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/rollup": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.54.0.tgz", + "integrity": "sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.54.0", + "@rollup/rollup-android-arm64": "4.54.0", + "@rollup/rollup-darwin-arm64": "4.54.0", + "@rollup/rollup-darwin-x64": "4.54.0", + "@rollup/rollup-freebsd-arm64": "4.54.0", + "@rollup/rollup-freebsd-x64": "4.54.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.54.0", + "@rollup/rollup-linux-arm-musleabihf": "4.54.0", + "@rollup/rollup-linux-arm64-gnu": "4.54.0", + "@rollup/rollup-linux-arm64-musl": "4.54.0", + "@rollup/rollup-linux-loong64-gnu": "4.54.0", + "@rollup/rollup-linux-ppc64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-musl": "4.54.0", + "@rollup/rollup-linux-s390x-gnu": "4.54.0", + "@rollup/rollup-linux-x64-gnu": "4.54.0", + "@rollup/rollup-linux-x64-musl": "4.54.0", + "@rollup/rollup-openharmony-arm64": "4.54.0", + "@rollup/rollup-win32-arm64-msvc": "4.54.0", + "@rollup/rollup-win32-ia32-msvc": "4.54.0", + "@rollup/rollup-win32-x64-gnu": "4.54.0", + "@rollup/rollup-win32-x64-msvc": "4.54.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svelte": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.46.1.tgz", + "integrity": "sha512-ynjfCHD3nP2el70kN5Pmg37sSi0EjOm9FgHYQdC4giWG/hzO3AatzXXJJgP305uIhGQxSufJLuYWtkY8uK/8RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "devalue": "^5.5.0", + "esm-env": "^1.2.1", + "esrap": "^2.2.1", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte-check": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.5.tgz", + "integrity": "sha512-e4VWZETyXaKGhpkxOXP+B/d0Fp/zKViZoJmneZWe/05Y2aqSKj3YN2nLfYPJBQ87WEiY4BQCQ9hWGu9mPT1a1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "chokidar": "^4.0.1", + "fdir": "^6.2.0", + "picocolors": "^1.0.0", + "sade": "^1.7.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": ">=5.0.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", + "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/zimmerframe": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", + "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/misc/mod-generator/package.json b/misc/mod-generator/package.json new file mode 100644 index 00000000..26837f2e --- /dev/null +++ b/misc/mod-generator/package.json @@ -0,0 +1,21 @@ +{ + "name": "tiny-flowers-mod-generator", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.2.1", + "@tsconfig/svelte": "^5.0.6", + "@types/node": "^24.10.1", + "svelte": "^5.43.8", + "svelte-check": "^4.3.4", + "typescript": "~5.9.3", + "vite": "^7.2.4" + } +} diff --git a/misc/mod-generator/public/vite.svg b/misc/mod-generator/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/misc/mod-generator/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/misc/mod-generator/src/App.svelte b/misc/mod-generator/src/App.svelte new file mode 100644 index 00000000..f75b68aa --- /dev/null +++ b/misc/mod-generator/src/App.svelte @@ -0,0 +1,47 @@ + + +
    + + diff --git a/misc/mod-generator/src/app.css b/misc/mod-generator/src/app.css new file mode 100644 index 00000000..61ba3678 --- /dev/null +++ b/misc/mod-generator/src/app.css @@ -0,0 +1,79 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +.card { + padding: 2em; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/misc/mod-generator/src/assets/svelte.svg b/misc/mod-generator/src/assets/svelte.svg new file mode 100644 index 00000000..c5e08481 --- /dev/null +++ b/misc/mod-generator/src/assets/svelte.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/misc/mod-generator/src/lib/Counter.svelte b/misc/mod-generator/src/lib/Counter.svelte new file mode 100644 index 00000000..37d75ce7 --- /dev/null +++ b/misc/mod-generator/src/lib/Counter.svelte @@ -0,0 +1,10 @@ + + + diff --git a/misc/mod-generator/src/main.ts b/misc/mod-generator/src/main.ts new file mode 100644 index 00000000..664a057a --- /dev/null +++ b/misc/mod-generator/src/main.ts @@ -0,0 +1,9 @@ +import { mount } from 'svelte' +import './app.css' +import App from './App.svelte' + +const app = mount(App, { + target: document.getElementById('app')!, +}) + +export default app diff --git a/misc/mod-generator/svelte.config.js b/misc/mod-generator/svelte.config.js new file mode 100644 index 00000000..96b34554 --- /dev/null +++ b/misc/mod-generator/svelte.config.js @@ -0,0 +1,8 @@ +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' + +/** @type {import("@sveltejs/vite-plugin-svelte").SvelteConfig} */ +export default { + // Consult https://svelte.dev/docs#compile-time-svelte-preprocess + // for more information about preprocessors + preprocess: vitePreprocess(), +} diff --git a/misc/mod-generator/tsconfig.app.json b/misc/mod-generator/tsconfig.app.json new file mode 100644 index 00000000..31c18cfd --- /dev/null +++ b/misc/mod-generator/tsconfig.app.json @@ -0,0 +1,21 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2022", + "useDefineForClassFields": true, + "module": "ESNext", + "types": ["svelte", "vite/client"], + "noEmit": true, + /** + * Typecheck JS in `.svelte` and `.js` files by default. + * Disable checkJs if you'd like to use dynamic types in JS. + * Note that setting allowJs false does not prevent the use + * of JS in `.svelte` files. + */ + "allowJs": true, + "checkJs": true, + "moduleDetection": "force" + }, + "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] +} diff --git a/misc/mod-generator/tsconfig.json b/misc/mod-generator/tsconfig.json new file mode 100644 index 00000000..1ffef600 --- /dev/null +++ b/misc/mod-generator/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/misc/mod-generator/tsconfig.node.json b/misc/mod-generator/tsconfig.node.json new file mode 100644 index 00000000..8a67f62f --- /dev/null +++ b/misc/mod-generator/tsconfig.node.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2023", + "lib": ["ES2023"], + "module": "ESNext", + "types": ["node"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/misc/mod-generator/vite.config.ts b/misc/mod-generator/vite.config.ts new file mode 100644 index 00000000..d32eba1d --- /dev/null +++ b/misc/mod-generator/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import { svelte } from '@sveltejs/vite-plugin-svelte' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [svelte()], +}) From ba8e916f4c9e1c46ee62f480c4d6bcdd6ec70619 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sat, 27 Dec 2025 13:43:47 +1300 Subject: [PATCH 053/113] Add state type definitions --- README.md | 2 +- misc/mod-generator/src/lib/conversion.ts | 253 ++++++++++++++++++++++ misc/mod-generator/src/lib/types/files.ts | 95 ++++++++ misc/mod-generator/src/lib/types/state.ts | 28 +++ misc/mod-generator/tsconfig.app.json | 2 +- misc/mod-generator/tsconfig.json | 5 +- misc/mod-generator/tsconfig.node.json | 5 +- 7 files changed, 385 insertions(+), 5 deletions(-) create mode 100644 misc/mod-generator/src/lib/conversion.ts create mode 100644 misc/mod-generator/src/lib/types/files.ts create mode 100644 misc/mod-generator/src/lib/types/state.ts diff --git a/README.md b/README.md index e83c6455..acf60799 100644 --- a/README.md +++ b/README.md @@ -156,7 +156,7 @@ Read [Model#Item_models](https://minecraft.wiki/w/Model#Item_models) on the wiki } ``` -#### `/models/block/_.json` +#### `/models/block/tiny_flowers/_.json` These files define the models that will be rendered when the flower is placed in the world. The path of these files must match the `model` key in the main resources file. diff --git a/misc/mod-generator/src/lib/conversion.ts b/misc/mod-generator/src/lib/conversion.ts new file mode 100644 index 00000000..c763c226 --- /dev/null +++ b/misc/mod-generator/src/lib/conversion.ts @@ -0,0 +1,253 @@ +import type { + AllFiles, + BlockModelGeneratedJson, + ItemsModelDefinitionJson, +} from "./types/files"; +import type { CombinedFlowerData, FormState } from "./types/state"; + +function trimFileName(name: string): string { + return name.replace(/\.[^\.]+$/, ""); +} + +function makeBlockModel( + parentBase: string, + index: number, + textureMap: Record +): BlockModelGeneratedJson { + return { + parent: `${parentBase}_${index}`, + textures: textureMap, + }; +} + +export function convertFormToFiles(state: FormState): AllFiles { + const modId = state.metadata.id; + + const cases: ItemsModelDefinitionJson["model"]["cases"] = []; + + const value: AllFiles = { + fabricModJson: { + schemaVersion: 1, + id: modId, + version: state.metadata.version, + name: state.metadata.name, + description: state.metadata.description, + authors: state.metadata.authors, + license: state.metadata.license, + icon: `assets/${modId}/icon.png`, + environment: "*", + entrypoints: { client: [], main: [] }, + depends: { tiny_flowers: ">=2.0.0" }, + custom: { modmenu: { parent: "tiny_flowers" } }, + }, + data: { + tinyFlowers: {}, + }, + assets: { + icon: state.metadata.icon, + tinyFlowers: {}, + lang: {}, + textures: { + block: {}, + item: {}, + }, + models: { + block: {}, + item: {}, + }, + items: { + tiny_flower: { + model: { + type: "minecraft:select", + cases, + property: "tiny_flowers:tiny_flower", + }, + }, + }, + }, + }; + + for (const flower of state.flowers) { + value.data.tinyFlowers[flower.id] = { + id: flower.id, + original_id: flower.originalId, + can_survive_on: + flower.canSurviveOn.length === 1 && + flower.canSurviveOn[0] === "#tiny_flowers:tiny_flower_can_survive_on" + ? undefined + : flower.canSurviveOn, + is_segmented: flower.isSegmented ? true : undefined, + suspicious_stew_effects: + flower.suspiciousStewEffects.length === 0 + ? undefined + : flower.suspiciousStewEffects, + }; + + value.assets.tinyFlowers[flower.id] = { + id: flower.id, + item_model: `${modId}:item/${flower.id}`, + tint_source: + flower.tintSource === "grass" ? undefined : flower.tintSource, + model1: `${modId}:block/tiny_flowers/${flower.id}_1`, + model2: `${modId}:block/tiny_flowers/${flower.id}_2`, + model3: `${modId}:block/tiny_flowers/${flower.id}_3`, + model4: `${modId}:block/tiny_flowers/${flower.id}_4`, + }; + + for (const [language, name] of Object.entries(flower.name)) { + if (!value.assets.lang[language]) { + value.assets.lang[language] = {}; + } + + value.assets.lang[language][flower.id] = name; + } + + const textureMap: Record = {}; + for (const [key, file] of Object.entries(flower.blockTextures)) { + if (!file) { + continue; + } + + if (typeof file === "string") { + textureMap[key] = file; + } else { + value.assets.textures.block[trimFileName(file.name)] = file; + textureMap[key] = `${modId}:block/${trimFileName(file.name)}`; + } + } + + value.assets.textures.item[flower.id] = flower.itemTexture; + + value.assets.models.block[`${flower.id}_1`] = makeBlockModel( + flower.modelParentBase, + 1, + textureMap + ); + value.assets.models.block[`${flower.id}_2`] = makeBlockModel( + flower.modelParentBase, + 2, + textureMap + ); + value.assets.models.block[`${flower.id}_3`] = makeBlockModel( + flower.modelParentBase, + 3, + textureMap + ); + value.assets.models.block[`${flower.id}_4`] = makeBlockModel( + flower.modelParentBase, + 4, + textureMap + ); + + if (flower.itemTexture) { + value.assets.models.item[flower.id] = { + parent: "minecraft:item/generated", + textures: { + layer0: `${modId}:block/${trimFileName(flower.itemTexture.name)}`, + }, + }; + } + + cases.push({ + model: { type: "minecraft:model", model: `${modId}:item/${flower.id}` }, + when: `${modId}:${flower.id}`, + }); + } + + return value; +} + +export function convertFilesToForm(files: AllFiles): FormState { + var manifest = files.fabricModJson; + + var state: FormState = { + stateVersion: 1, + metadata: { + id: manifest.id, + version: manifest.version, + name: manifest.name, + description: manifest.description, + authors: manifest.authors, + license: manifest.license, + icon: files.assets.icon, + }, + flowers: [], + }; + + for (const data of Object.values(files.data.tinyFlowers)) { + if (!data) { + continue; + } + + const resources = files.assets.tinyFlowers[data.id]; + if (!resources) { + throw new Error( + `Flower ${data.id} has no resources definition (Tried to find assets/${manifest.id}/tiny_flowers/tiny_flower/${data.id}.json)` + ); + } + + const firstModel = files.assets.models.block[`${data.id}_1`]; + if (!firstModel) { + throw new Error( + `Flower ${data.id} has no block model defined (Tried to find assets/${manifest.id}/models/block/tiny_flowers/${data.id}_1.json)` + ); + } + + const blockTextures: CombinedFlowerData["blockTextures"] = {}; + for (const [textureKey, path] of Object.entries(firstModel.textures)) { + if (path.startsWith(`${data.id}:block/`)) { + const name = path.split(":block/")[1]; + const file = files.assets.textures.block[name]; + if (!file) { + console.warn( + `Unable to find texture referenced in ${data.id}_1: ${path}. Falling back to string value.` + ); + blockTextures[textureKey] = path; + } else { + blockTextures[textureKey] = file; + } + } else { + blockTextures[textureKey] = path; + } + } + + const nameMap: CombinedFlowerData["name"] = { en_us: "" }; + for (const [languageKey, values] of Object.entries(files.assets.lang)) { + if (!values) { + continue; + } + + const value = values[data.id]; + if (value) { + nameMap[languageKey] = value; + } + } + + const item: CombinedFlowerData = { + id: data.id, + name: nameMap, + originalId: data.original_id, + isSegmented: data.is_segmented ?? false, + canSurviveOn: data.can_survive_on ?? [ + "#tiny_flowers:tiny_flower_can_survive_on", + ], + suspiciousStewEffects: data.suspicious_stew_effects ?? [], + tintSource: resources.tint_source ?? "grass", + itemTexture: files.assets.textures.item[data.id], + modelParentBase: firstModel.parent.replace(/_\d+$/, ""), + blockTextures, + }; + + state.flowers.push(item); + } + + return state; +} + +export function convertFilesToZip(files: AllFiles): unknown { + return null; +} + +export function convertZipToFiles(zip: unknown): AllFiles { + return null as any; +} diff --git a/misc/mod-generator/src/lib/types/files.ts b/misc/mod-generator/src/lib/types/files.ts new file mode 100644 index 00000000..94ada67b --- /dev/null +++ b/misc/mod-generator/src/lib/types/files.ts @@ -0,0 +1,95 @@ +export interface AllFiles { + fabricModJson: FabricModJson; + data: { + tinyFlowers: Record; + }; + assets: { + icon: File | undefined; + tinyFlowers: Record; + lang: Record; + textures: { + block: Record; + item: Record; + }; + models: { + block: Record; + item: Record; + }; + items: Record<"tiny_flower", ItemsModelDefinitionJson | undefined>; + }; +} + +export interface FabricModJson { + schemaVersion: 1; + id: string; + version: string; + name: string; + description: string; + authors: string[]; + license: string; + icon: string; + environment: string; + entrypoints: { + main: string[]; + client: string[]; + }; + depends: { + tiny_flowers: string; + }; + custom: { + modmenu: { + parent: "tiny_flowers"; + }; + }; +} + +export interface TinyFlowerDataJson { + id: string; + original_id: string; + is_segmented?: boolean; + can_survive_on?: string[]; + suspicious_stew_effects?: { + id: string; + duration: number; + }[]; +} + +export interface TinyFlowerResourcesJson { + id: string; + item_model: string; + tint_source?: "grass" | "dry_foliage"; + model1: string; + model2: string; + model3: string; + model4: string; +} + +export interface LanguageJson { + [key: string]: string; +} + +export interface ItemsModelDefinitionJson { + model: { + type: "minecraft:select"; + cases: { + model: { + type: "minecraft:model"; + model: string; + }; + when: string; + }[]; + property: "tiny_flowers:tiny_flower"; + }; +} + +export interface ItemModelGeneratedJson { + parent: "minecraft:item/generated"; + textures: { + layer0: string; + }; +} + +export interface BlockModelGeneratedJson { + parent: string; + textures: Record; +} diff --git a/misc/mod-generator/src/lib/types/state.ts b/misc/mod-generator/src/lib/types/state.ts new file mode 100644 index 00000000..199e968e --- /dev/null +++ b/misc/mod-generator/src/lib/types/state.ts @@ -0,0 +1,28 @@ +export interface FormState { + stateVersion: 1; + metadata: ModMetadata; + flowers: CombinedFlowerData[]; +} + +export interface ModMetadata { + id: string; + version: string; + name: string; + description: string; + authors: string[]; + license: string; + icon: File | undefined; +} + +export interface CombinedFlowerData { + id: string; + name: Record; + originalId: string; + isSegmented: boolean; + canSurviveOn: string[]; + suspiciousStewEffects: { id: string; duration: number }[]; + itemTexture: File | undefined; + tintSource: "grass" | "dry_foliage"; + modelParentBase: string; + blockTextures: Record; +} diff --git a/misc/mod-generator/tsconfig.app.json b/misc/mod-generator/tsconfig.app.json index 31c18cfd..2656ddb9 100644 --- a/misc/mod-generator/tsconfig.app.json +++ b/misc/mod-generator/tsconfig.app.json @@ -1,12 +1,12 @@ { "extends": "@tsconfig/svelte/tsconfig.json", "compilerOptions": { + "composite": true, "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", "target": "ES2022", "useDefineForClassFields": true, "module": "ESNext", "types": ["svelte", "vite/client"], - "noEmit": true, /** * Typecheck JS in `.svelte` and `.js` files by default. * Disable checkJs if you'd like to use dynamic types in JS. diff --git a/misc/mod-generator/tsconfig.json b/misc/mod-generator/tsconfig.json index 1ffef600..3075ccee 100644 --- a/misc/mod-generator/tsconfig.json +++ b/misc/mod-generator/tsconfig.json @@ -3,5 +3,8 @@ "references": [ { "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" } - ] + ], + "compilerOptions": { + "noEmit": true + } } diff --git a/misc/mod-generator/tsconfig.node.json b/misc/mod-generator/tsconfig.node.json index 8a67f62f..b4989959 100644 --- a/misc/mod-generator/tsconfig.node.json +++ b/misc/mod-generator/tsconfig.node.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "composite": true, "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", "target": "ES2023", "lib": ["ES2023"], @@ -12,7 +13,6 @@ "allowImportingTsExtensions": true, "verbatimModuleSyntax": true, "moduleDetection": "force", - "noEmit": true, /* Linting */ "strict": true, @@ -20,7 +20,8 @@ "noUnusedParameters": true, "erasableSyntaxOnly": true, "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true + "noUncheckedSideEffectImports": true, + "noUncheckedIndexedAccess": true }, "include": ["vite.config.ts"] } From ee1232afc398e3c4d05fc7948e81cb49156db6b6 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 28 Dec 2025 13:29:19 +1300 Subject: [PATCH 054/113] Add default particle and stem textures to provided block models --- .../mods/TinyFlowersDatagenData.java | 20 +- .../generators/mods/VanillaDataGenerator.java | 5 +- .../tiny_flowers/models/block/garden_1.json | 4 + .../tiny_flowers/models/block/garden_2.json | 4 + .../tiny_flowers/models/block/garden_3.json | 4 + .../tiny_flowers/models/block/garden_4.json | 4 + .../models/block/garden_double_1.json | 4 + .../models/block/garden_double_2.json | 4 + .../models/block/garden_double_3.json | 4 + .../models/block/garden_double_4.json | 4 + .../block/garden_double_untinted_1.json | 3 + .../block/garden_double_untinted_2.json | 3 + .../block/garden_double_untinted_3.json | 3 + .../block/garden_double_untinted_4.json | 3 + .../block/garden_double_untinted_glow_1.json | 3 + .../block/garden_double_untinted_glow_2.json | 3 + .../block/garden_double_untinted_glow_3.json | 3 + .../block/garden_double_untinted_glow_4.json | 3 + .../models/block/garden_leaf_litter_1.json | 27 +-- .../models/block/garden_leaf_litter_2.json | 27 +-- .../models/block/garden_leaf_litter_3.json | 31 +-- .../models/block/garden_leaf_litter_4.json | 27 +-- .../models/block/garden_low_untinted_1.json | 147 +++++++------- .../models/block/garden_low_untinted_2.json | 147 +++++++------- .../models/block/garden_low_untinted_3.json | 147 +++++++------- .../models/block/garden_low_untinted_4.json | 107 +++++----- .../models/block/garden_tall_1.json | 148 +++++++------- .../models/block/garden_tall_2.json | 148 +++++++------- .../models/block/garden_tall_3.json | 148 +++++++------- .../models/block/garden_tall_4.json | 108 +++++----- .../models/block/garden_triple_1.json | 184 +++++++++--------- .../models/block/garden_triple_2.json | 184 +++++++++--------- .../models/block/garden_triple_3.json | 184 +++++++++--------- .../models/block/garden_triple_4.json | 144 +++++++------- .../block/garden_triple_untinted_1.json | 183 ++++++++--------- .../block/garden_triple_untinted_2.json | 183 ++++++++--------- .../block/garden_triple_untinted_3.json | 183 ++++++++--------- .../block/garden_triple_untinted_4.json | 143 +++++++------- .../models/block/garden_untinted_1.json | 3 + .../models/block/garden_untinted_2.json | 3 + .../models/block/garden_untinted_3.json | 3 + .../models/block/garden_untinted_4.json | 3 + .../block/tiny_flowers/leaf_litter_1.json | 3 +- .../block/tiny_flowers/leaf_litter_2.json | 3 +- .../block/tiny_flowers/leaf_litter_3.json | 3 +- .../block/tiny_flowers/leaf_litter_4.json | 3 +- .../block/tiny_flowers/tiny_allium_1.json | 4 +- .../block/tiny_flowers/tiny_allium_2.json | 4 +- .../block/tiny_flowers/tiny_allium_3.json | 4 +- .../block/tiny_flowers/tiny_allium_4.json | 4 +- .../tiny_flowers/tiny_azure_bluet_1.json | 4 +- .../tiny_flowers/tiny_azure_bluet_2.json | 4 +- .../tiny_flowers/tiny_azure_bluet_3.json | 4 +- .../tiny_flowers/tiny_azure_bluet_4.json | 4 +- .../tiny_flowers/tiny_blue_orchid_1.json | 4 +- .../tiny_flowers/tiny_blue_orchid_2.json | 4 +- .../tiny_flowers/tiny_blue_orchid_3.json | 4 +- .../tiny_flowers/tiny_blue_orchid_4.json | 4 +- .../tiny_flowers/tiny_cactus_flower_1.json | 1 - .../tiny_flowers/tiny_cactus_flower_2.json | 1 - .../tiny_flowers/tiny_cactus_flower_3.json | 1 - .../tiny_flowers/tiny_cactus_flower_4.json | 1 - .../tiny_closed_eyeblossom_1.json | 1 - .../tiny_closed_eyeblossom_2.json | 1 - .../tiny_closed_eyeblossom_3.json | 1 - .../tiny_closed_eyeblossom_4.json | 1 - .../block/tiny_flowers/tiny_cornflower_1.json | 4 +- .../block/tiny_flowers/tiny_cornflower_2.json | 4 +- .../block/tiny_flowers/tiny_cornflower_3.json | 4 +- .../block/tiny_flowers/tiny_cornflower_4.json | 4 +- .../block/tiny_flowers/tiny_dandelion_1.json | 4 +- .../block/tiny_flowers/tiny_dandelion_2.json | 4 +- .../block/tiny_flowers/tiny_dandelion_3.json | 4 +- .../block/tiny_flowers/tiny_dandelion_4.json | 4 +- .../tiny_lily_of_the_valley_1.json | 4 +- .../tiny_lily_of_the_valley_2.json | 4 +- .../tiny_lily_of_the_valley_3.json | 4 +- .../tiny_lily_of_the_valley_4.json | 4 +- .../tiny_flowers/tiny_open_eyeblossom_1.json | 1 - .../tiny_flowers/tiny_open_eyeblossom_2.json | 1 - .../tiny_flowers/tiny_open_eyeblossom_3.json | 1 - .../tiny_flowers/tiny_open_eyeblossom_4.json | 1 - .../tiny_flowers/tiny_orange_tulip_1.json | 4 +- .../tiny_flowers/tiny_orange_tulip_2.json | 4 +- .../tiny_flowers/tiny_orange_tulip_3.json | 4 +- .../tiny_flowers/tiny_orange_tulip_4.json | 4 +- .../tiny_flowers/tiny_oxeye_daisy_1.json | 4 +- .../tiny_flowers/tiny_oxeye_daisy_2.json | 4 +- .../tiny_flowers/tiny_oxeye_daisy_3.json | 4 +- .../tiny_flowers/tiny_oxeye_daisy_4.json | 4 +- .../block/tiny_flowers/tiny_pink_tulip_1.json | 4 +- .../block/tiny_flowers/tiny_pink_tulip_2.json | 4 +- .../block/tiny_flowers/tiny_pink_tulip_3.json | 4 +- .../block/tiny_flowers/tiny_pink_tulip_4.json | 4 +- .../block/tiny_flowers/tiny_poppy_1.json | 1 - .../block/tiny_flowers/tiny_poppy_2.json | 1 - .../block/tiny_flowers/tiny_poppy_3.json | 1 - .../block/tiny_flowers/tiny_poppy_4.json | 1 - .../block/tiny_flowers/tiny_red_tulip_1.json | 4 +- .../block/tiny_flowers/tiny_red_tulip_2.json | 4 +- .../block/tiny_flowers/tiny_red_tulip_3.json | 4 +- .../block/tiny_flowers/tiny_red_tulip_4.json | 4 +- .../tiny_flowers/tiny_torchflower_1.json | 1 - .../tiny_flowers/tiny_torchflower_2.json | 1 - .../tiny_flowers/tiny_torchflower_3.json | 1 - .../tiny_flowers/tiny_torchflower_4.json | 1 - .../tiny_flowers/tiny_white_tulip_1.json | 4 +- .../tiny_flowers/tiny_white_tulip_2.json | 4 +- .../tiny_flowers/tiny_white_tulip_3.json | 4 +- .../tiny_flowers/tiny_white_tulip_4.json | 4 +- .../tiny_flowers/tiny_wither_rose_1.json | 1 - .../tiny_flowers/tiny_wither_rose_2.json | 1 - .../tiny_flowers/tiny_wither_rose_3.json | 1 - .../tiny_flowers/tiny_wither_rose_4.json | 1 - 114 files changed, 1466 insertions(+), 1439 deletions(-) diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java index 9ac9e727..4742c0f7 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/TinyFlowersDatagenData.java @@ -106,8 +106,8 @@ public static class Builder { private int layers = 0; private boolean untintedStem = false; - private boolean includeStemTexture = true; - private Identifier stemTexture = Identifier.withDefaultNamespace("block/pink_petals_stem"); + private Identifier stemTexture = null; + private Identifier particleTexture = null; private Map textureMap = new HashMap<>(); private Identifier customModel = null; private TintSource tintSource = TintSource.GRASS; @@ -195,7 +195,6 @@ public Builder itemTexture(Identifier itemTexture) { public Builder layers(Identifier flowerbedTexture) { layers = 1; - textureMap.put(TextureSlot.PARTICLE.getId(), flowerbedTexture.withPrefix("block/")); textureMap.put(TextureSlot.FLOWERBED.getId(), flowerbedTexture.withPrefix("block/")); return this; @@ -203,7 +202,6 @@ public Builder layers(Identifier flowerbedTexture) { public Builder layers(Identifier lowerTexture, Identifier upperTexture) { layers = 2; - textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); textureMap.put(FLOWERBED_UPPER.getId(), upperTexture.withPrefix("block/")); @@ -212,7 +210,6 @@ public Builder layers(Identifier lowerTexture, Identifier upperTexture) { public Builder layers(Identifier lowerTexture, Identifier middleTexture, Identifier upperTexture) { layers = 3; - textureMap.put(TextureSlot.PARTICLE.getId(), lowerTexture.withPrefix("block/")); textureMap.put(TextureSlot.FLOWERBED.getId(), lowerTexture.withPrefix("block/")); textureMap.put(FLOWERBED_MIDDLE.getId(), middleTexture.withPrefix("block/")); textureMap.put(FLOWERBED_UPPER.getId(), upperTexture.withPrefix("block/")); @@ -225,13 +222,13 @@ public Builder untintedStem() { return this; } - public Builder noStem() { - this.includeStemTexture = false; + public Builder stemTexture(Identifier stemTexture) { + this.stemTexture = stemTexture.withPrefix("block/"); return this; } - public Builder stemTexture(Identifier stemTexture) { - this.stemTexture = stemTexture.withPrefix("block/"); + public Builder particleTexture(Identifier particleTexture) { + this.particleTexture = particleTexture.withPrefix("block/"); return this; } @@ -283,9 +280,12 @@ public TinyFlowersDatagenData build() { } } - if (includeStemTexture) { + if (this.stemTexture != null) { textureMap.put("stem", this.stemTexture); } + if (this.particleTexture != null) { + textureMap.put("particle", this.particleTexture); + } data.modelPart1 = new ModelPart(id.withSuffix("_1"), parentId.withSuffix("_1"), textureMap); data.modelPart2 = new ModelPart(id.withSuffix("_2"), parentId.withSuffix("_2"), textureMap); diff --git a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java index d46d228a..064e7e64 100644 --- a/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java +++ b/src/client/java/co/secretonline/tinyflowers/datagen/generators/mods/VanillaDataGenerator.java @@ -18,15 +18,18 @@ public List getFlowerData() { TinyFlowersDatagenData.Builder .ofSegmented(Identifier.withDefaultNamespace("pink_petals")) .customModel(Identifier.withDefaultNamespace("flowerbed")) + .stemTexture(Identifier.withDefaultNamespace("pink_petals_stem")) + .particleTexture(Identifier.withDefaultNamespace("pink_petals")) .build(), TinyFlowersDatagenData.Builder .ofSegmented(Identifier.withDefaultNamespace("wildflowers")) .customModel(Identifier.withDefaultNamespace("flowerbed")) + .stemTexture(Identifier.withDefaultNamespace("pink_petals_stem")) + .particleTexture(Identifier.withDefaultNamespace("wildflowers")) .build(), TinyFlowersDatagenData.Builder .ofSegmented(Identifier.withDefaultNamespace("leaf_litter")) .customModel(TinyFlowers.id("garden_leaf_litter")) - .noStem() .tintSource(TintSource.DRY_FOLIAGE) .build()); } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_1.json index b9667fa5..b8445daf 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_1.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_1.json @@ -1,5 +1,9 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "minecraft:block/pink_petals_stem" + }, "elements": [ { "name": "flower", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_2.json index dc63747c..b6a29365 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_2.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_2.json @@ -1,5 +1,9 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "minecraft:block/pink_petals_stem" + }, "elements": [ { "name": "flower", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_3.json index af2ece66..0bdace09 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_3.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_3.json @@ -1,5 +1,9 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "minecraft:block/pink_petals_stem" + }, "elements": [ { "name": "flower", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_4.json index aedac18e..5de649f0 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_4.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_4.json @@ -1,5 +1,9 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "minecraft:block/pink_petals_stem" + }, "elements": [ { "name": "flower", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_1.json index 2ed410e2..cfe28653 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_1.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_1.json @@ -1,5 +1,9 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_2.json index 3f16b6d3..ad9389b8 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_2.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_2.json @@ -1,5 +1,9 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_3.json index 7b9ed89d..679084e8 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_3.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_3.json @@ -1,5 +1,9 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_4.json index f7f4c90f..29a632ac 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_4.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_4.json @@ -1,5 +1,9 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_1.json index 2111e335..66583798 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_1.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_1.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_2.json index eaaf1bf5..58ec9949 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_2.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_2.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_3.json index c9dbd9ee..740f5df5 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_3.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_3.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_4.json index ba514d1b..e3b0ec43 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_4.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_4.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_1.json index 52e95b73..ed2e3f3f 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_1.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_1.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_2.json index a97548ab..7ea8eb34 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_2.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_2.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_3.json index 9ebda53e..cccda321 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_3.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_3.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_4.json index c8abb90e..82529f5d 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_4.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_double_untinted_glow_4.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower_upper", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_1.json index 7337a5e7..711121ae 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_1.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_1.json @@ -1,14 +1,17 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [0, 0.25, 0], - "to": [8, 0.25, 8], - "faces": { - "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed", "tintindex": 2}, - "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed", "tintindex": 2} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower", + "from": [0, 0.25, 0], + "to": [8, 0.25, 8], + "faces": { + "up": { "uv": [0, 0, 8, 8], "texture": "#flowerbed", "tintindex": 2 }, + "down": { "uv": [0, 8, 8, 0], "texture": "#flowerbed", "tintindex": 2 } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_2.json index c17568ca..01f9c5ea 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_2.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_2.json @@ -1,14 +1,17 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [0, 0.25, 8], - "to": [8, 0.25, 16], - "faces": { - "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed", "tintindex": 2}, - "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed", "tintindex": 2} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower", + "from": [0, 0.25, 8], + "to": [8, 0.25, 16], + "faces": { + "up": { "uv": [0, 8, 8, 16], "texture": "#flowerbed", "tintindex": 2 }, + "down": { "uv": [0, 16, 8, 8], "texture": "#flowerbed", "tintindex": 2 } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_3.json index b497dcd1..76fe28e9 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_3.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_3.json @@ -1,14 +1,21 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [8, 0.25, 8], - "to": [16, 0.25, 16], - "faces": { - "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed", "tintindex": 2}, - "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed", "tintindex": 2} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower", + "from": [8, 0.25, 8], + "to": [16, 0.25, 16], + "faces": { + "up": { "uv": [8, 8, 16, 16], "texture": "#flowerbed", "tintindex": 2 }, + "down": { + "uv": [8, 16, 16, 8], + "texture": "#flowerbed", + "tintindex": 2 + } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_4.json index 9ee54ac6..ec591048 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_4.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_leaf_litter_4.json @@ -1,14 +1,17 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [8, 0.25, 0], - "to": [16, 0.25, 8], - "faces": { - "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed", "tintindex": 2}, - "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed", "tintindex": 2} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower", + "from": [8, 0.25, 0], + "to": [16, 0.25, 8], + "faces": { + "up": { "uv": [8, 0, 16, 8], "texture": "#flowerbed", "tintindex": 2 }, + "down": { "uv": [8, 8, 16, 0], "texture": "#flowerbed", "tintindex": 2 } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_1.json index 2ea529bc..8fd4ff0c 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_1.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_1.json @@ -1,74 +1,77 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [0, 1, 0], - "to": [8, 1, 8], - "faces": { - "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed"}, - "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [3.75, 0, -2.1], - "to": [4.75, 1, -2.1], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 6, 1, 7], "texture": "#stem"}, - "south": {"uv": [0, 6, 1, 7], "texture": "#stem"} - } - }, - { - "name": "stem1_ew", - "from": [4.25, 0, -2.6], - "to": [4.25, 1, -1.6], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 6, 1, 7], "texture": "#stem"}, - "west": {"uv": [0, 6, 1, 7], "texture": "#stem"} - } - }, - { - "name": "stem2_ns", - "from": [4.4, 0, 2.8], - "to": [5.4, 1, 2.8], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 5, 1, 6], "texture": "#stem"}, - "south": {"uv": [0, 5, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem2_ew", - "from": [4.9, 0, 2.3], - "to": [4.9, 1, 3.3], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 5, 1, 6], "texture": "#stem"}, - "west": {"uv": [0, 5, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem3_ns", - "from": [8.65, 0, 0.05], - "to": [9.65, 1, 0.05], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "south": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem3_ew", - "from": [9.15, 0, -0.45], - "to": [9.15, 1, 0.55], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "west": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower", + "from": [0, 1, 0], + "to": [8, 1, 8], + "faces": { + "up": { "uv": [0, 0, 8, 8], "texture": "#flowerbed" }, + "down": { "uv": [0, 8, 8, 0], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [3.75, 0, -2.1], + "to": [4.75, 1, -2.1], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 6, 1, 7], "texture": "#stem" }, + "south": { "uv": [0, 6, 1, 7], "texture": "#stem" } + } + }, + { + "name": "stem1_ew", + "from": [4.25, 0, -2.6], + "to": [4.25, 1, -1.6], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 6, 1, 7], "texture": "#stem" }, + "west": { "uv": [0, 6, 1, 7], "texture": "#stem" } + } + }, + { + "name": "stem2_ns", + "from": [4.4, 0, 2.8], + "to": [5.4, 1, 2.8], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 5, 1, 6], "texture": "#stem" }, + "south": { "uv": [0, 5, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem2_ew", + "from": [4.9, 0, 2.3], + "to": [4.9, 1, 3.3], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 5, 1, 6], "texture": "#stem" }, + "west": { "uv": [0, 5, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem3_ns", + "from": [8.65, 0, 0.05], + "to": [9.65, 1, 0.05], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "south": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem3_ew", + "from": [9.15, 0, -0.45], + "to": [9.15, 1, 0.55], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "west": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_2.json index 0bc5021e..f003279a 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_2.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_2.json @@ -1,74 +1,77 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [0, 1, 8], - "to": [8, 1, 16], - "faces": { - "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed"}, - "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [11.15, 0, 3.25], - "to": [12.15, 1, 3.25], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -1]}, - "faces": { - "north": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "south": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem1_ew", - "from": [11.65, 0, 2.75], - "to": [11.65, 1, 3.75], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -1]}, - "faces": { - "east": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "west": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem2_ns", - "from": [8.15, 0, 5.25], - "to": [9.15, 1, 5.25], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, 1]}, - "faces": { - "north": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "south": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem2_ew", - "from": [8.65, 0, 4.75], - "to": [8.65, 1, 5.75], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, 1]}, - "faces": { - "east": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "west": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem3_ns", - "from": [10.15, 0, 8.25], - "to": [11.15, 1, 8.25], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 4]}, - "faces": { - "north": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "south": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem3_ew", - "from": [10.65, 0, 7.75], - "to": [10.65, 1, 8.75], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 4]}, - "faces": { - "east": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "west": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower", + "from": [0, 1, 8], + "to": [8, 1, 16], + "faces": { + "up": { "uv": [0, 8, 8, 16], "texture": "#flowerbed" }, + "down": { "uv": [0, 16, 8, 8], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [11.15, 0, 3.25], + "to": [12.15, 1, 3.25], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -1] }, + "faces": { + "north": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "south": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem1_ew", + "from": [11.65, 0, 2.75], + "to": [11.65, 1, 3.75], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -1] }, + "faces": { + "east": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "west": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem2_ns", + "from": [8.15, 0, 5.25], + "to": [9.15, 1, 5.25], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, 1] }, + "faces": { + "north": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "south": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem2_ew", + "from": [8.65, 0, 4.75], + "to": [8.65, 1, 5.75], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, 1] }, + "faces": { + "east": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "west": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem3_ns", + "from": [10.15, 0, 8.25], + "to": [11.15, 1, 8.25], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 4] }, + "faces": { + "north": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "south": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem3_ew", + "from": [10.65, 0, 7.75], + "to": [10.65, 1, 8.75], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 4] }, + "faces": { + "east": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "west": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_3.json index a25cf950..66aa873d 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_3.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_3.json @@ -1,74 +1,77 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [8, 1, 8], - "to": [16, 1, 16], - "faces": { - "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed"}, - "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [12.9, 0, 0], - "to": [13.9, 1, 0], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "south": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem1_ew", - "from": [13.4, 0, -0.5], - "to": [13.4, 1, 0.5], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "west": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem2_ns", - "from": [17.15, 0, -2.85], - "to": [18.15, 1, -2.85], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 5, 1, 6], "texture": "#stem"}, - "south": {"uv": [0, 5, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem2_ew", - "from": [17.65, 0, -3.35], - "to": [17.65, 1, -2.35], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 5, 1, 6], "texture": "#stem"}, - "west": {"uv": [0, 5, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem3_ns", - "from": [17.65, 0, 1.9], - "to": [18.65, 1, 1.9], - "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, - "faces": { - "north": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "south": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem3_ew", - "from": [18.15, 0, 1.4], - "to": [18.15, 1, 2.4], - "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, - "faces": { - "east": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "west": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower", + "from": [8, 1, 8], + "to": [16, 1, 16], + "faces": { + "up": { "uv": [8, 8, 16, 16], "texture": "#flowerbed" }, + "down": { "uv": [8, 16, 16, 8], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [12.9, 0, 0], + "to": [13.9, 1, 0], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "south": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem1_ew", + "from": [13.4, 0, -0.5], + "to": [13.4, 1, 0.5], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "west": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem2_ns", + "from": [17.15, 0, -2.85], + "to": [18.15, 1, -2.85], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 5, 1, 6], "texture": "#stem" }, + "south": { "uv": [0, 5, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem2_ew", + "from": [17.65, 0, -3.35], + "to": [17.65, 1, -2.35], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 5, 1, 6], "texture": "#stem" }, + "west": { "uv": [0, 5, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem3_ns", + "from": [17.65, 0, 1.9], + "to": [18.65, 1, 1.9], + "rotation": { "angle": -45, "axis": "y", "origin": [0.5, 0, 0.5] }, + "faces": { + "north": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "south": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem3_ew", + "from": [18.15, 0, 1.4], + "to": [18.15, 1, 2.4], + "rotation": { "angle": -45, "axis": "y", "origin": [0.5, 0, 0.5] }, + "faces": { + "east": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "west": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_4.json index eaca7982..307dacfb 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_4.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_low_untinted_4.json @@ -1,54 +1,57 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [8, 1, 0], - "to": [16, 1, 8], - "faces": { - "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed"}, - "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [13.9, 0, -8.2], - "to": [14.9, 1, -8.2], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -4]}, - "faces": { - "north": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "south": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem1_ew", - "from": [14.4, 0, -8.7], - "to": [14.4, 1, -7.7], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -4]}, - "faces": { - "east": {"uv": [0, 4, 1, 5], "texture": "#stem"}, - "west": {"uv": [0, 4, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem2_ns", - "from": [10.9, 0, -5.2], - "to": [11.9, 1, -5.2], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, -1]}, - "faces": { - "north": {"uv": [0, 5, 1, 6], "texture": "#stem"}, - "south": {"uv": [0, 5, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem2_ew", - "from": [11.4, 0, -5.7], - "to": [11.4, 1, -4.7], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, -1]}, - "faces": { - "east": {"uv": [0, 5, 1, 6], "texture": "#stem"}, - "west": {"uv": [0, 5, 1, 6], "texture": "#stem"} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower", + "from": [8, 1, 0], + "to": [16, 1, 8], + "faces": { + "up": { "uv": [8, 0, 16, 8], "texture": "#flowerbed" }, + "down": { "uv": [8, 8, 16, 0], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [13.9, 0, -8.2], + "to": [14.9, 1, -8.2], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -4] }, + "faces": { + "north": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "south": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem1_ew", + "from": [14.4, 0, -8.7], + "to": [14.4, 1, -7.7], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -4] }, + "faces": { + "east": { "uv": [0, 4, 1, 5], "texture": "#stem" }, + "west": { "uv": [0, 4, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem2_ns", + "from": [10.9, 0, -5.2], + "to": [11.9, 1, -5.2], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, -1] }, + "faces": { + "north": { "uv": [0, 5, 1, 6], "texture": "#stem" }, + "south": { "uv": [0, 5, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem2_ew", + "from": [11.4, 0, -5.7], + "to": [11.4, 1, -4.7], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, -1] }, + "faces": { + "east": { "uv": [0, 5, 1, 6], "texture": "#stem" }, + "west": { "uv": [0, 5, 1, 6], "texture": "#stem" } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_tall_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_1.json index 15f3d6cf..ac2a6de0 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_tall_1.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_1.json @@ -1,74 +1,78 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [0, 6, 0], - "to": [8, 6, 8], - "faces": { - "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed"}, - "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [3.75, 0, -2.1], - "to": [4.75, 6, -2.1], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem1_ew", - "from": [4.25, 0, -2.6], - "to": [4.25, 6, -1.6], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ns", - "from": [4.4, 0, 2.8], - "to": [5.4, 6, 2.8], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ew", - "from": [4.9, 0, 2.3], - "to": [4.9, 6, 3.3], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ns", - "from": [8.65, 0, 0.05], - "to": [9.65, 6, 0.05], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ew", - "from": [9.15, 0, -0.45], - "to": [9.15, 6, 0.55], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, + "elements": [ + { + "name": "flower", + "from": [0, 6, 0], + "to": [8, 6, 8], + "faces": { + "up": { "uv": [0, 0, 8, 8], "texture": "#flowerbed" }, + "down": { "uv": [0, 8, 8, 0], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [3.75, 0, -2.1], + "to": [4.75, 6, -2.1], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem1_ew", + "from": [4.25, 0, -2.6], + "to": [4.25, 6, -1.6], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ns", + "from": [4.4, 0, 2.8], + "to": [5.4, 6, 2.8], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ew", + "from": [4.9, 0, 2.3], + "to": [4.9, 6, 3.3], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ns", + "from": [8.65, 0, 0.05], + "to": [9.65, 6, 0.05], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ew", + "from": [9.15, 0, -0.45], + "to": [9.15, 6, 0.55], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 4, 1, 10], "texture": "#stem", "tintindex": 1 } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_tall_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_2.json index bb5b29d8..552451b7 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_tall_2.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_2.json @@ -1,74 +1,78 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [0, 4, 8], - "to": [8, 4, 16], - "faces": { - "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed"}, - "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [11.15, 0, 3.25], - "to": [12.15, 4, 3.25], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -1]}, - "faces": { - "north": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem1_ew", - "from": [11.65, 0, 2.75], - "to": [11.65, 4, 3.75], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -1]}, - "faces": { - "east": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ns", - "from": [8.15, 0, 5.25], - "to": [9.15, 4, 5.25], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, 1]}, - "faces": { - "north": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ew", - "from": [8.65, 0, 4.75], - "to": [8.65, 4, 5.75], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, 1]}, - "faces": { - "east": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ns", - "from": [10.15, 0, 8.25], - "to": [11.15, 4, 8.25], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 4]}, - "faces": { - "north": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ew", - "from": [10.65, 0, 7.75], - "to": [10.65, 4, 8.75], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 4]}, - "faces": { - "east": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, + "elements": [ + { + "name": "flower", + "from": [0, 4, 8], + "to": [8, 4, 16], + "faces": { + "up": { "uv": [0, 8, 8, 16], "texture": "#flowerbed" }, + "down": { "uv": [0, 16, 8, 8], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [11.15, 0, 3.25], + "to": [12.15, 4, 3.25], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -1] }, + "faces": { + "north": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem1_ew", + "from": [11.65, 0, 2.75], + "to": [11.65, 4, 3.75], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -1] }, + "faces": { + "east": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ns", + "from": [8.15, 0, 5.25], + "to": [9.15, 4, 5.25], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, 1] }, + "faces": { + "north": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ew", + "from": [8.65, 0, 4.75], + "to": [8.65, 4, 5.75], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, 1] }, + "faces": { + "east": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ns", + "from": [10.15, 0, 8.25], + "to": [11.15, 4, 8.25], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 4] }, + "faces": { + "north": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ew", + "from": [10.65, 0, 7.75], + "to": [10.65, 4, 8.75], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 4] }, + "faces": { + "east": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 4, 1, 8], "texture": "#stem", "tintindex": 1 } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_tall_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_3.json index 2d8e1b5f..8d0207b4 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_tall_3.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_3.json @@ -1,74 +1,78 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [8, 5, 8], - "to": [16, 5, 16], - "faces": { - "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed"}, - "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [12.9, 0, 0], - "to": [13.9, 5, 0], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem1_ew", - "from": [13.4, 0, -0.5], - "to": [13.4, 5, 0.5], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ns", - "from": [17.15, 0, -2.85], - "to": [18.15, 5, -2.85], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ew", - "from": [17.65, 0, -3.35], - "to": [17.65, 5, -2.35], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ns", - "from": [17.65, 0, 1.9], - "to": [18.65, 5, 1.9], - "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, - "faces": { - "north": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ew", - "from": [18.15, 0, 1.4], - "to": [18.15, 5, 2.4], - "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, - "faces": { - "east": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, + "elements": [ + { + "name": "flower", + "from": [8, 5, 8], + "to": [16, 5, 16], + "faces": { + "up": { "uv": [8, 8, 16, 16], "texture": "#flowerbed" }, + "down": { "uv": [8, 16, 16, 8], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [12.9, 0, 0], + "to": [13.9, 5, 0], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem1_ew", + "from": [13.4, 0, -0.5], + "to": [13.4, 5, 0.5], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ns", + "from": [17.15, 0, -2.85], + "to": [18.15, 5, -2.85], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ew", + "from": [17.65, 0, -3.35], + "to": [17.65, 5, -2.35], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ns", + "from": [17.65, 0, 1.9], + "to": [18.65, 5, 1.9], + "rotation": { "angle": -45, "axis": "y", "origin": [0.5, 0, 0.5] }, + "faces": { + "north": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ew", + "from": [18.15, 0, 1.4], + "to": [18.15, 5, 2.4], + "rotation": { "angle": -45, "axis": "y", "origin": [0.5, 0, 0.5] }, + "faces": { + "east": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_tall_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_4.json index ebc8013f..6f0d878f 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_tall_4.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_tall_4.json @@ -1,54 +1,58 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower", - "from": [8, 5, 0], - "to": [16, 5, 8], - "faces": { - "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed"}, - "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [13.9, 0, -8.2], - "to": [14.9, 5, -8.2], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -4]}, - "faces": { - "north": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem1_ew", - "from": [14.4, 0, -8.7], - "to": [14.4, 5, -7.7], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -4]}, - "faces": { - "east": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ns", - "from": [10.9, 0, -5.2], - "to": [11.9, 5, -5.2], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, -1]}, - "faces": { - "north": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ew", - "from": [11.4, 0, -5.7], - "to": [11.4, 5, -4.7], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, -1]}, - "faces": { - "east": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, + "elements": [ + { + "name": "flower", + "from": [8, 5, 0], + "to": [16, 5, 8], + "faces": { + "up": { "uv": [8, 0, 16, 8], "texture": "#flowerbed" }, + "down": { "uv": [8, 8, 16, 0], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [13.9, 0, -8.2], + "to": [14.9, 5, -8.2], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -4] }, + "faces": { + "north": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem1_ew", + "from": [14.4, 0, -8.7], + "to": [14.4, 5, -7.7], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -4] }, + "faces": { + "east": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ns", + "from": [10.9, 0, -5.2], + "to": [11.9, 5, -5.2], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, -1] }, + "faces": { + "north": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ew", + "from": [11.4, 0, -5.7], + "to": [11.4, 5, -4.7], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, -1] }, + "faces": { + "east": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 4, 1, 9], "texture": "#stem", "tintindex": 1 } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_1.json index 9873f39c..434c53bc 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_1.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_1.json @@ -1,92 +1,96 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower_upper", - "from": [0, 5, 0], - "to": [8, 5, 8], - "faces": { - "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed_upper"}, - "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed_upper"} - } - }, - { - "name": "flower_middle", - "from": [0, 4, 0], - "to": [8, 4, 8], - "faces": { - "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed_middle"}, - "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed_middle"} - } - }, - { - "name": "flower_lower", - "from": [0, 3, 0], - "to": [8, 3, 8], - "faces": { - "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed"}, - "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [3.75, 0, -2.1], - "to": [4.75, 5, -2.1], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem1_ew", - "from": [4.25, 0, -2.6], - "to": [4.25, 5, -1.6], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ns", - "from": [4.4, 0, 2.8], - "to": [5.4, 5, 2.8], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ew", - "from": [4.9, 0, 2.3], - "to": [4.9, 5, 3.3], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ns", - "from": [8.65, 0, 0.05], - "to": [9.65, 5, 0.05], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ew", - "from": [9.15, 0, -0.45], - "to": [9.15, 5, 0.55], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, + "elements": [ + { + "name": "flower_upper", + "from": [0, 5, 0], + "to": [8, 5, 8], + "faces": { + "up": { "uv": [0, 0, 8, 8], "texture": "#flowerbed_upper" }, + "down": { "uv": [0, 8, 8, 0], "texture": "#flowerbed_upper" } + } + }, + { + "name": "flower_middle", + "from": [0, 4, 0], + "to": [8, 4, 8], + "faces": { + "up": { "uv": [0, 0, 8, 8], "texture": "#flowerbed_middle" }, + "down": { "uv": [0, 8, 8, 0], "texture": "#flowerbed_middle" } + } + }, + { + "name": "flower_lower", + "from": [0, 3, 0], + "to": [8, 3, 8], + "faces": { + "up": { "uv": [0, 0, 8, 8], "texture": "#flowerbed" }, + "down": { "uv": [0, 8, 8, 0], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [3.75, 0, -2.1], + "to": [4.75, 5, -2.1], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem1_ew", + "from": [4.25, 0, -2.6], + "to": [4.25, 5, -1.6], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ns", + "from": [4.4, 0, 2.8], + "to": [5.4, 5, 2.8], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ew", + "from": [4.9, 0, 2.3], + "to": [4.9, 5, 3.3], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ns", + "from": [8.65, 0, 0.05], + "to": [9.65, 5, 0.05], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ew", + "from": [9.15, 0, -0.45], + "to": [9.15, 5, 0.55], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 2, 1, 7], "texture": "#stem", "tintindex": 1 } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_2.json index 895725cd..b632d083 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_2.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_2.json @@ -1,92 +1,96 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower_upper", - "from": [0, 3, 8], - "to": [8, 3, 16], - "faces": { - "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed_upper"}, - "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed_upper"} - } - }, - { - "name": "flower_middle", - "from": [0, 2, 8], - "to": [8, 2, 16], - "faces": { - "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed_middle"}, - "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed_middle"} - } - }, - { - "name": "flower_lower", - "from": [0, 1, 8], - "to": [8, 1, 16], - "faces": { - "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed"}, - "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [11.15, 0, 3.25], - "to": [12.15, 3, 3.25], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -1]}, - "faces": { - "north": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem1_ew", - "from": [11.65, 0, 2.75], - "to": [11.65, 3, 3.75], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -1]}, - "faces": { - "east": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ns", - "from": [8.15, 0, 5.25], - "to": [9.15, 3, 5.25], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, 1]}, - "faces": { - "north": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ew", - "from": [8.65, 0, 4.75], - "to": [8.65, 3, 5.75], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, 1]}, - "faces": { - "east": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ns", - "from": [10.15, 0, 8.25], - "to": [11.15, 3, 8.25], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 4]}, - "faces": { - "north": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ew", - "from": [10.65, 0, 7.75], - "to": [10.65, 3, 8.75], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 4]}, - "faces": { - "east": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, + "elements": [ + { + "name": "flower_upper", + "from": [0, 3, 8], + "to": [8, 3, 16], + "faces": { + "up": { "uv": [0, 8, 8, 16], "texture": "#flowerbed_upper" }, + "down": { "uv": [0, 16, 8, 8], "texture": "#flowerbed_upper" } + } + }, + { + "name": "flower_middle", + "from": [0, 2, 8], + "to": [8, 2, 16], + "faces": { + "up": { "uv": [0, 8, 8, 16], "texture": "#flowerbed_middle" }, + "down": { "uv": [0, 16, 8, 8], "texture": "#flowerbed_middle" } + } + }, + { + "name": "flower_lower", + "from": [0, 1, 8], + "to": [8, 1, 16], + "faces": { + "up": { "uv": [0, 8, 8, 16], "texture": "#flowerbed" }, + "down": { "uv": [0, 16, 8, 8], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [11.15, 0, 3.25], + "to": [12.15, 3, 3.25], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -1] }, + "faces": { + "north": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem1_ew", + "from": [11.65, 0, 2.75], + "to": [11.65, 3, 3.75], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -1] }, + "faces": { + "east": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ns", + "from": [8.15, 0, 5.25], + "to": [9.15, 3, 5.25], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, 1] }, + "faces": { + "north": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ew", + "from": [8.65, 0, 4.75], + "to": [8.65, 3, 5.75], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, 1] }, + "faces": { + "east": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ns", + "from": [10.15, 0, 8.25], + "to": [11.15, 3, 8.25], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 4] }, + "faces": { + "north": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ew", + "from": [10.65, 0, 7.75], + "to": [10.65, 3, 8.75], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 4] }, + "faces": { + "east": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 2, 1, 5], "texture": "#stem", "tintindex": 1 } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_3.json index 85fb7895..de5064cb 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_3.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_3.json @@ -1,92 +1,96 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower_upper", - "from": [8, 4, 8], - "to": [16, 4, 16], - "faces": { - "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed_upper"}, - "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed_upper"} - } - }, - { - "name": "flower_middle", - "from": [8, 3, 8], - "to": [16, 3, 16], - "faces": { - "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed_middle"}, - "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed_middle"} - } - }, - { - "name": "flower_lower", - "from": [8, 2, 8], - "to": [16, 2, 16], - "faces": { - "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed"}, - "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [12.9, 0, 0], - "to": [13.9, 4, 0], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem1_ew", - "from": [13.4, 0, -0.5], - "to": [13.4, 4, 0.5], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ns", - "from": [17.15, 0, -2.85], - "to": [18.15, 4, -2.85], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ew", - "from": [17.65, 0, -3.35], - "to": [17.65, 4, -2.35], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ns", - "from": [17.65, 0, 1.9], - "to": [18.65, 4, 1.9], - "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, - "faces": { - "north": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem3_ew", - "from": [18.15, 0, 1.4], - "to": [18.15, 4, 2.4], - "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, - "faces": { - "east": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, + "elements": [ + { + "name": "flower_upper", + "from": [8, 4, 8], + "to": [16, 4, 16], + "faces": { + "up": { "uv": [8, 8, 16, 16], "texture": "#flowerbed_upper" }, + "down": { "uv": [8, 16, 16, 8], "texture": "#flowerbed_upper" } + } + }, + { + "name": "flower_middle", + "from": [8, 3, 8], + "to": [16, 3, 16], + "faces": { + "up": { "uv": [8, 8, 16, 16], "texture": "#flowerbed_middle" }, + "down": { "uv": [8, 16, 16, 8], "texture": "#flowerbed_middle" } + } + }, + { + "name": "flower_lower", + "from": [8, 2, 8], + "to": [16, 2, 16], + "faces": { + "up": { "uv": [8, 8, 16, 16], "texture": "#flowerbed" }, + "down": { "uv": [8, 16, 16, 8], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [12.9, 0, 0], + "to": [13.9, 4, 0], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem1_ew", + "from": [13.4, 0, -0.5], + "to": [13.4, 4, 0.5], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ns", + "from": [17.15, 0, -2.85], + "to": [18.15, 4, -2.85], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ew", + "from": [17.65, 0, -3.35], + "to": [17.65, 4, -2.35], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ns", + "from": [17.65, 0, 1.9], + "to": [18.65, 4, 1.9], + "rotation": { "angle": -45, "axis": "y", "origin": [0.5, 0, 0.5] }, + "faces": { + "north": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem3_ew", + "from": [18.15, 0, 1.4], + "to": [18.15, 4, 2.4], + "rotation": { "angle": -45, "axis": "y", "origin": [0.5, 0, 0.5] }, + "faces": { + "east": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_4.json index 9e25940f..a9ce501c 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_4.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_4.json @@ -1,72 +1,76 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower_upper", - "from": [8, 4, 0], - "to": [16, 4, 8], - "faces": { - "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed_upper"}, - "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed_upper"} - } - }, - { - "name": "flower_middle", - "from": [8, 3, 0], - "to": [16, 3, 8], - "faces": { - "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed_middle"}, - "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed_middle"} - } - }, - { - "name": "flower_lower", - "from": [8, 2, 0], - "to": [16, 2, 8], - "faces": { - "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed"}, - "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [13.9, 0, -8.2], - "to": [14.9, 4, -8.2], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -4]}, - "faces": { - "north": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem1_ew", - "from": [14.4, 0, -8.7], - "to": [14.4, 4, -7.7], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -4]}, - "faces": { - "east": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ns", - "from": [10.9, 0, -5.2], - "to": [11.9, 4, -5.2], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, -1]}, - "faces": { - "north": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, - "south": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} - } - }, - { - "name": "stem2_ew", - "from": [11.4, 0, -5.7], - "to": [11.4, 4, -4.7], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, -1]}, - "faces": { - "east": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1}, - "west": {"uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed", + "stem": "tiny_flowers:block/tall_tiny_flower_stem" + }, + "elements": [ + { + "name": "flower_upper", + "from": [8, 4, 0], + "to": [16, 4, 8], + "faces": { + "up": { "uv": [8, 0, 16, 8], "texture": "#flowerbed_upper" }, + "down": { "uv": [8, 8, 16, 0], "texture": "#flowerbed_upper" } + } + }, + { + "name": "flower_middle", + "from": [8, 3, 0], + "to": [16, 3, 8], + "faces": { + "up": { "uv": [8, 0, 16, 8], "texture": "#flowerbed_middle" }, + "down": { "uv": [8, 8, 16, 0], "texture": "#flowerbed_middle" } + } + }, + { + "name": "flower_lower", + "from": [8, 2, 0], + "to": [16, 2, 8], + "faces": { + "up": { "uv": [8, 0, 16, 8], "texture": "#flowerbed" }, + "down": { "uv": [8, 8, 16, 0], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [13.9, 0, -8.2], + "to": [14.9, 4, -8.2], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -4] }, + "faces": { + "north": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem1_ew", + "from": [14.4, 0, -8.7], + "to": [14.4, 4, -7.7], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -4] }, + "faces": { + "east": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ns", + "from": [10.9, 0, -5.2], + "to": [11.9, 4, -5.2], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, -1] }, + "faces": { + "north": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 }, + "south": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 } + } + }, + { + "name": "stem2_ew", + "from": [11.4, 0, -5.7], + "to": [11.4, 4, -4.7], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, -1] }, + "faces": { + "east": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 }, + "west": { "uv": [0, 2, 1, 6], "texture": "#stem", "tintindex": 1 } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_1.json index f507ff88..dda7f0d5 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_1.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_1.json @@ -1,92 +1,95 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower_upper", - "from": [0, 5, 0], - "to": [8, 5, 8], - "faces": { - "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed_upper"}, - "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed_upper"} - } - }, - { - "name": "flower_middle", - "from": [0, 4, 0], - "to": [8, 4, 8], - "faces": { - "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed_middle"}, - "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed_middle"} - } - }, - { - "name": "flower_lower", - "from": [0, 3, 0], - "to": [8, 3, 8], - "faces": { - "up": {"uv": [0, 0, 8, 8], "texture": "#flowerbed"}, - "down": {"uv": [0, 8, 8, 0], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [3.75, 0, -2.1], - "to": [4.75, 5, -2.1], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 2, 1, 7], "texture": "#stem"}, - "south": {"uv": [0, 2, 1, 7], "texture": "#stem"} - } - }, - { - "name": "stem1_ew", - "from": [4.25, 0, -2.6], - "to": [4.25, 5, -1.6], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 2, 1, 7], "texture": "#stem"}, - "west": {"uv": [0, 2, 1, 7], "texture": "#stem"} - } - }, - { - "name": "stem2_ns", - "from": [4.4, 0, 2.8], - "to": [5.4, 5, 2.8], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 2, 1, 7], "texture": "#stem"}, - "south": {"uv": [0, 2, 1, 7], "texture": "#stem"} - } - }, - { - "name": "stem2_ew", - "from": [4.9, 0, 2.3], - "to": [4.9, 5, 3.3], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 2, 1, 7], "texture": "#stem"}, - "west": {"uv": [0, 2, 1, 7], "texture": "#stem"} - } - }, - { - "name": "stem3_ns", - "from": [8.65, 0, 0.05], - "to": [9.65, 5, 0.05], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 2, 1, 7], "texture": "#stem"}, - "south": {"uv": [0, 2, 1, 7], "texture": "#stem"} - } - }, - { - "name": "stem3_ew", - "from": [9.15, 0, -0.45], - "to": [9.15, 5, 0.55], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 2, 1, 7], "texture": "#stem"}, - "west": {"uv": [0, 2, 1, 7], "texture": "#stem"} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower_upper", + "from": [0, 5, 0], + "to": [8, 5, 8], + "faces": { + "up": { "uv": [0, 0, 8, 8], "texture": "#flowerbed_upper" }, + "down": { "uv": [0, 8, 8, 0], "texture": "#flowerbed_upper" } + } + }, + { + "name": "flower_middle", + "from": [0, 4, 0], + "to": [8, 4, 8], + "faces": { + "up": { "uv": [0, 0, 8, 8], "texture": "#flowerbed_middle" }, + "down": { "uv": [0, 8, 8, 0], "texture": "#flowerbed_middle" } + } + }, + { + "name": "flower_lower", + "from": [0, 3, 0], + "to": [8, 3, 8], + "faces": { + "up": { "uv": [0, 0, 8, 8], "texture": "#flowerbed" }, + "down": { "uv": [0, 8, 8, 0], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [3.75, 0, -2.1], + "to": [4.75, 5, -2.1], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 2, 1, 7], "texture": "#stem" }, + "south": { "uv": [0, 2, 1, 7], "texture": "#stem" } + } + }, + { + "name": "stem1_ew", + "from": [4.25, 0, -2.6], + "to": [4.25, 5, -1.6], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 2, 1, 7], "texture": "#stem" }, + "west": { "uv": [0, 2, 1, 7], "texture": "#stem" } + } + }, + { + "name": "stem2_ns", + "from": [4.4, 0, 2.8], + "to": [5.4, 5, 2.8], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 2, 1, 7], "texture": "#stem" }, + "south": { "uv": [0, 2, 1, 7], "texture": "#stem" } + } + }, + { + "name": "stem2_ew", + "from": [4.9, 0, 2.3], + "to": [4.9, 5, 3.3], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 2, 1, 7], "texture": "#stem" }, + "west": { "uv": [0, 2, 1, 7], "texture": "#stem" } + } + }, + { + "name": "stem3_ns", + "from": [8.65, 0, 0.05], + "to": [9.65, 5, 0.05], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 2, 1, 7], "texture": "#stem" }, + "south": { "uv": [0, 2, 1, 7], "texture": "#stem" } + } + }, + { + "name": "stem3_ew", + "from": [9.15, 0, -0.45], + "to": [9.15, 5, 0.55], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 2, 1, 7], "texture": "#stem" }, + "west": { "uv": [0, 2, 1, 7], "texture": "#stem" } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_2.json index 7ce16ad5..80703dc1 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_2.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_2.json @@ -1,92 +1,95 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower_upper", - "from": [0, 3, 8], - "to": [8, 3, 16], - "faces": { - "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed_upper"}, - "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed_upper"} - } - }, - { - "name": "flower_middle", - "from": [0, 2, 8], - "to": [8, 2, 16], - "faces": { - "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed_middle"}, - "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed_middle"} - } - }, - { - "name": "flower_lower", - "from": [0, 1, 8], - "to": [8, 1, 16], - "faces": { - "up": {"uv": [0, 8, 8, 16], "texture": "#flowerbed"}, - "down": {"uv": [0, 16, 8, 8], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [11.15, 0, 3.25], - "to": [12.15, 3, 3.25], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -1]}, - "faces": { - "north": {"uv": [0, 2, 1, 5], "texture": "#stem"}, - "south": {"uv": [0, 2, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem1_ew", - "from": [11.65, 0, 2.75], - "to": [11.65, 3, 3.75], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -1]}, - "faces": { - "east": {"uv": [0, 2, 1, 5], "texture": "#stem"}, - "west": {"uv": [0, 2, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem2_ns", - "from": [8.15, 0, 5.25], - "to": [9.15, 3, 5.25], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, 1]}, - "faces": { - "north": {"uv": [0, 2, 1, 5], "texture": "#stem"}, - "south": {"uv": [0, 2, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem2_ew", - "from": [8.65, 0, 4.75], - "to": [8.65, 3, 5.75], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, 1]}, - "faces": { - "east": {"uv": [0, 2, 1, 5], "texture": "#stem"}, - "west": {"uv": [0, 2, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem3_ns", - "from": [10.15, 0, 8.25], - "to": [11.15, 3, 8.25], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 4]}, - "faces": { - "north": {"uv": [0, 2, 1, 5], "texture": "#stem"}, - "south": {"uv": [0, 2, 1, 5], "texture": "#stem"} - } - }, - { - "name": "stem3_ew", - "from": [10.65, 0, 7.75], - "to": [10.65, 3, 8.75], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 4]}, - "faces": { - "east": {"uv": [0, 2, 1, 5], "texture": "#stem"}, - "west": {"uv": [0, 2, 1, 5], "texture": "#stem"} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower_upper", + "from": [0, 3, 8], + "to": [8, 3, 16], + "faces": { + "up": { "uv": [0, 8, 8, 16], "texture": "#flowerbed_upper" }, + "down": { "uv": [0, 16, 8, 8], "texture": "#flowerbed_upper" } + } + }, + { + "name": "flower_middle", + "from": [0, 2, 8], + "to": [8, 2, 16], + "faces": { + "up": { "uv": [0, 8, 8, 16], "texture": "#flowerbed_middle" }, + "down": { "uv": [0, 16, 8, 8], "texture": "#flowerbed_middle" } + } + }, + { + "name": "flower_lower", + "from": [0, 1, 8], + "to": [8, 1, 16], + "faces": { + "up": { "uv": [0, 8, 8, 16], "texture": "#flowerbed" }, + "down": { "uv": [0, 16, 8, 8], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [11.15, 0, 3.25], + "to": [12.15, 3, 3.25], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -1] }, + "faces": { + "north": { "uv": [0, 2, 1, 5], "texture": "#stem" }, + "south": { "uv": [0, 2, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem1_ew", + "from": [11.65, 0, 2.75], + "to": [11.65, 3, 3.75], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -1] }, + "faces": { + "east": { "uv": [0, 2, 1, 5], "texture": "#stem" }, + "west": { "uv": [0, 2, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem2_ns", + "from": [8.15, 0, 5.25], + "to": [9.15, 3, 5.25], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, 1] }, + "faces": { + "north": { "uv": [0, 2, 1, 5], "texture": "#stem" }, + "south": { "uv": [0, 2, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem2_ew", + "from": [8.65, 0, 4.75], + "to": [8.65, 3, 5.75], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, 1] }, + "faces": { + "east": { "uv": [0, 2, 1, 5], "texture": "#stem" }, + "west": { "uv": [0, 2, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem3_ns", + "from": [10.15, 0, 8.25], + "to": [11.15, 3, 8.25], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 4] }, + "faces": { + "north": { "uv": [0, 2, 1, 5], "texture": "#stem" }, + "south": { "uv": [0, 2, 1, 5], "texture": "#stem" } + } + }, + { + "name": "stem3_ew", + "from": [10.65, 0, 7.75], + "to": [10.65, 3, 8.75], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 4] }, + "faces": { + "east": { "uv": [0, 2, 1, 5], "texture": "#stem" }, + "west": { "uv": [0, 2, 1, 5], "texture": "#stem" } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_3.json index b6c50f38..52951846 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_3.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_3.json @@ -1,92 +1,95 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower_upper", - "from": [8, 4, 8], - "to": [16, 4, 16], - "faces": { - "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed_upper"}, - "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed_upper"} - } - }, - { - "name": "flower_middle", - "from": [8, 3, 8], - "to": [16, 3, 16], - "faces": { - "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed_middle"}, - "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed_middle"} - } - }, - { - "name": "flower_lower", - "from": [8, 2, 8], - "to": [16, 2, 16], - "faces": { - "up": {"uv": [8, 8, 16, 16], "texture": "#flowerbed"}, - "down": {"uv": [8, 16, 16, 8], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [12.9, 0, 0], - "to": [13.9, 4, 0], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 2, 1, 6], "texture": "#stem"}, - "south": {"uv": [0, 2, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem1_ew", - "from": [13.4, 0, -0.5], - "to": [13.4, 4, 0.5], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 2, 1, 6], "texture": "#stem"}, - "west": {"uv": [0, 2, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem2_ns", - "from": [17.15, 0, -2.85], - "to": [18.15, 4, -2.85], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "north": {"uv": [0, 2, 1, 6], "texture": "#stem"}, - "south": {"uv": [0, 2, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem2_ew", - "from": [17.65, 0, -3.35], - "to": [17.65, 4, -2.35], - "rotation": {"angle": -45, "axis": "y", "origin": [0, 0, 0]}, - "faces": { - "east": {"uv": [0, 2, 1, 6], "texture": "#stem"}, - "west": {"uv": [0, 2, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem3_ns", - "from": [17.65, 0, 1.9], - "to": [18.65, 4, 1.9], - "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, - "faces": { - "north": {"uv": [0, 2, 1, 6], "texture": "#stem"}, - "south": {"uv": [0, 2, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem3_ew", - "from": [18.15, 0, 1.4], - "to": [18.15, 4, 2.4], - "rotation": {"angle": -45, "axis": "y", "origin": [0.5, 0, 0.5]}, - "faces": { - "east": {"uv": [0, 2, 1, 6], "texture": "#stem"}, - "west": {"uv": [0, 2, 1, 6], "texture": "#stem"} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower_upper", + "from": [8, 4, 8], + "to": [16, 4, 16], + "faces": { + "up": { "uv": [8, 8, 16, 16], "texture": "#flowerbed_upper" }, + "down": { "uv": [8, 16, 16, 8], "texture": "#flowerbed_upper" } + } + }, + { + "name": "flower_middle", + "from": [8, 3, 8], + "to": [16, 3, 16], + "faces": { + "up": { "uv": [8, 8, 16, 16], "texture": "#flowerbed_middle" }, + "down": { "uv": [8, 16, 16, 8], "texture": "#flowerbed_middle" } + } + }, + { + "name": "flower_lower", + "from": [8, 2, 8], + "to": [16, 2, 16], + "faces": { + "up": { "uv": [8, 8, 16, 16], "texture": "#flowerbed" }, + "down": { "uv": [8, 16, 16, 8], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [12.9, 0, 0], + "to": [13.9, 4, 0], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 2, 1, 6], "texture": "#stem" }, + "south": { "uv": [0, 2, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem1_ew", + "from": [13.4, 0, -0.5], + "to": [13.4, 4, 0.5], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 2, 1, 6], "texture": "#stem" }, + "west": { "uv": [0, 2, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem2_ns", + "from": [17.15, 0, -2.85], + "to": [18.15, 4, -2.85], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "north": { "uv": [0, 2, 1, 6], "texture": "#stem" }, + "south": { "uv": [0, 2, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem2_ew", + "from": [17.65, 0, -3.35], + "to": [17.65, 4, -2.35], + "rotation": { "angle": -45, "axis": "y", "origin": [0, 0, 0] }, + "faces": { + "east": { "uv": [0, 2, 1, 6], "texture": "#stem" }, + "west": { "uv": [0, 2, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem3_ns", + "from": [17.65, 0, 1.9], + "to": [18.65, 4, 1.9], + "rotation": { "angle": -45, "axis": "y", "origin": [0.5, 0, 0.5] }, + "faces": { + "north": { "uv": [0, 2, 1, 6], "texture": "#stem" }, + "south": { "uv": [0, 2, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem3_ew", + "from": [18.15, 0, 1.4], + "to": [18.15, 4, 2.4], + "rotation": { "angle": -45, "axis": "y", "origin": [0.5, 0, 0.5] }, + "faces": { + "east": { "uv": [0, 2, 1, 6], "texture": "#stem" }, + "west": { "uv": [0, 2, 1, 6], "texture": "#stem" } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_4.json index 6fa2f6f1..a7d722ef 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_4.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_triple_untinted_4.json @@ -1,72 +1,75 @@ { - "ambientocclusion": false, - "elements": [ - { - "name": "flower_upper", - "from": [8, 4, 0], - "to": [16, 4, 8], - "faces": { - "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed_upper"}, - "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed_upper"} - } - }, - { - "name": "flower_middle", - "from": [8, 3, 0], - "to": [16, 3, 8], - "faces": { - "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed_middle"}, - "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed_middle"} - } - }, - { - "name": "flower_lower", - "from": [8, 2, 0], - "to": [16, 2, 8], - "faces": { - "up": {"uv": [8, 0, 16, 8], "texture": "#flowerbed"}, - "down": {"uv": [8, 8, 16, 0], "texture": "#flowerbed"} - } - }, - { - "name": "stem1_ns", - "from": [13.9, 0, -8.2], - "to": [14.9, 4, -8.2], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -4]}, - "faces": { - "north": {"uv": [0, 2, 1, 6], "texture": "#stem"}, - "south": {"uv": [0, 2, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem1_ew", - "from": [14.4, 0, -8.7], - "to": [14.4, 4, -7.7], - "rotation": {"angle": -45, "axis": "y", "origin": [1, 0, -4]}, - "faces": { - "east": {"uv": [0, 2, 1, 6], "texture": "#stem"}, - "west": {"uv": [0, 2, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem2_ns", - "from": [10.9, 0, -5.2], - "to": [11.9, 4, -5.2], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, -1]}, - "faces": { - "north": {"uv": [0, 2, 1, 6], "texture": "#stem"}, - "south": {"uv": [0, 2, 1, 6], "texture": "#stem"} - } - }, - { - "name": "stem2_ew", - "from": [11.4, 0, -5.7], - "to": [11.4, 4, -4.7], - "rotation": {"angle": -45, "axis": "y", "origin": [-2, 0, -1]}, - "faces": { - "east": {"uv": [0, 2, 1, 6], "texture": "#stem"}, - "west": {"uv": [0, 2, 1, 6], "texture": "#stem"} - } - } - ] + "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, + "elements": [ + { + "name": "flower_upper", + "from": [8, 4, 0], + "to": [16, 4, 8], + "faces": { + "up": { "uv": [8, 0, 16, 8], "texture": "#flowerbed_upper" }, + "down": { "uv": [8, 8, 16, 0], "texture": "#flowerbed_upper" } + } + }, + { + "name": "flower_middle", + "from": [8, 3, 0], + "to": [16, 3, 8], + "faces": { + "up": { "uv": [8, 0, 16, 8], "texture": "#flowerbed_middle" }, + "down": { "uv": [8, 8, 16, 0], "texture": "#flowerbed_middle" } + } + }, + { + "name": "flower_lower", + "from": [8, 2, 0], + "to": [16, 2, 8], + "faces": { + "up": { "uv": [8, 0, 16, 8], "texture": "#flowerbed" }, + "down": { "uv": [8, 8, 16, 0], "texture": "#flowerbed" } + } + }, + { + "name": "stem1_ns", + "from": [13.9, 0, -8.2], + "to": [14.9, 4, -8.2], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -4] }, + "faces": { + "north": { "uv": [0, 2, 1, 6], "texture": "#stem" }, + "south": { "uv": [0, 2, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem1_ew", + "from": [14.4, 0, -8.7], + "to": [14.4, 4, -7.7], + "rotation": { "angle": -45, "axis": "y", "origin": [1, 0, -4] }, + "faces": { + "east": { "uv": [0, 2, 1, 6], "texture": "#stem" }, + "west": { "uv": [0, 2, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem2_ns", + "from": [10.9, 0, -5.2], + "to": [11.9, 4, -5.2], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, -1] }, + "faces": { + "north": { "uv": [0, 2, 1, 6], "texture": "#stem" }, + "south": { "uv": [0, 2, 1, 6], "texture": "#stem" } + } + }, + { + "name": "stem2_ew", + "from": [11.4, 0, -5.7], + "to": [11.4, 4, -4.7], + "rotation": { "angle": -45, "axis": "y", "origin": [-2, 0, -1] }, + "faces": { + "east": { "uv": [0, 2, 1, 6], "texture": "#stem" }, + "west": { "uv": [0, 2, 1, 6], "texture": "#stem" } + } + } + ] } diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_1.json b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_1.json index f6a6ce68..e4f8de24 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_1.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_1.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_2.json b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_2.json index 169c44fd..f003279a 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_2.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_2.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_3.json b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_3.json index 9c8aa72d..1955a3cf 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_3.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_3.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower", diff --git a/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_4.json b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_4.json index a34101fa..1492137b 100644 --- a/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_4.json +++ b/src/client/resources/assets/tiny_flowers/models/block/garden_untinted_4.json @@ -1,5 +1,8 @@ { "ambientocclusion": false, + "textures": { + "particle": "#flowerbed" + }, "elements": [ { "name": "flower", diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_1.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_1.json index af3910bb..e3e8e898 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_1.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_1.json @@ -1,7 +1,6 @@ { "parent": "tiny_flowers:block/garden_leaf_litter_1", "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" + "flowerbed": "minecraft:block/leaf_litter" } } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_2.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_2.json index 34084b4f..c8a59afe 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_2.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_2.json @@ -1,7 +1,6 @@ { "parent": "tiny_flowers:block/garden_leaf_litter_2", "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" + "flowerbed": "minecraft:block/leaf_litter" } } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_3.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_3.json index 5587e293..4d629909 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_3.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_3.json @@ -1,7 +1,6 @@ { "parent": "tiny_flowers:block/garden_leaf_litter_3", "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" + "flowerbed": "minecraft:block/leaf_litter" } } \ No newline at end of file diff --git a/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_4.json b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_4.json index 1feef887..47bbe2f3 100644 --- a/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_4.json +++ b/src/main/generated/assets/minecraft/models/block/tiny_flowers/leaf_litter_4.json @@ -1,7 +1,6 @@ { "parent": "tiny_flowers:block/garden_leaf_litter_4", "textures": { - "flowerbed": "minecraft:block/leaf_litter", - "particle": "minecraft:block/leaf_litter" + "flowerbed": "minecraft:block/leaf_litter" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_1.json index ea6b6ca0..0a262662 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_1.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_1", "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_allium" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_2.json index 4b7d74d9..be537a6b 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_2.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_2", "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_allium" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_3.json index 0b52f4db..7188ec9d 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_3.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_3", "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_allium" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_4.json index 49096e3b..52a6d273 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_allium_4.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_4", "textures": { - "flowerbed": "tiny_flowers:block/tiny_allium", - "particle": "tiny_flowers:block/tiny_allium", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_allium" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_1.json index 3f30e4db..1f9a1309 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_1.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_1", "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_azure_bluet" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_2.json index a426b3df..5e77621b 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_2.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_2", "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_azure_bluet" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_3.json index 0483491a..1e4331bb 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_3.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_3", "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_azure_bluet" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_4.json index 5f74df90..7a607fe6 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_azure_bluet_4.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_4", "textures": { - "flowerbed": "tiny_flowers:block/tiny_azure_bluet", - "particle": "tiny_flowers:block/tiny_azure_bluet", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_azure_bluet" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_1.json index 66c79970..ca740ce1 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_1.json @@ -2,8 +2,6 @@ "parent": "tiny_flowers:block/garden_double_1", "textures": { "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_2.json index aea63934..734e8055 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_2.json @@ -2,8 +2,6 @@ "parent": "tiny_flowers:block/garden_double_2", "textures": { "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_3.json index e08fe8aa..c319b966 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_3.json @@ -2,8 +2,6 @@ "parent": "tiny_flowers:block/garden_double_3", "textures": { "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_4.json index 7e4dfb5d..a5d7a3f9 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_blue_orchid_4.json @@ -2,8 +2,6 @@ "parent": "tiny_flowers:block/garden_double_4", "textures": { "flowerbed": "tiny_flowers:block/tiny_blue_orchid", - "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper", - "particle": "tiny_flowers:block/tiny_blue_orchid", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed_upper": "tiny_flowers:block/tiny_blue_orchid_upper" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_1.json index 10cd18ab..0c077aec 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_1.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_low_untinted_1", "textures": { "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", "stem": "tiny_flowers:block/tiny_cactus_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_2.json index 6e614476..54a28449 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_2.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_low_untinted_2", "textures": { "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", "stem": "tiny_flowers:block/tiny_cactus_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_3.json index 6fb71aef..e39e70c0 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_3.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_low_untinted_3", "textures": { "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", "stem": "tiny_flowers:block/tiny_cactus_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_4.json index b48d97f9..4489f25c 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cactus_flower_4.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_low_untinted_4", "textures": { "flowerbed": "tiny_flowers:block/tiny_cactus_flower", - "particle": "tiny_flowers:block/tiny_cactus_flower", "stem": "tiny_flowers:block/tiny_cactus_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_1.json index 15591232..90c23b87 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_1.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_untinted_1", "textures": { "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", "stem": "tiny_flowers:block/tiny_eyeblossom_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_2.json index acf25406..9540b9ac 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_2.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_untinted_2", "textures": { "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", "stem": "tiny_flowers:block/tiny_eyeblossom_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_3.json index 54448fa0..c74247d2 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_3.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_untinted_3", "textures": { "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", "stem": "tiny_flowers:block/tiny_eyeblossom_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_4.json index 4d111137..c46b2f07 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_closed_eyeblossom_4.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_untinted_4", "textures": { "flowerbed": "tiny_flowers:block/tiny_closed_eyeblossom", - "particle": "tiny_flowers:block/tiny_closed_eyeblossom", "stem": "tiny_flowers:block/tiny_eyeblossom_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_1.json index 34c30ff6..6c6790c5 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_1.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_1", "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_cornflower" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_2.json index 79247819..3e76c5fb 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_2.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_2", "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_cornflower" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_3.json index 09112a1c..720258f7 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_3.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_3", "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_cornflower" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_4.json index eb3321db..2fceb925 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_cornflower_4.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_4", "textures": { - "flowerbed": "tiny_flowers:block/tiny_cornflower", - "particle": "tiny_flowers:block/tiny_cornflower", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_cornflower" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_1.json index f359bc87..da40ce8f 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_1.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_1", "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_dandelion" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_2.json index 305efc43..6cb89951 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_2.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_2", "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_dandelion" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_3.json index dea5daff..7bb7ffaa 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_3.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_3", "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_dandelion" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_4.json index 37d8211a..7967ac12 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_dandelion_4.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_4", "textures": { - "flowerbed": "tiny_flowers:block/tiny_dandelion", - "particle": "tiny_flowers:block/tiny_dandelion", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_dandelion" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_1.json index 82dec806..b901dc9b 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_1.json @@ -2,8 +2,6 @@ "parent": "tiny_flowers:block/garden_double_1", "textures": { "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_2.json index 90a8002f..1845d3a6 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_2.json @@ -2,8 +2,6 @@ "parent": "tiny_flowers:block/garden_double_2", "textures": { "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_3.json index afdb5fea..d46e8718 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_3.json @@ -2,8 +2,6 @@ "parent": "tiny_flowers:block/garden_double_3", "textures": { "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_4.json index 5637689d..1be7c6fd 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_lily_of_the_valley_4.json @@ -2,8 +2,6 @@ "parent": "tiny_flowers:block/garden_double_4", "textures": { "flowerbed": "tiny_flowers:block/tiny_lily_of_the_valley", - "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper", - "particle": "tiny_flowers:block/tiny_lily_of_the_valley", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed_upper": "tiny_flowers:block/tiny_lily_of_the_valley_upper" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_1.json index 37f701d2..8298cfad 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_1.json @@ -3,7 +3,6 @@ "textures": { "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", "stem": "tiny_flowers:block/tiny_eyeblossom_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_2.json index 9eac4a3a..78a71b76 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_2.json @@ -3,7 +3,6 @@ "textures": { "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", "stem": "tiny_flowers:block/tiny_eyeblossom_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_3.json index 6cb4e327..6e035066 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_3.json @@ -3,7 +3,6 @@ "textures": { "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", "stem": "tiny_flowers:block/tiny_eyeblossom_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_4.json index 67c7d714..49a8e259 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_open_eyeblossom_4.json @@ -3,7 +3,6 @@ "textures": { "flowerbed": "tiny_flowers:block/tiny_open_eyeblossom", "flowerbed_upper": "tiny_flowers:block/tiny_open_eyeblossom_upper", - "particle": "tiny_flowers:block/tiny_open_eyeblossom", "stem": "tiny_flowers:block/tiny_eyeblossom_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_1.json index 6f300104..173dcfe7 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_1.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_1", "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_orange_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_2.json index d1c81ecf..c2f9e24e 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_2.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_2", "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_orange_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_3.json index 3d83be38..6526965a 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_3.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_3", "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_orange_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_4.json index f5babf53..65938913 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_orange_tulip_4.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_4", "textures": { - "flowerbed": "tiny_flowers:block/tiny_orange_tulip", - "particle": "tiny_flowers:block/tiny_orange_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_orange_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_1.json index 279bc943..5d187a78 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_1.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_1", "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_2.json index d4007512..524a8b40 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_2.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_2", "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_3.json index dbe495a0..80a97e30 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_3.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_3", "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_4.json index e6a8392c..11a78daa 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_oxeye_daisy_4.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_4", "textures": { - "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy", - "particle": "tiny_flowers:block/tiny_oxeye_daisy", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_oxeye_daisy" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_1.json index c3c90269..4270d103 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_1.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_1", "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_pink_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_2.json index 1478f55b..6db104e4 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_2.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_2", "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_pink_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_3.json index 3039a2c1..7cd84189 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_3.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_3", "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_pink_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_4.json index 2bd4e8ec..10623e71 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_pink_tulip_4.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_4", "textures": { - "flowerbed": "tiny_flowers:block/tiny_pink_tulip", - "particle": "tiny_flowers:block/tiny_pink_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_pink_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_1.json index 990703a4..135db333 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_1.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_tall_1", "textures": { "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", "stem": "tiny_flowers:block/tall_tiny_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_2.json index af62e9b6..08b871ea 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_2.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_tall_2", "textures": { "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", "stem": "tiny_flowers:block/tall_tiny_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_3.json index 6cf3d356..f2e460fe 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_3.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_tall_3", "textures": { "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", "stem": "tiny_flowers:block/tall_tiny_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_4.json index c50695bf..0803b170 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_poppy_4.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_tall_4", "textures": { "flowerbed": "tiny_flowers:block/tiny_poppy", - "particle": "tiny_flowers:block/tiny_poppy", "stem": "tiny_flowers:block/tall_tiny_flower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_1.json index a9e8961d..378695a6 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_1.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_1", "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_red_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_2.json index ac809398..d2ea1723 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_2.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_2", "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_red_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_3.json index 8ae8d706..6f17dbfa 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_3.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_3", "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_red_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_4.json index 5d320e4c..474586e8 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_red_tulip_4.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_4", "textures": { - "flowerbed": "tiny_flowers:block/tiny_red_tulip", - "particle": "tiny_flowers:block/tiny_red_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_red_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_1.json index c5b8d0cd..16343245 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_1.json @@ -4,7 +4,6 @@ "flowerbed": "tiny_flowers:block/tiny_torchflower", "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", "stem": "tiny_flowers:block/tiny_torchflower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_2.json index ef8272ad..289184ad 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_2.json @@ -4,7 +4,6 @@ "flowerbed": "tiny_flowers:block/tiny_torchflower", "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", "stem": "tiny_flowers:block/tiny_torchflower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_3.json index 86193e9a..492124af 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_3.json @@ -4,7 +4,6 @@ "flowerbed": "tiny_flowers:block/tiny_torchflower", "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", "stem": "tiny_flowers:block/tiny_torchflower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_4.json index 4bb8a1c2..b11af91c 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_torchflower_4.json @@ -4,7 +4,6 @@ "flowerbed": "tiny_flowers:block/tiny_torchflower", "flowerbed_middle": "tiny_flowers:block/tiny_torchflower_middle", "flowerbed_upper": "tiny_flowers:block/tiny_torchflower_upper", - "particle": "tiny_flowers:block/tiny_torchflower", "stem": "tiny_flowers:block/tiny_torchflower_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_1.json index 7976a815..87babbc2 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_1.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_1", "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_white_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_2.json index 83866a5a..b1c0f247 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_2.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_2", "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_white_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_3.json index 9f066cbb..0554540d 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_3.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_3", "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_white_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_4.json index 2f01184a..22c47686 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_white_tulip_4.json @@ -1,8 +1,6 @@ { "parent": "tiny_flowers:block/garden_4", "textures": { - "flowerbed": "tiny_flowers:block/tiny_white_tulip", - "particle": "tiny_flowers:block/tiny_white_tulip", - "stem": "minecraft:block/pink_petals_stem" + "flowerbed": "tiny_flowers:block/tiny_white_tulip" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_1.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_1.json index d3659fc1..037f5081 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_1.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_1.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_untinted_1", "textures": { "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", "stem": "tiny_flowers:block/tiny_wither_rose_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_2.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_2.json index d8ace383..e27a3237 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_2.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_2.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_untinted_2", "textures": { "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", "stem": "tiny_flowers:block/tiny_wither_rose_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_3.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_3.json index e2c6ad1b..ec824f11 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_3.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_3.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_untinted_3", "textures": { "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", "stem": "tiny_flowers:block/tiny_wither_rose_stem" } } \ No newline at end of file diff --git a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_4.json b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_4.json index 2e50fa73..aa170ead 100644 --- a/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_4.json +++ b/src/main/generated/assets/tiny_flowers/models/block/tiny_flowers/tiny_wither_rose_4.json @@ -2,7 +2,6 @@ "parent": "tiny_flowers:block/garden_untinted_4", "textures": { "flowerbed": "tiny_flowers:block/tiny_wither_rose", - "particle": "tiny_flowers:block/tiny_wither_rose", "stem": "tiny_flowers:block/tiny_wither_rose_stem" } } \ No newline at end of file From 520decd30f82e585d052ee06ebe99279f4746bc4 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 28 Dec 2025 14:46:46 +1300 Subject: [PATCH 055/113] Far too much work on making the pack generator This should have been many more commits, but I missed many opportunities to make them. --- misc/mod-generator/.editorconfig | 12 + misc/mod-generator/package-lock.json | 38 +- misc/mod-generator/src/App.svelte | 41 +- misc/mod-generator/src/app.css | 75 +- .../src/assets/dirt_pack_icon.png | Bin 0 -> 182974 bytes misc/mod-generator/src/assets/missing32.png | Bin 0 -> 507 bytes misc/mod-generator/src/assets/svelte.svg | 1 - .../src/assets/tiny_dirt_block_texture.png | Bin 0 -> 489 bytes .../src/assets/tiny_dirt_item_texture.png | Bin 0 -> 447 bytes misc/mod-generator/src/lib/Counter.svelte | 10 - .../src/lib/components/FormStateForm.svelte | 911 ++++++++++++++++++ .../src/lib/components/ImagePreview.svelte | 38 + misc/mod-generator/src/lib/conversion.ts | 59 +- misc/mod-generator/src/lib/types/state.ts | 16 +- misc/mod-generator/src/lib/util.ts | 11 + misc/mod-generator/src/main.ts | 12 +- 16 files changed, 1062 insertions(+), 162 deletions(-) create mode 100644 misc/mod-generator/.editorconfig create mode 100644 misc/mod-generator/src/assets/dirt_pack_icon.png create mode 100644 misc/mod-generator/src/assets/missing32.png delete mode 100644 misc/mod-generator/src/assets/svelte.svg create mode 100644 misc/mod-generator/src/assets/tiny_dirt_block_texture.png create mode 100644 misc/mod-generator/src/assets/tiny_dirt_item_texture.png delete mode 100644 misc/mod-generator/src/lib/Counter.svelte create mode 100644 misc/mod-generator/src/lib/components/FormStateForm.svelte create mode 100644 misc/mod-generator/src/lib/components/ImagePreview.svelte create mode 100644 misc/mod-generator/src/lib/util.ts diff --git a/misc/mod-generator/.editorconfig b/misc/mod-generator/.editorconfig new file mode 100644 index 00000000..63206f90 --- /dev/null +++ b/misc/mod-generator/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = false + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/misc/mod-generator/package-lock.json b/misc/mod-generator/package-lock.json index a5fbc86e..f445a5e7 100644 --- a/misc/mod-generator/package-lock.json +++ b/misc/mod-generator/package-lock.json @@ -1120,25 +1120,6 @@ "dev": true, "license": "MIT" }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -1188,6 +1169,25 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/readdirp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", diff --git a/misc/mod-generator/src/App.svelte b/misc/mod-generator/src/App.svelte index f75b68aa..0b851ad0 100644 --- a/misc/mod-generator/src/App.svelte +++ b/misc/mod-generator/src/App.svelte @@ -1,47 +1,10 @@
    - -

    Vite + Svelte

    - -
    - -
    - -

    - Check out SvelteKit, the official Svelte app framework powered by Vite! -

    - -

    - Click on the Vite and Svelte logos to learn more -

    +
    diff --git a/misc/mod-generator/src/app.css b/misc/mod-generator/src/app.css index 61ba3678..1a56295b 100644 --- a/misc/mod-generator/src/app.css +++ b/misc/mod-generator/src/app.css @@ -3,9 +3,7 @@ line-height: 1.5; font-weight: 400; - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; + color-scheme: light; font-synthesis: none; text-rendering: optimizeLegibility; @@ -13,67 +11,12 @@ -moz-osx-font-smoothing: grayscale; } -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -.card { - padding: 2em; -} - -#app { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } +.visually-hidden { + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + width: 1px; } diff --git a/misc/mod-generator/src/assets/dirt_pack_icon.png b/misc/mod-generator/src/assets/dirt_pack_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7aeab4889c83bcd740ca82a53c6c6ebe38e88567 GIT binary patch literal 182974 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
    + +

    Vite + Svelte

    + +
    + +
    + +

    + Check out SvelteKit, the official Svelte app framework powered by Vite! +

    + +

    + Click on the Vite and Svelte logos to learn more +

    +
  • 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 + + diff --git a/misc/mod-generator/src/lib/components/ImagePreview.svelte b/misc/mod-generator/src/lib/components/ImagePreview.svelte new file mode 100644 index 00000000..0e71a12a --- /dev/null +++ b/misc/mod-generator/src/lib/components/ImagePreview.svelte @@ -0,0 +1,38 @@ + + + + + diff --git a/misc/mod-generator/src/lib/conversion.ts b/misc/mod-generator/src/lib/conversion.ts index c763c226..c8a80024 100644 --- a/misc/mod-generator/src/lib/conversion.ts +++ b/misc/mod-generator/src/lib/conversion.ts @@ -3,7 +3,7 @@ import type { BlockModelGeneratedJson, ItemsModelDefinitionJson, } from "./types/files"; -import type { CombinedFlowerData, FormState } from "./types/state"; +import type { CombinedFlowerData, FormState, TextureType } from "./types/state"; function trimFileName(name: string): string { return name.replace(/\.[^\.]+$/, ""); @@ -94,7 +94,7 @@ export function convertFormToFiles(state: FormState): AllFiles { model4: `${modId}:block/tiny_flowers/${flower.id}_4`, }; - for (const [language, name] of Object.entries(flower.name)) { + for (const { language, name } of flower.name) { if (!value.assets.lang[language]) { value.assets.lang[language] = {}; } @@ -103,16 +103,17 @@ export function convertFormToFiles(state: FormState): AllFiles { } const textureMap: Record = {}; - for (const [key, file] of Object.entries(flower.blockTextures)) { - if (!file) { - continue; - } + for (const { slot, texture } of flower.blockTextures) { + if (texture.type === "reference") { + textureMap[slot] = texture.reference; + } else if (texture.type === "file") { + if (!texture.file) { + continue; + } - if (typeof file === "string") { - textureMap[key] = file; - } else { - value.assets.textures.block[trimFileName(file.name)] = file; - textureMap[key] = `${modId}:block/${trimFileName(file.name)}`; + value.assets.textures.block[trimFileName(texture.file.name)] = + texture.file; + textureMap[slot] = `${modId}:block/${trimFileName(texture.file.name)}`; } } @@ -193,8 +194,16 @@ export function convertFilesToForm(files: AllFiles): FormState { ); } - const blockTextures: CombinedFlowerData["blockTextures"] = {}; - for (const [textureKey, path] of Object.entries(firstModel.textures)) { + const blockTextures: CombinedFlowerData["blockTextures"] = []; + function setTextureForSlot(slot: string, texture: TextureType) { + const existingItem = blockTextures.find((entry) => entry.slot === slot); + if (!existingItem) { + blockTextures.push({ slot, texture }); + } else { + existingItem.texture = texture; + } + } + for (const [slot, path] of Object.entries(firstModel.textures)) { if (path.startsWith(`${data.id}:block/`)) { const name = path.split(":block/")[1]; const file = files.assets.textures.block[name]; @@ -202,16 +211,28 @@ export function convertFilesToForm(files: AllFiles): FormState { console.warn( `Unable to find texture referenced in ${data.id}_1: ${path}. Falling back to string value.` ); - blockTextures[textureKey] = path; + setTextureForSlot(slot, { type: "reference", reference: path }); } else { - blockTextures[textureKey] = file; + setTextureForSlot(slot, { type: "file", file }); } } else { - blockTextures[textureKey] = path; + setTextureForSlot(slot, { type: "reference", reference: path }); } } - const nameMap: CombinedFlowerData["name"] = { en_us: "" }; + const nameList: CombinedFlowerData["name"] = [ + { language: "en_us", name: "" }, + ]; + function setItemNameForLanguage(language: string, name: string) { + const existingItem = nameList.find( + (entry) => entry.language === language + ); + if (!existingItem) { + nameList.push({ language, name }); + } else { + existingItem.name = name; + } + } for (const [languageKey, values] of Object.entries(files.assets.lang)) { if (!values) { continue; @@ -219,13 +240,13 @@ export function convertFilesToForm(files: AllFiles): FormState { const value = values[data.id]; if (value) { - nameMap[languageKey] = value; + setItemNameForLanguage(languageKey, value); } } const item: CombinedFlowerData = { id: data.id, - name: nameMap, + name: nameList, originalId: data.original_id, isSegmented: data.is_segmented ?? false, canSurviveOn: data.can_survive_on ?? [ diff --git a/misc/mod-generator/src/lib/types/state.ts b/misc/mod-generator/src/lib/types/state.ts index 199e968e..a86748a7 100644 --- a/misc/mod-generator/src/lib/types/state.ts +++ b/misc/mod-generator/src/lib/types/state.ts @@ -14,9 +14,21 @@ export interface ModMetadata { icon: File | undefined; } +export interface TextureReference { + type: "reference"; + reference: string; +} + +export interface TextureFile { + type: "file"; + file: File | undefined; +} + +export type TextureType = TextureReference | TextureFile; + export interface CombinedFlowerData { id: string; - name: Record; + name: { language: string; name: string }[]; originalId: string; isSegmented: boolean; canSurviveOn: string[]; @@ -24,5 +36,5 @@ export interface CombinedFlowerData { itemTexture: File | undefined; tintSource: "grass" | "dry_foliage"; modelParentBase: string; - blockTextures: Record; + blockTextures: { slot: string; texture: TextureType }[]; } diff --git a/misc/mod-generator/src/lib/util.ts b/misc/mod-generator/src/lib/util.ts new file mode 100644 index 00000000..d8012474 --- /dev/null +++ b/misc/mod-generator/src/lib/util.ts @@ -0,0 +1,11 @@ +export function blockTexturePathForSlot( + modId: string, + blockId: string, + slot: string +) { + const slotSuffix = slot.startsWith("flowerbed") + ? slot.replace(/^flowerbed/, "") + : `_${slot}`; + + return `${modId}:block/${blockId}${slotSuffix}`; +} diff --git a/misc/mod-generator/src/main.ts b/misc/mod-generator/src/main.ts index 664a057a..d47b9308 100644 --- a/misc/mod-generator/src/main.ts +++ b/misc/mod-generator/src/main.ts @@ -1,9 +1,9 @@ -import { mount } from 'svelte' -import './app.css' -import App from './App.svelte' +import { mount } from "svelte"; +import "./app.css"; +import App from "./App.svelte"; const app = mount(App, { - target: document.getElementById('app')!, -}) + target: document.getElementById("app")!, +}); -export default app +export default app; From 48fdf4bb6f39126ec7b2729ebe591ee8c8002bec Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 28 Dec 2025 17:34:53 +1300 Subject: [PATCH 056/113] Start styling page --- blockbench/icon128.png | Bin 0 -> 24867 bytes misc/mod-generator/index.html | 6 +- misc/mod-generator/public/icon128.png | Bin 0 -> 24867 bytes misc/mod-generator/public/vite.svg | 1 - misc/mod-generator/src/app.css | 103 ++ .../src/lib/components/FormStateForm.svelte | 973 ++++++++++-------- .../src/lib/components/icons/Add.svelte | 15 + .../src/lib/components/icons/Delete.svelte | 17 + misc/mod-generator/src/lib/util.ts | 11 +- 9 files changed, 709 insertions(+), 417 deletions(-) create mode 100644 blockbench/icon128.png create mode 100644 misc/mod-generator/public/icon128.png delete mode 100644 misc/mod-generator/public/vite.svg create mode 100644 misc/mod-generator/src/lib/components/icons/Add.svelte create mode 100644 misc/mod-generator/src/lib/components/icons/Delete.svelte diff --git a/blockbench/icon128.png b/blockbench/icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..44bf34f5a046f83fa040c69ac0b76065fe788e84 GIT binary patch literal 24867 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%0DnG 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 + - + - tiny-flowers-mod-generator + Tiny Flowers Mod Generator
    diff --git a/misc/mod-generator/public/icon128.png b/misc/mod-generator/public/icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..44bf34f5a046f83fa040c69ac0b76065fe788e84 GIT binary patch literal 24867 zcmZ6ybyOV96E2KPa9`XZ!56pS?ry=tLJ02e&cXr#g1aOT+}+&??hxGFbuaJl-tV8U z&*|yvo}QkbGhOvmJ<|hLQ<25^K=J_w1_nc3PDNvEQuZZt;R7W{|7Z@1K-v2V}phL0wdn3SATF+I};hU?+S7!?t zwXat8u52pOT2wr2KsEte`(=^$J`EOn^55j;nP5=fD~K>8u!u0Q?~=lMCjEc%f3x`r z3;(}%_;(oy3kQS!UK+e-s|bYuwOhZ-|D}RN7?^|iPXAx||GO#7`>7wuFbMBGIXJmE zU~~WPsQ=v&G57zD^z&W*FTuT!3-`aC8Up<9(*L^($iea7StGS2KwMV$`-LXc@>1ej zp2lmhUTuD|Zi`_5QtNZSiRNpEzYep)Xg_d}fT`*dauQUE=mV+5=ql6f@|`=0DrQ3N zGiQs{}%}) zXchkVXL;`0BCf|aC8_#~4*f(Zd4m~fGlX(Vs&b+{z|YcyLj7~PtH*V}*V#ug`i z>p-{!iN5qS8WDzorD)WhLY&>RQSU9Mup|2b)sgsJL$WMAr&J~wIL?;TGHtk_jsY<6 zQ>q>D>(nxkdH`BpcHNv90tg1QR9%w;uzAWD%*CWJGNVH&|C$u&SK2wD7pZnbnEGWE zEZ?&WjYAdJJCNlp~T^#$=92sa zDC+%khwTcCk0y}#@2)I5cKD_3+%zyH&gei~YgKJbhF3{c;a9rIe1&hQ_W=l=ELK&l z7KX2~Dg89ZxMsN(idnumF~H)NyAmNT=J^h$D?n0f7A^!gbkIy1C7L?2dr=8e-tyDo zkUXD;GGw$b7eeinMzuhbcvjXwD28q(_PfKIM~&1^DN7C_~{s$t|}T|0=fCi{5$Ty3kVNZ?^UeyOdwe zR_F{iN?x6>J8SaV#N~mK$}!3t_J3q)vAIgo;@- z6lZry?=S=nkwdpZrv@`5(FIc_asE;LgE+$-1V+M}Wv&uD_^2WMqJqMUQlphlJjaaz zt0(!*?i%7`b`LnkvgXbw3_$QLPJ*GC=jTk(983Vf0VR?NNR|+e$tJ#;qPy|H;T^iB zkRXlJV7l=PSRiUI4L&QJGOb8)O3GCvpct>UAmx3Ee?IQpM_6U1dUMa#d@d?4tJilpcQKg39({G)wUirEat&i!4YR^MILTllA#u4L2Hk zPKgUW5NbDGe{hzPMo+3TQq)@(L(OetHwq5Zm8K9-M&x>rT@{7u@ma#^=nj^8sIZ^P zUK0fTE-Ar6s7m$lk&QMSy}FL{3lmMIl{uV7B%q)y`;Gg`(4J+gs~~65^rA~I+p1-S z@~IBr9lYn? zE$NrPZ#Vc=eHx_1!kOms>Pk8V#>RHT2W8fb{uawwp(#vKg8+Sxluhs(ny>68W4`B_ zlhEnmfmT`wM|kAPj%4$lk(UKPbk-3XW;Golm<%#g=Quc7^1{S(-SfS@0oC1|kBrdt z>xs`1-h@^wV#yXS6X!3C9Ujl8FLw@aNUiRteaLClHmseOq@DdCSfBeGpnDEgRU8{q z%zh{@PY$mPZ-|TsqMUoH5$t<8Z!=JENlBs6e$)Q?^TRKbH|>h1E$8*CJwEkhdKj-{ zr{~j+ecg>Go3Jr5-k6uSh=80KlX^{{B3h!|ot=r|f%PWsYdT7I zi4z5_3Vk}z%z?Omg9gc_yH74lXIJAGN8}aF1Q*V;n^L4PUdax-)ceW|ovGocO-$DB zzdH_mk~Z~LjPseR0rfRuqa2HuiU=VZ_JD_Y@OPUO?oA*!Rov zG}H6TRuMX|OzF3|c-ma3FRbHnk%r9u{T$eSbvhX{ujid55S0%vBh@s{otpOq$M7== zMY=+{Pn{-v;NN!)DXs9(Z~fVkTO@SyFlK7R7zhHR-vUAwIycAL4wjFbkB*2g(-gWnvgo0{YX-T#CSKdbf0z8cwTq=knAE2&*8vr<%4+%d9h-XvA0yQd z*~8?fdg_KUz+9&6tgW@*xC8c82~rW0NP2q3AQW4)oQ|b z-@KG$pJ8%bLfzGKS(ANt)ny{PT{_uf$7{loBePvv9pCVI%f@rUC7Z`5+PHGCXO$*T z!L|ZdQ@X~9Ccz1>P28J7Ub`6|)Q7Bk3g1!B6pbT1mqheQv()-FUN3@SIc-+yhNS)$ zM-hRNW(uLL5^U`IPYUzOiN2k;kM8bQ;+9JhDGh-+5V1|87K~)c8P&#B&6OaUy{b&$ zwU#ey=|DZ%Czou&!p7F%1Jm`bv-6ijmJ0GdcX|;vsL$teP8Df%RI%+i4jO6l)E~g* z6D>UYF)G+eV12%WpO}AN&%m&dqVS*cQxQ)QYA;iMOfBAmZb3!|X3t~P1H%a`r#}5v z9V267(%*#ke{}Bg%Z*o;a)*i%WkBO6f~0G^jKqXkS&4RrKn$7=X}id^Kp;)FHI6D! zsx8Gf6I*y4jWH^opE}>1W4;?y_Vp{&@cK}AQa`i$2$q+Zx9BYvm_US^Zx^zIFt69x zj&U&xJqy^qb?|*(KcuydVmM33Zq57IK3=<}#)HfOXZ42AY2Ay%NniIn_5a!PvB{38 zoY&@sixJ)SSju%LWMWJcL|+0F?ZS%B7TTI~#w=c8p(oZSe-zR>|IypAHP^||%TMoP zOw-O%|BH7cNjT#pk-BDbesgJzYQyfs@E=kOy8Z?kp$9IillTHS~rV!f>eszhS z((~b_k#;ouM@&@xC}meTg~$`yCn85i1^mNXzJy49U>iMfZ$Xcce6N4Af0}P>z8uJCx?g|(MoAw& z}|f13*iC zm`w#YA(aG>mskW>6Ip|27(>*TezK=P{|iGkM) zbW(3iBaRe@bg_&!B*93l|H}mV`L&~7)phGDRz!<>WozPJago{AqY@Gk>FcF3PD7_62!gxz*&YA#xiW@d!PIpWNYP zV$^J0aeDYe4)tsYab2tev8$OHY)tSp-Wo`-@g}l3T(<52v%88wSo+W#2&~}1W^fqQ zQLkY1s4ZSAqs(2WXIT3JD;J-rtR-pR-7^iWyP?Qn5MM>rRVIag#~dQMIH9_sh9;M3 zxrK{MqHg=%?aMXv(M07?!`19MKXtx(psKl*JIl22*oXg!hf% zWm)>$XRF9UdU$V;;UT~#i|A8;k`pcgwy@i2Mt$%pRo_rSoXChImS|gf-ohz)Td|X+IX&A~CM1+ODF+-2KYc-__E`07u=v9H46Z$m0=bq3 zjxq9AiJ#~o0`-BYatgmLS=F`5w49s`nif!Kx9LZe`m1=oDE^!a0%X&u5wq~qXWyRW$pNU88 zz{_IKsu*LiG31+)xpzS&SGZD4HqwcK^Fv#z$7p}9!87IYmN1$2M2g1}NWGV&d`m6|-0$Ay<1EP_AE2aVtC#Za<8g+~ ziO(tSQWWSmT*T7Ou&XxvR>>OU&;SHL4{w9QQ<{5ufl~|vvTkU{TkC!IxN>$op3epW zy|LuXZ8yKzsa^C7;<)x7MmwKqBJNfvd!#>?MA*doeoORwzH@qYTTp4VWXXBDDbg3c z{)k58KAepI2}hq{Ap%s(OB0#!%*kuX!Z!NHcaF}LPHw=2#@tHQUlq+7DTyqqH(by5 z_#S0X+M%_rUTu+~MDACst6U7Co3z#qO1Fy6y&2a>Vzr-8l!eAEPT*sK;Ns3YfUX;1 zwtRMX@6Cul&fiw(c=hk8dlh-_x-R=aLb8za6tc$?ncAN#!dB>O_9@tK+n4i>_C+&R zT1pUg$&Q&5U3^3zlMX4TlHME?GVk*}P($N6k0QQLW?9Ft%jmmRI2q!6eY9@if{{7L znPx-@b!zxX9R`Sj0)`0@q9K;hHN5vdyx<&}G7RR%xzy-U;go^!&pC3e-?uJDKdHa; z8@$|4B|J^3`QB@o)Ce*KH5T9xu2;eBx-8(lLUv-Cr8bAL_)1%~$0$8XKVKgxS>g7h zJsPHA)>mZW?Mu&SRfqDdnhDFV!s{fvE)!FSuEix$B_%`d{7T4Xh_}^)XEUoEm|lFA z!X(=~sOD(3^*?CP=>yzbjWS)(BYF?%67{#NwoPg)_uTInAA1CBJ7ThO&!b7yQ3H=Q zc%6uI8){BSmCb#Nzn%6HRQm2RzXSLxr}|1zee&F#_WE;&=>EST__iJTg~R1w-)@7^ zL6JA7c@=@N3QIP*29B)+iq}0P1Fi7wpA_dui^&3( zQJIm?Iyp5g+h`^)xP0pmtj2FODUS2{mb`vmEF1&>{Qj}8Lt(>vsVlv1C#O#D=y*H8-QG#k%v62 z>tR*@563LXm}IGbN#o-pq#2|Dhd-D;r)4a-{p#ixqzeulfD58?C{@n$i^;?~oOBH^ zx$Q@mvfU4EJMuhdzvuJ1#p!UCQI2mu9$5d-Ode>?z0Py&$e)o#$Hw^rB3MTG{mpEC z|G3YN^LxSb-6^14F{^?j<97_KA-g`Hjhk4{7X@4dVfjbizb?%S1VE8RJX(X)&dVzCzrL~otnHH1T zpKtj18ruT~4vP{kmKqSMnwl1|hi3U=?2n^)3Z88w{^+Sxcq*XUSjmnft5I?%=9t!} z2A`o^+3=vPNvnLm{kNkW_V4qg|6Q%;+ir@>qeY7HtKnVS{@>%<)Qsb5m;H$)T>beLdrL-20j#9u%)V0p%I!pY2yIT$wkwaoG=(^AyO z%n#np$fY-i@2XeGU#@6ob2Ea%s&l%FU@|}?#YE(Fe6Lm2i=<#hc&=oRnu$7HC!u0a zsSx}UX;AhF34{LkX#7-s)Mp>e8XwXMpXo%lO`~()=MxJxKi^$#_WYUCnz}lkjQxvv z+87}#p9Bp;n_}eb*wd;yWjPNQ7tQ;AJ5?A9fq_2?V>`Q^kgV);>`^(F0JpyS)hT(Poak0wHC-+8LM?Bq1by)pmz6Gwe z`Q5q#d3yA?pPBBFRcWHD^>=o{Aya(u*yNsM{rSw}vT0DcHLxy0d=PXA zg^F;9iVnWK2)~DQjP=yt-noE_fH%s{aiNV%UQ9CnuFYQAw{?o4tsc1N`%{pwmN0C= zA2VerUJu5i`7VPLciV;rYC*wm12_TZeNJ0J$do(XX*rS+ST4sNouj54rqGUZBq}CY zT+KxR{le-A?1A{^_0cp`K0u@GlUPi1P1z8q_%h4MYI7oUMN?)pTbt?8Qy7t9 z7lE$f#6*_R?+SQx67mhd)??{!R+|K4mw`l79fC8QzF?WY2OxZHm#l`*Gwho!DQ&(-`{_hRgY0k9m8Ou* zuAtZ2N;t=xp{W5Ak83Mb-mQr2cNf*Jw}F&2p|-Iq#<7UtXrykNQ1pf8SU4}H7$8Wh^-&uM%9+_s%{zIAsFHNA^Rx)P?Hlt#2A8X3RN z^be5h6kWVyWF@5UvFn|l#-&D}@IKgF`T|2HTxDWgHI?fBPJWzDeed(TUzec;h?d$zG?IKk}OHp{Fb4Nk@iXp7!3_=$1B`r>uTZ+0DAWaZ*OmxboGt( zzd1PtZ8OF?0F|ape*k4xmY-r+Mi&=XcP=)2Yb%}ih%NuRxM&?yWDpy&H79FozzqG( z>Hv!^L*dZlv@%=n>+EoxH~j7oRWeVTSqJ2bJ}%aJ*r1#G`)4=4cAxWnNso-r|M;+# z(lJ&Ejo2{T=M|?447fpa*dq|V=A01mDOJ{3&=B8#xZG}gs(1L8kH)^k=l{CUAeX>0 zdT{G)4N7GtI`K_w=RLCT35e3t z&W;(DWsLnD9Qwd`rRYc@ta<0J&-a_{`^2gNg3$L6gh)%fJ`4Kaa`_*Dgm@Z6Yoh&hY@Z{uoSK`$>TYKJiKvgw`HXQ-yB({CEvr9SYK`d5?Xn6W?Pg zyKlVkPm;A+kQ@hfeem}>8b4X<>(h+$4u8hs`K-xkrNOTdU3#Zt{B%1dF>#`*h(+_pwUMe=$9 z1hdSnm)r(jd{~65OQ~f6pVcmho)@@d-?rTi4Vx~TR=-gOJU@Two-lu*L-Qr9VJYA; z`N1l1q&(>f@7JVY+mGRYca)$cT9r?&V>X@d^0GAr={Sik-74OQ`u>4weskvH^wR7D27twGL_{{5&Zc@Urh}4HpK;lMDJloScA@5KhoXH3x``v!u>ib(@bz{G zx1k5iz=V_^e=yPQ`#~d<{GDY=Fn>6d>O*g=rR`ek64D9~U~%_JF^_{q*#3C=1)4>b z@spfEv^fIzvsPZ=6{AUEbsBZ83h%@le8?|L*Yq2|zDyf;bNRib{O5F0Z*isY*pq`a zOf)=eBc;g9ho>LbtV%oKQ_xVkj=}1eS&FpZcMN`bpu%mv% zZWy&-(awqI9$AJ*%wn5GnUEW!4WW7(T9&E7C-WL0FYaZcCg)9>JgHzVew3=_U*1I( zq^B`Llpp6#EW*t*xr|PJUtVP6@NYVv>?Y%i`!g+SUIpCP20kXGgReyE&#Z`XYeuyN zb9&@!=S#MX1_Wz)VX?EQ`9CS+x#k$Qf@SgmpX7qXpYn%etRiqoS~+ks2~$-f)$rx= z=xO(<@GGKK=lEl&YX!7F0(Im$%L^ZW@>a^JW`PCm*DmogZA&N1LcU*A+wa~S>v(dd zvAZ67q>gCM#@dHGOJV)NI$XN*ZMM;v@JlD|vSwRw9)~nk?s9tJXL%y0n=S7WnYC-IStga* z$Tkz`6IUvC&MBp||7@1nG_~D~96F!?4HNYej3Rw={D+*PnC5qsUga=tdPFix!y}*d zo>jgQExhua9E3p1vp|AH>XJg(yqT8SFtLR$(d<`Avi8=DKVU7$)~|1_<&PG)Y=Wj9 z&6y)qa%5hRxP92%>_`n)Nm@E4jzDH~hAz@y%L6JMK3o**ITz zD#epxb55(+1TCdm1&u*e_2EFg);_?lYr8|;m`ZKG%04SAViEaT3|cV-ERyZir+3W3 zm!@XVlluD-895rPgyihX;gN)9h;sX1UE09%OLZoj)3WN3)_%S zII3&{cEPK%D;rsfg-Kno?ACJXQ$omLBz|eVf;FTE0VtP5U?Q(@&s|7Nh=ePVy7M3} zT4-DgWV)KRQII-3m*MG)R8~wrRp%a>rGYyn{L4AGESCah2$oO8#Vz9Y`{7Z5orjxn zFmFn|=L|zI6lhD5sa`U<P$*=`t~u z)@FhUDl$C8k~Te{5)Y}_7P%Rz_-u#VHKZuV--=g?SzUdoPX;u(Qc|boo2)X*b|5Wf zZVid^Lj*v9rNBX4(ifSDZ5zU{!hebQ-oZb>P02!M@~ml5}EmHYL|z8m=XAlyzN_bhumu`#=fuD&x7IVCPUsEDNImU}_d3AtWT5;e=n=6-#^36Zd_K;y< zB@WeLU|51>i%h4s?8!1Vcjt6YKPRT*`wRRbZ<%nW1OWf30Y}XvX{t+CU|~BGE22#S zB?wimV(gsB;dv9~zH*_8<5Yysj_F6+fPQQ{2jg})-WA4T#l%%08KqzEIC9(74}kGk zKP1Is@!Ua3BE(B#haL)n8Ny*Gdqo>=F|i7{Wqru*4DmTfGpCUDy>it0!H-r9pHT4p z`jD1vu(O(+PSbf9n0jt6iln*^fIyjR>0msz1t9m9vO>vsfwWvHTq(HFk~v8~WbyY+ ze7DAX&nYuYzBC>D3iY0}1zS3M{1Hi;+W6aCpROYgJRD5d{GyjdXz(m&TXc@Te_60H zOTbjs2u>|?J5@!?8~5SD)4 z*WzK6sNgG6E4#j3XMkMpME@O6Op8*8drO-xVl>n=KbvY^uRG>TQIW@w38bGP8xdRA6N>@|6<_goAm^O1=<~9nF~gTc_~zl1k8RWu=WCN zV+U`p1d@r!Ts}wh#5?J8m4wf(A%FB~1g1lUe4UDM27w1U%voB^AE9!{3<%$E?r$Im zcZ4_xov4p?e~1cb^z86Kzb7>~WsZf-NaLucY^-Y^b)IJ30vBI=eCG~cm^K=x%3p?~GH$^8WLig}CnufNh8;fIzriaW(@3|44(L0IS+3BUgt(6X zk+Sx64+Us)^s7PWI|Ft)Qd*c2;ZMpc%=QOHtEwY-!Z(Yzf+AF_8gPb$(1t|7a@xsS z+Zcjg<`x#QkIk5DShLrnxt-T|TK%76O6L|;nD$nFbgX3e^YZaQe+$@@FY14;{McX{ zw6sAQqFrtK>(0c5a_(ZB?~66$6G1MOnkvl`DA6j`$diVT@oEFw(53m%MkdMg}M}>y3GVAdM zKaM6~(|DcnHwA=gPKd|^+(&%8ZVjS}m(yr7<$U9A21iO;*Ym4Y@pgQUsnvQ~D0%#CcmSYZ$FCy$QmlL<%U3(M&X z&OZm$W5jp2$G-GEA``RwhkV^f3jRDb=3@CGML1v4AA^P44&pD-Gdi82M5-|h%0DnG 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
    +

    Tiny Flower Mod Generator

    +

    + Create packs of tiny flowers for the Tiny Flowers mod. +

    + + +

    + {formState.metadata.name || "New mod"} (v{formState.metadata.version ?? + "???"}) +

    + + +
    +

    Flowers

    + + {#each formState.flowers as flower, flowerIndex (flowerIndex)} + {@const hasFileTexture = flower.blockTextures.some( + (entry) => entry.texture.type === "file", + )} +
    +
    +
    + +
    + +
    +
    + +
    + +
    + +
    + +
    + +
    +

    + When Florists' Shears are used on this block, it will be turned + into Tiny Flowers. +

    +
    + +
    + +
    + +
    +

    + Check this box if the original flower is made of multiple parts + (e.g. Pink Petals, Wildflowers, or Leaf Litter). +

    +
    + +
    + +
    + { + const dt = new DataTransfer(); + if (flower.itemTexture) { + dt.items.add(flower.itemTexture); + } + return dt.files; + }, + (newFiles) => { + flower.itemTexture = newFiles?.[0] ?? undefined; + } + } + /> +
    + + e.language === "en_us")?.name ?? + flower.id} + /> +
    + +
    + Translations + + + + + + + + + + {#each flower.name as entry, i (i)} + + + + + + {/each} + +
    Language IDFlower Name
    + + + + + + + +
    +
    + +
    +
    + +
    + Can Survive On +
      + {#each flower.canSurviveOn as block, i (i)} +
    • + + +
    • + {/each} +
    + +
    + + +
    +
    + +
    + Suspicious Stew Effects: + + + + + + + + + + + {#each flower.suspiciousStewEffects as effect, i (i)} + + + + + + {/each} + +
    Effect IDDuration (ticks)
    + + + + + + + +
    + + +
    + +
    + +

    + The Tiny Flowers mod provides a set of built-in models that only + need the upwards facing textures defined. In general, try to use + the fewest number of layers while still getting the essence of the + original flower across. +

    +
    + {#each PREDEFINED_BLOCK_MODELS as model} + + {/each} +
    +
    + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + +
    + Block Textures: + + + + + + + {#if hasFileTexture} + + {/if} + + + {#if hasFileTexture} + + {/if} + + + + {#each flower.blockTextures as entry, i (i)} + + + + {#if hasFileTexture} + + {/if} + + + {#if hasFileTexture} + + {/if} + + {/each} + +
    Texture SlotTypeFileIdentifierPreview
    + + + + + + + {#if entry.texture.type === "file"} + {@const tex = entry.texture} + + { + const dt = new DataTransfer(); + if (tex.file) { + dt.items.add(tex.file); + } + return dt.files; + }, + (newFiles) => { + tex.file = newFiles?.[0] ?? undefined; + } + } + /> + {/if} + + + {#if entry.texture.type === "file"} + + {:else if entry.texture.type === "reference"} + + {/if} + + + + {#if entry.texture.type === "file"} + + {/if} +
    + + +
    +
    +
    + {/each} + + +
    + +
    {JSON.stringify(
    +      formState,
    +      (key, value) => {
    +        if (value instanceof File) {
    +          return `[File: ${value.name}]`;
    +        }
    +        return value;
    +      },
    +      2,
    +    )}
    +