Refactored BCLib Package Structure

This commit is contained in:
Frank 2022-06-07 16:44:13 +02:00
parent 81227198fd
commit bddb5fe0d7
135 changed files with 748 additions and 744 deletions

View file

@ -9,12 +9,12 @@ import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.SurfaceRules;
import org.betterx.bclib.api.biomes.BCLBiome;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.biomes.BCLBiomeSettings;
import org.betterx.bclib.api.biomes.BiomeAPI;
import org.betterx.bclib.api.surface.SurfaceRuleBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeSettings;
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
import org.betterx.bclib.api.v2.levelgen.surface.SurfaceRuleBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.BetterEnd;
import org.betterx.betterend.registry.EndBlocks;

View file

@ -2,7 +2,7 @@ package org.betterx.betterend.world.biome.air;
import net.minecraft.world.entity.EntityType;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.betterend.registry.EndFeatures;
import org.betterx.betterend.registry.EndParticles;
import org.betterx.betterend.registry.EndStructures;

View file

@ -2,9 +2,9 @@ package org.betterx.betterend.world.biome.cave;
import net.minecraft.resources.ResourceLocation;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.biomes.BCLBiomeSettings;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeSettings;
import org.betterx.betterend.registry.EndFeatures;
import org.betterx.betterend.registry.EndParticles;
import org.betterx.betterend.world.biome.EndBiome;

View file

@ -2,9 +2,9 @@ package org.betterx.betterend.world.biome.cave;
import net.minecraft.resources.ResourceLocation;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.biomes.BCLBiomeSettings;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeSettings;
import org.betterx.betterend.registry.EndFeatures;
import org.betterx.betterend.world.biome.EndBiome;

View file

@ -2,9 +2,9 @@ package org.betterx.betterend.world.biome.cave;
import net.minecraft.resources.ResourceLocation;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.biomes.BCLBiomeSettings;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeSettings;
import org.betterx.betterend.registry.EndFeatures;
import org.betterx.betterend.registry.EndParticles;
import org.betterx.betterend.world.biome.EndBiome;

View file

@ -8,13 +8,13 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.GenerationStep;
import net.minecraft.world.level.levelgen.feature.Feature;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.biomes.BCLBiomeSettings;
import org.betterx.bclib.api.biomes.BiomeAPI;
import org.betterx.bclib.api.features.BCLCommonFeatures;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeSettings;
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
import org.betterx.bclib.api.v2.levelgen.features.BCLCommonFeatures;
import org.betterx.bclib.api.v2.levelgen.features.BCLFeature;
import org.betterx.bclib.util.WeightedList;
import org.betterx.bclib.world.features.BCLFeature;
import org.betterx.betterend.BetterEnd;
import org.betterx.betterend.registry.EndSounds;
import org.betterx.betterend.world.biome.EndBiome;
@ -32,7 +32,7 @@ public class EndCaveBiome extends EndBiome {
BetterEnd.makeID(ID.getPath() + "_cave_populator"),
GenerationStep.Decoration.RAW_GENERATION,
new CaveChunkPopulatorFeature(() -> (EndCaveBiome) BiomeAPI.getBiome(ID))
);
);
builder.feature(feature)
.music(EndSounds.MUSIC_CAVES)

View file

@ -5,9 +5,9 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.biomes.BCLBiomeSettings;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeSettings;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.world.biome.EndBiome;

View file

@ -4,9 +4,9 @@ import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.biomes.BCLBiomeSettings;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeSettings;
import org.betterx.bclib.blocks.BlockProperties;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;

View file

@ -3,9 +3,9 @@ package org.betterx.betterend.world.biome.cave;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.biomes.BCLBiomeSettings;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder.BiomeSupplier;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeSettings;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndFeatures;

View file

@ -4,7 +4,7 @@ import net.minecraft.tags.BiomeTags;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.*;
import org.betterx.betterend.world.biome.EndBiome;

View file

@ -3,7 +3,7 @@ package org.betterx.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndEntities;

View file

@ -7,7 +7,7 @@ import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndEntities;

View file

@ -3,7 +3,7 @@ package org.betterx.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndFeatures;

View file

@ -3,7 +3,7 @@ package org.betterx.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndFeatures;

View file

@ -4,7 +4,7 @@ import net.minecraft.tags.BiomeTags;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndFeatures;

View file

@ -8,8 +8,8 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.SurfaceRules;
import net.minecraft.world.level.levelgen.placement.CaveSurface;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.surface.SurfaceRuleBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.surface.SurfaceRuleBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndSounds;

View file

@ -4,7 +4,7 @@ import net.minecraft.tags.BiomeTags;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.*;
import org.betterx.betterend.world.biome.EndBiome;

View file

@ -4,7 +4,7 @@ import net.minecraft.tags.BiomeTags;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndFeatures;

View file

@ -4,7 +4,7 @@ import net.minecraft.tags.BiomeTags;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndFeatures;

View file

@ -3,7 +3,7 @@ package org.betterx.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.*;
import org.betterx.betterend.world.biome.EndBiome;

View file

@ -3,7 +3,7 @@ package org.betterx.betterend.world.biome.land;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.*;
import org.betterx.betterend.world.biome.EndBiome;

View file

@ -9,9 +9,9 @@ import net.minecraft.world.level.levelgen.SurfaceRules;
import net.minecraft.world.level.levelgen.SurfaceRules.RuleSource;
import net.minecraft.world.level.levelgen.placement.CaveSurface;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.surface.SurfaceRuleBuilder;
import org.betterx.bclib.api.surface.rules.SwitchRuleSource;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.surface.SurfaceRuleBuilder;
import org.betterx.bclib.api.v2.levelgen.surface.rules.SwitchRuleSource;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndFeatures;

View file

@ -4,7 +4,7 @@ import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndSounds;

View file

@ -5,7 +5,7 @@ import net.minecraft.tags.BiomeTags;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndEntities;

View file

@ -7,9 +7,9 @@ import net.minecraft.world.level.levelgen.SurfaceRules;
import net.minecraft.world.level.levelgen.SurfaceRules.RuleSource;
import net.minecraft.world.level.levelgen.placement.CaveSurface;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.surface.SurfaceRuleBuilder;
import org.betterx.bclib.api.surface.rules.SwitchRuleSource;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.surface.SurfaceRuleBuilder;
import org.betterx.bclib.api.v2.levelgen.surface.rules.SwitchRuleSource;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.*;
import org.betterx.betterend.world.biome.EndBiome;

View file

@ -4,9 +4,9 @@ import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.SurfaceRules;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.surface.SurfaceRuleBuilder;
import org.betterx.bclib.api.surface.rules.SwitchRuleSource;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.surface.SurfaceRuleBuilder;
import org.betterx.bclib.api.v2.levelgen.surface.rules.SwitchRuleSource;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndFeatures;

View file

@ -4,7 +4,7 @@ import net.minecraft.tags.BiomeTags;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.betterx.bclib.api.biomes.BCLBiomeBuilder;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder;
import org.betterx.bclib.interfaces.SurfaceMaterialProvider;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndFeatures;

