Êþº¾E  java/lang/Object()V   1net/minecraft/world/level/block/grower/TreeGrowernameLjava/lang/String;  trees(Lnet/minecraft/util/random/WeightedList;   megaTrees   flowerTrees  shortestTreeType%Lnet/minecraft/resources/ResourceKey;  GROWERSLjava/util/Map; !" #$ java/util/Mapput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; &'( )*&net/minecraft/util/random/WeightedListisEmpty()Z &, -. getRandom7(Lnet/minecraft/util/RandomSource;)Ljava/util/Optional; 012 34java/util/OptionalorElse&(Ljava/lang/Object;)Ljava/lang/Object;6#net/minecraft/resources/ResourceKey 8 9:getConfiguredMegaFeatureH(Lnet/minecraft/util/RandomSource;)Lnet/minecraft/resources/ResourceKey; <=> ?@&net/minecraft/server/level/ServerLevelregistryAccess%()Lnet/minecraft/core/RegistryAccess; BCD E(net/minecraft/core/registries/RegistriesFEATURE GHI JK!net/minecraft/core/RegistryAccess lookupOrThrowD(Lnet/minecraft/resources/ResourceKey;)Lnet/minecraft/core/Registry; MNO PQnet/minecraft/core/Registryget;(Lnet/minecraft/resources/ResourceKey;)Ljava/util/Optional;Snet/minecraft/core/Holder U VWfindTwoByTwoSaplingPos�(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;)Ljava/util/Optional; 0Y Z* isPresent 0\ P]()Ljava/lang/Object;_Dnet/minecraft/world/level/block/grower/TreeGrower$TwoByTwoSaplingPos ^a bcoffsetX()I ^e fcoffsetZ ^h ijgroundLevelSurroundingBlocks()Ljava/util/List; Rl m]valueo2net/minecraft/world/level/levelgen/feature/Feature q rsremoveSaplings;(Lnet/minecraft/server/level/ServerLevel;Ljava/util/List;)V uvw xynet/minecraft/core/BlockPosoffset"(III)Lnet/minecraft/core/BlockPos; n{ |}placeš(Lnet/minecraft/world/level/WorldGenLevel;Lnet/minecraft/world/level/chunk/ChunkGenerator;Lnet/minecraft/util/RandomSource;Lnet/minecraft/core/BlockPos;)Z  €s resetSaplings ‚ ƒ„ hasFlowersI(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;)Z † ‡ˆgetConfiguredFeatureI(Lnet/minecraft/util/RandomSource;Z)Lnet/minecraft/resources/ResourceKey; Š ‹Œ removeSaplingH(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;)V Ž�� ‘’com/mojang/datafixers/util/PairofG(Ljava/lang/Object;Ljava/lang/Object;)Lcom/mojang/datafixers/util/Pair; ”•– ‘—java/util/List$(Ljava/lang/Object;)Ljava/util/List; <™ š› getBlockStateQ(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState; ”� ‘žZ(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List; ”  ¡¢iterator()Ljava/util/Iterator; ¤¥¦ §*java/util/IteratorhasNext ¤© ª]next ެ ­] getSecond <¯ °± getFluidStateN(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/material/FluidState; ³´µ ¶·-net/minecraft/world/level/material/FluidStatecreateLegacyBlock4()Lnet/minecraft/world/level/block/state/BlockState;¹%net/minecraft/world/level/block/Block <» ¼½setBlockS(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;I)Z Ž¿ À]getFirstÂ0net/minecraft/world/level/block/state/BlockState ÁÄ ÅÆgetBlock)()Lnet/minecraft/world/level/block/Block; ÁÈ ÉÊis(Ljava/lang/Object;)Z ÌÍÎ ÏÐ'net/minecraft/world/level/LevelAccessor findBlocksInn(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/blockscan/BlockMatcher;Ò ÓÔtest ()Ljava/util/function/Predicate; Öר ÙÚ0net/minecraft/world/level/blockscan/BlockMatcher filterStateR(Ljava/util/function/Predicate;)Lnet/minecraft/world/level/blockscan/BlockMatcher; ÖÜ Ý* anyMatched ßàá âãjava/util/OptionalIntempty()Ljava/util/OptionalInt;å6net/minecraft/world/level/levelgen/feature/TreeFeature äç èé trunkPlacerG()Lnet/minecraft/world/level/levelgen/feature/trunkplacers/TrunkPlacer; ëìí îcCnet/minecraft/world/level/levelgen/feature/trunkplacers/TrunkPlacer getBaseHeight ßð ‘ñ(I)Ljava/util/OptionalInt; <ó -ô#()Lnet/minecraft/util/RandomSource; ö ÷øgetSurroundingBlockStatesY(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;II)Ljava/util/List; ú ûüisTwoByTwoSaplingE(Lnet/minecraft/world/level/block/state/BlockState;Ljava/util/List;)Z ^þ ÿ(IILjava/util/List;)V 0 ‘((Ljava/lang/Object;)Ljava/util/Optional; 0 â()Ljava/util/Optional;    net/minecraft/tags/BlockTagsFLOWERSLnet/minecraft/tags/TagKey; Á É(Lnet/minecraft/tags/TagKey;)Z3it/unimi/dsi/fastutil/objects/Object2ObjectArrayMap  apply()Ljava/util/function/Function;  4java/util/ObjectsrequireNonNull .(Ljava/util/Map;)Ljava/util/function/Function;  ! "#com/mojang/serialization/CodecstringResolver\(Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec; % &'CODEC Lcom/mojang/serialization/Codec;)oak+"net/minecraft/util/random/Weighted -./ 01net/minecraft/data/worldgen/features/TreeFeaturesOAK *2 3(Ljava/lang/Object;I)V -5 6 FANCY_OAK &8 ‘9O([Lnet/minecraft/util/random/Weighted;)Lnet/minecraft/util/random/WeightedList; &; ‘<*()Lnet/minecraft/util/random/WeightedList; -> ? OAK_BEES_005 -A BFANCY_OAK_BEES_005 D E²(Ljava/lang/String;Lnet/minecraft/util/random/WeightedList;Lnet/minecraft/util/random/WeightedList;Lnet/minecraft/util/random/WeightedList;Lnet/minecraft/resources/ResourceKey;)V G 0H3Lnet/minecraft/world/level/block/grower/TreeGrower;Jspruce -L MSPRUCE &O ‘P<(Ljava/lang/Object;)Lnet/minecraft/util/random/WeightedList; -R S MEGA_SPRUCE -U V MEGA_PINE X MHZmangrove -\ ]MANGROVE -_ ` TALL_MANGROVE b ]Hdazalea -f g AZALEA_TREE i jHAZALEAlbirch -n oBIRCH -q rBIRCH_BEES_005 t oHvjungle -x yJUNGLE_TREE_NO_VINE -{ |MEGA_JUNGLE_TREE ~ HJUNGLE�acacia -ƒ „ACACIA † „Hˆcherry -Š ‹CHERRY -� ŽCHERRY_BEES_005 � ‹H’dark_oak -” •DARK_OAK — •H™pale_oak -› œPALE_OAK_BONEMEAL ž ŸHPALE_OAK¡poplar -£ ¤ RED_POPLAR -¦ § ORANGE_POPLAR -© ª YELLOW_POPLAR ¬ ­HPOPLAR SignatureVLjava/util/Map;ULcom/mojang/serialization/Codec;…Lnet/minecraft/util/random/WeightedList;>;[Lnet/minecraft/resources/ResourceKey;RuntimeVisibleTypeAnnotations#Lorg/jspecify/annotations/Nullable;CodeLineNumberTableLocalVariableTablethisLocalVariableTypeTableMethodParametersÿ(Ljava/lang/String;Lnet/minecraft/util/random/WeightedList;>;Lnet/minecraft/util/random/WeightedList;>;Lnet/minecraft/util/random/WeightedList;>;Lnet/minecraft/resources/ResourceKey;)Vrandom!Lnet/minecraft/util/RandomSource;Z StackMapTable(Lnet/minecraft/util/RandomSource;Z)Lnet/minecraft/resources/ResourceKey;~(Lnet/minecraft/util/RandomSource;)Lnet/minecraft/resources/ResourceKey;growTreeË(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/chunk/ChunkGenerator;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/util/RandomSource;)ZdxIdzLjava/util/List;feature4Lnet/minecraft/world/level/levelgen/feature/Feature;twoByTwoSaplingPosLjava/util/Optional; featureHolderLnet/minecraft/core/Holder;level(Lnet/minecraft/server/level/ServerLevel; generator0Lnet/minecraft/world/level/chunk/ChunkGenerator;posLnet/minecraft/core/BlockPos;state2Lnet/minecraft/world/level/block/state/BlockState;megaFeatureKey featureKey„Ljava/util/List;>;\Ljava/util/Optional;QLnet/minecraft/core/Holder;Ü.net/minecraft/world/level/chunk/ChunkGeneratorÞnet/minecraft/util/RandomSourceÍ(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;II)Ljava/util/List;>;saplingPosition saplingBlock!Lcom/mojang/datafixers/util/Pair; saplingBlocksrLcom/mojang/datafixers/util/Pair;¯(Lnet/minecraft/server/level/ServerLevel;Ljava/util/List;>;)V emptyBlocksurroundingBlockStatesurroundingBlocksurroundingBlocksblock'Lnet/minecraft/world/level/block/Block;¹(Lnet/minecraft/world/level/block/state/BlockState;Ljava/util/List;>;)Z)Lnet/minecraft/world/level/LevelAccessor;getMinimumHeightA(Lnet/minecraft/server/level/ServerLevel;)Ljava/util/OptionalInt; treeFeature8Lnet/minecraft/world/level/levelgen/feature/TreeFeature;canGrowz(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)ZÕ(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;)Ljava/util/Optional;lambda$hasFlowers$05(Lnet/minecraft/world/level/block/state/BlockState;)Zlambda$static$0G(Lnet/minecraft/world/level/block/grower/TreeGrower;)Ljava/lang/String;g SourceFileTreeGrower.java NestMembersBootstrapMethodsÊ  õöö4  ÷øø   P4 G(Ljava/lang/String;)Lnet/minecraft/world/level/block/grower/TreeGrower;  "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; InnerClassesTwoByTwoSaplingPos%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup1®¯&'®°0HMH]HjHoHH„H‹H•HŸH­H ®±®±®±®²³´EµÓ+*·*+µ*,µ *-µ*µ*µ²+*¹W±¶"34 56789*:·>+¸H+ ++++¹*+±+±+±+²º ®»³ ´‡ˆµ}.™*´¶%š*´+¶+¶/À5°*´ +¶+¶/À5°¶=>@· .¸H.¼½.ƒ¾¿º ¼ƒ®À³´9:µD*´+¶+¶/À5°¶D·¸H¼½º¼®Á³´ÂõΠ*¶7:Æ�+¶;²A¹F¹L¶/ÀR:Æn+-¸T:¶X™]¶[À^¶`6 ¶[À^¶d6 ¶[À^¶g: ¹kÀn: + ¸p +,-  ¶t¹z™¬+ ¸~¬**+-¶�¶…:Ǭ+¶;²A¹F¹L¶/ÀR:Ǭ¹kÀn: +-¸‰ +,-¹z™¬+-¸�¸“¸~¬¶nHI J)K.L7M?NLOYQfRrTxV�W‘Z—\™a§b¬c®fÊgÏhÑkÝmâoñpósu·¢LMÄÅ Y@ÆÅ f3iÇ r'ÈÉ 7bÊË)pÌ͸HÎÏÐÑÒÓÔÕ¼½úÖ§[×Ê8ÌÍÝ%ÈÉ ¹>f3iØ 7bÊÙ)pÌÚúÖ²§[ײÊ8ÌÚ¿Zÿ‘ <ÛuÁÝ5R0”nÿ<ÛuÁÝ5ü5ü"Rü!nºÎÐÒÔ¼ ÷øµÄ h*+¶t¶˜+¶t¸�*+`¶t¶˜+`¶t¸�*+`¶t¶˜+`¶t¸�*+``¶t¶˜+``¶t¸�¸œ°¶yz{5|P}dy·*hÎÏhÒÓhÄÅhÆÅºÎÒÄÆ®ß rsµ²-+¹ŸM,¹£™,¹¨ÀŽN-¶«Àu:*¸‰§ÿÞ±¶‚ƒ#„)…,†·*#àÓáâ-ÎÏ-ãǹáä-ãØ¿ ü¤ú$º Îã®å ‹ŒµZ*+¶®¶²M*+,2¶ºW±¶‰ Š‹· ÎÏàÓ æÕº Îà €sµ«4+¹ŸM,¹£™&,¹¨ÀŽN*-¶«Àu-¶¾ÀÁ¶ºW§ÿ×±¶Ž�0�3‘· áâ4ÎÏ4ãǹáä4ãØ¿ ü¤ú+º Îã®å ûüµÕ:*¶ÃM+¹ŸN-¹£™&-¹¨ÀŽ:¶¾ÀÁ:,¶Çš¬§ÿ׬¶”– —*˜3™5›8�·4* çÕ èâ:ÔÕ:éÇ5êë¹ èä:éØ¿ý ¸¤(úº Ôé®ìƒ„µp"+,þþ¶t,¶t¹ËºÑ¶Õ¶Û¬¶¡¢£¤!¡· "¸H"Îí"ÒÓº ÎÒîïµøR*´M,Ǹް+¶;²A¹F,¹L¶/ÀRN-Æ&-¹k:Áä™Àä:¶æ¶ê¸ï°¸Þ°¶* ¨© ª ­®¯ °'²B³N¶·4B ðñR¸HRÎÏM×'+Ì͹Mײ'+ÌÚ¿ü 5ü@RºÎòóµÉ0*+¶ò*+,¶�¶…:*+¶ò¶7:ÇÆ +-,¸T¶X¬¬¶º»¾$¿.·>0¸H0ÎÏ0ÒÓ0ÔÕ ×Ö¹ ײֲ¿ ý.55º ÎÒÔ VWµäC>¡;6¡,*,¸õ:+¸ù™»^Y·ý¸°„ÿ§ÿÔ„ÿ§ÿƸ°¶"ÆÇÈÉ#Ê3Ç9Æ?η>iÇ /ÆÅ=ÄÅCÎÏCÔÕCÒÓ¹ iØ¿üü(úúº ÎÔÒ®ô õöµ2*²¶ ¬¶£· ÔÕ ÷øµ/*´°¶· ùHúµM »Y·³º²Y¸Wº¸³$»Y(½*Y»*Y², ·1SY»*Y²4·1S¸7¸:½*Y»*Y²= ·1SY»*Y²@·1S¸7²,·C³F»YI²K¸N½*Y»*Y²Q·1SY»*Y²T·1S¸7¸:²K·C³W»YY½*Y»*Y²[·1SY»*Y²^U·1S¸7¸:¸:²[·C³a»Yc²e¸N¸:¸:²e·C³h»Yk²m¸N¸:²p¸N²m·C³s»Yu²w¸N²z¸N¸:²w·C³}»Y€²‚¸N¸:¸:²‚·C³…»Y‡²‰¸N¸:²Œ¸N²‰·C³�»Y‘¸:²“¸N¸:·C³–»Y˜¸:²š¸N¸:·C³�»Y ½*Y»*Y²¢·1SY»*Y²¥·1SY»*Y²¨·1S¸7¸:¸:²¢·C³«±¶6  "!}"¹#ô$%/&N'j(‰)£*½+ûüý^þ ÿ  ^