From 2a0f58a7296ef902553b1ae6e8515ea1e2016768 Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 8 Dec 2021 23:59:53 +0100 Subject: [PATCH] Fixed surface block setting --- src/main/java/ru/betterend/BetterEnd.java | 66 +++++++++++++++++-- .../world/biome/land/AmberLandBiome.java | 3 +- .../biome/land/BlossomingSpiresBiome.java | 3 +- .../world/biome/land/ChorusForestBiome.java | 2 +- .../biome/land/CrystalMountainsBiome.java | 2 +- .../biome/land/DragonGraveyardsBiome.java | 2 +- .../world/biome/land/DryShrublandBiome.java | 2 +- .../world/biome/land/DustWastelandsBiome.java | 2 +- .../biome/land/GlowingGrasslandsBiome.java | 2 +- .../world/biome/land/LanternWoodsBiome.java | 2 +- .../world/biome/land/MegalakeGroveBiome.java | 2 +- .../biome/land/PaintedMountainsBiome.java | 2 +- .../world/biome/land/ShadowForestBiome.java | 2 +- .../world/biome/land/UmbrellaJungleBiome.java | 2 +- 14 files changed, 73 insertions(+), 21 deletions(-) diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index 66c8da97..fac7cc0a 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -1,8 +1,28 @@ package ru.betterend; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; +import java.util.LinkedList; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; +import java.util.function.Consumer; +import java.util.function.Supplier; + +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; + +import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import net.fabricmc.api.ModInitializer; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.levelgen.placement.PlacedFeature; +import org.apache.commons.lang3.mutable.MutableInt; import ru.bclib.api.WorldDataAPI; import ru.bclib.api.biomes.BiomeAPI; import ru.bclib.util.Logger; @@ -34,7 +54,7 @@ public class BetterEnd implements ModInitializer { public static final String MOD_ID = "betterend"; public static final Logger LOGGER = new Logger(MOD_ID); public static final boolean RUNS_FALL_FLYING_LIB = FabricLoader.getInstance().getModContainer("fallflyinglib").isPresent(); - + @Override public void onInitialize() { WorldDataAPI.registerModCache(MOD_ID); @@ -60,19 +80,53 @@ public class BetterEnd implements ModInitializer { FabricLoader.getInstance().getEntrypoints("betterend", BetterEndPlugin.class).forEach(BetterEndPlugin::register); Integrations.init(); Configs.saveConfigs(); - + if (GeneratorOptions.useNewGenerator()) { ru.bclib.world.generator.GeneratorOptions.setFarEndBiomes(GeneratorOptions.getIslandDistBlock() > 250000L); ru.bclib.world.generator.GeneratorOptions.setEndLandFunction((pos) -> TerrainGenerator.isLand(pos.x, pos.y)); } - + BiomeAPI.registerEndBiomeModification((biomeID, biome) -> { - EndStructures.addBiomeStructures(biomeID, biome); - EndFeatures.addBiomeFeatures(biomeID, biome); + //EndStructures.addBiomeStructures(biomeID, biome); + //TODO: 1.18 disabled to test feature-sorting of BE biomes + //EndFeatures.addBiomeFeatures(biomeID, biome); }); + List biomes = new LinkedList<>(); + biomes.add(net.minecraft.data.worldgen.biome.EndBiomes.endBarrens()); + biomes.add(net.minecraft.data.worldgen.biome.EndBiomes.endHighlands()); + biomes.add(net.minecraft.data.worldgen.biome.EndBiomes.endMidlands()); + biomes.add(net.minecraft.data.worldgen.biome.EndBiomes.theEnd()); + biomes.add(net.minecraft.data.worldgen.biome.EndBiomes.smallEndIslands()); + + List lBiomes = new LinkedList<>(); + lBiomes.add(EndBiomes.FOGGY_MUSHROOMLAND.getBiome()); + lBiomes.add(EndBiomes.CHORUS_FOREST.getBiome()); + lBiomes.add(EndBiomes.DUST_WASTELANDS.getBiome()); + lBiomes.add(EndBiomes.MEGALAKE.getBiome()); + lBiomes.add(EndBiomes.MEGALAKE_GROVE.getBiome()); + lBiomes.add(EndBiomes.CRYSTAL_MOUNTAINS.getBiome()); + lBiomes.add(EndBiomes.PAINTED_MOUNTAINS.getBiome()); + lBiomes.add(EndBiomes.SHADOW_FOREST.getBiome()); + lBiomes.add(EndBiomes.AMBER_LAND.getBiome()); + lBiomes.add(EndBiomes.BLOSSOMING_SPIRES.getBiome()); + lBiomes.add(EndBiomes.SULPHUR_SPRINGS.getBiome()); + lBiomes.add(EndBiomes.UMBRELLA_JUNGLE.getBiome()); + lBiomes.add(EndBiomes.GLOWING_GRASSLANDS.getBiome()); + lBiomes.add(EndBiomes.DRAGON_GRAVEYARDS.getBiome()); + lBiomes.add(EndBiomes.DRY_SHRUBLAND.getBiome()); + lBiomes.add(EndBiomes.LANTERN_WOODS.getBiome()); + lBiomes.add(EndBiomes.NEON_OASIS.getBiome()); + lBiomes.add(EndBiomes.UMBRA_VALLEY.getBiome()); + + lBiomes.forEach(biome -> { + BiomeAPI.sortBiomeFeatures(biome); + }); + biomes.addAll(lBiomes); + + //buildFeaturesPerStep(lBiomes, true); } - public static ResourceLocation makeID(String path) { return new ResourceLocation(MOD_ID, path); } + } diff --git a/src/main/java/ru/betterend/world/biome/land/AmberLandBiome.java b/src/main/java/ru/betterend/world/biome/land/AmberLandBiome.java index 6c203c17..8fea021b 100644 --- a/src/main/java/ru/betterend/world/biome/land/AmberLandBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/AmberLandBiome.java @@ -2,7 +2,6 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.levelgen.SurfaceRules; import ru.bclib.api.biomes.BCLBiomeBuilder; import ru.bclib.api.biomes.SurfaceMaterialProvider; import ru.betterend.registry.EndBlocks; @@ -26,7 +25,7 @@ public class AmberLandBiome extends EndBiome.Config { .music(EndSounds.MUSIC_FOREST) .loop(EndSounds.AMBIENT_AMBER_LAND) .particles(EndParticles.AMBER_SPHERE, 0.001F) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) .feature(EndFeatures.AMBER_ORE) .feature(EndFeatures.END_LAKE_RARE) .feature(EndFeatures.HELIX_TREE) diff --git a/src/main/java/ru/betterend/world/biome/land/BlossomingSpiresBiome.java b/src/main/java/ru/betterend/world/biome/land/BlossomingSpiresBiome.java index a1528ac0..556624ee 100644 --- a/src/main/java/ru/betterend/world/biome/land/BlossomingSpiresBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/BlossomingSpiresBiome.java @@ -2,7 +2,6 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.levelgen.SurfaceRules; import ru.bclib.api.biomes.BCLBiomeBuilder; import ru.bclib.api.biomes.SurfaceMaterialProvider; import ru.betterend.registry.EndBlocks; @@ -26,7 +25,7 @@ public class BlossomingSpiresBiome extends EndBiome.Config { builder.fogColor(241, 146, 229) .fogDensity(1.7F) .plantsColor(122, 45, 122) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) .music(EndSounds.MUSIC_FOREST) .loop(EndSounds.AMBIENT_BLOSSOMING_SPIRES) .feature(EndFeatures.SPIRE) diff --git a/src/main/java/ru/betterend/world/biome/land/ChorusForestBiome.java b/src/main/java/ru/betterend/world/biome/land/ChorusForestBiome.java index f4d8a3aa..f9d72008 100644 --- a/src/main/java/ru/betterend/world/biome/land/ChorusForestBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/ChorusForestBiome.java @@ -25,7 +25,7 @@ public class ChorusForestBiome extends EndBiome.Config { .fogDensity(1.5F) .plantsColor(122, 45, 122) .waterAndFogColor(73, 30, 73) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) .particles(ParticleTypes.PORTAL, 0.01F) .loop(EndSounds.AMBIENT_CHORUS_FOREST) .music(EndSounds.MUSIC_DARK) diff --git a/src/main/java/ru/betterend/world/biome/land/CrystalMountainsBiome.java b/src/main/java/ru/betterend/world/biome/land/CrystalMountainsBiome.java index 76c27e34..23aeb881 100644 --- a/src/main/java/ru/betterend/world/biome/land/CrystalMountainsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/CrystalMountainsBiome.java @@ -20,7 +20,7 @@ public class CrystalMountainsBiome extends EndBiome.Config { protected void addCustomBuildData(BCLBiomeBuilder builder) { builder.structure(EndStructures.MOUNTAIN.getFeatureConfigured()) .plantsColor(255, 133, 211) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) .music(EndSounds.MUSIC_OPENSPACE) .feature(EndFeatures.CRYSTAL_GRASS) .spawn(EntityType.ENDERMAN, 50, 1, 2); diff --git a/src/main/java/ru/betterend/world/biome/land/DragonGraveyardsBiome.java b/src/main/java/ru/betterend/world/biome/land/DragonGraveyardsBiome.java index 83f1a6c6..7b8ae4a0 100644 --- a/src/main/java/ru/betterend/world/biome/land/DragonGraveyardsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/DragonGraveyardsBiome.java @@ -24,7 +24,7 @@ public class DragonGraveyardsBiome extends EndBiome.Config { .particles(EndParticles.FIREFLY, 0.0007F) .music(EndSounds.MUSIC_OPENSPACE) .loop(EndSounds.AMBIENT_GLOWING_GRASSLANDS) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) .waterAndFogColor(203, 59, 167) .plantsColor(244, 46, 79) .feature(EndFeatures.OBSIDIAN_PILLAR_BASEMENT) diff --git a/src/main/java/ru/betterend/world/biome/land/DryShrublandBiome.java b/src/main/java/ru/betterend/world/biome/land/DryShrublandBiome.java index d1a3dd79..bcad4896 100644 --- a/src/main/java/ru/betterend/world/biome/land/DryShrublandBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/DryShrublandBiome.java @@ -21,7 +21,7 @@ public class DryShrublandBiome extends EndBiome.Config { .fogDensity(1.2F) .waterAndFogColor(113, 88, 53) .plantsColor(237, 122, 66) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) .music(EndSounds.MUSIC_OPENSPACE) .feature(EndFeatures.LUCERNIA_BUSH_RARE) .feature(EndFeatures.ORANGO) diff --git a/src/main/java/ru/betterend/world/biome/land/DustWastelandsBiome.java b/src/main/java/ru/betterend/world/biome/land/DustWastelandsBiome.java index 0c6a8220..b667f83f 100644 --- a/src/main/java/ru/betterend/world/biome/land/DustWastelandsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/DustWastelandsBiome.java @@ -20,7 +20,7 @@ public class DustWastelandsBiome extends EndBiome.Config { builder.fogColor(226, 239, 168) .fogDensity(2) .waterAndFogColor(192, 180, 131) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) //TODO: 1.18 removed //.depth(1.5F) .particles(ParticleTypes.WHITE_ASH, 0.01F) diff --git a/src/main/java/ru/betterend/world/biome/land/GlowingGrasslandsBiome.java b/src/main/java/ru/betterend/world/biome/land/GlowingGrasslandsBiome.java index 4ce5cbc3..d851e6d0 100644 --- a/src/main/java/ru/betterend/world/biome/land/GlowingGrasslandsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/GlowingGrasslandsBiome.java @@ -23,7 +23,7 @@ public class GlowingGrasslandsBiome extends EndBiome.Config { .particles(EndParticles.FIREFLY, 0.001F) .music(EndSounds.MUSIC_OPENSPACE) .loop(EndSounds.AMBIENT_GLOWING_GRASSLANDS) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) .waterAndFogColor(92, 250, 230) .plantsColor(73, 210, 209) .feature(EndFeatures.END_LAKE_RARE) diff --git a/src/main/java/ru/betterend/world/biome/land/LanternWoodsBiome.java b/src/main/java/ru/betterend/world/biome/land/LanternWoodsBiome.java index b0f17522..0edc9a72 100644 --- a/src/main/java/ru/betterend/world/biome/land/LanternWoodsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/LanternWoodsBiome.java @@ -22,7 +22,7 @@ public class LanternWoodsBiome extends EndBiome.Config { .fogDensity(1.1F) .waterAndFogColor(171, 234, 226) .plantsColor(254, 85, 57) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) .music(EndSounds.MUSIC_FOREST) .particles(EndParticles.GLOWING_SPHERE, 0.001F) .feature(EndFeatures.END_LAKE_NORMAL) diff --git a/src/main/java/ru/betterend/world/biome/land/MegalakeGroveBiome.java b/src/main/java/ru/betterend/world/biome/land/MegalakeGroveBiome.java index b5e46944..7e9be0b9 100644 --- a/src/main/java/ru/betterend/world/biome/land/MegalakeGroveBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/MegalakeGroveBiome.java @@ -28,7 +28,7 @@ public class MegalakeGroveBiome extends EndBiome.Config { .particles(EndParticles.GLOWING_SPHERE, 0.001F) .music(EndSounds.MUSIC_WATER) .loop(EndSounds.AMBIENT_MEGALAKE_GROVE) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) //TODO: 1.18 removed //.depth(0F) .feature(EndFeatures.LACUGROVE) diff --git a/src/main/java/ru/betterend/world/biome/land/PaintedMountainsBiome.java b/src/main/java/ru/betterend/world/biome/land/PaintedMountainsBiome.java index 71cbc689..5bad1e43 100644 --- a/src/main/java/ru/betterend/world/biome/land/PaintedMountainsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/PaintedMountainsBiome.java @@ -24,7 +24,7 @@ public class PaintedMountainsBiome extends EndBiome.Config { .waterAndFogColor(192, 180, 131) .music(EndSounds.MUSIC_OPENSPACE) .loop(EndSounds.AMBIENT_DUST_WASTELANDS) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) .particles(ParticleTypes.WHITE_ASH, 0.01F) .spawn(EntityType.ENDERMAN, 50, 1, 2); } diff --git a/src/main/java/ru/betterend/world/biome/land/ShadowForestBiome.java b/src/main/java/ru/betterend/world/biome/land/ShadowForestBiome.java index eb613ab0..8db43eaf 100644 --- a/src/main/java/ru/betterend/world/biome/land/ShadowForestBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/ShadowForestBiome.java @@ -23,7 +23,7 @@ public class ShadowForestBiome extends EndBiome.Config { .fogDensity(2.5F) .plantsColor(45, 45, 45) .waterAndFogColor(42, 45, 80) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) .particles(ParticleTypes.MYCELIUM, 0.01F) .loop(EndSounds.AMBIENT_CHORUS_FOREST) .music(EndSounds.MUSIC_DARK) diff --git a/src/main/java/ru/betterend/world/biome/land/UmbrellaJungleBiome.java b/src/main/java/ru/betterend/world/biome/land/UmbrellaJungleBiome.java index 1c007e0c..89e75437 100644 --- a/src/main/java/ru/betterend/world/biome/land/UmbrellaJungleBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/UmbrellaJungleBiome.java @@ -25,7 +25,7 @@ public class UmbrellaJungleBiome extends EndBiome.Config { .particles(EndParticles.JUNGLE_SPORE, 0.001F) .music(EndSounds.MUSIC_FOREST) .loop(EndSounds.AMBIENT_UMBRELLA_JUNGLE) - .surface(SurfaceRules.state(surfaceMaterial().getTopMaterial())) + .surface(surfaceMaterial().getTopMaterial()) .feature(EndFeatures.END_LAKE) .feature(EndFeatures.UMBRELLA_TREE) .feature(EndFeatures.JELLYSHROOM)