CLASS net/minecraft/class_4647 net/minecraft/world/gen/foliage/FoliagePlacer
	FIELD field_21296 radius Lnet/minecraft/class_6017;
	FIELD field_23753 offset Lnet/minecraft/class_6017;
	FIELD field_24931 TYPE_CODEC Lcom/mojang/serialization/Codec;
	METHOD <init> (Lnet/minecraft/class_6017;Lnet/minecraft/class_6017;)V
		ARG 1 radius
		ARG 2 offset
	METHOD method_23448 generate (Lnet/minecraft/class_3746;Ljava/util/function/BiConsumer;Lnet/minecraft/class_5819;Lnet/minecraft/class_4643;ILnet/minecraft/class_4647$class_5208;III)V
		COMMENT This is the main method used to generate foliage.
		ARG 1 world
		ARG 2 replacer
		ARG 3 random
		ARG 4 config
		ARG 5 trunkHeight
		ARG 6 treeNode
		ARG 7 foliageHeight
		ARG 8 radius
		ARG 9 offset
	METHOD method_23449 generateSquare (Lnet/minecraft/class_3746;Ljava/util/function/BiConsumer;Lnet/minecraft/class_5819;Lnet/minecraft/class_4643;Lnet/minecraft/class_2338;IIZ)V
		COMMENT Generates a square of leaves with the given radius. Sub-classes can use the method {@code isInvalidForLeaves} to exclude certain positions, such as corners.
		ARG 1 world
		ARG 2 replacer
		ARG 3 random
		ARG 4 config
		ARG 5 centerPos
		ARG 6 radius
		ARG 7 y
		ARG 8 giantTrunk
	METHOD method_23451 isInvalidForLeaves (Lnet/minecraft/class_5819;IIIIZ)Z
		COMMENT Used to exclude certain positions such as corners when creating a square of leaves.
		ARG 1 random
		ARG 2 dx
		ARG 3 y
		ARG 4 dz
		ARG 5 radius
		ARG 6 giantTrunk
	METHOD method_23452 getRandomRadius (Lnet/minecraft/class_5819;I)I
		ARG 1 random
		ARG 2 baseHeight
	METHOD method_26989 getRandomHeight (Lnet/minecraft/class_5819;ILnet/minecraft/class_4643;)I
		ARG 1 random
		ARG 2 trunkHeight
		ARG 3 config
	METHOD method_27385 generate (Lnet/minecraft/class_3746;Ljava/util/function/BiConsumer;Lnet/minecraft/class_5819;Lnet/minecraft/class_4643;ILnet/minecraft/class_4647$class_5208;II)V
		ARG 1 world
		ARG 2 replacer
		ARG 3 random
		ARG 4 config
		ARG 5 trunkHeight
		ARG 6 treeNode
		ARG 7 foliageHeight
		ARG 8 radius
	METHOD method_27386 getRandomOffset (Lnet/minecraft/class_5819;)I
		ARG 1 random
	METHOD method_27387 isPositionInvalid (Lnet/minecraft/class_5819;IIIIZ)Z
		COMMENT Normalizes x and z coords before checking if they are invalid.
		ARG 1 random
		ARG 2 dx
		ARG 3 y
		ARG 4 dz
		ARG 5 radius
		ARG 6 giantTrunk
	METHOD method_28843 getType ()Lnet/minecraft/class_4648;
	METHOD method_30410 (Lnet/minecraft/class_4647;)Lnet/minecraft/class_6017;
		ARG 0 placer
	METHOD method_30411 fillFoliagePlacerFields (Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/Products$P2;
	METHOD method_30412 (Lnet/minecraft/class_4647;)Lnet/minecraft/class_6017;
		ARG 0 placer
	METHOD method_34359 placeFoliageBlock (Lnet/minecraft/class_3746;Ljava/util/function/BiConsumer;Lnet/minecraft/class_5819;Lnet/minecraft/class_4643;Lnet/minecraft/class_2338;)V
		ARG 0 world
		ARG 1 replacer
		ARG 2 random
		ARG 3 config
		ARG 4 pos
	METHOD method_42380 (Lnet/minecraft/class_3610;)Z
		ARG 0 fluidState
	CLASS class_5208 TreeNode
		COMMENT A point on a tree to generate foliage around
		FIELD field_24158 center Lnet/minecraft/class_2338;
		FIELD field_24159 foliageRadius I
		FIELD field_24160 giantTrunk Z
		METHOD <init> (Lnet/minecraft/class_2338;IZ)V
			ARG 1 center
			ARG 2 foliageRadius
			ARG 3 giantTrunk
		METHOD method_27388 getCenter ()Lnet/minecraft/class_2338;
		METHOD method_27389 getFoliageRadius ()I
		METHOD method_27390 isGiantTrunk ()Z
			COMMENT Whether this node is the top of a giant (2x2 block) trunk
