Class FoliagePlacer

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

public abstract class FoliagePlacer
extends Object
Mappings:
Namespace Name
official cup
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 Lcup;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 Lcup;e:Lahh;
      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 Lcup;f:Lahh;
      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> Lcup;<init>(Lahh;Lahh;)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 Lcup;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 Lcup;a()Lcuq;
      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 Lcup;a(Lbuv;Ljava/util/Random;Lcub;ILcup$a;IILjava/util/Set;Lcye;)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 Lcup;a(Lbuv;Ljava/util/Random;Lcub;ILcup$a;IILjava/util/Set;ILcye;)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 Lcup;a(Ljava/util/Random;ILcub;)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 Lcup;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 Lcup;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 Lcup;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 Lcup;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 modifiableTestableWorld, Random random, TreeFeatureConfig treeFeatureConfig, BlockPos pos, int radius, Set<BlockPos> set, int y, boolean giantTrunk, BlockBox blockBox)
      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 Lcup;a(Lbuv;Ljava/util/Random;Lcub;Lfx;ILjava/util/Set;IZLcye;)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
    • method_34359

      protected void method_34359​(ModifiableTestableWorld modifiableTestableWorld, Random random, TreeFeatureConfig treeFeatureConfig, Set<BlockPos> set, BlockBox blockBox, BlockPos.Mutable mutable)
      Mappings:
      Namespace Name Mixin selector
      official a Lcup;a(Lbuv;Ljava/util/Random;Lcub;Ljava/util/Set;Lcye;Lfx$a;)V
      intermediary method_34359 Lnet/minecraft/class_4647;method_34359(Lnet/minecraft/class_3747;Ljava/util/Random;Lnet/minecraft/class_4643;Ljava/util/Set;Lnet/minecraft/class_3341;Lnet/minecraft/class_2338$class_2339;)V
      named method_34359 Lnet/minecraft/world/gen/foliage/FoliagePlacer;method_34359(Lnet/minecraft/world/ModifiableTestableWorld;Ljava/util/Random;Lnet/minecraft/world/gen/feature/TreeFeatureConfig;Ljava/util/Set;Lnet/minecraft/util/math/BlockBox;Lnet/minecraft/util/math/BlockPos$Mutable;)V