From 8c4e39162b75049b81a199860a1f753f31eeacbf Mon Sep 17 00:00:00 2001 From: Micle Date: Wed, 10 Jun 2026 18:20:16 +0100 Subject: [PATCH] Implemented world gen data gen. --- .../wildflowers_birch_forest.json | 189 ++++++++++++++++++ .../wildflowers_meadow.json | 189 ++++++++++++++++++ .../data/DataGenerators.java | 2 + .../data/server/ModWorldGenProvider.java | 21 ++ .../worldgen/ModConfiguredFeatures.java | 4 +- 5 files changed, 403 insertions(+), 2 deletions(-) create mode 100644 src/generated/resources/data/wildflowers_backport/worldgen/configured_feature/wildflowers_birch_forest.json create mode 100644 src/generated/resources/data/wildflowers_backport/worldgen/configured_feature/wildflowers_meadow.json create mode 100644 src/main/java/dev/micle/wildflowers_backport/data/server/ModWorldGenProvider.java diff --git a/src/generated/resources/data/wildflowers_backport/worldgen/configured_feature/wildflowers_birch_forest.json b/src/generated/resources/data/wildflowers_backport/worldgen/configured_feature/wildflowers_birch_forest.json new file mode 100644 index 0000000..69accab --- /dev/null +++ b/src/generated/resources/data/wildflowers_backport/worldgen/configured_feature/wildflowers_birch_forest.json @@ -0,0 +1,189 @@ +{ + "type": "minecraft:flower", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "north", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "east", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "south", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "west", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "north", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "east", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "south", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "west", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "north", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "east", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "south", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "west", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "north", + "flower_amount": "4" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "east", + "flower_amount": "4" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "south", + "flower_amount": "4" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "west", + "flower_amount": "4" + } + }, + "weight": 1 + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 64, + "xz_spread": 6, + "y_spread": 2 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/wildflowers_backport/worldgen/configured_feature/wildflowers_meadow.json b/src/generated/resources/data/wildflowers_backport/worldgen/configured_feature/wildflowers_meadow.json new file mode 100644 index 0000000..6396c85 --- /dev/null +++ b/src/generated/resources/data/wildflowers_backport/worldgen/configured_feature/wildflowers_meadow.json @@ -0,0 +1,189 @@ +{ + "type": "minecraft:flower", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "north", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "east", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "south", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "west", + "flower_amount": "1" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "north", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "east", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "south", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "west", + "flower_amount": "2" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "north", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "east", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "south", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "west", + "flower_amount": "3" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "north", + "flower_amount": "4" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "east", + "flower_amount": "4" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "south", + "flower_amount": "4" + } + }, + "weight": 1 + }, + { + "data": { + "Name": "wildflowers_backport:wildflowers", + "Properties": { + "facing": "west", + "flower_amount": "4" + } + }, + "weight": 1 + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "tries": 8, + "xz_spread": 6, + "y_spread": 2 + } +} \ No newline at end of file diff --git a/src/main/java/dev/micle/wildflowers_backport/data/DataGenerators.java b/src/main/java/dev/micle/wildflowers_backport/data/DataGenerators.java index 705e26c..1f6f1c0 100644 --- a/src/main/java/dev/micle/wildflowers_backport/data/DataGenerators.java +++ b/src/main/java/dev/micle/wildflowers_backport/data/DataGenerators.java @@ -4,6 +4,7 @@ import dev.micle.wildflowers_backport.WildflowersBackport; import dev.micle.wildflowers_backport.data.client.ModBlockStateProvider; import dev.micle.wildflowers_backport.data.client.ModItemModelProvider; import dev.micle.wildflowers_backport.data.server.ModLootTableProvider; +import dev.micle.wildflowers_backport.data.server.ModWorldGenProvider; import net.minecraft.core.HolderLookup; import net.minecraft.data.DataGenerator; import net.minecraftforge.common.data.ExistingFileHelper; @@ -25,5 +26,6 @@ public class DataGenerators { generator.addProvider(event.includeClient(), new ModItemModelProvider(generator, existingFileHelper)); generator.addProvider(event.includeServer(), new ModLootTableProvider(generator)); + generator.addProvider(event.includeServer(), new ModWorldGenProvider(generator, lookupProvider)); } } diff --git a/src/main/java/dev/micle/wildflowers_backport/data/server/ModWorldGenProvider.java b/src/main/java/dev/micle/wildflowers_backport/data/server/ModWorldGenProvider.java new file mode 100644 index 0000000..815678f --- /dev/null +++ b/src/main/java/dev/micle/wildflowers_backport/data/server/ModWorldGenProvider.java @@ -0,0 +1,21 @@ +package dev.micle.wildflowers_backport.data.server; + +import dev.micle.wildflowers_backport.WildflowersBackport; +import dev.micle.wildflowers_backport.worldgen.ModConfiguredFeatures; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.RegistrySetBuilder; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.DataGenerator; +import net.minecraftforge.common.data.DatapackBuiltinEntriesProvider; + +import java.util.Set; +import java.util.concurrent.CompletableFuture; + +public class ModWorldGenProvider extends DatapackBuiltinEntriesProvider { + public static final RegistrySetBuilder BUILDER = new RegistrySetBuilder() + .add(Registries.CONFIGURED_FEATURE, ModConfiguredFeatures::bootstrap); + + public ModWorldGenProvider(DataGenerator generator, CompletableFuture registries) { + super(generator.getPackOutput(), registries, BUILDER, Set.of(WildflowersBackport.MOD_ID)); + } +} diff --git a/src/main/java/dev/micle/wildflowers_backport/worldgen/ModConfiguredFeatures.java b/src/main/java/dev/micle/wildflowers_backport/worldgen/ModConfiguredFeatures.java index a3d4c0e..27f9d7f 100644 --- a/src/main/java/dev/micle/wildflowers_backport/worldgen/ModConfiguredFeatures.java +++ b/src/main/java/dev/micle/wildflowers_backport/worldgen/ModConfiguredFeatures.java @@ -63,8 +63,8 @@ public class ModConfiguredFeatures { private static SimpleWeightedRandomList createAllPossibleFlowerBedBlockEntries(Block block) { SimpleWeightedRandomList.Builder builder = SimpleWeightedRandomList.builder(); - for (Direction direction : Direction.Plane.HORIZONTAL) { - for (int i = FlowerBedBlock.MIN_SEGMENT; i <= FlowerBedBlock.MAX_SEGMENT; i++) { + for (int i = FlowerBedBlock.MIN_SEGMENT; i <= FlowerBedBlock.MAX_SEGMENT; i++) { + for (Direction direction : Direction.Plane.HORIZONTAL) { builder.add(block.defaultBlockState().setValue(FlowerBedBlock.FACING, direction).setValue(FlowerBedBlock.AMOUNT, i), 1); } }