diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index 2cf9e6c9..aa02d22c 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -2,12 +2,9 @@ package ru.betterend; import net.fabricmc.api.EnvType; import net.fabricmc.api.ModInitializer; -import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.block.SlabBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; -import net.minecraft.util.registry.Registry; import ru.betterend.api.BetterEndPlugin; import ru.betterend.config.Configs; import ru.betterend.effects.EndEnchantments; @@ -83,13 +80,6 @@ public class BetterEnd implements ModInitializer { } }); } - - RegistryEntryAddedCallback.event(Registry.BLOCK).register((i, id, block) -> { - if (block instanceof SlabBlock) { - // Do Some Stuff - System.out.println(id); - } - }); } public static boolean hasGuideBook() { diff --git a/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java b/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java index d7d1dc3f..40f24282 100644 --- a/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java @@ -62,13 +62,10 @@ public class StalactiteBlock extends BlockBaseNotFull implements Waterloggable, boolean water = world.getFluidState(pos).getFluid() == Fluids.WATER; if (dir == Direction.DOWN) { - System.out.println("Check up!"); if (isThis(world, pos.up()) || sideCoversSmallSquare(world, pos.up(), Direction.DOWN)) { - System.out.println("Up true!"); return getDefaultState().with(IS_FLOOR, false).with(WATERLOGGED, water); } else if (isThis(world, pos.down()) || sideCoversSmallSquare(world, pos.down(), Direction.UP)) { - System.out.println("Up false!"); return getDefaultState().with(IS_FLOOR, true).with(WATERLOGGED, water); } else { @@ -76,13 +73,10 @@ public class StalactiteBlock extends BlockBaseNotFull implements Waterloggable, } } else { - System.out.println("Check down!"); if (isThis(world, pos.down()) || sideCoversSmallSquare(world, pos.down(), Direction.UP)) { - System.out.println("Down true!"); return getDefaultState().with(IS_FLOOR, true).with(WATERLOGGED, water); } else if (isThis(world, pos.up()) || sideCoversSmallSquare(world, pos.up(), Direction.DOWN)) { - System.out.println("Down false!"); return getDefaultState().with(IS_FLOOR, false).with(WATERLOGGED, water); } else { diff --git a/src/main/java/ru/betterend/entity/EndSlimeEntity.java b/src/main/java/ru/betterend/entity/EndSlimeEntity.java index eef8605b..b9b6118c 100644 --- a/src/main/java/ru/betterend/entity/EndSlimeEntity.java +++ b/src/main/java/ru/betterend/entity/EndSlimeEntity.java @@ -42,7 +42,7 @@ import ru.betterend.interfaces.ISlime; import ru.betterend.registry.EndBiomes; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.biome.EndBiome; public class EndSlimeEntity extends SlimeEntity { private static final TrackedData VARIANT = DataTracker.registerData(EndSlimeEntity.class, TrackedDataHandlerRegistry.BYTE); diff --git a/src/main/java/ru/betterend/integration/byg/BYGIntegration.java b/src/main/java/ru/betterend/integration/byg/BYGIntegration.java index 98a7ade2..ffa7d743 100644 --- a/src/main/java/ru/betterend/integration/byg/BYGIntegration.java +++ b/src/main/java/ru/betterend/integration/byg/BYGIntegration.java @@ -14,7 +14,7 @@ import ru.betterend.integration.byg.features.BYGFeatures; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndTags; import ru.betterend.util.TagHelper; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.biome.EndBiome; public class BYGIntegration extends ModIntegration { public BYGIntegration() { diff --git a/src/main/java/ru/betterend/integration/byg/biomes/BYGBiomes.java b/src/main/java/ru/betterend/integration/byg/biomes/BYGBiomes.java index 6a47013c..0211415c 100644 --- a/src/main/java/ru/betterend/integration/byg/biomes/BYGBiomes.java +++ b/src/main/java/ru/betterend/integration/byg/biomes/BYGBiomes.java @@ -2,7 +2,7 @@ package ru.betterend.integration.byg.biomes; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndBiomes; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.biome.EndBiome; public class BYGBiomes { // New Biomes diff --git a/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java b/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java index 8e33136e..55f4df4d 100644 --- a/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java +++ b/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java @@ -10,8 +10,8 @@ import net.minecraft.world.biome.SpawnSettings.SpawnEntry; import ru.betterend.BetterEnd; import ru.betterend.integration.Integrations; import ru.betterend.integration.byg.features.BYGFeatures; +import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.land.BiomeDefinition; -import ru.betterend.world.biome.land.EndBiome; public class EterialGrove extends EndBiome { public EterialGrove() { diff --git a/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java b/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java index af9ac202..b2bf0654 100644 --- a/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java +++ b/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java @@ -13,8 +13,8 @@ import ru.betterend.BetterEnd; import ru.betterend.integration.Integrations; import ru.betterend.integration.byg.features.BYGFeatures; import ru.betterend.registry.EndFeatures; +import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.land.BiomeDefinition; -import ru.betterend.world.biome.land.EndBiome; public class NightshadeRedwoods extends EndBiome { public NightshadeRedwoods() { diff --git a/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java b/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java index ae7eed1d..da349ef9 100644 --- a/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java +++ b/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java @@ -20,8 +20,8 @@ import ru.betterend.BetterEnd; import ru.betterend.integration.Integrations; import ru.betterend.integration.byg.features.BYGFeatures; import ru.betterend.registry.EndFeatures; +import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.land.BiomeDefinition; -import ru.betterend.world.biome.land.EndBiome; public class OldBulbisGardens extends EndBiome { public OldBulbisGardens() { diff --git a/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java b/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java index 3b24d00f..26d59d3a 100644 --- a/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java +++ b/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java @@ -25,7 +25,7 @@ import net.minecraft.world.biome.Biome.Category; import ru.betterend.client.ClientOptions; import ru.betterend.registry.EndBiomes; import ru.betterend.util.BackgroundInfo; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.biome.EndBiome; @Mixin(BackgroundRenderer.class) public class BackgroundRendererMixin { diff --git a/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java b/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java index bfba167c..1eff0099 100644 --- a/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java +++ b/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java @@ -23,7 +23,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.BonemealUtil; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.biome.EndBiome; @Mixin(BoneMealItem.class) public class BoneMealItemMixin { diff --git a/src/main/java/ru/betterend/mixin/common/PlayerManagerMixin.java b/src/main/java/ru/betterend/mixin/common/PlayerManagerMixin.java index 7bcb80e6..ed4abddb 100644 --- a/src/main/java/ru/betterend/mixin/common/PlayerManagerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/PlayerManagerMixin.java @@ -102,8 +102,6 @@ public class PlayerManagerMixin { else { var23 = World.END; } - - System.out.println("World " + this.server.getWorld(World.END)); RegistryKey registryKey = var23; ServerWorld serverWorld = this.server.getWorld(registryKey); diff --git a/src/main/java/ru/betterend/registry/EndBiomes.java b/src/main/java/ru/betterend/registry/EndBiomes.java index 3def7d36..dd649a71 100644 --- a/src/main/java/ru/betterend/registry/EndBiomes.java +++ b/src/main/java/ru/betterend/registry/EndBiomes.java @@ -32,6 +32,7 @@ import ru.betterend.config.Configs; import ru.betterend.integration.Integrations; import ru.betterend.interfaces.IBiomeList; import ru.betterend.util.JsonFactory; +import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.air.BiomeIceStarfield; import ru.betterend.world.biome.cave.EmptyAuroraCaveBiome; import ru.betterend.world.biome.cave.EmptyEndCaveBiome; @@ -46,7 +47,6 @@ import ru.betterend.world.biome.land.CrystalMountainsBiome; import ru.betterend.world.biome.land.DragonGraveyardsBiome; import ru.betterend.world.biome.land.DryShrublandBiome; import ru.betterend.world.biome.land.DustWastelandsBiome; -import ru.betterend.world.biome.land.EndBiome; import ru.betterend.world.biome.land.FoggyMushroomlandBiome; import ru.betterend.world.biome.land.GlowingGrasslandsBiome; import ru.betterend.world.biome.land.LanternWoodsBiome; diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index f02e0fb6..b94fb3b5 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -11,8 +11,8 @@ import net.minecraft.world.biome.Biome; import net.minecraft.world.gen.GenerationStep; import net.minecraft.world.gen.feature.ConfiguredFeature; import ru.betterend.BetterEnd; +import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.land.BiomeDefinition; -import ru.betterend.world.biome.land.EndBiome; import ru.betterend.world.features.BlueVineFeature; import ru.betterend.world.features.CharniaFeature; import ru.betterend.world.features.CrashedShipFeature; diff --git a/src/main/java/ru/betterend/tab/CreativeTabs.java b/src/main/java/ru/betterend/tab/CreativeTabs.java index 48601843..1ee8eb5d 100644 --- a/src/main/java/ru/betterend/tab/CreativeTabs.java +++ b/src/main/java/ru/betterend/tab/CreativeTabs.java @@ -25,9 +25,5 @@ public class CreativeTabs { stacks.add(new ItemStack(i)); } }).build(); - if (BetterEnd.isDevEnvironment()) { - System.out.println("CREATIVE_TAB_ITEMS: " + TAB_ITEMS.getName()); - System.out.println("CREATIVE_TAB_BLOCKS: " + TAB_BLOCKS.getName()); - } } } diff --git a/src/main/java/ru/betterend/util/BonemealUtil.java b/src/main/java/ru/betterend/util/BonemealUtil.java index 5c84b3d3..035f26c2 100644 --- a/src/main/java/ru/betterend/util/BonemealUtil.java +++ b/src/main/java/ru/betterend/util/BonemealUtil.java @@ -11,7 +11,7 @@ import net.minecraft.block.Block; import net.minecraft.util.Identifier; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndBlocks; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.biome.EndBiome; public class BonemealUtil { private static final Map> GRASS_BIOMES = Maps.newHashMap(); diff --git a/src/main/java/ru/betterend/world/biome/land/EndBiome.java b/src/main/java/ru/betterend/world/biome/EndBiome.java similarity index 94% rename from src/main/java/ru/betterend/world/biome/land/EndBiome.java rename to src/main/java/ru/betterend/world/biome/EndBiome.java index 4fb10772..81a25b3f 100644 --- a/src/main/java/ru/betterend/world/biome/land/EndBiome.java +++ b/src/main/java/ru/betterend/world/biome/EndBiome.java @@ -1,4 +1,4 @@ -package ru.betterend.world.biome.land; +package ru.betterend.world.biome; import java.io.InputStream; import java.util.List; @@ -14,6 +14,7 @@ import net.minecraft.world.biome.Biome; import ru.betterend.config.Configs; import ru.betterend.util.JsonFactory; import ru.betterend.util.StructureHelper; +import ru.betterend.world.biome.land.BiomeDefinition; import ru.betterend.world.features.EndFeature; import ru.betterend.world.features.ListFeature; import ru.betterend.world.features.ListFeature.StructureInfo; diff --git a/src/main/java/ru/betterend/world/biome/air/BiomeIceStarfield.java b/src/main/java/ru/betterend/world/biome/air/BiomeIceStarfield.java index 5f33b989..b1106d6f 100644 --- a/src/main/java/ru/betterend/world/biome/air/BiomeIceStarfield.java +++ b/src/main/java/ru/betterend/world/biome/air/BiomeIceStarfield.java @@ -4,8 +4,8 @@ import net.minecraft.entity.EntityType; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndStructures; +import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.land.BiomeDefinition; -import ru.betterend.world.biome.land.EndBiome; public class BiomeIceStarfield extends EndBiome { public BiomeIceStarfield() { diff --git a/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java b/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java index 4ca1e5a6..5ae1d3c2 100644 --- a/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java @@ -6,15 +6,27 @@ import net.minecraft.block.BlockState; import net.minecraft.util.collection.WeightedList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.gen.feature.Feature; +import ru.betterend.registry.EndBiomes; +import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.land.BiomeDefinition; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.features.EndFeature; +import ru.betterend.world.features.terrain.caves.CaveChunkPopulatorFeature; public class EndCaveBiome extends EndBiome { private WeightedList> floorFeatures = new WeightedList>(); private WeightedList> ceilFeatures = new WeightedList>(); public EndCaveBiome(BiomeDefinition definition) { - super(definition.setCaveBiome()); + super(makeDef(definition)); + } + + private static BiomeDefinition makeDef(BiomeDefinition definition) { + EndFeature feature = EndFeature.makeChunkFeature( + definition.getID().getPath() + "_cave_populator", + new CaveChunkPopulatorFeature(() -> (EndCaveBiome) EndBiomes.getBiome(definition.getID())) + ); + definition.addFeature(feature).setCaveBiome(); + return definition; } public void addFloorFeature(Feature feature, int weight) { 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 d0a23d07..d50e0ad0 100644 --- a/src/main/java/ru/betterend/world/biome/land/AmberLandBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/AmberLandBiome.java @@ -7,6 +7,7 @@ import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndSounds; +import ru.betterend.world.biome.EndBiome; public class AmberLandBiome extends EndBiome { public AmberLandBiome() { 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 6226c6f5..dcbf2f7b 100644 --- a/src/main/java/ru/betterend/world/biome/land/BlossomingSpiresBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/BlossomingSpiresBiome.java @@ -5,6 +5,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndSounds; +import ru.betterend.world.biome.EndBiome; public class BlossomingSpiresBiome extends EndBiome { public BlossomingSpiresBiome() { 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 ecc5ab16..1bd3c278 100644 --- a/src/main/java/ru/betterend/world/biome/land/ChorusForestBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/ChorusForestBiome.java @@ -9,6 +9,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndSounds; +import ru.betterend.world.biome.EndBiome; public class ChorusForestBiome extends EndBiome { public ChorusForestBiome() { 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 340d865e..3275fc28 100644 --- a/src/main/java/ru/betterend/world/biome/land/CrystalMountainsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/CrystalMountainsBiome.java @@ -5,6 +5,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndStructures; +import ru.betterend.world.biome.EndBiome; public class CrystalMountainsBiome extends EndBiome { public CrystalMountainsBiome() { 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 7688869a..822c43cf 100644 --- a/src/main/java/ru/betterend/world/biome/land/DragonGraveyardsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/DragonGraveyardsBiome.java @@ -5,6 +5,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndSounds; +import ru.betterend.world.biome.EndBiome; public class DragonGraveyardsBiome extends EndBiome { public DragonGraveyardsBiome() { 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 be304161..dabd1e95 100644 --- a/src/main/java/ru/betterend/world/biome/land/DryShrublandBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/DryShrublandBiome.java @@ -5,6 +5,7 @@ import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndSounds; +import ru.betterend.world.biome.EndBiome; public class DryShrublandBiome extends EndBiome { public DryShrublandBiome() { 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 92dd0380..481ea926 100644 --- a/src/main/java/ru/betterend/world/biome/land/DustWastelandsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/DustWastelandsBiome.java @@ -5,6 +5,7 @@ import net.minecraft.particle.ParticleTypes; import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndSounds; +import ru.betterend.world.biome.EndBiome; public class DustWastelandsBiome extends EndBiome { public DustWastelandsBiome() { diff --git a/src/main/java/ru/betterend/world/biome/land/FoggyMushroomlandBiome.java b/src/main/java/ru/betterend/world/biome/land/FoggyMushroomlandBiome.java index 2d6fcc9b..95a0a821 100644 --- a/src/main/java/ru/betterend/world/biome/land/FoggyMushroomlandBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/FoggyMushroomlandBiome.java @@ -8,6 +8,7 @@ import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndStructures; +import ru.betterend.world.biome.EndBiome; public class FoggyMushroomlandBiome extends EndBiome { public FoggyMushroomlandBiome() { 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 ab3639f1..a4849806 100644 --- a/src/main/java/ru/betterend/world/biome/land/GlowingGrasslandsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/GlowingGrasslandsBiome.java @@ -6,6 +6,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndSounds; +import ru.betterend.world.biome.EndBiome; public class GlowingGrasslandsBiome extends EndBiome { public GlowingGrasslandsBiome() { 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 d87c7adf..333dbd86 100644 --- a/src/main/java/ru/betterend/world/biome/land/LanternWoodsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/LanternWoodsBiome.java @@ -6,6 +6,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndSounds; +import ru.betterend.world.biome.EndBiome; public class LanternWoodsBiome extends EndBiome { public LanternWoodsBiome() { diff --git a/src/main/java/ru/betterend/world/biome/land/MegalakeBiome.java b/src/main/java/ru/betterend/world/biome/land/MegalakeBiome.java index c9780367..d81feab2 100644 --- a/src/main/java/ru/betterend/world/biome/land/MegalakeBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/MegalakeBiome.java @@ -6,6 +6,7 @@ import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndStructures; +import ru.betterend.world.biome.EndBiome; public class MegalakeBiome extends EndBiome { public MegalakeBiome() { 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 7e0d0bb1..abf34b94 100644 --- a/src/main/java/ru/betterend/world/biome/land/MegalakeGroveBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/MegalakeGroveBiome.java @@ -7,6 +7,7 @@ import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndStructures; +import ru.betterend.world.biome.EndBiome; public class MegalakeGroveBiome extends EndBiome { public MegalakeGroveBiome() { 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 1192d417..c4552613 100644 --- a/src/main/java/ru/betterend/world/biome/land/PaintedMountainsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/PaintedMountainsBiome.java @@ -5,6 +5,7 @@ import net.minecraft.particle.ParticleTypes; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndSounds; import ru.betterend.registry.EndStructures; +import ru.betterend.world.biome.EndBiome; public class PaintedMountainsBiome extends EndBiome { public PaintedMountainsBiome() { 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 b5c28fd9..8196e40f 100644 --- a/src/main/java/ru/betterend/world/biome/land/ShadowForestBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/ShadowForestBiome.java @@ -7,6 +7,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndSounds; +import ru.betterend.world.biome.EndBiome; public class ShadowForestBiome extends EndBiome { public ShadowForestBiome() { diff --git a/src/main/java/ru/betterend/world/biome/land/SulphurSpringsBiome.java b/src/main/java/ru/betterend/world/biome/land/SulphurSpringsBiome.java index 34b704aa..eb274769 100644 --- a/src/main/java/ru/betterend/world/biome/land/SulphurSpringsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/SulphurSpringsBiome.java @@ -5,6 +5,7 @@ import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndSounds; +import ru.betterend.world.biome.EndBiome; import ru.betterend.world.surface.SurfaceBuilders; public class SulphurSpringsBiome extends EndBiome { 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 60b32cbc..f4a07e03 100644 --- a/src/main/java/ru/betterend/world/biome/land/UmbrellaJungleBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/UmbrellaJungleBiome.java @@ -6,6 +6,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.registry.EndSounds; +import ru.betterend.world.biome.EndBiome; public class UmbrellaJungleBiome extends EndBiome { public UmbrellaJungleBiome() { diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java new file mode 100644 index 00000000..cbd1f55a --- /dev/null +++ b/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java @@ -0,0 +1,132 @@ +package ru.betterend.world.features.terrain.caves; + +import java.util.Random; +import java.util.Set; +import java.util.function.Supplier; + +import com.google.common.collect.Sets; + +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockPos.Mutable; +import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.gen.feature.Feature; +import ru.betterend.registry.EndTags; +import ru.betterend.util.BlocksHelper; +import ru.betterend.world.biome.cave.EndCaveBiome; +import ru.betterend.world.features.DefaultFeature; + +public class CaveChunkPopulatorFeature extends DefaultFeature { + private Supplier supplier; + + public CaveChunkPopulatorFeature(Supplier biome) { + this.supplier = biome; + } + + @Override + public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, DefaultFeatureConfig config) { + Set floorPositions = Sets.newHashSet(); + Set ceilPositions = Sets.newHashSet(); + int sx = (pos.getX() >> 4) << 4; + int sz = (pos.getZ() >> 4) << 4; + Mutable min = new Mutable().set(pos); + Mutable max = new Mutable().set(pos); + fillSets(sx, sz, world.getChunk(pos), floorPositions, ceilPositions, min, max); + EndCaveBiome biome = supplier.get(); + BlockState surfaceBlock = biome.getBiome().getGenerationSettings().getSurfaceConfig().getTopMaterial(); + placeFloor(world, biome, floorPositions, random, surfaceBlock); + placeCeil(world, biome, ceilPositions, random); + BlocksHelper.fixBlocks(world, min, max); + return true; + } + + protected void fillSets(int sx, int sz, Chunk chunk, Set floorPositions, Set ceilPositions, Mutable min, Mutable max) { + Mutable mut = new Mutable(); + Mutable mut2 = new Mutable(); + Mutable mut3 = new Mutable(); + for (int x = 0; x < 16; x++) { + mut.setX(x); + mut2.setX(x); + for (int z = 0; z < 16; z++) { + mut.setZ(z); + mut2.setZ(z); + mut2.setY(0); + for (int y = 1; y < chunk.getHeight(); y++) { + mut.setY(y); + BlockState top = chunk.getBlockState(mut); + BlockState bottom = chunk.getBlockState(mut2); + if (top.isAir() && (bottom.isIn(EndTags.GEN_TERRAIN) || bottom.isOf(Blocks.STONE))) { + mut3.set(mut2).move(sx, 0, sz); + floorPositions.add(mut3.toImmutable()); + updateMin(mut3, min); + updateMax(mut3, max); + } + else if (bottom.isAir() && (top.isIn(EndTags.GEN_TERRAIN)|| top.isOf(Blocks.STONE))) { + mut3.set(mut).move(sx, 0, sz); + ceilPositions.add(mut3.toImmutable()); + updateMin(mut3, min); + updateMax(mut3, max); + } + mut2.setY(y); + } + } + } + } + + private void updateMin(BlockPos pos, Mutable min) { + if (pos.getX() < min.getX()) { + min.setX(pos.getX()); + } + if (pos.getY() < min.getY()) { + min.setY(pos.getY()); + } + if (pos.getZ() < min.getZ()) { + min.setZ(pos.getZ()); + } + } + + private void updateMax(BlockPos pos, Mutable max) { + if (pos.getX() > max.getX()) { + max.setX(pos.getX()); + } + if (pos.getY() > max.getY()) { + max.setY(pos.getY()); + } + if (pos.getZ() > max.getZ()) { + max.setZ(pos.getZ()); + } + } + + protected void placeFloor(StructureWorldAccess world, EndCaveBiome biome, Set floorPositions, Random random, BlockState surfaceBlock) { + float density = biome.getFloorDensity(); + floorPositions.forEach((pos) -> { + BlocksHelper.setWithoutUpdate(world, pos, surfaceBlock); + if (density > 0 && random.nextFloat() <= density) { + Feature feature = biome.getFloorFeature(random); + if (feature != null) { + feature.generate(world, null, random, pos.up(), null); + } + } + }); + } + + protected void placeCeil(StructureWorldAccess world, EndCaveBiome biome, Set ceilPositions, Random random) { + float density = biome.getCeilDensity(); + ceilPositions.forEach((pos) -> { + BlockState ceilBlock = biome.getCeil(pos); + if (ceilBlock != null) { + BlocksHelper.setWithoutUpdate(world, pos, ceilBlock); + } + if (density > 0 && random.nextFloat() <= density) { + Feature feature = biome.getCeilFeature(random); + if (feature != null) { + feature.generate(world, null, random, pos.down(), null); + } + } + }); + } +} diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java index 7b8ff74f..ad2b088a 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java @@ -21,8 +21,8 @@ import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; +import ru.betterend.world.biome.EndBiome; import ru.betterend.world.biome.cave.EndCaveBiome; -import ru.betterend.world.biome.land.EndBiome; import ru.betterend.world.features.DefaultFeature; import ru.betterend.world.generator.GeneratorOptions; diff --git a/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java b/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java index e3261214..503ab264 100644 --- a/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java +++ b/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java @@ -19,7 +19,7 @@ import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndTags; import ru.betterend.util.FeaturesHelper; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.biome.EndBiome; public class BetterEndBiomeSource extends BiomeSource { public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { diff --git a/src/main/java/ru/betterend/world/generator/BiomeChunk.java b/src/main/java/ru/betterend/world/generator/BiomeChunk.java index a3c3efe7..96dd258f 100644 --- a/src/main/java/ru/betterend/world/generator/BiomeChunk.java +++ b/src/main/java/ru/betterend/world/generator/BiomeChunk.java @@ -2,7 +2,7 @@ package ru.betterend.world.generator; import java.util.Random; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.biome.EndBiome; public class BiomeChunk { diff --git a/src/main/java/ru/betterend/world/generator/BiomeMap.java b/src/main/java/ru/betterend/world/generator/BiomeMap.java index b400be59..bcc73d85 100644 --- a/src/main/java/ru/betterend/world/generator/BiomeMap.java +++ b/src/main/java/ru/betterend/world/generator/BiomeMap.java @@ -8,7 +8,7 @@ import net.minecraft.util.math.ChunkPos; import net.minecraft.world.gen.ChunkRandom; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.util.MHelper; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.biome.EndBiome; public class BiomeMap { private static final ChunkRandom RANDOM = new ChunkRandom(); diff --git a/src/main/java/ru/betterend/world/generator/BiomePicker.java b/src/main/java/ru/betterend/world/generator/BiomePicker.java index 339a0ab6..050ab133 100644 --- a/src/main/java/ru/betterend/world/generator/BiomePicker.java +++ b/src/main/java/ru/betterend/world/generator/BiomePicker.java @@ -8,7 +8,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; import net.minecraft.util.Identifier; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.biome.EndBiome; public class BiomePicker { private final Set immutableIDs = Sets.newHashSet(); diff --git a/src/main/java/ru/betterend/world/generator/WeighTree.java b/src/main/java/ru/betterend/world/generator/WeighTree.java index 2d55c364..50cf39aa 100644 --- a/src/main/java/ru/betterend/world/generator/WeighTree.java +++ b/src/main/java/ru/betterend/world/generator/WeighTree.java @@ -2,7 +2,7 @@ package ru.betterend.world.generator; import java.util.List; -import ru.betterend.world.biome.land.EndBiome; +import ru.betterend.world.biome.EndBiome; public class WeighTree { private final Node root; diff --git a/src/main/resources/assets/betterend/textures/block/rubinea.png b/src/main/resources/assets/betterend/textures/block/rubinea.png index 4b9385fd..b590bfe8 100644 Binary files a/src/main/resources/assets/betterend/textures/block/rubinea.png and b/src/main/resources/assets/betterend/textures/block/rubinea.png differ diff --git a/src/main/resources/assets/betterend/textures/block/rubinea_bottom.png b/src/main/resources/assets/betterend/textures/block/rubinea_bottom.png index e96bbfa3..5601c268 100644 Binary files a/src/main/resources/assets/betterend/textures/block/rubinea_bottom.png and b/src/main/resources/assets/betterend/textures/block/rubinea_bottom.png differ diff --git a/src/main/resources/assets/betterend/textures/item/cave_pumpkin_pipe.png b/src/main/resources/assets/betterend/textures/item/cave_pumpkin_pie.png similarity index 100% rename from src/main/resources/assets/betterend/textures/item/cave_pumpkin_pipe.png rename to src/main/resources/assets/betterend/textures/item/cave_pumpkin_pie.png