View file

@ -8,12 +8,12 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
import org.betterx.bclib.sdf.operator.SDFTranslate;
import org.betterx.bclib.sdf.primitive.SDFCappedCone;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.world.biome.EndBiome;

View file

@ -15,7 +15,7 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProc
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo;
import org.betterx.bclib.world.features.ListFeature;
import org.betterx.bclib.api.v2.levelgen.features.ListFeature;
import org.betterx.betterend.util.LootTableUtil;
import java.util.List;
@ -53,7 +53,7 @@ public class BuildingListFeature extends ListFeature {
chestPos.getX() >> 2,
chestPos.getY() >> 2,
chestPos.getZ() >> 2
);
);
chestEntity.setLootTable(LootTableUtil.getTable(biome), random.nextLong());
chestEntity.setChanged();
}

View file

@ -6,9 +6,9 @@ import net.minecraft.world.level.WorldGenLevel;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.EndBlockProperties;
import org.betterx.betterend.registry.EndBlocks;
@ -29,13 +29,13 @@ public class CavePumpkinFeature extends DefaultFeature {
world,
pos,
EndBlocks.CAVE_PUMPKIN_SEED.defaultBlockState().setValue(EndBlockProperties.AGE, age)
);
);
if (age > 1) {
BlocksHelper.setWithoutUpdate(
world,
pos.below(),
EndBlocks.CAVE_PUMPKIN.defaultBlockState().setValue(EndBlockProperties.SMALL, age < 3)
);
);
}
return true;

View file

@ -16,10 +16,10 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.*;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo;
import net.minecraft.world.level.material.Material;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.NBTFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.util.StructureHelper;
import org.betterx.bclib.world.features.NBTFeature;
import org.betterx.betterend.util.BlockFixer;
import org.betterx.betterend.util.StructureErode;
import org.betterx.betterend.world.biome.EndBiome;
@ -97,7 +97,7 @@ public class CrashedShipFeature extends NBTFeature {
mirror,
rotation,
BlockPos.ZERO
);
);
center = center.offset(0, getYOffset(structure, world, center, random) + 0.5, 0);
StructurePlaceSettings placementData = new StructurePlaceSettings().setRotation(rotation).setMirror(mirror);
center = center.offset(-offset.getX() * 0.5, 0, -offset.getZ() * 0.5);
@ -113,7 +113,7 @@ public class CrashedShipFeature extends NBTFeature {
world,
new BlockPos(bounds.minX(), bounds.minY(), bounds.minZ()),
new BlockPos(bounds.maxX(), bounds.maxY(), bounds.maxZ())
);
);
return true;
}

View file

@ -8,9 +8,9 @@ import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.util.GlobalState;
public abstract class FullHeightScatterFeature extends DefaultFeature {

View file

@ -8,9 +8,9 @@ import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.util.GlobalState;
public abstract class InvertedScatterFeature extends DefaultFeature {

View file

@ -7,7 +7,7 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.betterend.blocks.NeonCactusPlantBlock;
import org.betterx.betterend.registry.EndBlocks;

View file

@ -7,10 +7,10 @@ import net.minecraft.world.level.WorldGenLevel;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.util.GlobalState;
public abstract class ScatterFeature extends DefaultFeature {
@ -82,7 +82,7 @@ public abstract class ScatterFeature extends DefaultFeature {
center,
POS,
r
) && (getChance() < 2 || random.nextInt(getChance()) == 0)) {
) && (getChance() < 2 || random.nextInt(getChance()) == 0)) {
generate(world, random, POS);
}
}

View file

@ -12,9 +12,9 @@ import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.blocks.BlockProperties;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.util.GlobalState;
@ -51,14 +51,14 @@ public class SilkMothNestFeature extends DefaultFeature {
EndBlocks.SILK_MOTH_NEST.defaultBlockState()
.setValue(BlockStateProperties.HORIZONTAL_FACING, dir)
.setValue(BlockProperties.ACTIVE, false)
);
);
POS.setY(y - 1);
BlocksHelper.setWithoutUpdate(
world,
POS,
EndBlocks.SILK_MOTH_NEST.defaultBlockState()
.setValue(BlockStateProperties.HORIZONTAL_FACING, dir)
);
);
return true;
}
}

View file

@ -9,9 +9,9 @@ import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
public abstract class WallScatterFeature extends DefaultFeature {
private static final Direction[] DIR = BlocksHelper.makeHorizontal();

View file

@ -11,7 +11,8 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import net.minecraft.world.level.material.Material;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
import org.betterx.bclib.sdf.operator.SDFScale3D;
@ -20,7 +21,6 @@ import org.betterx.bclib.sdf.operator.SDFTranslate;
import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import java.util.function.Function;
@ -78,7 +78,7 @@ public class BushFeature extends DefaultFeature {
world,
p,
leaves.defaultBlockState().setValue(LeavesBlock.DISTANCE, 1)
);
);
} else {
BlocksHelper.setWithoutUpdate(world, p, leaves.defaultBlockState());
}

View file

@ -12,7 +12,8 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import net.minecraft.world.level.material.Material;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
import org.betterx.bclib.sdf.operator.SDFScale3D;
@ -21,7 +22,6 @@ import org.betterx.bclib.sdf.operator.SDFTranslate;
import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import java.util.function.Function;
@ -79,7 +79,7 @@ public class BushWithOuterFeature extends DefaultFeature {
info.setBlockPos(
info.getPos().relative(dir),
outer_leaves.defaultBlockState().setValue(BlockStateProperties.FACING, dir)
);
);
}
}
}
@ -95,7 +95,7 @@ public class BushWithOuterFeature extends DefaultFeature {
world,
p,
leaves.defaultBlockState().setValue(LeavesBlock.DISTANCE, 1)
);
);
} else {
BlocksHelper.setWithoutUpdate(world, p, leaves.defaultBlockState());
}

View file

@ -9,12 +9,12 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.blocks.BlockProperties;
import org.betterx.bclib.blocks.BlockProperties.TripleShape;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.registry.EndBlocks;
public class LargeAmaranitaFeature extends DefaultFeature {
@ -42,13 +42,13 @@ public class LargeAmaranitaFeature extends DefaultFeature {
world,
mut.move(Direction.UP),
state.setValue(BlockProperties.TRIPLE_SHAPE, TripleShape.MIDDLE)
);
);
}
BlocksHelper.setWithUpdate(
world,
mut.move(Direction.UP),
state.setValue(BlockProperties.TRIPLE_SHAPE, TripleShape.TOP)
);
);
return true;
}

View file

