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 classstatic interface -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final com.mojang.serialization.Codec<FoliagePlacer> protected final IntProviderprotected final IntProvider -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcreateFoliage(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pBlockSetter, RandomSource pRandom, TreeConfiguration pConfig, int pMaxFreeTreeHeight, FoliagePlacer.FoliageAttachment pAttachment, int pFoliageHeight, int pFoliageRadius) protected abstract voidcreateFoliage(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pBlockSetter, RandomSource pRandom, TreeConfiguration pConfig, int pMaxFreeTreeHeight, FoliagePlacer.FoliageAttachment pAttachment, int pFoliageHeight, int pFoliageRadius, int pOffset) abstract intfoliageHeight(RandomSource pRandom, int pHeight, TreeConfiguration pConfig) 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> pInstance) intfoliageRadius(RandomSource pRandom, int pRadius) private intoffset(RandomSource pRandom) protected voidplaceLeavesRow(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pFoliageSetter, RandomSource pRandom, TreeConfiguration pTreeConfiguration, BlockPos pPos, int pRange, int pLocalY, boolean pLarge) protected final voidplaceLeavesRowWithHangingLeavesBelow(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pFoliageSetter, RandomSource pRandom, TreeConfiguration pTreeConfiguration, BlockPos pPos, int pRange, int pLocalY, boolean pLarge, float pHangingLeavesChance, float pHangingLeavesExtensionChance) protected abstract booleanshouldSkipLocation(RandomSource pRandom, int pLocalX, int pLocalY, int pLocalZ, int pRange, boolean pLarge) Skips certain positions based on the provided shape, such as rounding corners randomly.protected booleanshouldSkipLocationSigned(RandomSource pRandom, int pLocalX, int pLocalY, int pLocalZ, int pRange, boolean pLarge) private static booleantryPlaceExtension(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pFoliageSetter, RandomSource pRandom, TreeConfiguration pTreeConfiguration, float pExtensionChance, BlockPos pLogPos, BlockPos.MutableBlockPos pPos) protected static booleantryPlaceLeaf(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pFoliageSetter, RandomSource pRandom, TreeConfiguration pTreeConfiguration, BlockPos pPos) 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> pInstance) -
type
-
createFoliage
public void createFoliage(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pBlockSetter, RandomSource pRandom, TreeConfiguration pConfig, int pMaxFreeTreeHeight, FoliagePlacer.FoliageAttachment pAttachment, int pFoliageHeight, int pFoliageRadius) -
createFoliage
protected abstract void createFoliage(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pBlockSetter, RandomSource pRandom, TreeConfiguration pConfig, int pMaxFreeTreeHeight, FoliagePlacer.FoliageAttachment pAttachment, int pFoliageHeight, int pFoliageRadius, int pOffset) -
foliageHeight
-
foliageRadius
-
offset
-
shouldSkipLocation
protected abstract boolean shouldSkipLocation(RandomSource pRandom, int pLocalX, int pLocalY, int pLocalZ, int pRange, boolean pLarge) 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 pRandom, int pLocalX, int pLocalY, int pLocalZ, int pRange, boolean pLarge) -
placeLeavesRow
protected void placeLeavesRow(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pFoliageSetter, RandomSource pRandom, TreeConfiguration pTreeConfiguration, BlockPos pPos, int pRange, int pLocalY, boolean pLarge) -
placeLeavesRowWithHangingLeavesBelow
protected final void placeLeavesRowWithHangingLeavesBelow(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pFoliageSetter, RandomSource pRandom, TreeConfiguration pTreeConfiguration, BlockPos pPos, int pRange, int pLocalY, boolean pLarge, float pHangingLeavesChance, float pHangingLeavesExtensionChance) -
tryPlaceExtension
private static boolean tryPlaceExtension(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pFoliageSetter, RandomSource pRandom, TreeConfiguration pTreeConfiguration, float pExtensionChance, BlockPos pLogPos, BlockPos.MutableBlockPos pPos) -
tryPlaceLeaf
protected static boolean tryPlaceLeaf(LevelSimulatedReader pLevel, FoliagePlacer.FoliageSetter pFoliageSetter, RandomSource pRandom, TreeConfiguration pTreeConfiguration, BlockPos pPos)
-