From fe8b20dcbaa78c7e67d1f27b71c337fa071c0f8e Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 23 Dec 2021 06:14:15 +0300 Subject: [PATCH] Additional builder functions --- .../bclib/api/features/BCLFeatureBuilder.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main/java/ru/bclib/api/features/BCLFeatureBuilder.java b/src/main/java/ru/bclib/api/features/BCLFeatureBuilder.java index ea301ebe..8fe756ca 100644 --- a/src/main/java/ru/bclib/api/features/BCLFeatureBuilder.java +++ b/src/main/java/ru/bclib/api/features/BCLFeatureBuilder.java @@ -2,6 +2,8 @@ package ru.bclib.api.features; import net.minecraft.data.worldgen.placement.PlacementUtils; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.valueproviders.IntProvider; +import net.minecraft.util.valueproviders.UniformInt; import net.minecraft.world.level.levelgen.GenerationStep.Decoration; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration; @@ -69,6 +71,15 @@ public class BCLFeatureBuilder { return modifier(CountPlacement.of(count)); } + /** + * Generate feature in certain iterations (per chunk). Count can be between 0 and max value. + * @param count maximum amount of iterations per chunk. + * @return same {@link BCLFeatureBuilder} instance. + */ + public BCLFeatureBuilder countMax(int count) { + return modifier(CountPlacement.of(UniformInt.of(0, count))); + } + /** * Generate feature in certain iterations (per chunk), count can be different in different chunks. * @param average how many times feature will be generated in chunk (in average). @@ -89,6 +100,17 @@ public class BCLFeatureBuilder { return modifier(CountOnEveryLayerPlacement.of(count)); } + /** + * Generate feature in certain iterations (per chunk). Count can be between 0 and max value. + * Feature will be generated on all layers (example - Nether plants). + * @param count maximum amount of iterations per chunk layers. + * @return same {@link BCLFeatureBuilder} instance. + */ + @SuppressWarnings("deprecation") + public BCLFeatureBuilder countLayersMax(int count) { + return modifier(CountOnEveryLayerPlacement.of(UniformInt.of(0, count))); + } + /** * Will place feature once in certain amount of chunks (in average). * @param chunks amount of chunks.