@ -9,10 +9,10 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.EndBlockProperties.LumecornShape;
import org.betterx.betterend.blocks.LumecornBlock;
import org.betterx.betterend.registry.EndBlocks;
@ -46,7 +46,7 @@ public class Lumecorn extends DefaultFeature {
world,
mut,
EndBlocks.LUMECORN.defaultBlockState().setValue(LumecornBlock.SHAPE, LumecornShape.BOTTOM_SMALL)
);
);
BlocksHelper.setWithoutUpdate(world, mut.move(Direction.UP), bottom);
BlocksHelper.setWithoutUpdate(world, mut.move(Direction.UP), topMiddle);
BlocksHelper.setWithoutUpdate(world, mut.move(Direction.UP), top);
@ -57,18 +57,18 @@ public class Lumecorn extends DefaultFeature {
world,
mut,
EndBlocks.LUMECORN.defaultBlockState().setValue(LumecornBlock.SHAPE, LumecornShape.BOTTOM_SMALL)
);
);
} else {
BlocksHelper.setWithoutUpdate(
world,
mut,
EndBlocks.LUMECORN.defaultBlockState().setValue(LumecornBlock.SHAPE, LumecornShape.BOTTOM_BIG)
);
);
BlocksHelper.setWithoutUpdate(
world,
mut.move(Direction.UP),
EndBlocks.LUMECORN.defaultBlockState().setValue(LumecornBlock.SHAPE, LumecornShape.MIDDLE)
);
);
height--;
}
BlocksHelper.setWithoutUpdate(world, mut.move(Direction.UP), bottom);

View file

@ -12,7 +12,8 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Material;
import com.google.common.collect.Lists;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.blocks.BlockProperties;
import org.betterx.bclib.blocks.BlockProperties.TripleShape;
import org.betterx.bclib.sdf.SDF;
@ -23,7 +24,6 @@ import org.betterx.bclib.sdf.operator.SDFTranslate;
import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.basis.FurBlock;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
@ -54,7 +54,7 @@ public class TenaneaBushFeature extends DefaultFeature {
vec.x() * 0.2,
vec.y() * 0.2,
vec.z() * 0.2
) * 3).setSource(sphere);
) * 3).setSource(sphere);
sphere = new SDFDisplacement().setFunction((vec) -> MHelper.randRange(-2F, 2F, random)).setSource(sphere);
sphere = new SDFSubtraction().setSourceA(sphere)
.setSourceB(new SDFTranslate().setTranslate(0, -radius, 0).setSource(sphere));
@ -75,7 +75,7 @@ public class TenaneaBushFeature extends DefaultFeature {
info.setBlockPos(
info.getPos().relative(d),
EndBlocks.TENANEA_OUTER_LEAVES.defaultBlockState().setValue(FurBlock.FACING, d)
);
);
}
}

View file

@ -11,13 +11,13 @@ import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
import com.google.common.collect.Lists;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
import org.betterx.bclib.sdf.operator.SDFRotation;
import org.betterx.bclib.sdf.primitive.SDFTorus;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import java.util.List;
@ -41,7 +41,7 @@ public class ArchFeature extends DefaultFeature {
BlockPos pos = getPosOnSurfaceWG(
world,
new BlockPos((origin.getX() & 0xFFFFFFF0) | 7, 0, (origin.getZ() & 0xFFFFFFF0) | 7)
);
);
if (!world.getBlockState(pos.below(5)).is(CommonBlockTags.GEN_END_STONES)) {
return false;
}
@ -58,13 +58,13 @@ public class ArchFeature extends DefaultFeature {
OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong());
arch = new SDFDisplacement().setFunction((vec) -> {
return (float) (Math.abs(noise.eval(vec.x() * 0.1,
vec.y() * 0.1,
vec.z() * 0.1
)) * 3F + Math.abs(noise.eval(
vec.y() * 0.1,
vec.z() * 0.1
)) * 3F + Math.abs(noise.eval(
vec.x() * 0.3,
vec.y() * 0.3 + 100,
vec.z() * 0.3
)) * 1.3F) - smallRadiusF * Math.abs(1 - vec.y() / bigRadius);
)) * 1.3F) - smallRadiusF * Math.abs(1 - vec.y() / bigRadius);
}).setSource(arch);
List<BlockPos> surface = Lists.newArrayList();

View file

@ -8,13 +8,13 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Material;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFRotation;
import org.betterx.bclib.sdf.primitive.SDFHexPrism;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.registry.EndBlocks;
public class BigAuroraCrystalFeature extends DefaultFeature {

View file

@ -11,10 +11,10 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.material.Material;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.util.BlockFixer;
@ -116,7 +116,7 @@ public class DesertLakeFeature extends DefaultFeature {
x * 0.2,
y * 0.2,
z * 0.2
) * 0.25 + 0.75)) - 1.0 / size;
) * 0.25 + 0.75)) - 1.0 / size;
if (r > 0) {
r *= r;
if (x2 + z2 <= r) {
@ -127,7 +127,7 @@ public class DesertLakeFeature extends DefaultFeature {
pos = POS.below();
if (world.getBlockState(pos).is(CommonBlockTags.GEN_END_STONES)) {
state = EndBiome.findTopMaterial(world,
pos); //world.getBiome(pos).getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial();
pos); //world.getBiome(pos).getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial();
if (y > waterLevel + 1) BlocksHelper.setWithoutUpdate(world, pos, state);
else if (y > waterLevel)
BlocksHelper.setWithoutUpdate(
@ -136,13 +136,13 @@ public class DesertLakeFeature extends DefaultFeature {
random.nextBoolean()
? state
: EndBlocks.ENDSTONE_DUST.defaultBlockState()
);
);
else
BlocksHelper.setWithoutUpdate(
world,
pos,
EndBlocks.ENDSTONE_DUST.defaultBlockState()
);
);
}
}
} else {
@ -186,8 +186,9 @@ public class DesertLakeFeature extends DefaultFeature {
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.ENDSTONE_DUST.defaultBlockState());
}
pos = POS.above();
while (canReplace(state = world.getBlockState(pos)) && !state.isAir() && state.getFluidState()
.isEmpty()) {
while (canReplace(state = world.getBlockState(pos)) && !state.isAir() && state
.getFluidState()
.isEmpty()) {
BlocksHelper.setWithoutUpdate(world, pos, pos.getY() < waterLevel ? WATER : AIR);
pos = pos.above();
}
@ -200,19 +201,19 @@ public class DesertLakeFeature extends DefaultFeature {
} else if (y < waterLevel) {
if (world.isEmptyBlock(POS.above())) {
state = EndBiome.findTopMaterial(world,
pos); //world.getBiome(POS).getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial();
pos); //world.getBiome(POS).getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial();
BlocksHelper.setWithoutUpdate(
world,
POS,
random.nextBoolean() ? state : EndBlocks.ENDSTONE_DUST.defaultBlockState()
);
);
BlocksHelper.setWithoutUpdate(world, POS.below(), END_STONE);
} else {
BlocksHelper.setWithoutUpdate(
world,
POS,
EndBlocks.ENDSTONE_DUST.defaultBlockState()
);
);
BlocksHelper.setWithoutUpdate(world, POS.below(), END_STONE);
}
}
@ -226,16 +227,17 @@ public class DesertLakeFeature extends DefaultFeature {
world,
new BlockPos(minX - 2, waterLevel - 2, minZ - 2),
new BlockPos(maxX + 2, blockPos.getY() + 20, maxZ + 2)
);
);
return true;
}
private boolean canReplace(BlockState state) {
return state.getMaterial()
.isReplaceable() || state.is(CommonBlockTags.GEN_END_STONES) || state.is(EndBlocks.ENDSTONE_DUST) || state.getMaterial()
.equals(
Material.PLANT) || state
.isReplaceable() || state.is(CommonBlockTags.GEN_END_STONES) || state.is(EndBlocks.ENDSTONE_DUST) || state
.getMaterial()
.equals(
Material.PLANT) || state
.getMaterial()
.equals(Material.WATER_PLANT);
}

