Made permafrost generation actually respect the new snowy biomes tag, and moved ore generation to LOCAL_MODIFICATIONS to try and combat fabrics awful ordering nonsense
This commit is contained in:
@@ -7,8 +7,11 @@ import net.cmr.jurassicrevived.entity.ModEntities;
|
|||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.tags.BiomeTags;
|
import net.minecraft.tags.BiomeTags;
|
||||||
|
import net.minecraft.tags.TagKey;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.entity.MobCategory;
|
import net.minecraft.world.entity.MobCategory;
|
||||||
|
import net.minecraft.world.level.biome.Biome;
|
||||||
|
import net.minecraft.world.level.biome.Biomes;
|
||||||
import net.minecraft.world.level.biome.MobSpawnSettings;
|
import net.minecraft.world.level.biome.MobSpawnSettings;
|
||||||
import net.minecraft.world.level.levelgen.GenerationStep;
|
import net.minecraft.world.level.levelgen.GenerationStep;
|
||||||
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
||||||
@@ -21,7 +24,11 @@ public class ModWorldGeneration {
|
|||||||
|
|
||||||
public static void generateWorldGen() {
|
public static void generateWorldGen() {
|
||||||
for (ModWorldgenDefinitions.OreDefinition ore : ModWorldgenDefinitions.ORES) {
|
for (ModWorldgenDefinitions.OreDefinition ore : ModWorldgenDefinitions.ORES) {
|
||||||
addOverworldOre(ore.placedFeatureKey());
|
if (ore.name().equals("permafrost")) {
|
||||||
|
addSurfaceModification(ore.placedFeatureKey(), ore.biomeTag());
|
||||||
|
} else {
|
||||||
|
addUndergroundOre(ore.placedFeatureKey(), ore.biomeTag());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Constants.LOG.info("Natural dinosaur spawning config loaded as: {}", JRConfigManager.get().naturallySpawning);
|
Constants.LOG.info("Natural dinosaur spawning config loaded as: {}", JRConfigManager.get().naturallySpawning);
|
||||||
@@ -34,11 +41,19 @@ public class ModWorldGeneration {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void addOverworldOre(ResourceKey<PlacedFeature> placedFeature) {
|
private static void addUndergroundOre(ResourceKey<PlacedFeature> placedFeature, TagKey<Biome> biomeTag) {
|
||||||
BiomeModifications.addProperties(
|
BiomeModifications.addProperties(
|
||||||
context -> context.hasTag(BiomeTags.IS_OVERWORLD),
|
context -> context.hasTag(biomeTag),
|
||||||
(context, properties) -> properties.getGenerationProperties()
|
(context, properties) -> properties.getGenerationProperties()
|
||||||
.addFeature(GenerationStep.Decoration.UNDERGROUND_ORES, placedFeature)
|
.addFeature(GenerationStep.Decoration.LOCAL_MODIFICATIONS, placedFeature)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void addSurfaceModification(ResourceKey<PlacedFeature> placedFeature, TagKey<Biome> biomeTag) {
|
||||||
|
BiomeModifications.addProperties(
|
||||||
|
context -> context.hasTag(biomeTag),
|
||||||
|
(context, properties) -> properties.getGenerationProperties()
|
||||||
|
.addFeature(GenerationStep.Decoration.TOP_LAYER_MODIFICATION, placedFeature)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
package net.cmr.jurassicrevived.worldgen;
|
package net.cmr.jurassicrevived.worldgen;
|
||||||
|
|
||||||
import dev.architectury.registry.registries.RegistrySupplier;
|
|
||||||
import net.cmr.jurassicrevived.Constants;
|
import net.cmr.jurassicrevived.Constants;
|
||||||
import net.cmr.jurassicrevived.block.ModBlocks;
|
import net.cmr.jurassicrevived.block.ModBlocks;
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.tags.BiomeTags; // <-- Add this import
|
import net.minecraft.tags.BiomeTags;
|
||||||
import net.minecraft.tags.BlockTags;
|
import net.minecraft.tags.BlockTags;
|
||||||
import net.minecraft.tags.TagKey;
|
import net.minecraft.tags.TagKey;
|
||||||
import net.minecraft.world.food.FoodProperties;
|
import net.minecraft.world.level.biome.Biome;
|
||||||
import net.minecraft.world.item.Item;
|
|
||||||
import net.minecraft.world.level.biome.Biome; // <-- Add this import
|
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||||
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
||||||
@@ -33,7 +30,7 @@ public final class ModWorldgenDefinitions {
|
|||||||
20,
|
20,
|
||||||
32,
|
32,
|
||||||
64,
|
64,
|
||||||
BiomeTags.IS_OVERWORLD // <-- Add biome tag
|
BiomeTags.IS_OVERWORLD
|
||||||
),
|
),
|
||||||
new OreDefinition(
|
new OreDefinition(
|
||||||
"stone_fossil",
|
"stone_fossil",
|
||||||
@@ -75,15 +72,14 @@ public final class ModWorldgenDefinitions {
|
|||||||
0,
|
0,
|
||||||
BiomeTags.IS_OVERWORLD
|
BiomeTags.IS_OVERWORLD
|
||||||
),
|
),
|
||||||
// Add your new Permafrost generation here!
|
|
||||||
new OreDefinition(
|
new OreDefinition(
|
||||||
"permafrost",
|
"permafrost",
|
||||||
ModBlocks.PERMAFROST,
|
ModBlocks.PERMAFROST,
|
||||||
BlockTags.DIRT,
|
BlockTags.DIRT,
|
||||||
16, // Vein Size
|
8,
|
||||||
6, // Count
|
3,
|
||||||
60, // Min Y
|
60,
|
||||||
140,// Max Y
|
140,
|
||||||
SNOWY_BIOMES
|
SNOWY_BIOMES
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -96,7 +92,7 @@ public final class ModWorldgenDefinitions {
|
|||||||
int count,
|
int count,
|
||||||
int minY,
|
int minY,
|
||||||
int maxY,
|
int maxY,
|
||||||
TagKey<Biome> biomeTag // <-- Add this to the record
|
TagKey<Biome> biomeTag
|
||||||
) {
|
) {
|
||||||
public ResourceKey<ConfiguredFeature<?, ?>> configuredFeatureKey() {
|
public ResourceKey<ConfiguredFeature<?, ?>> configuredFeatureKey() {
|
||||||
return ResourceKey.create(Registries.CONFIGURED_FEATURE, Constants.rl(name));
|
return ResourceKey.create(Registries.CONFIGURED_FEATURE, Constants.rl(name));
|
||||||
|
|||||||
Reference in New Issue
Block a user