Code style fix, interface rename, custom item getter
This commit is contained in:
parent
179ada3296
commit
c6afa74529
134 changed files with 3404 additions and 1244 deletions
|
@ -142,7 +142,11 @@ public class BCLBiome {
|
|||
list.add(new StructureInfo(structure, offsetY, terrainMerge));
|
||||
});
|
||||
if (!list.isEmpty()) {
|
||||
structuresFeature = BCLFeature.makeChansedFeature(new ResourceLocation(ns, nm + "_structures"), new ListFeature(list), 10);
|
||||
structuresFeature = BCLFeature.makeChansedFeature(
|
||||
new ResourceLocation(ns, nm + "_structures"),
|
||||
new ListFeature(list),
|
||||
10
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -140,12 +140,19 @@ public class BCLBiomeDef {
|
|||
}
|
||||
|
||||
public BCLBiomeDef setSurface(Block block) {
|
||||
setSurface(SurfaceBuilder.DEFAULT.configured(new SurfaceBuilderBaseConfiguration(block.defaultBlockState(), Blocks.END_STONE.defaultBlockState(), Blocks.END_STONE.defaultBlockState())));
|
||||
setSurface(SurfaceBuilder.DEFAULT.configured(new SurfaceBuilderBaseConfiguration(
|
||||
block.defaultBlockState(),
|
||||
Blocks.END_STONE.defaultBlockState(),
|
||||
Blocks.END_STONE.defaultBlockState()
|
||||
)));
|
||||
return this;
|
||||
}
|
||||
|
||||
public BCLBiomeDef setSurface(Block block1, Block block2) {
|
||||
setSurface(DoubleBlockSurfaceBuilder.register("bclib_" + id.getPath() + "_surface").setBlock1(block1).setBlock2(block2).configured());
|
||||
setSurface(DoubleBlockSurfaceBuilder.register("bclib_" + id.getPath() + "_surface")
|
||||
.setBlock1(block1)
|
||||
.setBlock2(block2)
|
||||
.configured());
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -299,7 +306,10 @@ public class BCLBiomeDef {
|
|||
Builder effects = new Builder();
|
||||
|
||||
mobs.forEach((spawn) -> {
|
||||
spawnSettings.addSpawn(spawn.type.getCategory(), new MobSpawnSettings.SpawnerData(spawn.type, spawn.weight, spawn.minGroupSize, spawn.maxGroupSize));
|
||||
spawnSettings.addSpawn(
|
||||
spawn.type.getCategory(),
|
||||
new MobSpawnSettings.SpawnerData(spawn.type, spawn.weight, spawn.minGroupSize, spawn.maxGroupSize)
|
||||
);
|
||||
});
|
||||
|
||||
spawns.forEach((entry) -> {
|
||||
|
@ -311,14 +321,28 @@ public class BCLBiomeDef {
|
|||
features.forEach((info) -> generationSettings.addFeature(info.featureStep, info.feature));
|
||||
carvers.forEach((info) -> generationSettings.addCarver(info.carverStep, info.carver));
|
||||
|
||||
effects.skyColor(0).waterColor(waterColor).waterFogColor(waterFogColor).fogColor(fogColor).foliageColorOverride(foliageColor).grassColorOverride(grassColor);
|
||||
effects.skyColor(0)
|
||||
.waterColor(waterColor)
|
||||
.waterFogColor(waterFogColor)
|
||||
.fogColor(fogColor)
|
||||
.foliageColorOverride(foliageColor)
|
||||
.grassColorOverride(grassColor);
|
||||
if (loop != null) effects.ambientLoopSound(loop);
|
||||
if (mood != null) effects.ambientMoodSound(mood);
|
||||
if (additions != null) effects.ambientAdditionsSound(additions);
|
||||
if (particleConfig != null) effects.ambientParticle(particleConfig);
|
||||
effects.backgroundMusic(music != null ? new Music(music, 600, 2400, true) : Musics.END);
|
||||
|
||||
return new Biome.BiomeBuilder().precipitation(precipitation).biomeCategory(category).depth(depth).scale(0.2F).temperature(temperature).downfall(downfall).specialEffects(effects.build()).mobSpawnSettings(spawnSettings.build()).generationSettings(generationSettings.build()).build();
|
||||
return new Biome.BiomeBuilder().precipitation(precipitation)
|
||||
.biomeCategory(category)
|
||||
.depth(depth)
|
||||
.scale(0.2F)
|
||||
.temperature(temperature)
|
||||
.downfall(downfall)
|
||||
.specialEffects(effects.build())
|
||||
.mobSpawnSettings(spawnSettings.build())
|
||||
.generationSettings(generationSettings.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
private static final class SpawnInfo {
|
||||
|
|
|
@ -39,39 +39,65 @@ public class BCLFeature {
|
|||
}
|
||||
|
||||
public static BCLFeature makeVegetationFeature(ResourceLocation id, Feature<NoneFeatureConfiguration> feature, int density) {
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE).decorated(BCLDecorators.HEIGHTMAP_SQUARE).countRandom(density);
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE)
|
||||
.decorated(BCLDecorators.HEIGHTMAP_SQUARE)
|
||||
.countRandom(density);
|
||||
return new BCLFeature(id, feature, GenerationStep.Decoration.VEGETAL_DECORATION, configured);
|
||||
}
|
||||
|
||||
public static BCLFeature makeRawGenFeature(ResourceLocation id, Feature<NoneFeatureConfiguration> feature, int chance) {
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE).decorated(FeatureDecorator.CHANCE.configured(new ChanceDecoratorConfiguration(chance)));
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE)
|
||||
.decorated(FeatureDecorator.CHANCE.configured(new ChanceDecoratorConfiguration(
|
||||
chance)));
|
||||
return new BCLFeature(id, feature, GenerationStep.Decoration.RAW_GENERATION, configured);
|
||||
}
|
||||
|
||||
public static BCLFeature makeLakeFeature(ResourceLocation id, Feature<NoneFeatureConfiguration> feature, int chance) {
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE).decorated(FeatureDecorator.LAVA_LAKE.configured(new ChanceDecoratorConfiguration(chance)));
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE)
|
||||
.decorated(FeatureDecorator.LAVA_LAKE.configured(new ChanceDecoratorConfiguration(
|
||||
chance)));
|
||||
return new BCLFeature(id, feature, GenerationStep.Decoration.LAKES, configured);
|
||||
}
|
||||
|
||||
public static BCLFeature makeOreFeature(ResourceLocation id, Block blockOre, int veins, int veinSize, int offset, int minY, int maxY) {
|
||||
OreConfiguration featureConfig = new OreConfiguration(new BlockMatchTest(Blocks.END_STONE), blockOre.defaultBlockState(), veinSize);
|
||||
OreConfiguration featureConfig = new OreConfiguration(
|
||||
new BlockMatchTest(Blocks.END_STONE),
|
||||
blockOre.defaultBlockState(),
|
||||
veinSize
|
||||
);
|
||||
OreConfiguration config = new OreConfiguration(ANY_TERRAIN, blockOre.defaultBlockState(), 33);
|
||||
ConfiguredFeature<?, ?> oreFeature = Feature.ORE.configured(featureConfig).rangeUniform(VerticalAnchor.absolute(minY), VerticalAnchor.absolute(maxY)).squared().count(veins);
|
||||
return new BCLFeature(Feature.ORE, Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, id, oreFeature), GenerationStep.Decoration.UNDERGROUND_ORES);
|
||||
ConfiguredFeature<?, ?> oreFeature = Feature.ORE.configured(featureConfig)
|
||||
.rangeUniform(
|
||||
VerticalAnchor.absolute(minY),
|
||||
VerticalAnchor.absolute(maxY)
|
||||
)
|
||||
.squared()
|
||||
.count(veins);
|
||||
return new BCLFeature(
|
||||
Feature.ORE,
|
||||
Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, id, oreFeature),
|
||||
GenerationStep.Decoration.UNDERGROUND_ORES
|
||||
);
|
||||
}
|
||||
|
||||
public static BCLFeature makeChunkFeature(ResourceLocation id, Feature<NoneFeatureConfiguration> feature) {
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE).decorated(FeatureDecorator.COUNT.configured(new CountConfiguration(1)));
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE)
|
||||
.decorated(FeatureDecorator.COUNT.configured(new CountConfiguration(
|
||||
1)));
|
||||
return new BCLFeature(id, feature, GenerationStep.Decoration.LOCAL_MODIFICATIONS, configured);
|
||||
}
|
||||
|
||||
public static BCLFeature makeChansedFeature(ResourceLocation id, Feature<NoneFeatureConfiguration> feature, int chance) {
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE).decorated(FeatureDecorator.CHANCE.configured(new ChanceDecoratorConfiguration(chance)));
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE)
|
||||
.decorated(FeatureDecorator.CHANCE.configured(new ChanceDecoratorConfiguration(
|
||||
chance)));
|
||||
return new BCLFeature(id, feature, GenerationStep.Decoration.SURFACE_STRUCTURES, configured);
|
||||
}
|
||||
|
||||
public static BCLFeature makeCountRawFeature(ResourceLocation id, Feature<NoneFeatureConfiguration> feature, int chance) {
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE).decorated(FeatureDecorator.COUNT.configured(new CountConfiguration(chance)));
|
||||
ConfiguredFeature<?, ?> configured = feature.configured(FeatureConfiguration.NONE)
|
||||
.decorated(FeatureDecorator.COUNT.configured(new CountConfiguration(
|
||||
chance)));
|
||||
return new BCLFeature(id, feature, GenerationStep.Decoration.RAW_GENERATION, configured);
|
||||
}
|
||||
|
||||
|
|
|
@ -93,11 +93,18 @@ public abstract class NBTStructureFeature extends DefaultFeature {
|
|||
StructureTemplate structure = getStructure(world, center, random);
|
||||
Rotation rotation = getRotation(world, center, random);
|
||||
Mirror mirror = getMirror(world, center, random);
|
||||
BlockPos offset = StructureTemplate.transform(new BlockPos(structure.getSize()), mirror, rotation, BlockPos.ZERO);
|
||||
BlockPos offset = StructureTemplate.transform(
|
||||
new BlockPos(structure.getSize()),
|
||||
mirror,
|
||||
rotation,
|
||||
BlockPos.ZERO
|
||||
);
|
||||
center = center.offset(0, getYOffset(structure, world, center, random) + 0.5, 0);
|
||||
|
||||
BoundingBox bounds = makeBox(center);
|
||||
StructurePlaceSettings placementData = new StructurePlaceSettings().setRotation(rotation).setMirror(mirror).setBoundingBox(bounds);
|
||||
StructurePlaceSettings placementData = new StructurePlaceSettings().setRotation(rotation)
|
||||
.setMirror(mirror)
|
||||
.setBoundingBox(bounds);
|
||||
addStructureData(placementData);
|
||||
center = center.offset(-offset.getX() * 0.5, 0, -offset.getZ() * 0.5);
|
||||
structure.placeInWorld(world, center, center, placementData, random, 4);
|
||||
|
@ -135,7 +142,9 @@ public abstract class NBTStructureFeature extends DefaultFeature {
|
|||
BlockState stateSt = world.getBlockState(mut);
|
||||
if (!stateSt.is(TagAPI.GEN_TERRAIN)) {
|
||||
if (merge == TerrainMerge.SURFACE) {
|
||||
SurfaceBuilderConfiguration config = world.getBiome(mut).getGenerationSettings().getSurfaceBuilderConfig();
|
||||
SurfaceBuilderConfiguration config = world.getBiome(mut)
|
||||
.getGenerationSettings()
|
||||
.getSurfaceBuilderConfig();
|
||||
boolean isTop = mut.getY() == surfMax && state.getMaterial().isSolidBlocking();
|
||||
BlockState top = isTop ? config.getTopMaterial() : config.getUnderMaterial();
|
||||
BlocksHelper.setWithoutUpdate(world, mut, top);
|
||||
|
@ -147,7 +156,9 @@ public abstract class NBTStructureFeature extends DefaultFeature {
|
|||
else {
|
||||
if (stateSt.is(TagAPI.END_GROUND) && state.getMaterial().isSolidBlocking()) {
|
||||
if (merge == TerrainMerge.SURFACE) {
|
||||
SurfaceBuilderConfiguration config = world.getBiome(mut).getGenerationSettings().getSurfaceBuilderConfig();
|
||||
SurfaceBuilderConfiguration config = world.getBiome(mut)
|
||||
.getGenerationSettings()
|
||||
.getSurfaceBuilderConfig();
|
||||
BlocksHelper.setWithoutUpdate(world, mut, config.getUnderMaterial());
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -18,7 +18,11 @@ public class DestructionStructureProcessor extends StructureProcessor {
|
|||
|
||||
@Override
|
||||
public StructureBlockInfo processBlock(LevelReader worldView, BlockPos pos, BlockPos blockPos, StructureBlockInfo structureBlockInfo, StructureBlockInfo structureBlockInfo2, StructurePlaceSettings structurePlacementData) {
|
||||
if (!BlocksHelper.isInvulnerable(structureBlockInfo2.state, worldView, structureBlockInfo2.pos) && MHelper.RANDOM.nextInt(chance) == 0) {
|
||||
if (!BlocksHelper.isInvulnerable(
|
||||
structureBlockInfo2.state,
|
||||
worldView,
|
||||
structureBlockInfo2.pos
|
||||
) && MHelper.RANDOM.nextInt(chance) == 0) {
|
||||
return null;
|
||||
}
|
||||
return structureBlockInfo2;
|
||||
|
|
|
@ -14,7 +14,10 @@ public class TerrainStructureProcessor extends StructureProcessor {
|
|||
public StructureBlockInfo processBlock(LevelReader worldView, BlockPos pos, BlockPos blockPos, StructureBlockInfo structureBlockInfo, StructureBlockInfo structureBlockInfo2, StructurePlaceSettings structurePlacementData) {
|
||||
BlockPos bpos = structureBlockInfo2.pos;
|
||||
if (structureBlockInfo2.state.is(Blocks.END_STONE) && worldView.isEmptyBlock(bpos.above())) {
|
||||
BlockState top = worldView.getBiome(structureBlockInfo2.pos).getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial();
|
||||
BlockState top = worldView.getBiome(structureBlockInfo2.pos)
|
||||
.getGenerationSettings()
|
||||
.getSurfaceBuilderConfig()
|
||||
.getTopMaterial();
|
||||
return new StructureBlockInfo(bpos, top, structureBlockInfo2.nbt);
|
||||
}
|
||||
return structureBlockInfo2;
|
||||
|
|
|
@ -19,7 +19,10 @@ public class BCLStructureFeature {
|
|||
|
||||
public BCLStructureFeature(ResourceLocation id, StructureFeature<NoneFeatureConfiguration> structure, GenerationStep.Decoration step, int spacing, int separation) {
|
||||
this.featureStep = step;
|
||||
this.structure = FabricStructureBuilder.create(id, structure).step(step).defaultConfig(spacing, separation, RANDOM.nextInt(8192)).register();
|
||||
this.structure = FabricStructureBuilder.create(id, structure)
|
||||
.step(step)
|
||||
.defaultConfig(spacing, separation, RANDOM.nextInt(8192))
|
||||
.register();
|
||||
this.featureConfigured = this.structure.configured(NoneFeatureConfiguration.NONE);
|
||||
BuiltinRegistries.register(BuiltinRegistries.CONFIGURED_STRUCTURE_FEATURE, id, this.featureConfigured);
|
||||
FlatChunkGeneratorConfigAccessor.getStructureToFeatures().put(this.structure, this.featureConfigured);
|
||||
|
|
|
@ -47,6 +47,20 @@ public class DoubleBlockSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderBase
|
|||
@Override
|
||||
public void apply(Random random, ChunkAccess chunkAccess, Biome biome, int x, int z, int height, double noise, BlockState defaultBlock, BlockState defaultFluid, int l, int m, long seed, SurfaceBuilderBaseConfiguration surfaceBuilderConfiguration) {
|
||||
noise = NOISE.eval(x * 0.1, z * 0.1) + MHelper.randRange(-0.4, 0.4, random);
|
||||
SurfaceBuilder.DEFAULT.apply(random, chunkAccess, biome, x, z, height, noise, defaultBlock, defaultFluid, l, m, seed, noise > 0 ? config1 : config2);
|
||||
SurfaceBuilder.DEFAULT.apply(
|
||||
random,
|
||||
chunkAccess,
|
||||
biome,
|
||||
x,
|
||||
z,
|
||||
height,
|
||||
noise,
|
||||
defaultBlock,
|
||||
defaultFluid,
|
||||
l,
|
||||
m,
|
||||
seed,
|
||||
noise > 0 ? config1 : config2
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue