Class FoliagePlacer

java.lang.Object
net.minecraft.world.gen.foliage.FoliagePlacer
Direct Known Subclasses:
AcaciaFoliagePlacer, BlobFoliagePlacer, DarkOakFoliagePlacer, JungleFoliagePlacer, MegaPineFoliagePlacer, PineFoliagePlacer, SpruceFoliagePlacer

public abstract class FoliagePlacer
extends Object
Mappings:
Namespace Name
official csz
intermediary net/minecraft/class_4647
named net/minecraft/world/gen/foliage/FoliagePlacer
  • Field Details

    • TYPE_CODEC

      public static final com.mojang.serialization.Codec<FoliagePlacer> TYPE_CODEC
      Mappings:
      Namespace Name Mixin selector
      official d Lcsz;d:Lcom/mojang/serialization/Codec;
      intermediary field_24931 Lnet/minecraft/class_4647;field_24931:Lcom/mojang/serialization/Codec;
      named TYPE_CODEC Lnet/minecraft/world/gen/foliage/FoliagePlacer;TYPE_CODEC:Lcom/mojang/serialization/Codec;
    • radius

      protected final UniformIntDistribution radius
      Mappings:
      Namespace Name Mixin selector
      official e Lcsz;e:Lago;
      intermediary field_21296 Lnet/minecraft/class_4647;field_21296:Lnet/minecraft/class_5428;
      named radius Lnet/minecraft/world/gen/foliage/FoliagePlacer;radius:Lnet/minecraft/world/gen/UniformIntDistribution;
    • offset

      protected final UniformIntDistribution offset
      Mappings:
      Namespace Name Mixin selector
      official f Lcsz;f:Lago;
      intermediary field_23753 Lnet/minecraft/class_4647;field_23753:Lnet/minecraft/class_5428;
      named offset Lnet/minecraft/world/gen/foliage/FoliagePlacer;offset:Lnet/minecraft/world/gen/UniformIntDistribution;
  • Constructor Details

    • FoliagePlacer

      public FoliagePlacer​(UniformIntDistribution radius, UniformIntDistribution offset)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcsz;<init>(Lago;Lago;)V
      intermediary <init> Lnet/minecraft/class_4647;<init>(Lnet/minecraft/class_5428;Lnet/minecraft/class_5428;)V
      named <init> Lnet/minecraft/world/gen/foliage/FoliagePlacer;<init>(Lnet/minecraft/world/gen/UniformIntDistribution;Lnet/minecraft/world/gen/UniformIntDistribution;)V
  • Method Details

    • fillFoliagePlacerFields

      protected static <P extends FoliagePlacer> com.mojang.datafixers.Products.P2<com.mojang.serialization.codecs.RecordCodecBuilder.Mu<P>,​UniformIntDistribution,​UniformIntDistribution> fillFoliagePlacerFields​(com.mojang.serialization.codecs.RecordCodecBuilder.Instance<P> instance)
      Mappings:
      Namespace Name Mixin selector
      official b Lcsz;b(Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/Products$P2;
      intermediary method_30411 Lnet/minecraft/class_4647;method_30411(Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/Products$P2;
      named fillFoliagePlacerFields Lnet/minecraft/world/gen/foliage/FoliagePlacer;fillFoliagePlacerFields(Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/Products$P2;
    • getType

      protected abstract FoliagePlacerType<?> getType()
      Mappings:
      Namespace Name Mixin selector
      official a Lcsz;a()Lcta;
      intermediary method_28843 Lnet/minecraft/class_4647;method_28843()Lnet/minecraft/class_4648;
      named getType Lnet/minecraft/world/gen/foliage/FoliagePlacer;getType()Lnet/minecraft/world/gen/foliage/FoliagePlacerType;
    • generate

      public void generate​(ModifiableTestableWorld world, Random random, TreeFeatureConfig config, int trunkHeight, FoliagePlacer.TreeNode treeNode, int foliageHeight, int radius, Set<BlockPos> leaves, BlockBox box)
      Mappings:
      Namespace Name Mixin selector
      official a Lcsz;a(Lbua;Ljava/util/Random;Lcsn;ILcsz$a;IILjava/util/Set;Lcwn;)V
      intermediary method_27385 Lnet/minecraft/class_4647;method_27385(Lnet/minecraft/class_3747;Ljava/util/Random;Lnet/minecraft/class_4643;ILnet/minecraft/class_4647$class_5208;IILjava/util/Set;Lnet/minecraft/class_3341;)V
      named generate Lnet/minecraft/world/gen/foliage/FoliagePlacer;generate(Lnet/minecraft/world/ModifiableTestableWorld;Ljava/util/Random;Lnet/minecraft/world/gen/feature/TreeFeatureConfig;ILnet/minecraft/world/gen/foliage/FoliagePlacer$TreeNode;IILjava/util/Set;Lnet/minecraft/util/math/BlockBox;)V
    • generate

      protected abstract void generate​(ModifiableTestableWorld world, Random random, TreeFeatureConfig config, int trunkHeight, FoliagePlacer.TreeNode treeNode, int foliageHeight, int radius, Set<BlockPos> leaves, int offset, BlockBox box)
      This is the main method used to generate foliage.
      Mappings:
      Namespace Name Mixin selector
      official a Lcsz;a(Lbua;Ljava/util/Random;Lcsn;ILcsz$a;IILjava/util/Set;ILcwn;)V
      intermediary method_23448 Lnet/minecraft/class_4647;method_23448(Lnet/minecraft/class_3747;Ljava/util/Random;Lnet/minecraft/class_4643;ILnet/minecraft/class_4647$class_5208;IILjava/util/Set;ILnet/minecraft/class_3341;)V
      named generate Lnet/minecraft/world/gen/foliage/FoliagePlacer;generate(Lnet/minecraft/world/ModifiableTestableWorld;Ljava/util/Random;Lnet/minecraft/world/gen/feature/TreeFeatureConfig;ILnet/minecraft/world/gen/foliage/FoliagePlacer$TreeNode;IILjava/util/Set;ILnet/minecraft/util/math/BlockBox;)V
    • getRandomHeight

      public abstract int getRandomHeight​(Random random, int trunkHeight, TreeFeatureConfig config)
      Mappings:
      Namespace Name Mixin selector
      official a Lcsz;a(Ljava/util/Random;ILcsn;)I
      intermediary method_26989 Lnet/minecraft/class_4647;method_26989(Ljava/util/Random;ILnet/minecraft/class_4643;)I
      named getRandomHeight Lnet/minecraft/world/gen/foliage/FoliagePlacer;getRandomHeight(Ljava/util/Random;ILnet/minecraft/world/gen/feature/TreeFeatureConfig;)I
    • getRandomRadius

      public int getRandomRadius​(Random random, int baseHeight)
      Mappings:
      Namespace Name Mixin selector
      official a Lcsz;a(Ljava/util/Random;I)I
      intermediary method_23452 Lnet/minecraft/class_4647;method_23452(Ljava/util/Random;I)I
      named getRandomRadius Lnet/minecraft/world/gen/foliage/FoliagePlacer;getRandomRadius(Ljava/util/Random;I)I
    • getRandomOffset

      private int getRandomOffset​(Random random)
      Mappings:
      Namespace Name Mixin selector
      official a Lcsz;a(Ljava/util/Random;)I
      intermediary method_27386 Lnet/minecraft/class_4647;method_27386(Ljava/util/Random;)I
      named getRandomOffset Lnet/minecraft/world/gen/foliage/FoliagePlacer;getRandomOffset(Ljava/util/Random;)I
    • isInvalidForLeaves

      protected abstract boolean isInvalidForLeaves​(Random random, int baseHeight, int dx, int y, int dz, boolean giantTrunk)
      Used to exclude certain positions such as corners when creating a square of leaves.
      Mappings:
      Namespace Name Mixin selector
      official a Lcsz;a(Ljava/util/Random;IIIIZ)Z
      intermediary method_23451 Lnet/minecraft/class_4647;method_23451(Ljava/util/Random;IIIIZ)Z
      named isInvalidForLeaves Lnet/minecraft/world/gen/foliage/FoliagePlacer;isInvalidForLeaves(Ljava/util/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 b Lcsz;b(Ljava/util/Random;IIIIZ)Z
      intermediary method_27387 Lnet/minecraft/class_4647;method_27387(Ljava/util/Random;IIIIZ)Z
      named isPositionInvalid Lnet/minecraft/world/gen/foliage/FoliagePlacer;isPositionInvalid(Ljava/util/Random;IIIIZ)Z
    • generateSquare

      protected void generateSquare​(ModifiableTestableWorld world, Random random, TreeFeatureConfig config, BlockPos pos, int radius, Set<BlockPos> leaves, int y, boolean giantTrunk, BlockBox box)
      Generates a square of leaves with the given radius. Sub-classes can use the method isInvalidForLeaves to exclude certain positions, such as corners.
      Mappings:
      Namespace Name Mixin selector
      official a Lcsz;a(Lbua;Ljava/util/Random;Lcsn;Lfx;ILjava/util/Set;IZLcwn;)V
      intermediary method_23449 Lnet/minecraft/class_4647;method_23449(Lnet/minecraft/class_3747;Ljava/util/Random;Lnet/minecraft/class_4643;Lnet/minecraft/class_2338;ILjava/util/Set;IZLnet/minecraft/class_3341;)V
      named generateSquare Lnet/minecraft/world/gen/foliage/FoliagePlacer;generateSquare(Lnet/minecraft/world/ModifiableTestableWorld;Ljava/util/Random;Lnet/minecraft/world/gen/feature/TreeFeatureConfig;Lnet/minecraft/util/math/BlockPos;ILjava/util/Set;IZLnet/minecraft/util/math/BlockBox;)V