Class FoliagePlacer

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

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

    • TYPE_CODEC

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

      protected final IntProvider radius
      Mappings:
      Namespace Name Mixin selector
      named radius Lnet/minecraft/world/gen/foliage/FoliagePlacer;radius:Lnet/minecraft/util/math/intprovider/IntProvider;
      intermediary field_21296 Lnet/minecraft/class_4647;field_21296:Lnet/minecraft/class_6017;
      official e Lefq;e:Lbpv;
    • offset

      protected final IntProvider offset
      Mappings:
      Namespace Name Mixin selector
      named offset Lnet/minecraft/world/gen/foliage/FoliagePlacer;offset:Lnet/minecraft/util/math/intprovider/IntProvider;
      intermediary field_23753 Lnet/minecraft/class_4647;field_23753:Lnet/minecraft/class_6017;
      official f Lefq;f:Lbpv;
  • Constructor Details

    • FoliagePlacer

      public FoliagePlacer(IntProvider radius, IntProvider offset)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/world/gen/foliage/FoliagePlacer;<init>(Lnet/minecraft/util/math/intprovider/IntProvider;Lnet/minecraft/util/math/intprovider/IntProvider;)V
      intermediary <init> Lnet/minecraft/class_4647;<init>(Lnet/minecraft/class_6017;Lnet/minecraft/class_6017;)V
      official <init> Lefq;<init>(Lbpv;Lbpv;)V
  • Method Details

    • fillFoliagePlacerFields

      protected 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)
      Mappings:
      Namespace Name Mixin selector
      named fillFoliagePlacerFields Lnet/minecraft/world/gen/foliage/FoliagePlacer;fillFoliagePlacerFields(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;
      official b Lefq;b(Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/Products$P2;
    • getType

      protected abstract FoliagePlacerType<?> getType()
      Mappings:
      Namespace Name Mixin selector
      named getType Lnet/minecraft/world/gen/foliage/FoliagePlacer;getType()Lnet/minecraft/world/gen/foliage/FoliagePlacerType;
      intermediary method_28843 Lnet/minecraft/class_4647;method_28843()Lnet/minecraft/class_4648;
      official a Lefq;a()Lefr;
    • 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
      named generate Lnet/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
      intermediary method_27385 Lnet/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)V
      official a Lefq;a(Ldda;Lefq$b;Layv;Lefa;ILefq$a;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
      named generate Lnet/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
      intermediary method_23448 Lnet/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)V
      official a Lefq;a(Ldda;Lefq$b;Layv;Lefa;ILefq$a;III)V
    • getRandomHeight

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

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

      private int getRandomOffset(Random random)
      Mappings:
      Namespace Name Mixin selector
      named getRandomOffset Lnet/minecraft/world/gen/foliage/FoliagePlacer;getRandomOffset(Lnet/minecraft/util/math/random/Random;)I
      intermediary method_27386 Lnet/minecraft/class_4647;method_27386(Lnet/minecraft/class_5819;)I
      official a Lefq;a(Layv;)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
      named isInvalidForLeaves Lnet/minecraft/world/gen/foliage/FoliagePlacer;isInvalidForLeaves(Lnet/minecraft/util/math/random/Random;IIIIZ)Z
      intermediary method_23451 Lnet/minecraft/class_4647;method_23451(Lnet/minecraft/class_5819;IIIIZ)Z
      official a Lefq;a(Layv;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
      named isPositionInvalid Lnet/minecraft/world/gen/foliage/FoliagePlacer;isPositionInvalid(Lnet/minecraft/util/math/random/Random;IIIIZ)Z
      intermediary method_27387 Lnet/minecraft/class_4647;method_27387(Lnet/minecraft/class_5819;IIIIZ)Z
      official b Lefq;b(Layv;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 method isInvalidForLeaves to exclude certain positions, such as corners.
      Mappings:
      Namespace Name Mixin selector
      named generateSquare Lnet/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
      intermediary method_23449 Lnet/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)V
      official a Lefq;a(Ldda;Lefq$b;Layv;Lefa;Ljd;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
      named generateSquareWithHangingLeaves Lnet/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
      intermediary method_49247 Lnet/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)V
      official a Lefq;a(Ldda;Lefq$b;Layv;Lefa;Ljd;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
      named placeFoliageBlock Lnet/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
      intermediary method_49884 Lnet/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;)Z
      official a Lefq;a(Ldda;Lefq$b;Layv;Lefa;FLjd;Ljd$a;)Z
    • placeFoliageBlock

      protected static boolean placeFoliageBlock(TestableWorld world, FoliagePlacer.BlockPlacer placer, Random random, TreeFeatureConfig config, BlockPos pos)
      Mappings:
      Namespace Name Mixin selector
      named placeFoliageBlock Lnet/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
      intermediary method_34359 Lnet/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;)Z
      official a Lefq;a(Ldda;Lefq$b;Layv;Lefa;Ljd;)Z