From 2fea23b35dcc33a0d3396e9ee7fe993abf22183a Mon Sep 17 00:00:00 2001 From: Vos Date: Sun, 16 Nov 2025 14:56:47 -0600 Subject: [PATCH] Lemonwood Trees --- .../acesbs/blockstates/lemonwood_leaves.json | 7 + .../acesbs/blockstates/lemonwood_log.json | 16 +++ .../acesbs/blockstates/lemonwood_sapling.json | 7 + .../acesbs/blockstates/lemonwood_wood.json | 16 +++ .../blockstates/potted_lemonwood_sapling.json | 7 + .../blockstates/stripped_lemonwood_log.json | 16 +++ .../blockstates/stripped_lemonwood_wood.json | 16 +++ .../acesbs/models/block/lemonwood_leaves.json | 6 + .../acesbs/models/block/lemonwood_log.json | 7 + .../block/lemonwood_log_horizontal.json | 7 + .../models/block/lemonwood_sapling.json | 6 + .../acesbs/models/block/lemonwood_wood.json | 7 + .../block/potted_lemonwood_sapling.json | 6 + .../models/block/stripped_lemonwood_log.json | 7 + .../stripped_lemonwood_log_horizontal.json | 7 + .../models/block/stripped_lemonwood_wood.json | 7 + .../acesbs/models/item/lemonwood_leaves.json | 3 + .../acesbs/models/item/lemonwood_log.json | 3 + .../acesbs/models/item/lemonwood_sapling.json | 6 + .../acesbs/models/item/lemonwood_wood.json | 3 + .../models/item/potted_lemonwood_sapling.json | 3 + .../models/item/stripped_lemonwood_log.json | 3 + .../models/item/stripped_lemonwood_wood.json | 3 + .../lemonwood_planks_from_lemonwood_log.json | 32 +++++ .../lemonwood_planks_from_lemonwood_wood.json | 32 +++++ ...od_planks_from_stripped_lemonwood_log.json | 32 +++++ ...d_planks_from_stripped_lemonwood_wood.json | 32 +++++ .../building_blocks/lemonwood_wood.json | 32 +++++ .../stripped_lemonwood_wood.json | 32 +++++ .../lemonwood_sapling.json} | 4 +- .../loot_table/blocks/lemonwood_leaves.json | 132 ++++++++++++++++++ .../loot_table/blocks/lemonwood_log.json | 20 +++ .../loot_table/blocks/lemonwood_sapling.json | 20 +++ .../loot_table/blocks/lemonwood_wood.json | 20 +++ .../blocks/stripped_lemonwood_log.json | 20 +++ .../blocks/stripped_lemonwood_wood.json | 20 +++ .../data/acesbs/recipe/lemonwood_planks.json | 25 ---- .../lemonwood_planks_from_lemonwood_log.json | 13 ++ .../lemonwood_planks_from_lemonwood_wood.json | 13 ++ ...od_planks_from_stripped_lemonwood_log.json | 13 ++ ...d_planks_from_stripped_lemonwood_wood.json | 13 ++ .../data/acesbs/recipe/lemonwood_sapling.json | 16 +++ .../data/acesbs/recipe/lemonwood_wood.json | 18 +++ .../recipe/stripped_lemonwood_wood.json | 18 +++ .../configured_feature/lemonwood.json | 87 ++++++++++++ .../minecraft/tags/block/logs_that_burn.json | 8 ++ .../minecraft/tags/item/logs_that_burn.json | 8 ++ .../data/minecraft/tags/item/planks.json | 5 + .../com/acethewildfire/acesbs/AcesBS.java | 17 +++ .../acethewildfire/acesbs/AcesBSClient.java | 2 + .../acesbs/block/ModBlocks.java | 20 +++ .../acesbs/datagen/ModBlockTagProvider.java | 5 + .../acesbs/datagen/ModItemTagProvider.java | 10 +- .../acesbs/datagen/ModLootTableProvider.java | 8 ++ .../acesbs/datagen/ModModelProvider.java | 8 ++ .../acesbs/item/ModItemGroups.java | 6 + .../acesbs/world/ModConfiguredFeatures.java | 25 ++++ .../world/tree/ModBlockSaplingGenerator.java | 12 ++ .../resources/assets/acesbs/lang/en_us.json | 7 + .../textures/block/lemonwood_leaves.png | Bin 198 -> 2921 bytes .../textures/block/lemonwood_sapling.png | Bin 0 -> 2475 bytes 61 files changed, 926 insertions(+), 28 deletions(-) create mode 100644 src/main/generated/assets/acesbs/blockstates/lemonwood_leaves.json create mode 100644 src/main/generated/assets/acesbs/blockstates/lemonwood_log.json create mode 100644 src/main/generated/assets/acesbs/blockstates/lemonwood_sapling.json create mode 100644 src/main/generated/assets/acesbs/blockstates/lemonwood_wood.json create mode 100644 src/main/generated/assets/acesbs/blockstates/potted_lemonwood_sapling.json create mode 100644 src/main/generated/assets/acesbs/blockstates/stripped_lemonwood_log.json create mode 100644 src/main/generated/assets/acesbs/blockstates/stripped_lemonwood_wood.json create mode 100644 src/main/generated/assets/acesbs/models/block/lemonwood_leaves.json create mode 100644 src/main/generated/assets/acesbs/models/block/lemonwood_log.json create mode 100644 src/main/generated/assets/acesbs/models/block/lemonwood_log_horizontal.json create mode 100644 src/main/generated/assets/acesbs/models/block/lemonwood_sapling.json create mode 100644 src/main/generated/assets/acesbs/models/block/lemonwood_wood.json create mode 100644 src/main/generated/assets/acesbs/models/block/potted_lemonwood_sapling.json create mode 100644 src/main/generated/assets/acesbs/models/block/stripped_lemonwood_log.json create mode 100644 src/main/generated/assets/acesbs/models/block/stripped_lemonwood_log_horizontal.json create mode 100644 src/main/generated/assets/acesbs/models/block/stripped_lemonwood_wood.json create mode 100644 src/main/generated/assets/acesbs/models/item/lemonwood_leaves.json create mode 100644 src/main/generated/assets/acesbs/models/item/lemonwood_log.json create mode 100644 src/main/generated/assets/acesbs/models/item/lemonwood_sapling.json create mode 100644 src/main/generated/assets/acesbs/models/item/lemonwood_wood.json create mode 100644 src/main/generated/assets/acesbs/models/item/potted_lemonwood_sapling.json create mode 100644 src/main/generated/assets/acesbs/models/item/stripped_lemonwood_log.json create mode 100644 src/main/generated/assets/acesbs/models/item/stripped_lemonwood_wood.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_lemonwood_log.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_lemonwood_wood.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_stripped_lemonwood_log.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_stripped_lemonwood_wood.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_wood.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/building_blocks/stripped_lemonwood_wood.json rename src/main/generated/data/acesbs/advancement/recipes/{building_blocks/lemonwood_planks.json => decorations/lemonwood_sapling.json} (86%) create mode 100644 src/main/generated/data/acesbs/loot_table/blocks/lemonwood_leaves.json create mode 100644 src/main/generated/data/acesbs/loot_table/blocks/lemonwood_log.json create mode 100644 src/main/generated/data/acesbs/loot_table/blocks/lemonwood_sapling.json create mode 100644 src/main/generated/data/acesbs/loot_table/blocks/lemonwood_wood.json create mode 100644 src/main/generated/data/acesbs/loot_table/blocks/stripped_lemonwood_log.json create mode 100644 src/main/generated/data/acesbs/loot_table/blocks/stripped_lemonwood_wood.json delete mode 100644 src/main/generated/data/acesbs/recipe/lemonwood_planks.json create mode 100644 src/main/generated/data/acesbs/recipe/lemonwood_planks_from_lemonwood_log.json create mode 100644 src/main/generated/data/acesbs/recipe/lemonwood_planks_from_lemonwood_wood.json create mode 100644 src/main/generated/data/acesbs/recipe/lemonwood_planks_from_stripped_lemonwood_log.json create mode 100644 src/main/generated/data/acesbs/recipe/lemonwood_planks_from_stripped_lemonwood_wood.json create mode 100644 src/main/generated/data/acesbs/recipe/lemonwood_sapling.json create mode 100644 src/main/generated/data/acesbs/recipe/lemonwood_wood.json create mode 100644 src/main/generated/data/acesbs/recipe/stripped_lemonwood_wood.json create mode 100644 src/main/generated/data/acesbs/worldgen/configured_feature/lemonwood.json create mode 100644 src/main/generated/data/minecraft/tags/block/logs_that_burn.json create mode 100644 src/main/generated/data/minecraft/tags/item/logs_that_burn.json create mode 100644 src/main/generated/data/minecraft/tags/item/planks.json create mode 100644 src/main/java/com/acethewildfire/acesbs/world/tree/ModBlockSaplingGenerator.java create mode 100644 src/main/resources/assets/acesbs/textures/block/lemonwood_sapling.png diff --git a/src/main/generated/assets/acesbs/blockstates/lemonwood_leaves.json b/src/main/generated/assets/acesbs/blockstates/lemonwood_leaves.json new file mode 100644 index 0000000..ac636ca --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/lemonwood_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "acesbs:block/lemonwood_leaves" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/blockstates/lemonwood_log.json b/src/main/generated/assets/acesbs/blockstates/lemonwood_log.json new file mode 100644 index 0000000..adb6b5b --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/lemonwood_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "acesbs:block/lemonwood_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "acesbs:block/lemonwood_log" + }, + "axis=z": { + "model": "acesbs:block/lemonwood_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/blockstates/lemonwood_sapling.json b/src/main/generated/assets/acesbs/blockstates/lemonwood_sapling.json new file mode 100644 index 0000000..17f325a --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/lemonwood_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "acesbs:block/lemonwood_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/blockstates/lemonwood_wood.json b/src/main/generated/assets/acesbs/blockstates/lemonwood_wood.json new file mode 100644 index 0000000..9ed1ed4 --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/lemonwood_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "acesbs:block/lemonwood_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "acesbs:block/lemonwood_wood" + }, + "axis=z": { + "model": "acesbs:block/lemonwood_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/blockstates/potted_lemonwood_sapling.json b/src/main/generated/assets/acesbs/blockstates/potted_lemonwood_sapling.json new file mode 100644 index 0000000..fd515d7 --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/potted_lemonwood_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "acesbs:block/potted_lemonwood_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/blockstates/stripped_lemonwood_log.json b/src/main/generated/assets/acesbs/blockstates/stripped_lemonwood_log.json new file mode 100644 index 0000000..16967b4 --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/stripped_lemonwood_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "acesbs:block/stripped_lemonwood_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "acesbs:block/stripped_lemonwood_log" + }, + "axis=z": { + "model": "acesbs:block/stripped_lemonwood_log_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/blockstates/stripped_lemonwood_wood.json b/src/main/generated/assets/acesbs/blockstates/stripped_lemonwood_wood.json new file mode 100644 index 0000000..2f2b7ea --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/stripped_lemonwood_wood.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "acesbs:block/stripped_lemonwood_wood", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "acesbs:block/stripped_lemonwood_wood" + }, + "axis=z": { + "model": "acesbs:block/stripped_lemonwood_wood", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/lemonwood_leaves.json b/src/main/generated/assets/acesbs/models/block/lemonwood_leaves.json new file mode 100644 index 0000000..bbfcca0 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/lemonwood_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/leaves", + "textures": { + "all": "acesbs:block/lemonwood_leaves" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/lemonwood_log.json b/src/main/generated/assets/acesbs/models/block/lemonwood_log.json new file mode 100644 index 0000000..e9a0811 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/lemonwood_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "acesbs:block/lemonwood_log_top", + "side": "acesbs:block/lemonwood_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/lemonwood_log_horizontal.json b/src/main/generated/assets/acesbs/models/block/lemonwood_log_horizontal.json new file mode 100644 index 0000000..8649e4d --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/lemonwood_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "acesbs:block/lemonwood_log_top", + "side": "acesbs:block/lemonwood_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/lemonwood_sapling.json b/src/main/generated/assets/acesbs/models/block/lemonwood_sapling.json new file mode 100644 index 0000000..578b6d9 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/lemonwood_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "acesbs:block/lemonwood_sapling" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/lemonwood_wood.json b/src/main/generated/assets/acesbs/models/block/lemonwood_wood.json new file mode 100644 index 0000000..36c971c --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/lemonwood_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "acesbs:block/lemonwood_log", + "side": "acesbs:block/lemonwood_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/potted_lemonwood_sapling.json b/src/main/generated/assets/acesbs/models/block/potted_lemonwood_sapling.json new file mode 100644 index 0000000..de59bd7 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/potted_lemonwood_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "acesbs:block/lemonwood_sapling" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/stripped_lemonwood_log.json b/src/main/generated/assets/acesbs/models/block/stripped_lemonwood_log.json new file mode 100644 index 0000000..bbc592f --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/stripped_lemonwood_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "acesbs:block/stripped_lemonwood_log_top", + "side": "acesbs:block/stripped_lemonwood_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/stripped_lemonwood_log_horizontal.json b/src/main/generated/assets/acesbs/models/block/stripped_lemonwood_log_horizontal.json new file mode 100644 index 0000000..00ac080 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/stripped_lemonwood_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "acesbs:block/stripped_lemonwood_log_top", + "side": "acesbs:block/stripped_lemonwood_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/stripped_lemonwood_wood.json b/src/main/generated/assets/acesbs/models/block/stripped_lemonwood_wood.json new file mode 100644 index 0000000..0913d76 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/stripped_lemonwood_wood.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "acesbs:block/stripped_lemonwood_log", + "side": "acesbs:block/stripped_lemonwood_log" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/lemonwood_leaves.json b/src/main/generated/assets/acesbs/models/item/lemonwood_leaves.json new file mode 100644 index 0000000..97e61dd --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/lemonwood_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "acesbs:block/lemonwood_leaves" +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/lemonwood_log.json b/src/main/generated/assets/acesbs/models/item/lemonwood_log.json new file mode 100644 index 0000000..ed0df11 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/lemonwood_log.json @@ -0,0 +1,3 @@ +{ + "parent": "acesbs:block/lemonwood_log" +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/lemonwood_sapling.json b/src/main/generated/assets/acesbs/models/item/lemonwood_sapling.json new file mode 100644 index 0000000..7c48953 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/lemonwood_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:block/lemonwood_sapling" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/lemonwood_wood.json b/src/main/generated/assets/acesbs/models/item/lemonwood_wood.json new file mode 100644 index 0000000..c644f85 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/lemonwood_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "acesbs:block/lemonwood_wood" +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/potted_lemonwood_sapling.json b/src/main/generated/assets/acesbs/models/item/potted_lemonwood_sapling.json new file mode 100644 index 0000000..93f195f --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/potted_lemonwood_sapling.json @@ -0,0 +1,3 @@ +{ + "parent": "acesbs:block/potted_lemonwood_sapling" +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/stripped_lemonwood_log.json b/src/main/generated/assets/acesbs/models/item/stripped_lemonwood_log.json new file mode 100644 index 0000000..60fd3e4 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/stripped_lemonwood_log.json @@ -0,0 +1,3 @@ +{ + "parent": "acesbs:block/stripped_lemonwood_log" +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/stripped_lemonwood_wood.json b/src/main/generated/assets/acesbs/models/item/stripped_lemonwood_wood.json new file mode 100644 index 0000000..6faf777 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/stripped_lemonwood_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "acesbs:block/stripped_lemonwood_wood" +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_lemonwood_log.json b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_lemonwood_log.json new file mode 100644 index 0000000..ae14bc9 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_lemonwood_log.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lemonwood_log": { + "conditions": { + "items": [ + { + "items": "acesbs:lemonwood_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:lemonwood_planks_from_lemonwood_log" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lemonwood_log" + ] + ], + "rewards": { + "recipes": [ + "acesbs:lemonwood_planks_from_lemonwood_log" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_lemonwood_wood.json b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_lemonwood_wood.json new file mode 100644 index 0000000..474efc3 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_lemonwood_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lemonwood_wood": { + "conditions": { + "items": [ + { + "items": "acesbs:lemonwood_wood" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:lemonwood_planks_from_lemonwood_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lemonwood_wood" + ] + ], + "rewards": { + "recipes": [ + "acesbs:lemonwood_planks_from_lemonwood_wood" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_stripped_lemonwood_log.json b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_stripped_lemonwood_log.json new file mode 100644 index 0000000..2343d39 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_stripped_lemonwood_log.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_lemonwood_log": { + "conditions": { + "items": [ + { + "items": "acesbs:stripped_lemonwood_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:lemonwood_planks_from_stripped_lemonwood_log" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_lemonwood_log" + ] + ], + "rewards": { + "recipes": [ + "acesbs:lemonwood_planks_from_stripped_lemonwood_log" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_stripped_lemonwood_wood.json b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_stripped_lemonwood_wood.json new file mode 100644 index 0000000..d79e431 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks_from_stripped_lemonwood_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_lemonwood_wood": { + "conditions": { + "items": [ + { + "items": "acesbs:stripped_lemonwood_wood" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:lemonwood_planks_from_stripped_lemonwood_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_lemonwood_wood" + ] + ], + "rewards": { + "recipes": [ + "acesbs:lemonwood_planks_from_stripped_lemonwood_wood" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_wood.json b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_wood.json new file mode 100644 index 0000000..4daa6c6 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lemonwood_log": { + "conditions": { + "items": [ + { + "items": "acesbs:lemonwood_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:lemonwood_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lemonwood_log" + ] + ], + "rewards": { + "recipes": [ + "acesbs:lemonwood_wood" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/building_blocks/stripped_lemonwood_wood.json b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/stripped_lemonwood_wood.json new file mode 100644 index 0000000..ee62249 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/stripped_lemonwood_wood.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stripped_lemonwood_log": { + "conditions": { + "items": [ + { + "items": "acesbs:stripped_lemonwood_log" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:stripped_lemonwood_wood" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stripped_lemonwood_log" + ] + ], + "rewards": { + "recipes": [ + "acesbs:stripped_lemonwood_wood" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks.json b/src/main/generated/data/acesbs/advancement/recipes/decorations/lemonwood_sapling.json similarity index 86% rename from src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks.json rename to src/main/generated/data/acesbs/advancement/recipes/decorations/lemonwood_sapling.json index fc8e0a1..700c844 100644 --- a/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks.json +++ b/src/main/generated/data/acesbs/advancement/recipes/decorations/lemonwood_sapling.json @@ -13,7 +13,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "acesbs:lemonwood_planks" + "recipe": "acesbs:lemonwood_sapling" }, "trigger": "minecraft:recipe_unlocked" } @@ -26,7 +26,7 @@ ], "rewards": { "recipes": [ - "acesbs:lemonwood_planks" + "acesbs:lemonwood_sapling" ] } } \ No newline at end of file diff --git a/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_leaves.json b/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_leaves.json new file mode 100644 index 0000000..7727b0d --- /dev/null +++ b/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_leaves.json @@ -0,0 +1,132 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + ], + "name": "acesbs:lemonwood_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.0625 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "acesbs:lemonwood_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "minecraft:shears" + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_log.json b/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_log.json new file mode 100644 index 0000000..5b2d447 --- /dev/null +++ b/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_log.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "acesbs:lemonwood_log" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_sapling.json b/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_sapling.json new file mode 100644 index 0000000..e86dade --- /dev/null +++ b/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_sapling.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "acesbs:lemonwood_sapling" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_wood.json b/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_wood.json new file mode 100644 index 0000000..861df99 --- /dev/null +++ b/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_wood.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "acesbs:lemonwood_wood" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/loot_table/blocks/stripped_lemonwood_log.json b/src/main/generated/data/acesbs/loot_table/blocks/stripped_lemonwood_log.json new file mode 100644 index 0000000..dc00efd --- /dev/null +++ b/src/main/generated/data/acesbs/loot_table/blocks/stripped_lemonwood_log.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "acesbs:stripped_lemonwood_log" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/loot_table/blocks/stripped_lemonwood_wood.json b/src/main/generated/data/acesbs/loot_table/blocks/stripped_lemonwood_wood.json new file mode 100644 index 0000000..df4b038 --- /dev/null +++ b/src/main/generated/data/acesbs/loot_table/blocks/stripped_lemonwood_wood.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "acesbs:stripped_lemonwood_wood" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/lemonwood_planks.json b/src/main/generated/data/acesbs/recipe/lemonwood_planks.json deleted file mode 100644 index d8a56e6..0000000 --- a/src/main/generated/data/acesbs/recipe/lemonwood_planks.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "category": "building", - "ingredients": [ - { - "item": "minecraft:birch_planks" - }, - { - "item": "minecraft:birch_planks" - }, - { - "item": "minecraft:birch_planks" - }, - { - "item": "minecraft:birch_planks" - }, - { - "item": "acesbs:lemon" - } - ], - "result": { - "count": 4, - "id": "acesbs:lemonwood_planks" - } -} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_lemonwood_log.json b/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_lemonwood_log.json new file mode 100644 index 0000000..ab7b4a1 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_lemonwood_log.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "acesbs:lemonwood_log" + } + ], + "result": { + "count": 4, + "id": "acesbs:lemonwood_planks" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_lemonwood_wood.json b/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_lemonwood_wood.json new file mode 100644 index 0000000..7010767 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_lemonwood_wood.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "acesbs:lemonwood_wood" + } + ], + "result": { + "count": 4, + "id": "acesbs:lemonwood_planks" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_stripped_lemonwood_log.json b/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_stripped_lemonwood_log.json new file mode 100644 index 0000000..f990c12 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_stripped_lemonwood_log.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "acesbs:stripped_lemonwood_log" + } + ], + "result": { + "count": 4, + "id": "acesbs:lemonwood_planks" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_stripped_lemonwood_wood.json b/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_stripped_lemonwood_wood.json new file mode 100644 index 0000000..6ecce71 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/lemonwood_planks_from_stripped_lemonwood_wood.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "acesbs:stripped_lemonwood_wood" + } + ], + "result": { + "count": 4, + "id": "acesbs:lemonwood_planks" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/lemonwood_sapling.json b/src/main/generated/data/acesbs/recipe/lemonwood_sapling.json new file mode 100644 index 0000000..a5737f3 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/lemonwood_sapling.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:birch_sapling" + }, + { + "item": "acesbs:lemon" + } + ], + "result": { + "count": 1, + "id": "acesbs:lemonwood_sapling" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/lemonwood_wood.json b/src/main/generated/data/acesbs/recipe/lemonwood_wood.json new file mode 100644 index 0000000..2c821b4 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/lemonwood_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "acesbs:lemonwood_log" + } + }, + "pattern": [ + "## ", + "## ", + " " + ], + "result": { + "count": 3, + "id": "acesbs:lemonwood_wood" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/stripped_lemonwood_wood.json b/src/main/generated/data/acesbs/recipe/stripped_lemonwood_wood.json new file mode 100644 index 0000000..1c6b99c --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/stripped_lemonwood_wood.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "acesbs:stripped_lemonwood_log" + } + }, + "pattern": [ + "## ", + "## ", + " " + ], + "result": { + "count": 3, + "id": "acesbs:stripped_lemonwood_wood" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/worldgen/configured_feature/lemonwood.json b/src/main/generated/data/acesbs/worldgen/configured_feature/lemonwood.json new file mode 100644 index 0000000..ce470db --- /dev/null +++ b/src/main/generated/data/acesbs/worldgen/configured_feature/lemonwood.json @@ -0,0 +1,87 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:dirt" + } + }, + "foliage_placer": { + "type": "minecraft:cherry_foliage_placer", + "corner_hole_chance": 0.25, + "hanging_leaves_chance": 0.16666667, + "hanging_leaves_extension_chance": 0.33333334, + "height": 5, + "offset": 0, + "radius": 4, + "wide_bottom_layer_hole_chance": 0.25 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "acesbs:lemonwood_leaves", + "Properties": { + "distance": "7", + "persistent": "false", + "waterlogged": "false" + } + } + }, + "force_dirt": false, + "ignore_vines": false, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 2 + }, + "trunk_placer": { + "type": "minecraft:cherry_trunk_placer", + "base_height": 7, + "branch_count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "data": 1, + "weight": 1 + }, + { + "data": 2, + "weight": 1 + }, + { + "data": 3, + "weight": 1 + } + ] + }, + "branch_end_offset_from_top": { + "type": "minecraft:uniform", + "max_inclusive": 0, + "min_inclusive": -1 + }, + "branch_horizontal_length": { + "type": "minecraft:uniform", + "max_inclusive": 4, + "min_inclusive": 2 + }, + "branch_start_offset_from_top": { + "max_inclusive": -3, + "min_inclusive": -4 + }, + "height_rand_a": 1, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "acesbs:lemonwood_log", + "Properties": { + "axis": "y" + } + } + } + } +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/logs_that_burn.json b/src/main/generated/data/minecraft/tags/block/logs_that_burn.json new file mode 100644 index 0000000..10944c4 --- /dev/null +++ b/src/main/generated/data/minecraft/tags/block/logs_that_burn.json @@ -0,0 +1,8 @@ +{ + "values": [ + "acesbs:lemonwood_log", + "acesbs:lemonwood_wood", + "acesbs:stripped_lemonwood_log", + "acesbs:stripped_lemonwood_wood" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/item/logs_that_burn.json b/src/main/generated/data/minecraft/tags/item/logs_that_burn.json new file mode 100644 index 0000000..10944c4 --- /dev/null +++ b/src/main/generated/data/minecraft/tags/item/logs_that_burn.json @@ -0,0 +1,8 @@ +{ + "values": [ + "acesbs:lemonwood_log", + "acesbs:lemonwood_wood", + "acesbs:stripped_lemonwood_log", + "acesbs:stripped_lemonwood_wood" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/item/planks.json b/src/main/generated/data/minecraft/tags/item/planks.json new file mode 100644 index 0000000..b308d88 --- /dev/null +++ b/src/main/generated/data/minecraft/tags/item/planks.json @@ -0,0 +1,5 @@ +{ + "values": [ + "acesbs:lemonwood_planks" + ] +} \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/AcesBS.java b/src/main/java/com/acethewildfire/acesbs/AcesBS.java index ef1cb89..809056b 100644 --- a/src/main/java/com/acethewildfire/acesbs/AcesBS.java +++ b/src/main/java/com/acethewildfire/acesbs/AcesBS.java @@ -17,6 +17,9 @@ import net.fabricmc.fabric.api.event.player.AttackEntityCallback; import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents; import net.fabricmc.fabric.api.registry.CompostingChanceRegistry; import net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistryBuilder; +import net.fabricmc.fabric.api.registry.FlammableBlockRegistry; +import net.fabricmc.fabric.api.registry.StrippableBlockRegistry; +import net.minecraft.block.FireBlock; import net.minecraft.item.Items; import net.minecraft.potion.Potions; import org.slf4j.Logger; @@ -60,5 +63,19 @@ public class AcesBS implements ModInitializer { // CompostingChanceRegistry.INSTANCE.add(ModItems.TOBACCO); CompostingChanceRegistry.INSTANCE.add(ModItems.TOBACCO_SEEDS, 0.5f); + + StrippableBlockRegistry.register(ModBlocks.LEMONWOOD_LOG, ModBlocks.STRIPPED_LEMONWOOD_LOG); + StrippableBlockRegistry.register(ModBlocks.LEMONWOOD_WOOD, ModBlocks.STRIPPED_LEMONWOOD_WOOD); + + FlammableBlockRegistry.getDefaultInstance().add(ModBlocks.LEMONWOOD_LOG, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(ModBlocks.LEMONWOOD_WOOD, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(ModBlocks.STRIPPED_LEMONWOOD_LOG, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(ModBlocks.STRIPPED_LEMONWOOD_WOOD, 5, 5); + + FlammableBlockRegistry.getDefaultInstance().add(ModBlocks.LEMONWOOD_PLANKS, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(ModBlocks.LEMONWOOD_SLAB, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(ModBlocks.LEMONWOOD_STAIRS, 5, 20); + + FlammableBlockRegistry.getDefaultInstance().add(ModBlocks.LEMONWOOD_LEAVES, 30, 60); } } \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/AcesBSClient.java b/src/main/java/com/acethewildfire/acesbs/AcesBSClient.java index 8ebeb4d..fa601b6 100644 --- a/src/main/java/com/acethewildfire/acesbs/AcesBSClient.java +++ b/src/main/java/com/acethewildfire/acesbs/AcesBSClient.java @@ -12,6 +12,8 @@ public class AcesBSClient implements ClientModInitializer { BlockRenderLayerMap.INSTANCE.putBlock(ModBlocks.LEMONWOOD_DOOR, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(ModBlocks.LEMONWOOD_TRAPDOOR, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(ModBlocks.TOBACCO_CROP, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(ModBlocks.LEMONWOOD_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(ModBlocks.POTTED_LEMONWOOD_SAPLING, RenderLayer.getCutout()); ModModelPredicates.registerModelPredicates(); } diff --git a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java index 74a269a..5b932b9 100644 --- a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java +++ b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java @@ -6,6 +6,7 @@ import com.acethewildfire.acesbs.block.custom.EvilBlock; import com.acethewildfire.acesbs.block.custom.StableEntropyBlock; import com.acethewildfire.acesbs.block.custom.TobaccoCrop; import com.acethewildfire.acesbs.sounds.ModSounds; +import com.acethewildfire.acesbs.world.tree.ModBlockSaplingGenerator; import net.minecraft.block.*; import net.minecraft.block.enums.NoteBlockInstrument; import net.minecraft.block.piston.PistonBehavior; @@ -30,6 +31,8 @@ import org.jetbrains.annotations.Nullable; import java.util.function.ToIntFunction; +import static net.minecraft.block.Blocks.createFlowerPotBlock; + public class ModBlocks { public static final Block ENTROPY_BLOCK = registerBlock("entropy_block", @@ -81,6 +84,22 @@ public class ModBlocks { .requiresTool() .sounds(BlockSoundGroup.LODESTONE))); + public static final Block LEMONWOOD_LOG = registerBlock("lemonwood_log", + new PillarBlock(AbstractBlock.Settings.copy(Blocks.BIRCH_LOG))); + public static final Block LEMONWOOD_WOOD = registerBlock("lemonwood_wood", + new PillarBlock(AbstractBlock.Settings.copy(Blocks.BIRCH_WOOD).mapColor(MapColor.PALE_YELLOW))); + public static final Block STRIPPED_LEMONWOOD_LOG = registerBlock("stripped_lemonwood_log", + new PillarBlock(AbstractBlock.Settings.copy(Blocks.STRIPPED_BIRCH_LOG))); + public static final Block STRIPPED_LEMONWOOD_WOOD = registerBlock("stripped_lemonwood_wood", + new PillarBlock(AbstractBlock.Settings.copy(Blocks.STRIPPED_BIRCH_WOOD).mapColor(MapColor.PALE_YELLOW))); + + public static final Block LEMONWOOD_LEAVES = registerBlock("lemonwood_leaves", + new LeavesBlock(AbstractBlock.Settings.copy(Blocks.BIRCH_LEAVES))); + public static final Block LEMONWOOD_SAPLING = registerBlock("lemonwood_sapling", + new SaplingBlock(ModBlockSaplingGenerator.LEMONWOOD, AbstractBlock.Settings.copy(Blocks.BIRCH_SAPLING))); + + public static final Block POTTED_LEMONWOOD_SAPLING = registerBlock("potted_lemonwood_sapling", createFlowerPotBlock(LEMONWOOD_SAPLING)); + public static final Block LEMONWOOD_PLANKS = registerBlock("lemonwood_planks", new Block( AbstractBlock.Settings.create() @@ -91,6 +110,7 @@ public class ModBlocks { .burnable() )); + public static final Block LEMONWOOD_STAIRS = registerBlock("lemonwood_stairs", new StairsBlock(ModBlocks.LEMONWOOD_PLANKS.getDefaultState(), AbstractBlock.Settings.create() diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java index ef41e16..c4a9328 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java @@ -47,5 +47,10 @@ public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider { getOrCreateTagBuilder(ModTags.Blocks.NEEDS_PRISMA_STEEL_TOOL); // Currently Broken // .addTag(BlockTags.NEEDS_IRON_TOOL); + getOrCreateTagBuilder(BlockTags.LOGS_THAT_BURN) + .add(ModBlocks.LEMONWOOD_LOG) + .add(ModBlocks.LEMONWOOD_WOOD) + .add(ModBlocks.STRIPPED_LEMONWOOD_LOG) + .add(ModBlocks.STRIPPED_LEMONWOOD_WOOD); } } diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModItemTagProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModItemTagProvider.java index dc44704..b4d621b 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModItemTagProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModItemTagProvider.java @@ -1,11 +1,13 @@ package com.acethewildfire.acesbs.datagen; +import com.acethewildfire.acesbs.block.ModBlocks; import com.acethewildfire.acesbs.item.ModItems; import com.acethewildfire.acesbs.util.ModTags; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; import net.minecraft.item.Items; import net.minecraft.registry.RegistryWrapper; +import net.minecraft.registry.tag.BlockTags; import net.minecraft.registry.tag.ItemTags; import java.util.concurrent.CompletableFuture; @@ -51,6 +53,12 @@ public class ModItemTagProvider extends FabricTagProvider.ItemTagProvider { .add(ModItems.PRISMA_SMITHING_TEMPLATE); getOrCreateTagBuilder(ItemTags.CREEPER_DROP_MUSIC_DISCS) .add(ModItems.CRAB_RAVE_MUSIC_DISC); - + getOrCreateTagBuilder(ItemTags.LOGS_THAT_BURN) + .add(ModBlocks.LEMONWOOD_LOG.asItem()) + .add(ModBlocks.LEMONWOOD_WOOD.asItem()) + .add(ModBlocks.STRIPPED_LEMONWOOD_LOG.asItem()) + .add(ModBlocks.STRIPPED_LEMONWOOD_WOOD.asItem()); + getOrCreateTagBuilder(ItemTags.PLANKS) + .add(ModBlocks.LEMONWOOD_PLANKS.asItem()); } } diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java index 69fde4c..8440a8e 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java @@ -58,6 +58,14 @@ public class ModLootTableProvider extends FabricBlockLootTableProvider { addDrop(ModBlocks.STABLE_ENTROPY_BLOCK); addDrop(ModBlocks.PRISMA_STEEL_BLOCK); + + addDrop(ModBlocks.LEMONWOOD_LOG); + addDrop(ModBlocks.STRIPPED_LEMONWOOD_LOG); + addDrop(ModBlocks.LEMONWOOD_WOOD); + addDrop(ModBlocks.STRIPPED_LEMONWOOD_WOOD); + addDrop(ModBlocks.LEMONWOOD_SAPLING); + addDrop(ModBlocks.LEMONWOOD_LEAVES, leavesDrops(ModBlocks.LEMONWOOD_LEAVES, ModBlocks.LEMONWOOD_SAPLING, 0.0625f)); + addDrop(ModBlocks.LEMONWOOD_PLANKS); addDrop(ModBlocks.LEMONWOOD_STAIRS); addDrop(ModBlocks.LEMONWOOD_SLAB, slabDrops(ModBlocks.LEMONWOOD_SLAB)); diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java index d37b580..ea5a23f 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java @@ -6,6 +6,7 @@ import com.acethewildfire.acesbs.block.custom.TobaccoCrop; import com.acethewildfire.acesbs.item.ModItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider; +import net.minecraft.block.Blocks; import net.minecraft.data.client.*; import net.minecraft.item.ArmorItem; import net.minecraft.util.Identifier; @@ -43,6 +44,13 @@ public class ModModelProvider extends FabricModelProvider { lemonwoodPool.fenceGate(ModBlocks.LEMONWOOD_FENCE_GATE); lemonwoodPool.wall(ModBlocks.LEMONWOOD_WALL); + blockStateModelGenerator.registerLog(ModBlocks.LEMONWOOD_LOG).log(ModBlocks.LEMONWOOD_LOG).wood(ModBlocks.LEMONWOOD_WOOD); + blockStateModelGenerator.registerLog(ModBlocks.STRIPPED_LEMONWOOD_LOG).log(ModBlocks.STRIPPED_LEMONWOOD_LOG).wood(ModBlocks.STRIPPED_LEMONWOOD_WOOD); + + blockStateModelGenerator.registerSingleton(ModBlocks.LEMONWOOD_LEAVES, TexturedModel.LEAVES); +// blockStateModelGenerator.registerTintableCross(ModBlocks.LEMONWOOD_SAPLING, BlockStateModelGenerator.TintType.NOT_TINTED); + blockStateModelGenerator.registerFlowerPotPlant(ModBlocks.LEMONWOOD_SAPLING, ModBlocks.POTTED_LEMONWOOD_SAPLING, BlockStateModelGenerator.TintType.NOT_TINTED); + blockStateModelGenerator.registerDoor(ModBlocks.LEMONWOOD_DOOR); blockStateModelGenerator.registerTrapdoor(ModBlocks.LEMONWOOD_TRAPDOOR); diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java index a8f5c57..b9d9f5f 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java @@ -49,6 +49,12 @@ public class ModItemGroups { entries.add(ModBlocks.LIZARD_PLANKS); entries.add(ModBlocks.LIZARD_BUTTON); + entries.add(ModBlocks.LEMONWOOD_LOG); + entries.add(ModBlocks.LEMONWOOD_WOOD); + entries.add(ModBlocks.STRIPPED_LEMONWOOD_LOG); + entries.add(ModBlocks.STRIPPED_LEMONWOOD_WOOD); + entries.add(ModBlocks.LEMONWOOD_SAPLING); + entries.add(ModBlocks.LEMONWOOD_LEAVES); entries.add(ModBlocks.LEMONWOOD_PLANKS); entries.add(ModBlocks.LEMONWOOD_STAIRS); entries.add(ModBlocks.LEMONWOOD_SLAB); diff --git a/src/main/java/com/acethewildfire/acesbs/world/ModConfiguredFeatures.java b/src/main/java/com/acethewildfire/acesbs/world/ModConfiguredFeatures.java index 2e2a3bd..a7d4e74 100644 --- a/src/main/java/com/acethewildfire/acesbs/world/ModConfiguredFeatures.java +++ b/src/main/java/com/acethewildfire/acesbs/world/ModConfiguredFeatures.java @@ -11,7 +11,19 @@ import net.minecraft.structure.rule.BlockMatchRuleTest; import net.minecraft.structure.rule.RuleTest; import net.minecraft.structure.rule.TagMatchRuleTest; import net.minecraft.util.Identifier; +import net.minecraft.util.collection.DataPool; +import net.minecraft.util.collection.WeightedList; +import net.minecraft.util.math.intprovider.ConstantIntProvider; +import net.minecraft.util.math.intprovider.IntProvider; +import net.minecraft.util.math.intprovider.UniformIntProvider; +import net.minecraft.util.math.intprovider.WeightedListIntProvider; import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.size.TwoLayersFeatureSize; +import net.minecraft.world.gen.foliage.BlobFoliagePlacer; +import net.minecraft.world.gen.foliage.CherryFoliagePlacer; +import net.minecraft.world.gen.stateprovider.BlockStateProvider; +import net.minecraft.world.gen.trunk.CherryTrunkPlacer; +import net.minecraft.world.gen.trunk.StraightTrunkPlacer; import java.util.List; @@ -26,6 +38,8 @@ public class ModConfiguredFeatures { public static final RegistryKey> INFERNAL_ASHES_ORE_KEY = registerKey("infernal_ashes_ore"); public static final RegistryKey> ENDTROPY_ORE_KEY = registerKey("endtropy_ore"); + public static final RegistryKey> LEMONWOOD_KEY = registerKey("lemonwood"); + public static void bootstrap(Registerable> context) { RuleTest stoneReplaceables = new TagMatchRuleTest(BlockTags.STONE_ORE_REPLACEABLES); RuleTest deepslateReplaceables = new TagMatchRuleTest(BlockTags.DEEPSLATE_ORE_REPLACEABLES); @@ -49,6 +63,17 @@ public class ModConfiguredFeatures { register(context, DEEPSLATE_ENTROPY_ORE_KEY, Feature.ORE, new OreFeatureConfig(overworldDeepslateEntropyOres, 4, 0.0F)); register(context, INFERNAL_ASHES_ORE_KEY, Feature.ORE, new OreFeatureConfig(netherAshesOres, 4, 0.0F)); register(context, ENDTROPY_ORE_KEY, Feature.ORE, new OreFeatureConfig(endEndtropyOres, 4, 0.0F)); + + + register(context, LEMONWOOD_KEY, Feature.TREE, new TreeFeatureConfig.Builder( + BlockStateProvider.of(ModBlocks.LEMONWOOD_LOG), + new CherryTrunkPlacer(7, 1, 0, new WeightedListIntProvider(new DataPool.Builder().add(ConstantIntProvider.create(1), 1).add(ConstantIntProvider.create(2), 1).add(ConstantIntProvider.create(3), 1).build()), UniformIntProvider.create(2, 4), UniformIntProvider.create(-4, -3), UniformIntProvider.create(-1, 0)), + + BlockStateProvider.of(ModBlocks.LEMONWOOD_LEAVES), + new CherryFoliagePlacer(ConstantIntProvider.create(4), ConstantIntProvider.create(0), ConstantIntProvider.create(5), 0.25F, 0.5F, 0.16666667F, 0.33333334F), + + new TwoLayersFeatureSize(1, 0, 2)).build() + ); } public static RegistryKey> registerKey(String name) { diff --git a/src/main/java/com/acethewildfire/acesbs/world/tree/ModBlockSaplingGenerator.java b/src/main/java/com/acethewildfire/acesbs/world/tree/ModBlockSaplingGenerator.java new file mode 100644 index 0000000..7d89646 --- /dev/null +++ b/src/main/java/com/acethewildfire/acesbs/world/tree/ModBlockSaplingGenerator.java @@ -0,0 +1,12 @@ +package com.acethewildfire.acesbs.world.tree; + +import com.acethewildfire.acesbs.AcesBS; +import com.acethewildfire.acesbs.world.ModConfiguredFeatures; +import net.minecraft.block.SaplingGenerator; + +import java.util.Optional; + +public class ModBlockSaplingGenerator { + public static final SaplingGenerator LEMONWOOD = new SaplingGenerator(AcesBS.MOD_ID + ":lemonwood", + Optional.empty(), Optional.of(ModConfiguredFeatures.LEMONWOOD_KEY), Optional.empty()); +} diff --git a/src/main/resources/assets/acesbs/lang/en_us.json b/src/main/resources/assets/acesbs/lang/en_us.json index 1b68b7a..afd9cd7 100644 --- a/src/main/resources/assets/acesbs/lang/en_us.json +++ b/src/main/resources/assets/acesbs/lang/en_us.json @@ -96,6 +96,13 @@ "block.acesbs.lizard_planks": "Lizard Planks", "block.acesbs.lizard_button": "Lizard Button", + "block.acesbs.lemonwood_log": "Lemonwood Log", + "block.acesbs.lemonwood_wood": "Lemonwood Wood", + "block.acesbs.stripped_lemonwood_log": "Stripped Lemonwood Log", + "block.acesbs.stripped_lemonwood_wood": "Stripped Lemonwood Wood", + "block.acesbs.lemonwood_sapling": "Lemonwood Sapling", + "block.acesbs.lemonwood_leaves": "Lemonwood Leaves", + "block.acesbs.lemonwood_planks": "Lemonwood Planks", "block.acesbs.lemonwood_stairs": "Lemonwood Stairs", "block.acesbs.lemonwood_slab": "Lemonwood Slab", diff --git a/src/main/resources/assets/acesbs/textures/block/lemonwood_leaves.png b/src/main/resources/assets/acesbs/textures/block/lemonwood_leaves.png index b29f8c01e47ce5db20fcb7f226b920ea9b057ed1..ab8a2a986b4ee9b8ececbf552dd6009eecee36bb 100644 GIT binary patch literal 2921 zcmbVO4OkTA7XD^ucV~B5g2i1$9t4-=XEovil0gp;iwv+B8VibO-UL?@kWGI5 znM&LZe^MWiO^q~ALT{mIU>GR+5G4xQt@u|jDL;Z@K5@@1gKenyTEp|reDi&0&Uw#! z-t)0r=DiYTDY6qGge=wJAyM$OW`=+dcgMj|4MM`%OXsVT)asc?0BZ<614D>@M_h!# zj2Q?Un=>z%*_?yn2#4(~7&y!sTgETnY%XKxj2*@q^Rp4=9Cm(WEGWcg{zh9ye?is} zq3Tcw!~}=i=ruG43HW@1&l3;?AruNkVyUIr!a_XNW|Eb3nw_J=G&_6y>CPT*)1BNE z_V&sbX1IHL`S|!ay7>k8di#6K^6_SzU_zl#Y$3L_w6yh>+snQG@-|WMJR7-}ia&|c z5KgI5?`(aEKoML~Ba3S4bDov3I!7p)JjHgZor|lRa>h)b=V!m*>-XZE5Hd6@TpjUR zbWH5)^A{{kT(UH2S@QA~+BIw6S(lcck(-ylant54wBf_T?K^hv`e?WDh8II<7WTB;GLo2yZ1)! zGkGz2j$e<>O9FXuxLlk|FnM8|bue%VmnZk)+o&i)lRC-CJ6j+P)|XV&2o}0BFQMDXM*7~YmcU>m{p@Wkd!>;^ z_q%E3k*okigwps~Sba1_>e@Q;rBo0PhGSe4DeEIXmr^8BlhT;YBO);V%3u4R-AdzW zH2kW*)JXp}_-$Yn`1{3b3FB|X4otrGPh?F(VCRab3)~xKD~$9^KI1F%15*0>&qZEC z7p2sjXuVtgB?vpx;kcLyx9lhhyQK-41@O4!kW7(M1OprT6^!}oxoapgsF4jUQW~=Y zPcgw8;^ zxzDOR83@8#odId>BQVAx5G+l_aTF;V=-EFPfbLkCnGcVj9DGe!#}acnuQZ;xa6XzM z-?4s9N-b7ZvDj)z={&+5pDEycz_>4GyOdg#X92#pz0LCEY3B0(a)nJG)x3@md4Cd> zW_1KToYHa@Dve)NCU(vQhWh%?m@y;*=53(Tan&OZ@F?~Fj-hgbE*PW0vyfGLWAp*Y zNJG@$fl8~oi`hy`88M9U=Jz<il12cU6pVQS2Z zHN^ysh798FY=QC)T-5yBoH@g~}?LKfm-!F4E?3D|^^O{{@= zLz%*|P0upSG&=?mhAvp?!R7tji{rS)H1iaPTZB2gud;{5BWFuHNN{I>6Es=e(&A|# zv*AsJ6S4kDFHD!^YFPmku*G+W55H6OH$%mf(^V!3f=)B5Zt$2IDVj*x5V0FpOzPF8 zf*c!)^aBB4J}5EUaY$$NUxX z96<1vIz$!i+psn&fX?%@)orO1XpVlA^o68i7`-9L$*$TpUk?rL%12$jZopM2!*f$utX!(x;8jrxW2U1guVh!+GxYDwKySTCWWMMPj zq0jnhH42Kg5~DO{gx=rPecJ0t&x(IE6}_9%D%^A8dwW>OXwb(_3C%@8tNaXUcRs6i zsx$HqKI3|r*wKtvzU*(4_TJAG$=MyMboc$?tNiHh_O_FA%U2pQH%Pg>fWvB1nuEY{n4H!nwt^Ve)OoVT6N*qjNzh6Lz!i>?!d6i#;AXnynSlT zt;_XuK9%Ph%1T_5(_*c9e^;hN#J(9gG+I3E3SCB>yL|9;a<;R>KYf?GwAS_PjM-kR e*h+MD4O!}_H`*(U-Rhwd@H^m@kn-U8oc{s~SZ~Gv delta 182 zcmaDUc8qa?L_G^L0|Ud`yN`l^6n}tEh%1oZzH|GGnKL@t+Y53F&f9jF0EHM!g8YIR z9G=}s19DP5T^vIyZi$|}D0s+#$K_yqDXT$)*FCJeufnW4*xJ)L{Mg~t;KbLh*2~7axph=|w diff --git a/src/main/resources/assets/acesbs/textures/block/lemonwood_sapling.png b/src/main/resources/assets/acesbs/textures/block/lemonwood_sapling.png new file mode 100644 index 0000000000000000000000000000000000000000..27b4c79224c2474a8fcc9e2fcfb6fab88df57bc4 GIT binary patch literal 2475 zcmbVN2~bm46n#JY0zx1Gq#(QbQe;>a7`GrFhzjyi5v?MiqF8mh|{{%0*)se{qJt?zI*QZNiqZceYAPT zJcN+8)YmHzc3nz1EO?sr42B`ZR<8|~Mo6W$hyy-^CV+6!Ys5epXp|sqNT&>Jgigcg zhz{Xo5IX2oE>)K`LKkUtDi5O#)kz1PrqMUE!GOhi^BHU$Y(cv7yrtf75p_8{2JfM{ zh{IyBSxgR_&E|4BJT0NN7N4&*QBPk-XliUW$<)}y#N66mY;I|1WnzL)pJM0W=;GpH zCU&3c<}}0J*~N(}f^oTAExwkKwziRzg^7jJe_n%^kbpz=M8_-7T50!n8vS!@oM$A^Tox(Fskr!nYECW8UdM2I7XfT?HUC}HW7VQkB2p;Jm$A;-#7 zRU-<#`PAAuJVwst85kN(G`5*6#;4f2xK5ky=I$}qi}3dGmCjqVcuCOG;AP8KuUQ+h zZhhp2*tjj9ZQT|x+n$=1p0OiSu_rqxckkDE`|_2Ci;fhRlpZZReWv2-L?W?*81^)ZF^u;ct(AZ)@-9?0(jxe%||{uYZ8TMd2J?L&!$q5&$k5 zgF$DoDO?zBD+OG@U|Kk`^duxZELz{vDTO2S%qmpXaIKsJpNhg`Zt@JQU0Q9rDQIty zeHbwL|3dZ_*x$ICkro{T^5_CI8}+|d;03gCMCa^!rQ)T!cQ~%2C{-$6ak^{A$sf)e zxewRisYxO}y@n75U?5BduB>v_e^7=it378#DHS;S7oq>L9CByQlvfGKkTBIgLKsw+ zA4d}5guTOcRoGm}7|9hMR<_zoSdk zu2l4B%g32FANr6*h_5Uri7!&OwQ6Qd&3B}*n=2qL`6+X7Af`J!@M+0h^&z^*8up0GX68~T?(FQ{GA5F@D?JF5EW~Z7C+u*#cZGR+; zB`fRMD`+RwcdSm;xe&rP%1i;5q+^Jko%Oi#ob_$!T5p81sfrF4`?YZx;uVGsRsYUVP>uQonOtBcn^*g-ZfqDt?K0}#e zjrA!U&zIF`&apK#x4o15zN*7Fur-Ke@T%{ug%_0PLJ}L+`#@pmHe+0Q@%W|pefLJk z20DTJtm*DR(s8dilAzCuhJkiA(8hW7$Mfrymns$g`qVE9-9UjKb(*yb>U42=xH5UP z%pPpA7s;dGhaHOz^zp=+uGuAl!B{8plOUwp&3_rj1lxSIZ=fGSvdQo_pNh}`xRTou z+TwsvXDC7*c?cOs?XM(fK!6oK-^UBBL{{hwdALjg9&VKHvRH)p`jlWOf4>np*>O@o zg5AN_)fby4J}0`t^+f6=S?qQ_cae%$>ma-kyrX5gNGz$TnUcMIM~fNfab<6bSE0YX ze73o~G}h46WJTI7fBU1U9!DDY6gleJw?4Xme|`u@%PPJh@O*KVDS5!6c#W8Qx~gD- zG|F&VIFT#e_9cF6wK& z26F@U-l!g|jdArqR!&DPS;>8zZNH=i>!VBkmA+42luSFX*24;ZeNu2&+1zK?ADOgk SSC{JzfR3buzgM|usQfSORyGs> literal 0 HcmV?d00001