Class FoliagePlacer
java.lang.Object
net.minecraft.world.level.levelgen.feature.foliageplacers.FoliagePlacer
- Direct Known Subclasses:
AcaciaFoliagePlacer
,BlobFoliagePlacer
,CherryFoliagePlacer
,DarkOakFoliagePlacer
,MegaJungleFoliagePlacer
,MegaPineFoliagePlacer
,PineFoliagePlacer
,RandomSpreadFoliagePlacer
,SpruceFoliagePlacer
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
static interface
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final com.mojang.serialization.Codec
<FoliagePlacer> protected final IntProvider
protected final IntProvider
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
createFoliage
(LevelSimulatedReader level, FoliagePlacer.FoliageSetter blockSetter, RandomSource random, TreeConfiguration config, int maxFreeTreeHeight, FoliagePlacer.FoliageAttachment attachment, int foliageHeight, int foliageRadius) protected abstract void
createFoliage
(LevelSimulatedReader level, FoliagePlacer.FoliageSetter blockSetter, RandomSource random, TreeConfiguration config, int maxFreeTreeHeight, FoliagePlacer.FoliageAttachment attachment, int foliageHeight, int foliageRadius, int offset) abstract int
foliageHeight
(RandomSource random, int height, TreeConfiguration config) protected static <P extends FoliagePlacer>
com.mojang.datafixers.Products.P2<com.mojang.serialization.codecs.RecordCodecBuilder.Mu<P>, IntProvider, IntProvider> foliagePlacerParts
(com.mojang.serialization.codecs.RecordCodecBuilder.Instance<P> instance) int
foliageRadius
(RandomSource random, int radius) private int
offset
(RandomSource random) protected void
placeLeavesRow
(LevelSimulatedReader level, FoliagePlacer.FoliageSetter foliageSetter, RandomSource random, TreeConfiguration treeConfiguration, BlockPos pos, int range, int localY, boolean large) protected final void
placeLeavesRowWithHangingLeavesBelow
(LevelSimulatedReader level, FoliagePlacer.FoliageSetter foliageSetter, RandomSource random, TreeConfiguration treeConfiguration, BlockPos pos, int range, int localY, boolean large, float hangingLeavesChance, float hangingLeavesExtensionChance) protected abstract boolean
shouldSkipLocation
(RandomSource random, int localX, int localY, int localZ, int range, boolean large) Skips certain positions based on the provided shape, such as rounding corners randomly.protected boolean
shouldSkipLocationSigned
(RandomSource random, int localX, int localY, int localZ, int range, boolean large) private static boolean
tryPlaceExtension
(LevelSimulatedReader level, FoliagePlacer.FoliageSetter foliageSetter, RandomSource random, TreeConfiguration treeConfiguration, float extensionChance, BlockPos logPos, BlockPos.MutableBlockPos pos) protected static boolean
tryPlaceLeaf
(LevelSimulatedReader level, FoliagePlacer.FoliageSetter foliageSetter, RandomSource random, TreeConfiguration treeConfiguration, BlockPos pos) protected abstract FoliagePlacerType
<?> type()
-
Field Details
-
CODEC
-
radius
-
offset
-
-
Constructor Details
-
FoliagePlacer
-
-
Method Details
-
foliagePlacerParts
protected static <P extends FoliagePlacer> com.mojang.datafixers.Products.P2<com.mojang.serialization.codecs.RecordCodecBuilder.Mu<P>,IntProvider, foliagePlacerPartsIntProvider> (com.mojang.serialization.codecs.RecordCodecBuilder.Instance<P> instance) -
type
-
createFoliage
public void createFoliage(LevelSimulatedReader level, FoliagePlacer.FoliageSetter blockSetter, RandomSource random, TreeConfiguration config, int maxFreeTreeHeight, FoliagePlacer.FoliageAttachment attachment, int foliageHeight, int foliageRadius) -
createFoliage
protected abstract void createFoliage(LevelSimulatedReader level, FoliagePlacer.FoliageSetter blockSetter, RandomSource random, TreeConfiguration config, int maxFreeTreeHeight, FoliagePlacer.FoliageAttachment attachment, int foliageHeight, int foliageRadius, int offset) -
foliageHeight
-
foliageRadius
-
offset
-
shouldSkipLocation
protected abstract boolean shouldSkipLocation(RandomSource random, int localX, int localY, int localZ, int range, boolean large) Skips certain positions based on the provided shape, such as rounding corners randomly. The coordinates are passed in as absolute value, and should be within [0,range
]. -
shouldSkipLocationSigned
protected boolean shouldSkipLocationSigned(RandomSource random, int localX, int localY, int localZ, int range, boolean large) -
placeLeavesRow
protected void placeLeavesRow(LevelSimulatedReader level, FoliagePlacer.FoliageSetter foliageSetter, RandomSource random, TreeConfiguration treeConfiguration, BlockPos pos, int range, int localY, boolean large) -
placeLeavesRowWithHangingLeavesBelow
protected final void placeLeavesRowWithHangingLeavesBelow(LevelSimulatedReader level, FoliagePlacer.FoliageSetter foliageSetter, RandomSource random, TreeConfiguration treeConfiguration, BlockPos pos, int range, int localY, boolean large, float hangingLeavesChance, float hangingLeavesExtensionChance) -
tryPlaceExtension
private static boolean tryPlaceExtension(LevelSimulatedReader level, FoliagePlacer.FoliageSetter foliageSetter, RandomSource random, TreeConfiguration treeConfiguration, float extensionChance, BlockPos logPos, BlockPos.MutableBlockPos pos) -
tryPlaceLeaf
protected static boolean tryPlaceLeaf(LevelSimulatedReader level, FoliagePlacer.FoliageSetter foliageSetter, RandomSource random, TreeConfiguration treeConfiguration, BlockPos pos)
-