View file

@ -11,10 +11,10 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.material.Material;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.util.BlockFixer;
@ -119,7 +119,7 @@ public class EndLakeFeature extends DefaultFeature {
x * 0.2,
y * 0.2,
z * 0.2
) * 0.25 + 0.75)) - 1.0 / size;
) * 0.25 + 0.75)) - 1.0 / size;
if (r > 0) {
r *= r;
if (x2 + z2 <= r) {
@ -138,13 +138,13 @@ public class EndLakeFeature extends DefaultFeature {
random.nextBoolean()
? state
: EndBlocks.ENDSTONE_DUST.defaultBlockState()
);
);
else
BlocksHelper.setWithoutUpdate(
world,
pos,
EndBlocks.ENDSTONE_DUST.defaultBlockState()
);
);
}
}
} else {
@ -188,8 +188,9 @@ public class EndLakeFeature extends DefaultFeature {
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.ENDSTONE_DUST.defaultBlockState());
}
pos = POS.above();
while (canReplace(state = world.getBlockState(pos)) && !state.isAir() && state.getFluidState()
.isEmpty()) {
while (canReplace(state = world.getBlockState(pos)) && !state.isAir() && state
.getFluidState()
.isEmpty()) {
BlocksHelper.setWithoutUpdate(world, pos, pos.getY() < waterLevel ? WATER : AIR);
pos = pos.above();
}
@ -206,7 +207,7 @@ public class EndLakeFeature extends DefaultFeature {
world,
POS,
random.nextBoolean() ? state : EndBlocks.ENDSTONE_DUST.defaultBlockState()
);
);
BlocksHelper.setWithoutUpdate(world, POS.below(), END_STONE);
} else {
BlocksHelper.setWithoutUpdate(world, POS, EndBlocks.ENDSTONE_DUST.defaultBlockState());
@ -222,16 +223,17 @@ public class EndLakeFeature extends DefaultFeature {
world,
new BlockPos(minX - 2, waterLevel - 2, minZ - 2),
new BlockPos(maxX + 2, blockPos.getY() + 20, maxZ + 2)
);
);
return true;
}
private boolean canReplace(BlockState state) {
return state.getMaterial()
.isReplaceable() || state.is(CommonBlockTags.GEN_END_STONES) || state.is(EndBlocks.ENDSTONE_DUST) || state.getMaterial()
.equals(
Material.PLANT) || state
.isReplaceable() || state.is(CommonBlockTags.GEN_END_STONES) || state.is(EndBlocks.ENDSTONE_DUST) || state
.getMaterial()
.equals(
Material.PLANT) || state
.getMaterial()
.equals(Material.WATER_PLANT);
}

View file

@ -10,14 +10,14 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Material;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
import org.betterx.bclib.sdf.operator.SDFRotation;
import org.betterx.bclib.sdf.operator.SDFTranslate;
import org.betterx.bclib.sdf.primitive.SDFCappedCone;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
@ -30,7 +30,7 @@ public class FallenPillarFeature extends DefaultFeature {
pos = getPosOnSurface(
world,
new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))
);
);
if (!world.getBlockState(pos.below(5)).is(CommonBlockTags.GEN_END_STONES)) {
return false;
}

View file

@ -10,7 +10,7 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import com.google.common.collect.Lists;
import org.betterx.bclib.api.biomes.BiomeAPI;
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
import org.betterx.bclib.sdf.primitive.SDFSphere;

View file

@ -15,7 +15,8 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Material;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.*;
import org.betterx.bclib.sdf.primitive.SDFCappedCone;
@ -24,7 +25,6 @@ import org.betterx.bclib.sdf.primitive.SDFPrimitive;
import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.HydrothermalVentBlock;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
@ -177,9 +177,9 @@ public class GeyserFeature extends DefaultFeature {
for (int i = 0; i < 150; i++) {
mut.set(pos)
.move(MHelper.floor(random.nextGaussian() * 4 + 0.5),
-halfHeight - 10,
MHelper.floor(random.nextGaussian() * 4 + 0.5)
);
-halfHeight - 10,
MHelper.floor(random.nextGaussian() * 4 + 0.5)
);
float distRaw = MHelper.length(mut.getX() - pos.getX(), mut.getZ() - pos.getZ());
int dist = MHelper.floor(6 - distRaw) + random.nextInt(2);
if (dist >= 0) {
@ -201,7 +201,7 @@ public class GeyserFeature extends DefaultFeature {
p,
EndBlocks.TUBE_WORM.defaultBlockState()
.setValue(HorizontalDirectionalBlock.FACING, dir)
);
);
}
}
mut.setY(mut.getY() + 1);
@ -223,9 +223,9 @@ public class GeyserFeature extends DefaultFeature {
for (int i = 0; i < 10; i++) {
mut.set(pos)
.move(MHelper.floor(random.nextGaussian() * 0.7 + 0.5),
-halfHeight - 10,
MHelper.floor(random.nextGaussian() * 0.7 + 0.5)
);
-halfHeight - 10,
MHelper.floor(random.nextGaussian() * 0.7 + 0.5)
);
float distRaw = MHelper.length(mut.getX() - pos.getX(), mut.getZ() - pos.getZ());
int dist = MHelper.floor(6 - distRaw) + random.nextInt(2);
if (dist >= 0) {
@ -255,11 +255,11 @@ public class GeyserFeature extends DefaultFeature {
EndFeatures.SULPHURIC_LAKE.getFeature()
.place(new FeaturePlaceContext<>(Optional.empty(),
world,
chunkGenerator,
random,
pos,
null));
world,
chunkGenerator,
random,
pos,
null));
double distance = radius1 * 1.7;
BlockPos start = pos.offset(-distance, -halfHeight - 15 - distance, -distance);

View file

@ -8,13 +8,13 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFRotation;
import org.betterx.bclib.sdf.operator.SDFTranslate;
import org.betterx.bclib.sdf.operator.SDFUnion;
import org.betterx.bclib.sdf.primitive.SDFCappedCone;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.registry.EndBlocks;
import java.util.ArrayList;
@ -84,7 +84,7 @@ public class IceStarFeature extends DefaultFeature {
px,
py,
pz
) * 0.4F + random.nextFloat() * randScale;
) * 0.4F + random.nextFloat() * randScale;
if (distance < ancientRadius) {
return ancient;
} else if (distance < denseRadius) {

View file

@ -9,13 +9,13 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import net.minecraft.world.level.material.Material;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
import org.betterx.bclib.sdf.operator.SDFScale3D;
import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
@ -28,7 +28,7 @@ public class ObsidianBoulderFeature extends DefaultFeature {
pos = getPosOnSurface(
world,
new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))
);
);
if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) {
return false;
}
@ -38,7 +38,7 @@ public class ObsidianBoulderFeature extends DefaultFeature {
BlockPos p = getPosOnSurface(
world,
new BlockPos(pos.getX() + random.nextInt(16) - 8, pos.getY(), pos.getZ() + random.nextInt(16) - 8)
);
);
makeBoulder(world, p, random);
}

