diff --git a/src/main/java/ru/betterend/registry/FeatureRegistry.java b/src/main/java/ru/betterend/registry/FeatureRegistry.java index e2b1b56f..b045d1d1 100644 --- a/src/main/java/ru/betterend/registry/FeatureRegistry.java +++ b/src/main/java/ru/betterend/registry/FeatureRegistry.java @@ -6,7 +6,7 @@ import ru.betterend.world.features.StoneSpiralFeature; public class FeatureRegistry { public static final EndFeature STONE_SPIRAL = new EndFeature("stone_spiral", new StoneSpiralFeature(), 2); - public static final EndFeature END_LAKE = new EndFeature("end_lake", new EndLakeFeature()); + public static final EndFeature END_LAKE = EndFeature.MakeRawGenFeature("end_lake", new EndLakeFeature(), 100); public static void register() {} } diff --git a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java index cd9cf3f8..c707dcb1 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java +++ b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java @@ -11,7 +11,7 @@ public class BiomeFoggyMushroomland extends EndBiome { .setWaterColor(119, 227, 250) .setWaterFogColor(119, 227, 250) .setSurface(BlockRegistry.END_MOSS, BlockRegistry.END_MYCELIUM) - .addFeature(FeatureRegistry.STONE_SPIRAL) - .addFeature(FeatureRegistry.END_LAKE)); + .addFeature(FeatureRegistry.END_LAKE) + .addFeature(FeatureRegistry.STONE_SPIRAL)); } } diff --git a/src/main/java/ru/betterend/world/features/EndFeature.java b/src/main/java/ru/betterend/world/features/EndFeature.java index 383beb0a..6854aa42 100644 --- a/src/main/java/ru/betterend/world/features/EndFeature.java +++ b/src/main/java/ru/betterend/world/features/EndFeature.java @@ -5,7 +5,6 @@ import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.Registry; import net.minecraft.world.gen.GenerationStep; import net.minecraft.world.gen.decorator.ChanceDecoratorConfig; -import net.minecraft.world.gen.decorator.ConfiguredDecorator; import net.minecraft.world.gen.decorator.Decorator; import net.minecraft.world.gen.feature.ConfiguredFeature; import net.minecraft.world.gen.feature.ConfiguredFeatures; @@ -19,11 +18,11 @@ public class EndFeature { private final ConfiguredFeature featureConfigured; private final GenerationStep.Feature featureStep; - public EndFeature(String name, Feature feature, GenerationStep.Feature featureStep, ConfiguredDecorator configuredDecorator) { + public EndFeature(String name, Feature feature, GenerationStep.Feature featureStep, ConfiguredFeature configuredFeature) { Identifier id = new Identifier(BetterEnd.MOD_ID, name); this.featureStep = featureStep; this.feature = Registry.register(Registry.FEATURE, id, feature); - this.featureConfigured = Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, id, feature.configure(FeatureConfig.DEFAULT).decorate(configuredDecorator)); + this.featureConfigured = Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, id, configuredFeature); } public EndFeature(String name, Feature feature) { @@ -40,6 +39,11 @@ public class EndFeature { this.featureConfigured = Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, id, feature.configure(FeatureConfig.DEFAULT).decorate(ConfiguredFeatures.Decorators.SQUARE_HEIGHTMAP).repeatRandomly(density)); //return new EndFeature(name, feature, GenerationStep.Feature.VEGETAL_DECORATION, feature.configure(FeatureConfig.DEFAULT).decorate(ConfiguredFeatures.Decorators.SQUARE_HEIGHTMAP).repeatRandomly(4)); } + + public static EndFeature MakeRawGenFeature(String name, Feature feature, int chance) { + ConfiguredFeature configured = feature.configure(FeatureConfig.DEFAULT).decorate(Decorator.CHANCE.configure(new ChanceDecoratorConfig(100))); + return new EndFeature(name, feature, GenerationStep.Feature.RAW_GENERATION, configured); + } public Feature getFeature() { return feature; diff --git a/src/main/java/ru/betterend/world/features/EndLakeFeature.java b/src/main/java/ru/betterend/world/features/EndLakeFeature.java index fe73d10f..a1827005 100644 --- a/src/main/java/ru/betterend/world/features/EndLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/EndLakeFeature.java @@ -61,7 +61,8 @@ public class EndLakeFeature extends DefaultFeature { double r = add * 1.8 + radius * (NOISE.eval(x * 0.2, y * 0.2, z * 0.2) * 0.25 + 0.75); r *= r; if (x2 + z2 <= r) { - BlocksHelper.setWithoutUpdate(world, POS, AIR); + if (world.getBlockState(POS).getBlock() == Blocks.END_STONE) + BlocksHelper.setWithoutUpdate(world, POS, AIR); pos = POS.down(); if (world.getBlockState(pos).getBlock() == Blocks.END_STONE) {