Êþº¾E  java/lang/Record()V   Anet/minecraft/world/level/levelgen/feature/MultifaceGrowthFeature placeBlock'Lnet/minecraft/world/level/block/Block;   searchRangeI  canPlaceOnFloorZ  canPlaceOnCeiling  canPlaceOnWall  chanceOfSpreadingF  !" canBePlacedOnLnet/minecraft/core/HolderSet;$9net/minecraft/world/level/block/MultifaceSpreadeableBlock &'( )*#com/mojang/serialization/DataResultsuccess9(Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;, -.get()Ljava/util/function/Supplier; &0 12errorD(Ljava/util/function/Supplier;)Lcom/mojang/serialization/DataResult; 4 56CODEC#Lcom/mojang/serialization/MapCodec; 89: ;<'net/minecraft/world/level/WorldGenLevel getBlockStateQ(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState; > ?@ isAirOrWater5(Lnet/minecraft/world/level/block/state/BlockState;)Z B CDgetShuffledDirections3(Lnet/minecraft/util/RandomSource;)Ljava/util/List; F GHplaceGrowthIfPossibleç(Lnet/minecraft/world/level/block/MultifaceSpreadeableBlock;Lnet/minecraft/world/level/WorldGenLevel;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/util/RandomSource;Ljava/util/List;)Z JKL MNnet/minecraft/core/BlockPosmutable/()Lnet/minecraft/core/BlockPos$MutableBlockPos; PQR STjava/util/Listiterator()Ljava/util/Iterator; VWX YZjava/util/IteratorhasNext()Z V\ ]^next()Ljava/lang/Object;`net/minecraft/core/Direction bcd ef+net/minecraft/core/BlockPos$MutableBlockPossetI(Lnet/minecraft/core/Vec3i;)Lnet/minecraft/core/BlockPos$MutableBlockPos; _h ij getOpposite ()Lnet/minecraft/core/Direction; l mngetShuffledDirectionsExceptQ(Lnet/minecraft/util/RandomSource;Lnet/minecraft/core/Direction;)Ljava/util/List; bp qr setWithOffsetg(Lnet/minecraft/core/Vec3i;Lnet/minecraft/core/Direction;)Lnet/minecraft/core/BlockPos$MutableBlockPos; tuv wx0net/minecraft/world/level/block/state/BlockStateis(Ljava/lang/Object;)Z tz w{!(Lnet/minecraft/core/HolderSet;)Z #} ~getStateForPlacementÈ(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;)Lnet/minecraft/world/level/block/state/BlockState; 8� ‚ƒsetBlockAndUpdateR(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)Z 8… †‡getChunkL(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/chunk/ChunkAccess; ‰Š‹ Œ�+net/minecraft/world/level/chunk/ChunkAccessmarkPosForPostProcessing (Lnet/minecraft/core/BlockPos;)V ��‘ ’“net/minecraft/util/RandomSource nextFloat()F #• –— getSpreader5()Lnet/minecraft/world/level/block/MultifaceSpreader; ™š› œ�1net/minecraft/world/level/block/MultifaceSpreader#spreadFromFaceTowardRandomDirectionÎ(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;Lnet/minecraft/util/RandomSource;Z)Ljava/util/Optional;Ÿ-it/unimi/dsi/fastutil/objects/ObjectArrayList ž¡ ¢(I)V _¤ ¥¦UPLnet/minecraft/core/Direction; ž¨ ©xadd _« ¬¦DOWN ®¯° ±²"net/minecraft/core/Direction$Plane HORIZONTAL$Lnet/minecraft/core/Direction$Plane; ´µ¶ ·¸java/util/ObjectsrequireNonNull&(Ljava/lang/Object;)Ljava/lang/Object;º »¼acceptN(Lit/unimi/dsi/fastutil/objects/ObjectArrayList;)Ljava/util/function/Consumer; ®¾ ¿ÀforEach (Ljava/util/function/Consumer;)V  ÃÄvalidDirections1()Lit/unimi/dsi/fastutil/objects/ObjectArrayList; žÆ ÇÈstream()Ljava/util/stream/Stream;Ê ËÌtest>(Lnet/minecraft/core/Direction;)Ljava/util/function/Predicate; ÎÏÐ ÑÒjava/util/stream/Streamfilter9(Ljava/util/function/Predicate;)Ljava/util/stream/Stream; ÔÕÖ ×Ønet/minecraft/util/UtiltoShuffledListL(Ljava/util/stream/Stream;Lnet/minecraft/util/RandomSource;)Ljava/util/List; ÔÚ ÛÜ shuffledCopyb(Lit/unimi/dsi/fastutil/objects/ObjectArrayList;Lnet/minecraft/util/RandomSource;)Ljava/util/List; tÞ ßZisAir áâã ä &net/minecraft/world/level/block/BlocksWATERæ çètoStringW(Lnet/minecraft/world/level/levelgen/feature/MultifaceGrowthFeature;)Ljava/lang/String;ê ëìhashCodeF(Lnet/minecraft/world/level/levelgen/feature/MultifaceGrowthFeature;)Iî ïðequalsX(Lnet/minecraft/world/level/levelgen/feature/MultifaceGrowthFeature;Ljava/lang/Object;)Zò4Growth block should be a multiface spreadeable block ôõö ÷ø/net/minecraft/core/registries/BuiltInRegistriesBLOCK&Lnet/minecraft/core/DefaultedRegistry; úûü ýþ$net/minecraft/core/DefaultedRegistry byNameCodec"()Lcom/mojang/serialization/Codec; apply()Ljava/util/function/Function;  com/mojang/serialization/Codecvalidate?(Ljava/util/function/Function;)Lcom/mojang/serialization/Codec; block   fieldOf7(Ljava/lang/String;)Lcom/mojang/serialization/MapCodec;  !com/mojang/serialization/MapCodec forGetterS(Ljava/util/function/Function;)Lcom/mojang/serialization/codecs/RecordCodecBuilder;  intRange$(II)Lcom/mojang/serialization/Codec; search_range   !java/lang/IntegervalueOf(I)Ljava/lang/Integer; # $%optionalFieldOfI(Ljava/lang/String;Ljava/lang/Object;)Lcom/mojang/serialization/MapCodec; ( )*BOOL0Lcom/mojang/serialization/codecs/PrimitiveCodec;,can_place_on_floor ./0  1java/lang/Boolean(Z)Ljava/lang/Boolean; 3#4.com/mojang/serialization/codecs/PrimitiveCodec7can_place_on_ceiling:can_place_on_wall  = >? floatRange$(FF)Lcom/mojang/serialization/Codec;Achance_of_spreading? DEF  Gjava/lang/Float(F)Ljava/lang/Float;  JKL ÷M(net/minecraft/core/registries/Registries%Lnet/minecraft/resources/ResourceKey; OPQ RS2net/minecraft/core/registries/codec/RegistryCodecs holderSetG(Lnet/minecraft/resources/ResourceKey;)Lcom/mojang/serialization/Codec;Ucan_be_placed_on  XYZ [\;com/mojang/serialization/codecs/RecordCodecBuilder$Instancegroup (Lcom/mojang/datafixers/kinds/App;Lcom/mojang/datafixers/kinds/App;Lcom/mojang/datafixers/kinds/App;Lcom/mojang/datafixers/kinds/App;Lcom/mojang/datafixers/kinds/App;Lcom/mojang/datafixers/kinds/App;Lcom/mojang/datafixers/kinds/App;)Lcom/mojang/datafixers/Products$P7; ^ _(()Lcom/mojang/datafixers/util/Function7; abc d!com/mojang/datafixers/Products$P7r(Lcom/mojang/datafixers/kinds/Applicative;Lcom/mojang/datafixers/util/Function7;)Lcom/mojang/datafixers/kinds/App;  ghi jk2com/mojang/serialization/codecs/RecordCodecBuildermapCodecB(Ljava/util/function/Function;)Lcom/mojang/serialization/MapCodec;m2net/minecraft/world/level/levelgen/feature/Feature SignatureGLnet/minecraft/core/HolderSet;hLcom/mojang/serialization/MapCodec;M(Lnet/minecraft/world/level/block/Block;IZZZFLnet/minecraft/core/HolderSet;)VCodeLineNumberTableLocalVariableTablethisCLnet/minecraft/world/level/levelgen/feature/MultifaceGrowthFeature;LocalVariableTypeTableMethodParametersv(Lnet/minecraft/world/level/block/Block;IZZZFLnet/minecraft/core/HolderSet;)V validateBlockN(Lnet/minecraft/world/level/block/Block;)Lcom/mojang/serialization/DataResult;multifaceBlock;Lnet/minecraft/world/level/block/MultifaceSpreadeableBlock; StackMapTablew(Lnet/minecraft/world/level/block/Block;)Lcom/mojang/serialization/DataResult;codec%()Lcom/mojang/serialization/MapCodec;j()Lcom/mojang/serialization/MapCodec;placeš(Lnet/minecraft/world/level/WorldGenLevel;Lnet/minecraft/world/level/chunk/ChunkGenerator;Lnet/minecraft/util/RandomSource;Lnet/minecraft/core/BlockPos;)Z placerBlockstate2Lnet/minecraft/world/level/block/state/BlockState;iplacementDirectionsLjava/util/List;searchDirectionlevel)Lnet/minecraft/world/level/WorldGenLevel;chunkGenerator0Lnet/minecraft/world/level/chunk/ChunkGenerator;random!Lnet/minecraft/util/RandomSource;originLnet/minecraft/core/BlockPos;searchDirectionspos-Lnet/minecraft/core/BlockPos$MutableBlockPos;0Ljava/util/List;newStateneighbourStateplacementDirectionoldState(Lnet/minecraft/world/level/block/MultifaceSpreadeableBlock;Lnet/minecraft/world/level/WorldGenLevel;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/util/RandomSource;Ljava/util/List;)Z/Lit/unimi/dsi/fastutil/objects/ObjectArrayList;OLit/unimi/dsi/fastutil/objects/ObjectArrayList;Q()Lit/unimi/dsi/fastutil/objects/ObjectArrayList;excludeDirectionq(Lnet/minecraft/util/RandomSource;Lnet/minecraft/core/Direction;)Ljava/util/List;S(Lnet/minecraft/util/RandomSource;)Ljava/util/List;()Ljava/lang/String;()IoLjava/lang/Object;)()Lnet/minecraft/world/level/block/Block; ()Lnet/minecraft/core/HolderSet;I()Lnet/minecraft/core/HolderSet;$lambda$getShuffledDirectionsExcept$0?(Lnet/minecraft/core/Direction;Lnet/minecraft/core/Direction;)Z directionlambda$validateBlock$0lambda$static$0`(Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/kinds/App;=Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance; SourceFileMultifaceGrowthFeature.javaRecordBootstrapMethods^¸ ¹ ­££¼(Ljava/lang/Object;)V§¿!(Lnet/minecraft/core/Direction;)Vx à ª«Å!(Lnet/minecraft/core/Direction;)ZÇgplaceBlock;searchRange;canPlaceOnFloor;canPlaceOnCeiling;canPlaceOnWall;chanceOfSpreading;canBePlacedOn ¸Ñ Ò z{{Õ Ö §Øl(Lnet/minecraft/world/level/levelgen/feature/MultifaceGrowthFeature;)Lnet/minecraft/world/level/block/Block;Ú Û ¤ÝX(Lnet/minecraft/world/level/levelgen/feature/MultifaceGrowthFeature;)Ljava/lang/Integer;ß à ZâX(Lnet/minecraft/world/level/levelgen/feature/MultifaceGrowthFeature;)Ljava/lang/Boolean;ä å Zç è Zê ë “íV(Lnet/minecraft/world/level/levelgen/feature/MultifaceGrowthFeature;)Ljava/lang/Float;ï ð !¨òc(Lnet/minecraft/world/level/levelgen/feature/MultifaceGrowthFeature;)Lnet/minecraft/core/HolderSet;ô’(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;ö ÷ qùç(Lnet/minecraft/world/level/block/Block;Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Float;Lnet/minecraft/core/HolderSet;)Lnet/minecraft/world/level/levelgen/feature/MultifaceGrowthFeature;û ü ®¯¯ÿ  "java/lang/invoke/LambdaMetafactory metafactoryÌ(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;    java/lang/runtime/ObjectMethods bootstrap±(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/TypeDescriptor;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/invoke/MethodHandle;)Ljava/lang/Object; InnerClassesMutableBlockPosPlaneInstancecom/mojang/datafixers/ProductsP7%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup1l !"no56npqr®,*·*+µ*µ *µ*µ*µ*µ*µ±stR,uv, ,,,,,,!"w ,!ox !ny z{ri*Á#™*À#L+¸%§ º+¸/°s- ./-t |} ~G&x n€�r.²3°s4t uvn‚ƒ„r Ù+¹7¸=š¬*´:Á#™ À#:§¬*-¶A:*++¹7-¶E™¬¶I:¹O:¹U™v¹[À_: ¶aW*- ¶g¶k: 6  *´ ¢G ¶oW+¹7:  ¸=š *´¶sš§*+ - ¶E™¬„ §ÿ¶§ÿ†¬sV9:>(?*C1DHEJJQKpLxM„N�OšP¤Q¸S»UÌVÎNÔY×[t„ %…}¤*†‡ ‡Mˆ „P‰Š pd‹¦ ÙuvÙŒ�ÙŽ�Ù�‘Ù’“*¯…}1¨”ŠQˆ•–w„P‰— 1¨”—~2 ü#üPýbVþ,_Pü3túøúxŒŽ�’GHrˆ �-¶I:¹O:¹U™x¹[À_: ,- ¶o¹7:  *´¶y™M+,- ¶|:  Ǭ,- ¹€W,-¹„-¶ˆ¹Ž*´–œ+¶” ,- ¶˜W¬§ÿ„¬s:_`%a5bAcMdReTg^hiixj‰l‹nŽotp M>˜‡ 5V™‡ %fš¦ �uv�…}�Œ��•“�›‡��‘�‰ŠŠM–w �‰—~ýbVþD_tt4øúx…Œ•›�‰nœÃÄr´B»žY· L*´™ +²£¶§W*´™ +²ª¶§W*´™²­+Y¸³Wº¹¶½+°s"s tuw x(z/{@}tBuv 8Ã�w  8Þ~ üžnŸmnrU*¶Á¶Å,ºÉ¹Í+¸Ó°s�t uv�‘ ¦x � n¡CDr= *¶Á+¸Ù°s…t uv �‘x�n¢ ?@rM*¶Ýš *²à¶s™§¬s‰t †‡~@x†ç£r1*ºå°st uvë¤r1*ºé¬st uvïxr<*+ºí¬stuv¥¦x¥ §r/*´°st uv¤r/*´ ¬st uvZr/*´¬st uvZr/*´¬st uvZr/*´¬st uv“r/*´®st uv!¨r/*´°st uvn© ª«rJ +*¥§¬s�t  ¦ ¬¦~ @ ­£rñ°s/ ®¯r Á*²ó¹ùºÿ¹ ¹ º¶@¸ ¸¹"º&¶²'+¸-¹2º5¶²'6¸-¹2º8¶²'9¸-¹2º;¶ ¸<@B¸C¹"ºH¶²I¸NT¹ ºV¶¶W*º]¶`°s. "#&$E%\&s'…(¡)´"½*À"t Áˆ°±r$ ºe¸f³3±s"²³´4 !"noµšþ¶·ºþ»½¾þÀÁÄ ÆÈÉÊËÌÍÎþÏÐÓþÏÔ×þÏÙÜþÏÞáþÏãáþÏæáþÏéìþÏîñþóõøþÏúý *bJ ®_@Xga