Structures
This commit is contained in:
parent
2fdad6aee8
commit
35d8c14d20
9 changed files with 134 additions and 48 deletions
|
@ -26,6 +26,7 @@ import net.minecraft.world.gen.feature.ConfiguredStructureFeature;
|
|||
import net.minecraft.world.gen.surfacebuilder.ConfiguredSurfaceBuilders;
|
||||
import ru.betterend.BetterEnd;
|
||||
import ru.betterend.util.MHelper;
|
||||
import ru.betterend.world.features.EndFeature;
|
||||
|
||||
public class BiomeDefinition {
|
||||
private final List<ConfiguredStructureFeature<?, ?>> structures = Lists.newArrayList();
|
||||
|
@ -43,41 +44,12 @@ public class BiomeDefinition {
|
|||
private int fogColor = 3344392;
|
||||
private float fogDensity = 1F;
|
||||
|
||||
private boolean stalactites = true;
|
||||
private boolean bnStructures = true;
|
||||
|
||||
private final Identifier id;
|
||||
|
||||
public BiomeDefinition(String name) {
|
||||
this.id = new Identifier(BetterEnd.MOD_ID, name);
|
||||
}
|
||||
|
||||
public BiomeDefinition setStalactites(boolean value) {
|
||||
stalactites = value;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BiomeDefinition setBNStructures(boolean value) {
|
||||
bnStructures = value;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BiomeDefinition setDefaultOres(boolean value) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BiomeDefinition setDefaultStructureFeatures(boolean value) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BiomeDefinition setDefaultFeatures(boolean value) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BiomeDefinition setDefaultMobs(boolean value) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BiomeDefinition setParticleConfig(BiomeParticleConfig config) {
|
||||
this.particleConfig = config;
|
||||
return this;
|
||||
|
@ -97,10 +69,17 @@ public class BiomeDefinition {
|
|||
}
|
||||
|
||||
public BiomeDefinition addStructureFeature(ConfiguredStructureFeature<?, ?> feature) {
|
||||
System.out.println("Structure " + feature);
|
||||
structures.add(feature);
|
||||
return this;
|
||||
}
|
||||
|
||||
public BiomeDefinition addFeature(EndFeature feature) {
|
||||
FeatureInfo info = new FeatureInfo();
|
||||
info.featureStep = feature.getFeatureStep();
|
||||
info.feature = feature.getFeatureConfigured();
|
||||
features.add(info);
|
||||
return this;
|
||||
}
|
||||
|
||||
public BiomeDefinition addFeature(Feature featureStep, ConfiguredFeature<?, ?> feature) {
|
||||
FeatureInfo info = new FeatureInfo();
|
||||
|
@ -208,12 +187,4 @@ public class BiomeDefinition {
|
|||
public float getFodDensity() {
|
||||
return fogDensity;
|
||||
}
|
||||
|
||||
public boolean hasStalactites() {
|
||||
return stalactites;
|
||||
}
|
||||
|
||||
public boolean hasBNStructures() {
|
||||
return bnStructures;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
package ru.betterend.world.biome;
|
||||
|
||||
import ru.betterend.registry.FeatureRegistry;
|
||||
|
||||
public class BiomeFoggyMushroomland extends EndBiome {
|
||||
public BiomeFoggyMushroomland() {
|
||||
super(new BiomeDefinition("foggy_mushroomland")
|
||||
.setFogColor(41, 122, 173)
|
||||
.setFogDensity(5)
|
||||
.addFeature(FeatureRegistry.STONE_SPIRAL));
|
||||
}
|
||||
}
|
46
src/main/java/ru/betterend/world/features/EndFeature.java
Normal file
46
src/main/java/ru/betterend/world/features/EndFeature.java
Normal file
|
@ -0,0 +1,46 @@
|
|||
package ru.betterend.world.features;
|
||||
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.registry.BuiltinRegistries;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.world.gen.GenerationStep;
|
||||
import net.minecraft.world.gen.decorator.ChanceDecoratorConfig;
|
||||
import net.minecraft.world.gen.decorator.ConfiguredDecorator;
|
||||
import net.minecraft.world.gen.decorator.Decorator;
|
||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||
import net.minecraft.world.gen.feature.DefaultFeatureConfig;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
import net.minecraft.world.gen.feature.FeatureConfig;
|
||||
import ru.betterend.BetterEnd;
|
||||
|
||||
public class EndFeature {
|
||||
private final Feature<DefaultFeatureConfig> feature;
|
||||
private final ConfiguredFeature<?, ?> featureConfigured;
|
||||
private final GenerationStep.Feature featureStep;
|
||||
|
||||
public EndFeature(String name, Feature<DefaultFeatureConfig> feature, GenerationStep.Feature featureStep, ConfiguredDecorator<?> configuredDecorator) {
|
||||
Identifier id = new Identifier(BetterEnd.MOD_ID, name);
|
||||
this.featureStep = featureStep;
|
||||
this.feature = Registry.register(Registry.FEATURE, id, feature);
|
||||
this.featureConfigured = Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, id, feature.configure(FeatureConfig.DEFAULT).decorate(configuredDecorator));
|
||||
}
|
||||
|
||||
public EndFeature(String name, Feature<DefaultFeatureConfig> feature) {
|
||||
Identifier id = new Identifier(BetterEnd.MOD_ID, name);
|
||||
this.featureStep = GenerationStep.Feature.VEGETAL_DECORATION;
|
||||
this.feature = Registry.register(Registry.FEATURE, id, feature);
|
||||
this.featureConfigured = Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, id, feature.configure(FeatureConfig.DEFAULT).decorate(Decorator.CHANCE.configure(new ChanceDecoratorConfig(100))));
|
||||
}
|
||||
|
||||
public Feature<DefaultFeatureConfig> getFeature() {
|
||||
return feature;
|
||||
}
|
||||
|
||||
public ConfiguredFeature<?, ?> getFeatureConfigured() {
|
||||
return featureConfigured;
|
||||
}
|
||||
|
||||
public GenerationStep.Feature getFeatureStep() {
|
||||
return featureStep;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package ru.betterend.world.features;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Direction;
|
||||
import net.minecraft.world.Heightmap.Type;
|
||||
import net.minecraft.world.StructureWorldAccess;
|
||||
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
||||
import net.minecraft.world.gen.feature.DefaultFeatureConfig;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
|
||||
public class StoneSpiralFeature extends Feature<DefaultFeatureConfig> {
|
||||
public StoneSpiralFeature() {
|
||||
super(DefaultFeatureConfig.CODEC);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generate(StructureWorldAccess world, ChunkGenerator generator, Random random, BlockPos pos, DefaultFeatureConfig config) {
|
||||
BlockPos topPos = world.getTopPosition(Type.WORLD_SURFACE, pos);
|
||||
Direction offset = Direction.NORTH;
|
||||
|
||||
System.out.println(topPos);
|
||||
|
||||
for (int y = 1; y <= 15; y++) {
|
||||
offset = offset.rotateYClockwise();
|
||||
world.setBlockState(topPos.up(y).offset(offset), Blocks.STONE.getDefaultState(), 3);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -57,7 +57,7 @@ public class BetterEndBiomeSource extends BiomeSource {
|
|||
|
||||
float height = TheEndBiomeSource.getNoiseAt(noise, (int) i * 2 + 1, (int) j * 2 + 1);
|
||||
|
||||
EndBiome netherBiome = height < 20.0F ? mapVoid.getBiome(biomeX << 2, biomeZ << 2) : mapLand.getBiome(biomeX << 2, biomeZ << 2);
|
||||
EndBiome netherBiome = height < -20.0F ? mapVoid.getBiome(biomeX << 2, biomeZ << 2) : mapLand.getBiome(biomeX << 2, biomeZ << 2);
|
||||
if (biomeX == 0 && biomeZ == 0) {
|
||||
mapLand.clearCache();
|
||||
mapVoid.clearCache();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue