Structures

This commit is contained in:
paulevsGitch 2020-09-23 15:42:30 +03:00
parent 2fdad6aee8
commit 35d8c14d20
9 changed files with 134 additions and 48 deletions

View 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;
}
}

View file

@ -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;
}
}