From 24bb7a6438db934db2013c83c87e56d42c3a1ce5 Mon Sep 17 00:00:00 2001 From: sillyangel Date: Sat, 4 Jan 2025 16:12:00 -0600 Subject: [PATCH] world gen --- .../nugget/datagen/ModDatapackEntries.java | 11 +++++-- .../nugget/worldgen/ModBiomeModifiers.java | 24 ++++++++++++++ .../worldgen/ModConfiguredFeatures.java | 27 ++++++++++++++++ .../nugget/worldgen/ModPlacedFeatures.java | 31 +++++++++++++++++++ 4 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 src/main/java/xyz/sillyangel/nugget/worldgen/ModBiomeModifiers.java create mode 100644 src/main/java/xyz/sillyangel/nugget/worldgen/ModConfiguredFeatures.java create mode 100644 src/main/java/xyz/sillyangel/nugget/worldgen/ModPlacedFeatures.java diff --git a/src/main/java/xyz/sillyangel/nugget/datagen/ModDatapackEntries.java b/src/main/java/xyz/sillyangel/nugget/datagen/ModDatapackEntries.java index e4a1070..63ca0c4 100644 --- a/src/main/java/xyz/sillyangel/nugget/datagen/ModDatapackEntries.java +++ b/src/main/java/xyz/sillyangel/nugget/datagen/ModDatapackEntries.java @@ -1,14 +1,17 @@ package xyz.sillyangel.nugget.datagen; import xyz.sillyangel.nugget.NuggetMod; -import net.minecraftforge.common.data.DatapackBuiltinEntriesProvider; import xyz.sillyangel.nugget.trim.ModTrimMaterials; import xyz.sillyangel.nugget.trim.ModTrimPatterns; +import xyz.sillyangel.nugget.worldgen.ModBiomeModifiers; +import xyz.sillyangel.nugget.worldgen.ModConfiguredFeatures; +import xyz.sillyangel.nugget.worldgen.ModPlacedFeatures; import net.minecraft.core.HolderLookup; import net.minecraft.core.RegistrySetBuilder; import net.minecraft.core.registries.Registries; import net.minecraft.data.PackOutput; import net.minecraftforge.common.data.DatapackBuiltinEntriesProvider; +import net.minecraftforge.registries.ForgeRegistries; import java.util.Set; import java.util.concurrent.CompletableFuture; @@ -16,7 +19,11 @@ import java.util.concurrent.CompletableFuture; public class ModDatapackEntries extends DatapackBuiltinEntriesProvider { public static final RegistrySetBuilder BUILDER = new RegistrySetBuilder() .add(Registries.TRIM_MATERIAL, ModTrimMaterials::bootstrap) - .add(Registries.TRIM_PATTERN, ModTrimPatterns::bootstrap); + .add(Registries.TRIM_PATTERN, ModTrimPatterns::bootstrap) + + .add(Registries.CONFIGURED_FEATURE, ModConfiguredFeatures::bootstrap) + .add(Registries.PLACED_FEATURE, ModPlacedFeatures::bootstrap) + .add(ForgeRegistries.Keys.BIOME_MODIFIERS, ModBiomeModifiers::bootstrap); public ModDatapackEntries(PackOutput output, CompletableFuture registries) { super(output, registries, BUILDER, Set.of(NuggetMod.MOD_ID)); diff --git a/src/main/java/xyz/sillyangel/nugget/worldgen/ModBiomeModifiers.java b/src/main/java/xyz/sillyangel/nugget/worldgen/ModBiomeModifiers.java new file mode 100644 index 0000000..4bbe105 --- /dev/null +++ b/src/main/java/xyz/sillyangel/nugget/worldgen/ModBiomeModifiers.java @@ -0,0 +1,24 @@ +package xyz.sillyangel.nugget.worldgen; + +import xyz.sillyangel.nugget.NuggetMod; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.BootstrapContext; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.common.world.BiomeModifier; +import net.minecraftforge.registries.ForgeRegistries; + +public class ModBiomeModifiers { + + public static void bootstrap(BootstrapContext context) { + var placedFeature = context.lookup(Registries.PLACED_FEATURE); + var biomes = context.lookup(Registries.BIOME); + + + + } + + private static ResourceKey registerKey(String name) { + return ResourceKey.create(ForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); + } +} \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/worldgen/ModConfiguredFeatures.java b/src/main/java/xyz/sillyangel/nugget/worldgen/ModConfiguredFeatures.java new file mode 100644 index 0000000..ef38b92 --- /dev/null +++ b/src/main/java/xyz/sillyangel/nugget/worldgen/ModConfiguredFeatures.java @@ -0,0 +1,27 @@ +package xyz.sillyangel.nugget.worldgen; + +import xyz.sillyangel.nugget.NuggetMod; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.BootstrapContext; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration; + +public class ModConfiguredFeatures { + + public static void bootstrap(BootstrapContext> context) { + + + } + + public static ResourceKey> registerKey(String name) { + return ResourceKey.create(Registries.CONFIGURED_FEATURE, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); + } + + private static > void register(BootstrapContext> context, + ResourceKey> key, F feature, FC configuration) { + context.register(key, new ConfiguredFeature<>(feature, configuration)); + } +} \ No newline at end of file diff --git a/src/main/java/xyz/sillyangel/nugget/worldgen/ModPlacedFeatures.java b/src/main/java/xyz/sillyangel/nugget/worldgen/ModPlacedFeatures.java new file mode 100644 index 0000000..5482432 --- /dev/null +++ b/src/main/java/xyz/sillyangel/nugget/worldgen/ModPlacedFeatures.java @@ -0,0 +1,31 @@ +package xyz.sillyangel.nugget.worldgen; + +import xyz.sillyangel.nugget.NuggetMod; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.BootstrapContext; +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.PlacedFeature; +import net.minecraft.world.level.levelgen.placement.PlacementModifier; + +import java.util.List; + +public class ModPlacedFeatures { + + public static void bootstrap(BootstrapContext context) { + var configuredFeatures = context.lookup(Registries.CONFIGURED_FEATURE); + + + } + + private static ResourceKey registerKey(String name) { + return ResourceKey.create(Registries.PLACED_FEATURE, ResourceLocation.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); + } + + private static void register(BootstrapContext context, ResourceKey key, Holder> configuration, + List modifiers) { + context.register(key, new PlacedFeature(configuration, List.copyOf(modifiers))); + } +} \ No newline at end of file