View file

@ -10,7 +10,8 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Material;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
import org.betterx.bclib.sdf.operator.SDFRotation;
@ -19,7 +20,6 @@ import org.betterx.bclib.sdf.operator.SDFTranslate;
import org.betterx.bclib.sdf.primitive.SDFCappedCone;
import org.betterx.bclib.sdf.primitive.SDFFlatland;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
@ -32,7 +32,7 @@ public class ObsidianPillarBasementFeature extends DefaultFeature {
pos = getPosOnSurface(
world,
new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))
);
);
if (!world.getBlockState(pos.below(5)).is(CommonBlockTags.GEN_END_STONES)) {
return false;
}

View file

@ -8,12 +8,12 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFCoordModify;
import org.betterx.bclib.sdf.operator.SDFScale3D;
import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
public class OreLayerFeature extends DefaultFeature {

View file

@ -9,9 +9,9 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.world.features.DefaultFeature;
public class SingleBlockFeature extends DefaultFeature {
private final Block block;

View file

@ -9,10 +9,10 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.registry.EndBlocks;
public class SmaragdantCrystalFeature extends DefaultFeature {
@ -35,7 +35,7 @@ public class SmaragdantCrystalFeature extends DefaultFeature {
int dist = MHelper.floor(1.5F - MHelper.length(
mut.getX() - pos.getX(),
mut.getZ() - pos.getZ()
)) + random.nextInt(3);
)) + random.nextInt(3);
if (dist > 0) {
BlockState state = world.getBlockState(mut);
for (int n = 0; n < 10 && state.isAir(); n++) {
@ -53,7 +53,7 @@ public class SmaragdantCrystalFeature extends DefaultFeature {
world,
mut,
shard.setValue(BlockStateProperties.WATERLOGGED, waterlogged)
);
);
}
}
}

View file

@ -13,15 +13,15 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Material;
import com.google.common.collect.Lists;
import org.betterx.bclib.api.biomes.BiomeAPI;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
import org.betterx.bclib.sdf.operator.SDFSmoothUnion;
import org.betterx.bclib.sdf.operator.SDFTranslate;
import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBiomes;
import org.betterx.betterend.registry.EndFeatures;
@ -59,9 +59,9 @@ public class SpireFeature extends DefaultFeature {
vec.x() * 0.1,
vec.y() * 0.1,
vec.z() * 0.1
)) * 3F + Math.abs(noise.eval(vec.x() * 0.3,
vec.y() * 0.3 + 100,
vec.z() * 0.3)) * 1.3F);
)) * 3F + Math.abs(noise.eval(vec.x() * 0.3,
vec.y() * 0.3 + 100,
vec.z() * 0.3)) * 1.3F);
}).setSource(sdf);
final BlockPos center = pos;
List<BlockPos> support = Lists.newArrayList();
@ -86,11 +86,11 @@ public class SpireFeature extends DefaultFeature {
if (BiomeAPI.getFromBiome(world.getBiome(bpos)) == EndBiomes.BLOSSOMING_SPIRES) {
EndFeatures.TENANEA_BUSH.getFeature()
.place(new FeaturePlaceContext<>(Optional.empty(),
world,
chunkGenerator,
random,
bpos,
null));
world,
chunkGenerator,
random,
bpos,
null));
}
});

View file

@ -11,10 +11,10 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.blocks.StalactiteBlock;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.world.features.DefaultFeature;
public class StalactiteFeature extends DefaultFeature {
private final boolean ceiling;
@ -66,7 +66,7 @@ public class StalactiteFeature extends DefaultFeature {
BlockState state = stalagnate ? base.setValue(
StalactiteBlock.IS_FLOOR,
dir > 0 ? i < center : i > center
) : base.setValue(StalactiteBlock.IS_FLOOR, dir > 0);
) : base.setValue(StalactiteBlock.IS_FLOOR, dir > 0);
BlocksHelper.setWithoutUpdate(world, mut, state);
}

View file

@ -10,10 +10,10 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.blocks.BlockProperties;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;

View file

@ -14,10 +14,10 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Material;
import com.google.common.collect.Sets;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.EndBlockProperties;
import org.betterx.betterend.blocks.SulphurCrystalBlock;
import org.betterx.betterend.noise.OpenSimplexNoise;
@ -110,7 +110,7 @@ public class SulphuricCaveFeature extends DefaultFeature {
x * 0.03,
y * 0.03,
z * 0.03
) * 0.5;
) * 0.5;
if (v > 0.4) {
brimstone.add(mut.immutable());
} else {
@ -130,13 +130,13 @@ public class SulphuricCaveFeature extends DefaultFeature {
for (int i = 0; i < count; i++) {
mut.set(pos)
.move(MHelper.floor(random.nextGaussian() * 2 + 0.5),
0,
MHelper.floor(random.nextGaussian() * 2 + 0.5)
);
0,
MHelper.floor(random.nextGaussian() * 2 + 0.5)
);
int dist = MHelper.floor(3 - MHelper.length(
mut.getX() - pos.getX(),
mut.getZ() - pos.getZ()
)) + random.nextInt(2);
)) + random.nextInt(2);
if (dist > 0) {
state = world.getBlockState(mut);
while (!state.getFluidState().isEmpty() || state.getMaterial().equals(Material.WATER_PLANT)) {
@ -156,7 +156,7 @@ public class SulphuricCaveFeature extends DefaultFeature {
p,
EndBlocks.TUBE_WORM.defaultBlockState()
.setValue(HorizontalDirectionalBlock.FACING, dir)
);
);
}
}
mut.setY(mut.getY() + 1);
@ -167,8 +167,8 @@ public class SulphuricCaveFeature extends DefaultFeature {
while (state.is(Blocks.WATER)) {
BlocksHelper.setWithoutUpdate(world, mut, EndBlocks.VENT_BUBBLE_COLUMN.defaultBlockState());
world.scheduleTick(mut.immutable(),
EndBlocks.VENT_BUBBLE_COLUMN,
MHelper.randRange(8, 32, random));
EndBlocks.VENT_BUBBLE_COLUMN,
MHelper.randRange(8, 32, random));
mut.setY(mut.getY() + 1);
state = world.getBlockState(mut);
}

View file

