More Placement Balancing

This commit is contained in:
Frank 2022-06-03 01:26:24 +02:00
parent 7b9936af05
commit 35ce65674b
3 changed files with 18 additions and 2 deletions

View file

@ -91,6 +91,10 @@ public class BCLFeatureBuilder<FC extends FeatureConfiguration, F extends Featur
return modifier(CountPlacement.of(UniformInt.of(0, count))); return modifier(CountPlacement.of(UniformInt.of(0, count)));
} }
public BCLFeatureBuilder countRange(int min, int max) {
return modifier(CountPlacement.of(UniformInt.of(min, max)));
}
/** /**
* Generate feature in certain iterations (per chunk). * Generate feature in certain iterations (per chunk).
* Feature will be generated on all layers (example - Nether plants). * Feature will be generated on all layers (example - Nether plants).

View file

@ -14,10 +14,20 @@ import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfigur
import net.minecraft.world.level.levelgen.placement.PlacedFeature; import net.minecraft.world.level.levelgen.placement.PlacedFeature;
import net.minecraft.world.level.levelgen.placement.PlacementModifier; import net.minecraft.world.level.levelgen.placement.PlacementModifier;
import org.betterx.bclib.BCLib;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Optional; import java.util.Optional;
public class BCLFeature { public class BCLFeature {
public static final Feature<ScatterFeatureConfig.OnSolid> SCATTER_ON_SOLID = register(
BCLib.makeID("scatter_on_solid"),
new ScatterFeature<>(ScatterFeatureConfig.OnSolid.CODEC)
);
public static final Feature<BlockPlaceFeatureConfig> PLACE_BLOCK = register(
BCLib.makeID("place_block"),
new BlockPlaceFeature<>(BlockPlaceFeatureConfig.CODEC)
);
private final Holder<PlacedFeature> placedFeature; private final Holder<PlacedFeature> placedFeature;
private final Decoration featureStep; private final Decoration featureStep;
private final Feature<?> feature; private final Feature<?> feature;
@ -81,7 +91,8 @@ public class BCLFeature {
return optional.isPresent(); return optional.isPresent();
} }
public static <C extends FeatureConfiguration, F extends Feature<C>> F register(String string, F feature) { public static <C extends FeatureConfiguration, F extends Feature<C>> F register(ResourceLocation string,
F feature) {
return Registry.register(Registry.FEATURE, string, feature); return Registry.register(Registry.FEATURE, string, feature);
} }

View file

@ -7,12 +7,13 @@ import net.minecraft.world.level.levelgen.feature.Feature;
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
import com.mojang.serialization.Codec; import com.mojang.serialization.Codec;
import org.betterx.bclib.BCLib;
import org.betterx.bclib.api.features.BCLFeatureBuilder; import org.betterx.bclib.api.features.BCLFeatureBuilder;
import org.betterx.bclib.world.structures.StructureNBT; import org.betterx.bclib.world.structures.StructureNBT;
import org.betterx.bclib.world.structures.StructureWorldNBT; import org.betterx.bclib.world.structures.StructureWorldNBT;
public class TemplateFeature<FC extends TemplateFeatureConfig> extends Feature<FC> { public class TemplateFeature<FC extends TemplateFeatureConfig> extends Feature<FC> {
public static final Feature<TemplateFeatureConfig> INSTANCE = BCLFeature.register("template", public static final Feature<TemplateFeatureConfig> INSTANCE = BCLFeature.register(BCLib.makeID("template"),
new TemplateFeature( new TemplateFeature(
TemplateFeatureConfig.CODEC)); TemplateFeatureConfig.CODEC));