From 480e5d20864fea947b447403af0aa8c0d8633fb5 Mon Sep 17 00:00:00 2001 From: IM23a-spirgif Date: Sun, 11 May 2025 17:38:23 +0200 Subject: [PATCH] Added Basic Worldgen --- .../stalinium/datagen/DataGenerators.java | 1 + .../datagen/ModDatapackProvider.java | 27 ++++++++++++++++ .../stalinium/worldgen/ModBiomeModifiers.java | 22 +++++++++++++ .../worldgen/ModConfiguredFeatures.java | 27 ++++++++++++++++ .../stalinium/worldgen/ModPlacedFeatures.java | 31 +++++++++++++++++++ 5 files changed, 108 insertions(+) create mode 100644 src/main/java/net/krituximon/stalinium/datagen/ModDatapackProvider.java create mode 100644 src/main/java/net/krituximon/stalinium/worldgen/ModBiomeModifiers.java create mode 100644 src/main/java/net/krituximon/stalinium/worldgen/ModConfiguredFeatures.java create mode 100644 src/main/java/net/krituximon/stalinium/worldgen/ModPlacedFeatures.java diff --git a/src/main/java/net/krituximon/stalinium/datagen/DataGenerators.java b/src/main/java/net/krituximon/stalinium/datagen/DataGenerators.java index 5394570..bc0469d 100644 --- a/src/main/java/net/krituximon/stalinium/datagen/DataGenerators.java +++ b/src/main/java/net/krituximon/stalinium/datagen/DataGenerators.java @@ -36,5 +36,6 @@ public class DataGenerators { generator.addProvider(event.includeClient(), new ModItemModelProvider(packOutput, existingFileHelper)); generator.addProvider(event.includeClient(), new ModBlockStateProvider(packOutput, existingFileHelper)); + generator.addProvider(event.includeServer(), new ModDatapackProvider(packOutput, lookupProvider)); } } diff --git a/src/main/java/net/krituximon/stalinium/datagen/ModDatapackProvider.java b/src/main/java/net/krituximon/stalinium/datagen/ModDatapackProvider.java new file mode 100644 index 0000000..2b7db97 --- /dev/null +++ b/src/main/java/net/krituximon/stalinium/datagen/ModDatapackProvider.java @@ -0,0 +1,27 @@ +package net.krituximon.stalinium.datagen; + +import net.krituximon.stalinium.Stalinium; +import net.krituximon.stalinium.worldgen.ModBiomeModifiers; +import net.krituximon.stalinium.worldgen.ModConfiguredFeatures; +import net.krituximon.stalinium.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.neoforged.neoforge.common.data.DatapackBuiltinEntriesProvider; +import net.neoforged.neoforge.registries.NeoForgeRegistries; + +import java.util.Set; +import java.util.concurrent.CompletableFuture; + +public class ModDatapackProvider extends DatapackBuiltinEntriesProvider { + public static final RegistrySetBuilder BUILDER = new RegistrySetBuilder() + + .add(Registries.CONFIGURED_FEATURE, ModConfiguredFeatures::bootstrap) + .add(Registries.PLACED_FEATURE, ModPlacedFeatures::bootstrap) + .add(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ModBiomeModifiers::bootstrap); + + public ModDatapackProvider(PackOutput output, CompletableFuture registries) { + super(output, registries, BUILDER, Set.of(Stalinium.MODID)); + } +} \ No newline at end of file diff --git a/src/main/java/net/krituximon/stalinium/worldgen/ModBiomeModifiers.java b/src/main/java/net/krituximon/stalinium/worldgen/ModBiomeModifiers.java new file mode 100644 index 0000000..7560317 --- /dev/null +++ b/src/main/java/net/krituximon/stalinium/worldgen/ModBiomeModifiers.java @@ -0,0 +1,22 @@ +package net.krituximon.stalinium.worldgen; + +import net.krituximon.stalinium.Stalinium; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.BootstrapContext; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.neoforged.neoforge.common.world.BiomeModifier; +import net.neoforged.neoforge.registries.NeoForgeRegistries; + +public class ModBiomeModifiers { + + public static void bootstrap(BootstrapContext context) { + var placedFeatures = context.lookup(Registries.PLACED_FEATURE); + var biomes = context.lookup(Registries.BIOME); + + } + + private static ResourceKey registerKey(String name) { + return ResourceKey.create(NeoForgeRegistries.Keys.BIOME_MODIFIERS, ResourceLocation.fromNamespaceAndPath(Stalinium.MODID, name)); + } +} \ No newline at end of file diff --git a/src/main/java/net/krituximon/stalinium/worldgen/ModConfiguredFeatures.java b/src/main/java/net/krituximon/stalinium/worldgen/ModConfiguredFeatures.java new file mode 100644 index 0000000..4976cb9 --- /dev/null +++ b/src/main/java/net/krituximon/stalinium/worldgen/ModConfiguredFeatures.java @@ -0,0 +1,27 @@ +package net.krituximon.stalinium.worldgen; + +import net.krituximon.stalinium.Stalinium; +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(Stalinium.MODID, 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/net/krituximon/stalinium/worldgen/ModPlacedFeatures.java b/src/main/java/net/krituximon/stalinium/worldgen/ModPlacedFeatures.java new file mode 100644 index 0000000..e22a897 --- /dev/null +++ b/src/main/java/net/krituximon/stalinium/worldgen/ModPlacedFeatures.java @@ -0,0 +1,31 @@ +package net.krituximon.stalinium.worldgen; + +import net.krituximon.stalinium.Stalinium; +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(Stalinium.MODID, 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