@ -12,10 +12,10 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Fluids;
import com.google.common.collect.Sets;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.EndBlockProperties;
import org.betterx.betterend.blocks.SulphurCrystalBlock;
import org.betterx.betterend.noise.OpenSimplexNoise;
@ -169,7 +169,7 @@ public class SulphuricLakeFeature extends DefaultFeature {
world,
pos.getX() + dir.getStepX() * 2,
pos.getZ() + dir.getStepZ() * 2
) < y || getYOnSurface(
) < y || getYOnSurface(
world,
pos.getX() + dir.getStepX() * 3,
pos.getZ() + dir.getStepZ() * 3) < y) {

View file

@ -8,10 +8,10 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.HydrothermalVentBlock;
import org.betterx.betterend.registry.EndBlocks;
@ -24,7 +24,7 @@ public class SurfaceVentFeature extends DefaultFeature {
pos = getPosOnSurface(
world,
new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))
);
);
if (!world.getBlockState(pos.below(3)).is(CommonBlockTags.GEN_END_STONES)) {
return false;
}
@ -39,7 +39,7 @@ public class SurfaceVentFeature extends DefaultFeature {
int dist = MHelper.floor(2 - MHelper.length(
mut.getX() - pos.getX(),
mut.getZ() - pos.getZ()
)) + random.nextInt(2);
)) + random.nextInt(2);
if (dist > 0) {
BlockState state = world.getBlockState(mut);
for (int n = 0; n < 10 && state.isAir(); n++) {

View file

@ -11,7 +11,8 @@ import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFCoordModify;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
@ -19,7 +20,6 @@ import org.betterx.bclib.sdf.operator.SDFRotation;
import org.betterx.bclib.sdf.operator.SDFUnion;
import org.betterx.bclib.sdf.primitive.SDFTorus;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
public class ThinArchFeature extends DefaultFeature {
@ -36,9 +36,9 @@ public class ThinArchFeature extends DefaultFeature {
RandomSource random = featurePlaceContext.random();
BlockPos pos = getPosOnSurfaceWG(world,
new BlockPos((origin.getX() & 0xFFFFFFF0) | 7,
0,
(origin.getZ() & 0xFFFFFFF0) | 7));
new BlockPos((origin.getX() & 0xFFFFFFF0) | 7,
0,
(origin.getZ() & 0xFFFFFFF0) | 7));
if (!world.getBlockState(pos.below(5)).is(CommonBlockTags.GEN_END_STONES)) {
return false;
}

View file

@ -12,9 +12,9 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import com.google.common.collect.Sets;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.util.BlockFixer;
import org.betterx.betterend.world.biome.cave.EndCaveBiome;

View file

@ -17,13 +17,13 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import org.betterx.bclib.api.biomes.BCLBiome;
import org.betterx.bclib.api.biomes.BiomeAPI;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.generator.BiomePicker;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome;
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.bclib.world.generator.BiomePicker;
import org.betterx.betterend.registry.EndBiomes;
import org.betterx.betterend.util.BlockFixer;
import org.betterx.betterend.world.biome.EndBiome;

View file

@ -8,7 +8,7 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Material;
import com.google.common.collect.Sets;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.betterend.noise.OpenSimplexNoise;

View file

@ -19,11 +19,11 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import org.betterx.bclib.api.biomes.BCLBiome;
import org.betterx.bclib.api.biomes.BiomeAPI;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.generator.BiomePicker;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome;
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.world.generator.BiomePicker;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBiomes;
import org.betterx.betterend.world.biome.EndBiome;
@ -83,11 +83,11 @@ public class TunelCaveFeature extends EndCaveFeature {
float vert = Mth.sin((y + (float) noiseV.eval(
pos.getX() * 0.01,
pos.getZ() * 0.01
) * 20) * 0.1F) * 0.9F;
) * 20) * 0.1F) * 0.9F;
float dist = (float) noiseD.eval(pos.getX() * 0.1, y * 0.1, pos.getZ() * 0.1) * 0.12F;
val = (val + vert * vert + dist) + density + gradient;
if (val < 0.15 && world.getBlockState(pos).is(CommonBlockTags.GEN_END_STONES) && noWaterNear(world,
pos)) {
pos)) {
positions.add(pos.immutable());
}
}
@ -234,10 +234,10 @@ public class TunelCaveFeature extends EndCaveFeature {
return hasCavesInBiome(world, pos.offset(-8, 0, -8)) && hasCavesInBiome(
world,
pos.offset(8, 0, -8)
) && hasCavesInBiome(world,
pos.offset(-8,
0,
8)) && hasCavesInBiome(
) && hasCavesInBiome(world,
pos.offset(-8,
0,
8)) && hasCavesInBiome(
world,
pos.offset(8, 0, 8));
}

View file

@ -14,7 +14,8 @@ import net.minecraft.world.level.material.Material;
import com.google.common.collect.Lists;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.PosInfo;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.*;
@ -22,7 +23,6 @@ import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.util.SplineHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
@ -111,10 +111,10 @@ public class DragonTreeFeature extends DefaultFeature {
Vector3f last = branch.get(branch.size() - 1);
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(CommonBlockTags.GEN_END_STONES)) {
SplineHelper.fillSpline(branch,
world,
EndBlocks.DRAGON_TREE.getBark().defaultBlockState(),
pos,
REPLACE);
world,
EndBlocks.DRAGON_TREE.getBark().defaultBlockState(),
pos,
REPLACE);
}
}
}
@ -181,7 +181,7 @@ public class DragonTreeFeature extends DefaultFeature {
random.nextGaussian() * 1,
random.nextGaussian() * 1,
random.nextGaussian() * 1
);
);
boolean place = true;
for (Direction d : Direction.values()) {
BlockState state = world.getBlockState(p.relative(d));
@ -230,7 +230,7 @@ public class DragonTreeFeature extends DefaultFeature {
new Vector3f(0.4F, 0.6F, 0),
new Vector3f(0.8F, 0.8F, 0),
new Vector3f(1, 1, 0)
);
);
SIDE1 = Lists.newArrayList(new Vector3f(0.4F, 0.6F, 0), new Vector3f(0.8F, 0.8F, 0), new Vector3f(1, 1, 0));
SIDE2 = SplineHelper.copySpline(SIDE1);
@ -250,7 +250,7 @@ public class DragonTreeFeature extends DefaultFeature {
new Vector3f(0.3F, 0.3F, 0),
new Vector3f(0.7F, 0.05F, 0),
new Vector3f(0.8F, -0.2F, 0)
);
);
SplineHelper.offset(ROOT, new Vector3f(0, -0.45F, 0));
}
}

View file

