Package net.minecraft.world.gen.foliage
Class FoliagePlacer
java.lang.Object
net.minecraft.world.gen.foliage.FoliagePlacer
- Direct Known Subclasses:
AcaciaFoliagePlacer,BlobFoliagePlacer,CherryFoliagePlacer,DarkOakFoliagePlacer,JungleFoliagePlacer,MegaPineFoliagePlacer,PineFoliagePlacer,RandomSpreadFoliagePlacer,SpruceFoliagePlacer
- Mappings:
Namespace Name official dobintermediary net/minecraft/class_4647named net/minecraft/world/gen/foliage/FoliagePlacer
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic final classA point on a tree to generate foliage around -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final IntProviderprotected final IntProviderstatic final com.mojang.serialization.Codec<FoliagePlacer> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static <P extends FoliagePlacer>
com.mojang.datafixers.Products.P2<com.mojang.serialization.codecs.RecordCodecBuilder.Mu<P>,IntProvider, IntProvider> fillFoliagePlacerFields(com.mojang.serialization.codecs.RecordCodecBuilder.Instance<P> instance) voidgenerate(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, int trunkHeight, FoliagePlacer.TreeNode treeNode, int foliageHeight, int radius) protected abstract voidgenerate(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, int trunkHeight, FoliagePlacer.TreeNode treeNode, int foliageHeight, int radius, int offset) This is the main method used to generate foliage.protected voidgenerateSquare(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, BlockPos centerPos, int radius, int y, boolean giantTrunk) Generates a square of leaves with the given radius.protected final voidgenerateSquareWithHangingLeaves(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, BlockPos centerPos, int radius, int y, boolean giantTrunk, float hangingLeavesChance, float hangingLeavesExtensionChance) abstract intgetRandomHeight(Random random, int trunkHeight, TreeFeatureConfig config) private intgetRandomOffset(Random random) intgetRandomRadius(Random random, int baseHeight) protected abstract FoliagePlacerType<?>getType()protected abstract booleanisInvalidForLeaves(Random random, int dx, int y, int dz, int radius, boolean giantTrunk) Used to exclude certain positions such as corners when creating a square of leaves.protected booleanisPositionInvalid(Random random, int dx, int y, int dz, int radius, boolean giantTrunk) Normalizes x and z coords before checking if they are invalid.private static booleanplaceFoliageBlock(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, float chance, BlockPos origin, BlockPos.Mutable pos) protected static booleanplaceFoliageBlock(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, BlockPos pos)
-
Field Details
-
TYPE_CODEC
- Mappings:
Namespace Name Mixin selector official dLdob;d:Lcom/mojang/serialization/Codec;intermediary field_24931Lnet/minecraft/class_4647;field_24931:Lcom/mojang/serialization/Codec;named TYPE_CODECLnet/minecraft/world/gen/foliage/FoliagePlacer;TYPE_CODEC:Lcom/mojang/serialization/Codec;
-
radius
- Mappings:
Namespace Name Mixin selector official eLdob;e:Lbdb;intermediary field_21296Lnet/minecraft/class_4647;field_21296:Lnet/minecraft/class_6017;named radiusLnet/minecraft/world/gen/foliage/FoliagePlacer;radius:Lnet/minecraft/util/math/intprovider/IntProvider;
-
offset
- Mappings:
Namespace Name Mixin selector official fLdob;f:Lbdb;intermediary field_23753Lnet/minecraft/class_4647;field_23753:Lnet/minecraft/class_6017;named offsetLnet/minecraft/world/gen/foliage/FoliagePlacer;offset:Lnet/minecraft/util/math/intprovider/IntProvider;
-
-
Constructor Details
-
FoliagePlacer
- Mappings:
Namespace Name Mixin selector official <init>Ldob;<init>(Lbdb;Lbdb;)Vintermediary <init>Lnet/minecraft/class_4647;<init>(Lnet/minecraft/class_6017;Lnet/minecraft/class_6017;)Vnamed <init>Lnet/minecraft/world/gen/foliage/FoliagePlacer;<init>(Lnet/minecraft/util/math/intprovider/IntProvider;Lnet/minecraft/util/math/intprovider/IntProvider;)V
-
-
Method Details
-
fillFoliagePlacerFields
protected static <P extends FoliagePlacer> com.mojang.datafixers.Products.P2<com.mojang.serialization.codecs.RecordCodecBuilder.Mu<P>,IntProvider, fillFoliagePlacerFieldsIntProvider> (com.mojang.serialization.codecs.RecordCodecBuilder.Instance<P> instance) - Mappings:
Namespace Name Mixin selector official bLdob;b(Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/Products$P2;intermediary method_30411Lnet/minecraft/class_4647;method_30411(Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/Products$P2;named fillFoliagePlacerFieldsLnet/minecraft/world/gen/foliage/FoliagePlacer;fillFoliagePlacerFields(Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/Products$P2;
-
getType
- Mappings:
Namespace Name Mixin selector official aLdob;a()Ldoc;intermediary method_28843Lnet/minecraft/class_4647;method_28843()Lnet/minecraft/class_4648;named getTypeLnet/minecraft/world/gen/foliage/FoliagePlacer;getType()Lnet/minecraft/world/gen/foliage/FoliagePlacerType;
-
generate
public void generate(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, int trunkHeight, FoliagePlacer.TreeNode treeNode, int foliageHeight, int radius) - Mappings:
Namespace Name Mixin selector official aLdob;a(Lcmq;Ldob$b;Lapf;Ldnl;ILdob$a;II)Vintermediary method_27385Lnet/minecraft/class_4647;method_27385(Lnet/minecraft/class_3746;Lnet/minecraft/class_4647$class_8179;Lnet/minecraft/class_5819;Lnet/minecraft/class_4643;ILnet/minecraft/class_4647$class_5208;II)Vnamed generateLnet/minecraft/world/gen/foliage/FoliagePlacer;generate(Lnet/minecraft/world/TestableWorld;Lnet/minecraft/world/gen/foliage/FoliagePlacer$BlockPlacer;Lnet/minecraft/util/math/random/Random;Lnet/minecraft/world/gen/feature/TreeFeatureConfig;ILnet/minecraft/world/gen/foliage/FoliagePlacer$TreeNode;II)V
-
generate
protected abstract void generate(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, int trunkHeight, FoliagePlacer.TreeNode treeNode, int foliageHeight, int radius, int offset) This is the main method used to generate foliage.- Mappings:
Namespace Name Mixin selector official aLdob;a(Lcmq;Ldob$b;Lapf;Ldnl;ILdob$a;III)Vintermediary method_23448Lnet/minecraft/class_4647;method_23448(Lnet/minecraft/class_3746;Lnet/minecraft/class_4647$class_8179;Lnet/minecraft/class_5819;Lnet/minecraft/class_4643;ILnet/minecraft/class_4647$class_5208;III)Vnamed generateLnet/minecraft/world/gen/foliage/FoliagePlacer;generate(Lnet/minecraft/world/TestableWorld;Lnet/minecraft/world/gen/foliage/FoliagePlacer$BlockPlacer;Lnet/minecraft/util/math/random/Random;Lnet/minecraft/world/gen/feature/TreeFeatureConfig;ILnet/minecraft/world/gen/foliage/FoliagePlacer$TreeNode;III)V
-
getRandomHeight
- Mappings:
Namespace Name Mixin selector official aLdob;a(Lapf;ILdnl;)Iintermediary method_26989Lnet/minecraft/class_4647;method_26989(Lnet/minecraft/class_5819;ILnet/minecraft/class_4643;)Inamed getRandomHeightLnet/minecraft/world/gen/foliage/FoliagePlacer;getRandomHeight(Lnet/minecraft/util/math/random/Random;ILnet/minecraft/world/gen/feature/TreeFeatureConfig;)I
-
getRandomRadius
- Mappings:
Namespace Name Mixin selector official aLdob;a(Lapf;I)Iintermediary method_23452Lnet/minecraft/class_4647;method_23452(Lnet/minecraft/class_5819;I)Inamed getRandomRadiusLnet/minecraft/world/gen/foliage/FoliagePlacer;getRandomRadius(Lnet/minecraft/util/math/random/Random;I)I
-
getRandomOffset
- Mappings:
Namespace Name Mixin selector official aLdob;a(Lapf;)Iintermediary method_27386Lnet/minecraft/class_4647;method_27386(Lnet/minecraft/class_5819;)Inamed getRandomOffsetLnet/minecraft/world/gen/foliage/FoliagePlacer;getRandomOffset(Lnet/minecraft/util/math/random/Random;)I
-
isInvalidForLeaves
protected abstract boolean isInvalidForLeaves(Random random, int dx, int y, int dz, int radius, boolean giantTrunk) Used to exclude certain positions such as corners when creating a square of leaves.- Mappings:
Namespace Name Mixin selector official aLdob;a(Lapf;IIIIZ)Zintermediary method_23451Lnet/minecraft/class_4647;method_23451(Lnet/minecraft/class_5819;IIIIZ)Znamed isInvalidForLeavesLnet/minecraft/world/gen/foliage/FoliagePlacer;isInvalidForLeaves(Lnet/minecraft/util/math/random/Random;IIIIZ)Z
-
isPositionInvalid
protected boolean isPositionInvalid(Random random, int dx, int y, int dz, int radius, boolean giantTrunk) Normalizes x and z coords before checking if they are invalid.- Mappings:
Namespace Name Mixin selector official bLdob;b(Lapf;IIIIZ)Zintermediary method_27387Lnet/minecraft/class_4647;method_27387(Lnet/minecraft/class_5819;IIIIZ)Znamed isPositionInvalidLnet/minecraft/world/gen/foliage/FoliagePlacer;isPositionInvalid(Lnet/minecraft/util/math/random/Random;IIIIZ)Z
-
generateSquare
protected void generateSquare(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, BlockPos centerPos, int radius, int y, boolean giantTrunk) Generates a square of leaves with the given radius. Sub-classes can use the methodisInvalidForLeavesto exclude certain positions, such as corners.- Mappings:
Namespace Name Mixin selector official aLdob;a(Lcmq;Ldob$b;Lapf;Ldnl;Lgu;IIZ)Vintermediary method_23449Lnet/minecraft/class_4647;method_23449(Lnet/minecraft/class_3746;Lnet/minecraft/class_4647$class_8179;Lnet/minecraft/class_5819;Lnet/minecraft/class_4643;Lnet/minecraft/class_2338;IIZ)Vnamed generateSquareLnet/minecraft/world/gen/foliage/FoliagePlacer;generateSquare(Lnet/minecraft/world/TestableWorld;Lnet/minecraft/world/gen/foliage/FoliagePlacer$BlockPlacer;Lnet/minecraft/util/math/random/Random;Lnet/minecraft/world/gen/feature/TreeFeatureConfig;Lnet/minecraft/util/math/BlockPos;IIZ)V
-
generateSquareWithHangingLeaves
protected final void generateSquareWithHangingLeaves(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, BlockPos centerPos, int radius, int y, boolean giantTrunk, float hangingLeavesChance, float hangingLeavesExtensionChance) - Mappings:
Namespace Name Mixin selector official aLdob;a(Lcmq;Ldob$b;Lapf;Ldnl;Lgu;IIZFF)Vintermediary method_49247Lnet/minecraft/class_4647;method_49247(Lnet/minecraft/class_3746;Lnet/minecraft/class_4647$class_8179;Lnet/minecraft/class_5819;Lnet/minecraft/class_4643;Lnet/minecraft/class_2338;IIZFF)Vnamed generateSquareWithHangingLeavesLnet/minecraft/world/gen/foliage/FoliagePlacer;generateSquareWithHangingLeaves(Lnet/minecraft/world/TestableWorld;Lnet/minecraft/world/gen/foliage/FoliagePlacer$BlockPlacer;Lnet/minecraft/util/math/random/Random;Lnet/minecraft/world/gen/feature/TreeFeatureConfig;Lnet/minecraft/util/math/BlockPos;IIZFF)V
-
placeFoliageBlock
private static boolean placeFoliageBlock(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, float chance, BlockPos origin, BlockPos.Mutable pos) - Mappings:
Namespace Name Mixin selector official aLdob;a(Lcmq;Ldob$b;Lapf;Ldnl;FLgu;Lgu$a;)Zintermediary method_49884Lnet/minecraft/class_4647;method_49884(Lnet/minecraft/class_3746;Lnet/minecraft/class_4647$class_8179;Lnet/minecraft/class_5819;Lnet/minecraft/class_4643;FLnet/minecraft/class_2338;Lnet/minecraft/class_2338$class_2339;)Znamed placeFoliageBlockLnet/minecraft/world/gen/foliage/FoliagePlacer;placeFoliageBlock(Lnet/minecraft/world/TestableWorld;Lnet/minecraft/world/gen/foliage/FoliagePlacer$BlockPlacer;Lnet/minecraft/util/math/random/Random;Lnet/minecraft/world/gen/feature/TreeFeatureConfig;FLnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/BlockPos$Mutable;)Z
-
placeFoliageBlock
protected static boolean placeFoliageBlock(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, BlockPos pos) - Mappings:
Namespace Name Mixin selector official aLdob;a(Lcmq;Ldob$b;Lapf;Ldnl;Lgu;)Zintermediary method_34359Lnet/minecraft/class_4647;method_34359(Lnet/minecraft/class_3746;Lnet/minecraft/class_4647$class_8179;Lnet/minecraft/class_5819;Lnet/minecraft/class_4643;Lnet/minecraft/class_2338;)Znamed placeFoliageBlockLnet/minecraft/world/gen/foliage/FoliagePlacer;placeFoliageBlock(Lnet/minecraft/world/TestableWorld;Lnet/minecraft/world/gen/foliage/FoliagePlacer$BlockPlacer;Lnet/minecraft/util/math/random/Random;Lnet/minecraft/world/gen/feature/TreeFeatureConfig;Lnet/minecraft/util/math/BlockPos;)Z
-