Datagen the biome modifiers

This commit is contained in:
Mrbysco 2023-07-25 21:47:14 +02:00
parent 6192523202
commit 6d594176a0
12 changed files with 91 additions and 33 deletions

View file

@ -0,0 +1,6 @@
{
"type": "forge:add_features",
"biomes": "#minecraft:is_overworld",
"features": "naturesaura:aura_bloom",
"step": "vegetal_decoration"
}

View file

@ -0,0 +1,6 @@
{
"type": "forge:add_features",
"biomes": "#forge:is_sandy",
"features": "naturesaura:aura_cactus",
"step": "vegetal_decoration"
}

View file

@ -0,0 +1,6 @@
{
"type": "forge:add_features",
"biomes": "#forge:is_mushroom",
"features": "naturesaura:aura_mushroom",
"step": "vegetal_decoration"
}

View file

@ -0,0 +1,6 @@
{
"type": "forge:add_features",
"biomes": "#minecraft:is_nether",
"features": "naturesaura:crimson_aura_mushroom",
"step": "vegetal_decoration"
}

View file

@ -0,0 +1,6 @@
{
"type": "forge:add_features",
"biomes": "#minecraft:is_nether",
"features": "naturesaura:warped_aura_mushroom",
"step": "vegetal_decoration"
}

View file

@ -0,0 +1,60 @@
package de.ellpeck.naturesaura.data;
import de.ellpeck.naturesaura.NaturesAura;
import de.ellpeck.naturesaura.gen.ModFeatures;
import net.minecraft.core.HolderGetter;
import net.minecraft.core.HolderSet;
import net.minecraft.core.registries.Registries;
import net.minecraft.data.worldgen.BootstapContext;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.BiomeTags;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.levelgen.GenerationStep;
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
import net.minecraftforge.common.Tags;
import net.minecraftforge.common.world.BiomeModifier;
import net.minecraftforge.common.world.ForgeBiomeModifiers;
import net.minecraftforge.registries.ForgeRegistries;
public class BiomeModifiers {
public static ResourceKey<BiomeModifier> AURA_BLOOM = createKey("aura_bloom");
public static ResourceKey<BiomeModifier> AURA_CACTUS = createKey("aura_cactus");
public static ResourceKey<BiomeModifier> WARPED_AURA_MUSHROOM = createKey("warped_aura_mushroom");
public static ResourceKey<BiomeModifier> CRIMSON_AURA_MUSHROOM = createKey("crimson_aura_mushroom");
public static ResourceKey<BiomeModifier> AURA_MUSHROOM = createKey("aura_mushroom");
private static ResourceKey<BiomeModifier> createKey(String id) {
return ResourceKey.create(ForgeRegistries.Keys.BIOME_MODIFIERS, new ResourceLocation(NaturesAura.MOD_ID, id));
}
public static void bootstrap(BootstapContext<BiomeModifier> context) {
HolderGetter<Biome> biomeGetter = context.lookup(Registries.BIOME);
HolderGetter<PlacedFeature> placedGetter = context.lookup(Registries.PLACED_FEATURE);
context.register(AURA_BLOOM, new ForgeBiomeModifiers.AddFeaturesBiomeModifier(
biomeGetter.getOrThrow(BiomeTags.IS_OVERWORLD),
HolderSet.direct(placedGetter.getOrThrow(ModFeatures.Placed.AURA_BLOOM)),
GenerationStep.Decoration.VEGETAL_DECORATION));
context.register(AURA_CACTUS, new ForgeBiomeModifiers.AddFeaturesBiomeModifier(
biomeGetter.getOrThrow(Tags.Biomes.IS_SANDY),
HolderSet.direct(placedGetter.getOrThrow(ModFeatures.Placed.AURA_CACTUS)),
GenerationStep.Decoration.VEGETAL_DECORATION));
context.register(AURA_MUSHROOM, new ForgeBiomeModifiers.AddFeaturesBiomeModifier(
biomeGetter.getOrThrow(Tags.Biomes.IS_MUSHROOM),
HolderSet.direct(placedGetter.getOrThrow(ModFeatures.Placed.AURA_MUSHROOM)),
GenerationStep.Decoration.VEGETAL_DECORATION));
context.register(CRIMSON_AURA_MUSHROOM, new ForgeBiomeModifiers.AddFeaturesBiomeModifier(
biomeGetter.getOrThrow(BiomeTags.IS_NETHER),
HolderSet.direct(placedGetter.getOrThrow(ModFeatures.Placed.CRIMSON_AURA_MUSHROOM)),
GenerationStep.Decoration.VEGETAL_DECORATION));
context.register(WARPED_AURA_MUSHROOM, new ForgeBiomeModifiers.AddFeaturesBiomeModifier(
biomeGetter.getOrThrow(BiomeTags.IS_NETHER),
HolderSet.direct(placedGetter.getOrThrow(ModFeatures.Placed.WARPED_AURA_MUSHROOM)),
GenerationStep.Decoration.VEGETAL_DECORATION));
}
}

View file

@ -43,9 +43,7 @@ public final class ModData {
final RegistrySetBuilder registryBuilder = new RegistrySetBuilder();
registryBuilder.add(Registries.CONFIGURED_FEATURE, ModFeatures.Configured::bootstrap);
registryBuilder.add(Registries.PLACED_FEATURE, ModFeatures.Placed::bootstrap);
registryBuilder.add(ForgeRegistries.Keys.BIOME_MODIFIERS, context -> {
});
registryBuilder.add(ForgeRegistries.Keys.BIOME_MODIFIERS, BiomeModifiers::bootstrap);
// We need the BIOME registry to be present, so we can use a biome tag, doesn't matter that it's empty
registryBuilder.add(Registries.BIOME, context -> {
});

View file

@ -1,6 +0,0 @@
{
"type": "forge:add_features",
"biomes": "#forge:is_overworld",
"features": "naturesaura:aura_bloom",
"step": "vegetal_decoration"
}

View file

@ -1,6 +0,0 @@
{
"type": "forge:add_features",
"biomes": "#forge:is_sandy",
"features": "naturesaura:aura_cactus",
"step": "vegetal_decoration"
}

View file

@ -1,6 +0,0 @@
{
"type": "forge:add_features",
"biomes": "#forge:is_mushroom",
"features": "naturesaura:aura_mushroom",
"step": "vegetal_decoration"
}

View file

@ -1,6 +0,0 @@
{
"type": "forge:add_features",
"biomes": "#minecraft:is_nether",
"features": "naturesaura:crimson_aura_mushroom",
"step": "vegetal_decoration"
}

View file

@ -1,6 +0,0 @@
{
"type": "forge:add_features",
"biomes": "#minecraft:is_nether",
"features": "naturesaura:warped_aura_mushroom",
"step": "vegetal_decoration"
}