@ -15,13 +15,13 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Material;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.blocks.BaseAttachedBlock;
import org.betterx.bclib.sdf.PosInfo;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.util.SplineHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.registry.EndBlocks;
import java.util.List;
@ -54,7 +54,7 @@ public class GiganticAmaranitaFeature extends DefaultFeature {
radius,
0.2F,
(bpos) -> EndBlocks.AMARANITA_STEM.defaultBlockState()
);
);
Vector3f capPos = spline.get(spline.size() - 1);
makeHead(world, pos.offset(capPos.x() + 0.5F, capPos.y() + 1.5F, capPos.z() + 0.5F), Mth.floor(size / 1.6F));
@ -107,7 +107,7 @@ public class GiganticAmaranitaFeature extends DefaultFeature {
mut,
EndBlocks.AMARANITA_FUR.defaultBlockState()
.setValue(BaseAttachedBlock.FACING, Direction.DOWN)
);
);
}
}
}
@ -172,13 +172,13 @@ public class GiganticAmaranitaFeature extends DefaultFeature {
Direction dir = Direction.fromAxisAndDirection(
axis,
distance < 0 ? AxisDirection.NEGATIVE : AxisDirection.POSITIVE
);
);
BlocksHelper.setWithoutUpdate(
world,
offseted,
EndBlocks.AMARANITA_FUR.defaultBlockState()
.setValue(BaseAttachedBlock.FACING, dir)
);
);
}
mut.move(Direction.DOWN);
}
@ -188,7 +188,7 @@ public class GiganticAmaranitaFeature extends DefaultFeature {
mut,
EndBlocks.AMARANITA_FUR.defaultBlockState()
.setValue(BaseAttachedBlock.FACING, Direction.DOWN)
);
);
}
}
}
@ -298,13 +298,13 @@ public class GiganticAmaranitaFeature extends DefaultFeature {
Direction dir = Direction.fromAxisAndDirection(
axis,
distance < 0 ? AxisDirection.NEGATIVE : AxisDirection.POSITIVE
);
);
BlocksHelper.setWithoutUpdate(
world,
offseted,
EndBlocks.AMARANITA_FUR.defaultBlockState()
.setValue(BaseAttachedBlock.FACING, dir)
);
);
}
mut.move(Direction.DOWN);
}
@ -314,7 +314,7 @@ public class GiganticAmaranitaFeature extends DefaultFeature {
mut,
EndBlocks.AMARANITA_FUR.defaultBlockState()
.setValue(BaseAttachedBlock.FACING, Direction.DOWN)
);
);
}
}
}

View file

@ -12,13 +12,13 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.phys.AABB;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.sdf.PosInfo;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.*;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.util.SplineHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.HelixTreeLeavesBlock;
import org.betterx.betterend.registry.EndBlocks;
@ -71,20 +71,20 @@ public class HelixTreeFeature extends DefaultFeature {
sdf.addPostProcess(POST).fillArea(world, pos, new AABB(pos.offset(-dx, dy1, -dx), pos.offset(dx, dy2, dx)));
SplineHelper.scale(spline, scale);
SplineHelper.fillSplineForce(spline,
world,
EndBlocks.HELIX_TREE.getBark().defaultBlockState(),
pos,
(state) -> {
return state.getMaterial().isReplaceable();
});
world,
EndBlocks.HELIX_TREE.getBark().defaultBlockState(),
pos,
(state) -> {
return state.getMaterial().isReplaceable();
});
SplineHelper.rotateSpline(spline, (float) Math.PI);
SplineHelper.fillSplineForce(spline,
world,
EndBlocks.HELIX_TREE.getBark().defaultBlockState(),
pos,
(state) -> {
return state.getMaterial().isReplaceable();
});
world,
EndBlocks.HELIX_TREE.getBark().defaultBlockState(),
pos,
(state) -> {
return state.getMaterial().isReplaceable();
});
SplineHelper.scale(spline2, scale);
BlockPos leafStart = pos.offset(lastPoint.x() + 0.5, lastPoint.y() + 0.5, lastPoint.z() + 0.5);
SplineHelper.fillSplineForce(
@ -95,7 +95,7 @@ public class HelixTreeFeature extends DefaultFeature {
(state) -> {
return state.getMaterial().isReplaceable();
}
);
);
spline.clear();
float rad = MHelper.randRange(8F, 11F, random);

View file

@ -12,13 +12,13 @@ import net.minecraft.world.level.material.Material;
import com.google.common.collect.Lists;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.*;
import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.util.SplineHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.JellyshroomCapBlock;
import org.betterx.betterend.registry.EndBlocks;
@ -115,7 +115,7 @@ public class JellyshroomFeature extends DefaultFeature {
new Vector3f(0.3F, 0.30F, 0),
new Vector3f(0.7F, 0.05F, 0),
new Vector3f(0.8F, -0.20F, 0)
);
);
SplineHelper.offset(ROOT, new Vector3f(0, -0.45F, 0));
REPLACE = (state) -> {

View file

@ -13,7 +13,8 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Material;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.PosInfo;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
@ -23,7 +24,6 @@ import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.util.SplineHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
@ -101,7 +101,7 @@ public class LacugroveFeature extends DefaultFeature {
world,
mut,
y == top ? EndBlocks.LACUGROVE.getBark() : EndBlocks.LACUGROVE.getLog()
);
);
} else {
break;
}
@ -174,7 +174,7 @@ public class LacugroveFeature extends DefaultFeature {
random.nextGaussian() * 1,
random.nextGaussian() * 1,
random.nextGaussian() * 1
);
);
boolean place = true;
for (Direction d : Direction.values()) {
BlockState state = world.getBlockState(p.relative(d));

View file

@ -14,7 +14,8 @@ import net.minecraft.world.level.material.Material;
import com.google.common.collect.Lists;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.blocks.BlockProperties;
import org.betterx.bclib.blocks.BlockProperties.TripleShape;
import org.betterx.bclib.sdf.SDF;
@ -23,7 +24,6 @@ import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.util.SplineHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.basis.FurBlock;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
@ -85,7 +85,7 @@ public class LucerniaFeature extends DefaultFeature {
vec.x() * 0.2,
vec.y() * 0.2,
vec.z() * 0.2
) * 2F).setSource(sphere);
) * 2F).setSource(sphere);
sphere = new SDFDisplacement().setFunction((vec) -> MHelper.randRange(-1.5F, 1.5F, random)).setSource(sphere);
MutableBlockPos mut = new MutableBlockPos();
@ -190,10 +190,10 @@ public class LucerniaFeature extends DefaultFeature {
Vector3f last = branch.get(branch.size() - 1);
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(CommonBlockTags.GEN_END_STONES)) {
SplineHelper.fillSplineForce(branch,
world,
EndBlocks.LUCERNIA.getBark().defaultBlockState(),
pos,
REPLACE);
world,
EndBlocks.LUCERNIA.getBark().defaultBlockState(),
pos,
REPLACE);
}
}
}
@ -221,14 +221,14 @@ public class LucerniaFeature extends DefaultFeature {
new Vector3f(0.30F, 0.55F, 0.00F),
new Vector3f(0.42F, 0.70F, 0.00F),
new Vector3f(0.50F, 1.00F, 0.00F)
);
);
ROOT = Lists.newArrayList(
new Vector3f(0.1F, 0.70F, 0),
new Vector3f(0.3F, 0.30F, 0),
new Vector3f(0.7F, 0.05F, 0),
new Vector3f(0.8F, -0.20F, 0)
);
);
SplineHelper.offset(ROOT, new Vector3f(0, -0.45F, 0));
}
}

View file

