From 4c6b784b60cf81698405a3b4588f3eb4535d4869 Mon Sep 17 00:00:00 2001 From: Micle Date: Fri, 6 Jun 2025 03:37:38 +0100 Subject: [PATCH] Created placed features registry. Created feature for firefly bush swamp patch. --- .../worldgen/ModPlacedFeatures.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/main/java/dev/micle/firefly_bush_backport/worldgen/ModPlacedFeatures.java diff --git a/src/main/java/dev/micle/firefly_bush_backport/worldgen/ModPlacedFeatures.java b/src/main/java/dev/micle/firefly_bush_backport/worldgen/ModPlacedFeatures.java new file mode 100644 index 0000000..9012fcf --- /dev/null +++ b/src/main/java/dev/micle/firefly_bush_backport/worldgen/ModPlacedFeatures.java @@ -0,0 +1,37 @@ +package dev.micle.firefly_bush_backport.worldgen; + +import dev.micle.firefly_bush_backport.FireflyBushBackport; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderGetter; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.placement.PlacementUtils; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.placement.*; + +import java.util.List; + +public class ModPlacedFeatures { + public static final ResourceKey PATCH_FIREFLY_BUSH_SWAMP_PLACED_KEY = registerKey("patch_firefly_bush_swamp"); + + public static void bootstrap(BootstapContext context) { + HolderGetter> configuredFeatures = context.lookup(Registries.CONFIGURED_FEATURE); + + register(context, PATCH_FIREFLY_BUSH_SWAMP_PLACED_KEY, configuredFeatures.getOrThrow(ModConfiguredFeatures.PATCH_FIREFLY_BUSH_KEY), List.of( + RarityFilter.onAverageOnceEvery(8), + InSquarePlacement.spread(), + PlacementUtils.HEIGHTMAP, + BiomeFilter.biome() + )); + } + + private static ResourceKey registerKey(String name) { + return ResourceKey.create(Registries.PLACED_FEATURE, ResourceLocation.fromNamespaceAndPath(FireflyBushBackport.MOD_ID, name)); + } + + private static void register(BootstapContext context, ResourceKey key, Holder> configuration, List modifiers) { + context.register(key, new PlacedFeature(configuration, List.copyOf(modifiers))); + } +}