@ -10,6 +10,7 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Material;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.*;
import org.betterx.bclib.sdf.primitive.SDFCappedCone;
@ -18,7 +19,6 @@ import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.util.SplineHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.MossyGlowshroomCapBlock;
import org.betterx.betterend.blocks.basis.FurBlock;
import org.betterx.betterend.noise.OpenSimplexNoise;
@ -98,7 +98,7 @@ public class MossyGlowshroomFeature extends DefaultFeature {
info.setBlockPos(
info.getPos().relative(dir),
EndBlocks.MOSSY_GLOWSHROOM_FUR.defaultBlockState().setValue(FurBlock.FACING, dir)
);
);
}
}
@ -106,7 +106,7 @@ public class MossyGlowshroomFeature extends DefaultFeature {
info.setBlockPos(
info.getPos().below(),
EndBlocks.MOSSY_GLOWSHROOM_FUR.defaultBlockState().setValue(FurBlock.FACING, Direction.DOWN)
);
);
}
}
return info.getState();
@ -145,7 +145,7 @@ public class MossyGlowshroomFeature extends DefaultFeature {
float y = pos.y() + (float) noise.eval(
pos.x() * 0.1 + CENTER.x(),
pos.z() * 0.1 + CENTER.z()
) * dist * 0.3F - dist * 0.15F;
) * dist * 0.3F - dist * 0.15F;
pos.set(pos.x(), y, pos.z());
}).setSource(cones);

View file

@ -12,6 +12,7 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf
import net.minecraft.world.level.material.Material;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.sdf.PosInfo;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.SDFDisplacement;
@ -22,7 +23,6 @@ import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.util.SplineHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
@ -61,7 +61,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
depth,
world,
pos
);
);
SDF function = SplineHelper.buildSDF(spline, 1.7F, 1.1F, (bpos) -> {
return EndBlocks.PYTHADENDRON.getBark().defaultBlockState();
@ -103,7 +103,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
EndBlocks.PYTHADENDRON.getBark().defaultBlockState(),
pos,
REPLACE
);
);
spline = SplineHelper.makeSpline(x, y, z, x2, y, z2, 5);
SplineHelper.powerOffset(spline, size * MHelper.randRange(1.0F, 2.0F, random), 4);
@ -116,7 +116,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
EndBlocks.PYTHADENDRON.getBark().defaultBlockState(),
pos,
REPLACE
);
);
OpenSimplexNoise noise = new OpenSimplexNoise(random.nextInt());
if (depth < 3) {

View file

@ -14,6 +14,7 @@ import net.minecraft.world.level.material.Material;
import com.google.common.collect.Lists;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.blocks.BlockProperties;
import org.betterx.bclib.blocks.BlockProperties.TripleShape;
import org.betterx.bclib.sdf.SDF;
@ -22,7 +23,6 @@ import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.util.SplineHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.basis.FurBlock;
import org.betterx.betterend.noise.OpenSimplexNoise;
import org.betterx.betterend.registry.EndBlocks;
@ -79,7 +79,7 @@ public class TenaneaFeature extends DefaultFeature {
vec.x() * 0.2,
vec.y() * 0.2,
vec.z() * 0.2
) * 2F).setSource(sphere);
) * 2F).setSource(sphere);
sphere = new SDFDisplacement().setFunction((vec) -> MHelper.randRange(-1.5F, 1.5F, random)).setSource(sphere);
MutableBlockPos mut = new MutableBlockPos();
@ -196,6 +196,6 @@ public class TenaneaFeature extends DefaultFeature {
new Vector3f(0.30F, 0.55F, 0.00F),
new Vector3f(0.42F, 0.70F, 0.00F),
new Vector3f(0.50F, 1.00F, 0.00F)
);
);
}
}

View file

@ -14,14 +14,14 @@ import net.minecraft.world.level.material.Material;
import com.google.common.collect.Lists;
import com.mojang.math.Vector3f;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.features.DefaultFeature;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.sdf.SDF;
import org.betterx.bclib.sdf.operator.*;
import org.betterx.bclib.sdf.primitive.SDFSphere;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.bclib.util.SplineHelper;
import org.betterx.bclib.world.features.DefaultFeature;
import org.betterx.betterend.blocks.UmbrellaTreeClusterBlock;
import org.betterx.betterend.blocks.UmbrellaTreeMembraneBlock;
import org.betterx.betterend.registry.EndBlocks;
@ -208,14 +208,14 @@ public class UmbrellaTreeFeature extends DefaultFeature {
new Vector3f(0.30F, 0.55F, 0.00F),
new Vector3f(0.42F, 0.70F, 0.00F),
new Vector3f(0.50F, 1.00F, 0.00F)
);
);
ROOT = Lists.newArrayList(
new Vector3f(0.1F, 0.70F, 0),
new Vector3f(0.3F, 0.30F, 0),
new Vector3f(0.7F, 0.05F, 0),
new Vector3f(0.8F, -0.20F, 0)
);
);
SplineHelper.offset(ROOT, new Vector3f(0, -0.45F, 0));
REPLACE = (state) -> {

View file

@ -8,8 +8,8 @@ import net.minecraft.world.level.levelgen.LegacyRandomSource;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.betterx.bclib.api.biomes.BCLBiome;
import org.betterx.bclib.api.biomes.BiomeAPI;
import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiome;
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
import org.betterx.bclib.util.MHelper;
import org.betterx.betterend.noise.OpenSimplexNoise;

View file

@ -13,7 +13,7 @@ import net.minecraft.world.level.chunk.ChunkGenerator;
import net.minecraft.world.level.levelgen.structure.BoundingBox;
import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceSerializationContext;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.betterend.noise.OpenSimplexNoise;

View file

@ -19,8 +19,8 @@ import net.minecraft.world.level.levelgen.Heightmap.Types;
import net.minecraft.world.level.levelgen.structure.BoundingBox;
import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceSerializationContext;
import org.betterx.bclib.api.biomes.BiomeAPI;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.MHelper;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndStructures;

View file

@ -24,8 +24,8 @@ import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceSeriali
import net.minecraft.world.level.material.FluidState;
import com.google.common.collect.Maps;
import org.betterx.bclib.api.biomes.BiomeAPI;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
import org.betterx.bclib.api.v2.tag.CommonBlockTags;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.betterend.noise.OpenSimplexNoise;

View file

@ -15,7 +15,7 @@ import net.minecraft.world.level.levelgen.structure.BoundingBox;
import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceType;
import com.google.common.collect.Maps;
import org.betterx.bclib.api.biomes.BiomeAPI;
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
import org.betterx.bclib.util.MHelper;
import org.betterx.betterend.noise.OpenSimplexNoise;

View file

@ -10,7 +10,7 @@ import net.minecraft.world.level.chunk.ChunkGenerator;
import net.minecraft.world.level.levelgen.structure.BoundingBox;
import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceSerializationContext;
import org.betterx.bclib.world.structures.StructureWorld;
import org.betterx.bclib.api.v2.levelgen.structures.StructureWorld;
import org.betterx.betterend.registry.EndStructures;
import java.util.function.Consumer;