Êþº¾ETBnet/minecraft/world/level/levelgen/structure/pools/JigsawPlacement  java/lang/Object()V ,net/minecraft/util/SequencedPriorityIterator   Inet/minecraft/world/level/levelgen/structure/pools/JigsawPlacement$Placerplacing.Lnet/minecraft/util/SequencedPriorityIterator;  poolsLnet/minecraft/core/Registry;  maxDepthI  chunkGenerator0Lnet/minecraft/world/level/chunk/ChunkGenerator;  !structureTemplateManagerVLnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager; # $%piecesLjava/util/List; ' ()random!Lnet/minecraft/util/RandomSource; +,- ./Fnet/minecraft/world/level/levelgen/structure/PoolElementStructurePiece getElementK()Lnet/minecraft/world/level/levelgen/structure/pools/StructurePoolElement; +1 23 getPosition()Lnet/minecraft/core/BlockPos; +5 67 getRotation,()Lnet/minecraft/world/level/block/Rotation; 9:; <=Gnet/minecraft/world/level/levelgen/structure/pools/StructurePoolElement getProjectionW()Lnet/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool$Projection; ?@A BCSnet/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool$ProjectionRIGIDULnet/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool$Projection;E.org/apache/commons/lang3/mutable/MutableObject D +H IJgetBoundingBox<()Lnet/minecraft/world/level/levelgen/structure/BoundingBox; LMN OP8net/minecraft/world/level/levelgen/structure/BoundingBoxminY()I 9R STgetShuffledJigsawBlocksÐ(Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/Rotation;Lnet/minecraft/util/RandomSource;)Ljava/util/List; VWX YZjava/util/Listiterator()Ljava/util/Iterator; \]^ _`java/util/IteratorhasNext()Z \b cdnext()Ljava/lang/Object;f]net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate$JigsawBlockInfo eh ijstate4()Lnet/minecraft/world/level/block/state/BlockState; lmn op+net/minecraft/world/level/block/JigsawBlockgetFrontFacingR(Lnet/minecraft/world/level/block/state/BlockState;)Lnet/minecraft/core/Direction; er s3pos uvw xynet/minecraft/core/BlockPosrelative=(Lnet/minecraft/core/Direction;)Lnet/minecraft/core/BlockPos; u{ |PgetY€ e €�pool'()Lnet/minecraft/resources/ResourceKey; ƒ„… †‡Hnet/minecraft/world/level/levelgen/structure/pools/alias/PoolAliasLookuplookupL(Lnet/minecraft/resources/ResourceKey;)Lnet/minecraft/resources/ResourceKey; ‰Š‹ Œ�net/minecraft/core/Registryget;(Lnet/minecraft/resources/ResourceKey;)Ljava/util/Optional; ��‘ ’`java/util/OptionalisEmpty ” •–LOGGERLorg/slf4j/Logger;˜Empty or non-existent pool: {} š›œ �ž#net/minecraft/resources/ResourceKey identifier&()Lnet/minecraft/resources/Identifier;  ¡¢ £¤org/slf4j/Loggerwarn'(Ljava/lang/String;Ljava/lang/Object;)V �¦ Œd¨net/minecraft/core/Holder §ª «dvalue­Hnet/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool ¬¯ °Psize ²³´ µ¶!net/minecraft/data/worldgen/PoolsEMPTY%Lnet/minecraft/resources/ResourceKey; §¸ ¹ºis((Lnet/minecraft/resources/ResourceKey;)Z ¬¼ ½¾ getFallback()Lnet/minecraft/core/Holder;À'Empty or non-existent fallback pool: {} §Â ÃÄ unwrapKey()Ljava/util/Optional;Æ ÇÈapply()Ljava/util/function/Function; �Ê ËÌmap3(Ljava/util/function/Function;)Ljava/util/Optional;Î �Ð ÑÒorElse&(Ljava/lang/Object;)Ljava/lang/Object; LÔ ÕÖisInside(Lnet/minecraft/core/Vec3i;)Z D¦ ÙÚÛ ÜÝnet/minecraft/world/phys/AABBof[(Lnet/minecraft/world/level/levelgen/structure/BoundingBox;)Lnet/minecraft/world/phys/AABB; ßàá âã&net/minecraft/world/phys/shapes/ShapescreateM(Lnet/minecraft/world/phys/AABB;)Lnet/minecraft/world/phys/shapes/VoxelShape; Då æçsetValue(Ljava/lang/Object;)V éêë ìícom/google/common/collect/Lists newArrayList()Ljava/util/ArrayList; ¬ï ðñgetShuffledTemplates3(Lnet/minecraft/util/RandomSource;)Ljava/util/List; Vó ôõaddAll(Ljava/util/Collection;)Z e÷ øPplacementPriority úûü ýþCnet/minecraft/world/level/levelgen/structure/pools/EmptyPoolElementINSTANCEELnet/minecraft/world/level/levelgen/structure/pools/EmptyPoolElement;  ñ(net/minecraft/world/level/block/Rotation getShuffled u ZEROLnet/minecraft/core/BlockPos; 9 I Ù(Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/Rotation;)Lnet/minecraft/world/level/levelgen/structure/BoundingBox; L  PgetYSpan V stream()Ljava/util/stream/Stream;  applyAsIntó(Lnet/minecraft/world/level/levelgen/structure/pools/JigsawPlacement$Placer;Lnet/minecraft/world/level/levelgen/structure/BoundingBox;Lnet/minecraft/world/level/levelgen/structure/pools/alias/PoolAliasLookup;)Ljava/util/function/ToIntFunction;  java/util/stream/StreammapToInt@(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;   !java/util/stream/IntStreammax()Ljava/util/OptionalInt; #$% Ñ&java/util/OptionalInt(I)I l( )* canAttachÁ(Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate$JigsawBlockInfo;Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate$JigsawBlockInfo;)Z u, -.subtract9(Lnet/minecraft/core/Vec3i;)Lnet/minecraft/core/BlockPos; 012 3Pnet/minecraft/core/DirectiongetStepY u5 6PgetX u8 9PgetZ ;<= >?2net/minecraft/world/level/levelgen/Heightmap$TypesWORLD_SURFACE_WG4Lnet/minecraft/world/level/levelgen/Heightmap$Types; ABC DE.net/minecraft/world/level/chunk/ChunkGeneratorgetFirstFreeHeight˜(IILnet/minecraft/world/level/levelgen/Heightmap$Types;Lnet/minecraft/world/level/LevelHeightAccessor;Lnet/minecraft/world/level/levelgen/RandomState;)I LG HImoved?(III)Lnet/minecraft/world/level/levelgen/structure/BoundingBox; uK LMoffset"(III)Lnet/minecraft/core/BlockPos; LO PPmaxY RST  Ujava/lang/Math(II)I LW XPminX LZ [PminZ u] ^(III)V L` ab encapsulateY(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/levelgen/structure/BoundingBox;d*net/minecraft/world/phys/shapes/VoxelShape?Ð Ùh ijdeflate"(D)Lnet/minecraft/world/phys/AABB; lmn op)net/minecraft/world/phys/shapes/BooleanOp ONLY_SECOND+Lnet/minecraft/world/phys/shapes/BooleanOp; ßr stjoinIsNotEmpty†(Lnet/minecraft/world/phys/shapes/VoxelShape;Lnet/minecraft/world/phys/shapes/VoxelShape;Lnet/minecraft/world/phys/shapes/BooleanOp;)Z lv wp ONLY_FIRST ßy z{joinUnoptimized±(Lnet/minecraft/world/phys/shapes/VoxelShape;Lnet/minecraft/world/phys/shapes/VoxelShape;Lnet/minecraft/world/phys/shapes/BooleanOp;)Lnet/minecraft/world/phys/shapes/VoxelShape; +} ~PgetGroundLevelDelta 9} +� ‚p(Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager;Lnet/minecraft/world/level/levelgen/structure/pools/StructurePoolElement;Lnet/minecraft/core/BlockPos;ILnet/minecraft/world/level/block/Rotation;Lnet/minecraft/world/level/levelgen/structure/BoundingBox;Lnet/minecraft/world/level/levelgen/structure/templatesystem/LiquidSettings;)V„Anet/minecraft/world/level/levelgen/structure/pools/JigsawJunction ƒ† ‡\(IIIILnet/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool$Projection;)V +‰ Š‹ addJunctionF(Lnet/minecraft/world/level/levelgen/structure/pools/JigsawJunction;)V V� Ž�add(Ljava/lang/Object;)Z‘Mnet/minecraft/world/level/levelgen/structure/pools/JigsawPlacement$PieceState �“ ”|(Lnet/minecraft/world/level/levelgen/structure/PoolElementStructurePiece;Lorg/apache/commons/lang3/mutable/MutableObject;I)V – Ž—(Ljava/lang/Object;I)VÆš Ç›j(Lnet/minecraft/world/level/levelgen/structure/pools/JigsawPlacement$Placer;)Ljava/util/function/Function; �žŸ  ¡java/lang/IntegervalueOf(I)Ljava/lang/Integer; �£ ¤PintValue𠬧 ¨© getMaxSizeY(Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager;)I «¬­ ®¯"net/minecraft/resources/IdentifiertoString()Ljava/lang/String; SignatureiLnet/minecraft/core/Registry;[Ljava/util/List<-Lnet/minecraft/world/level/levelgen/structure/PoolElementStructurePiece;>;Lnet/minecraft/util/SequencedPriorityIterator;Ø(Lnet/minecraft/core/Registry;ILnet/minecraft/world/level/chunk/ChunkGenerator;Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager;Ljava/util/List;Lnet/minecraft/util/RandomSource;)VCodeLineNumberTableLocalVariableTablethisKLnet/minecraft/world/level/levelgen/structure/pools/JigsawPlacement$Placer;LocalVariableTypeTableMethodParameterso(Lnet/minecraft/core/Registry;ILnet/minecraft/world/level/chunk/ChunkGenerator;Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager;Ljava/util/List<-Lnet/minecraft/world/level/levelgen/structure/PoolElementStructurePiece;>;Lnet/minecraft/util/RandomSource;)VtryPlacingChildrenr(Lnet/minecraft/world/level/levelgen/structure/PoolElementStructurePiece;Lorg/apache/commons/lang3/mutable/MutableObject;IZLnet/minecraft/world/level/LevelHeightAccessor;Lnet/minecraft/world/level/levelgen/RandomState;Lnet/minecraft/world/level/levelgen/structure/pools/alias/PoolAliasLookup;Lnet/minecraft/world/level/levelgen/structure/templatesystem/LiquidSettings;)V childrenFree0Lorg/apache/commons/lang3/mutable/MutableObject;expandTo targetBoxYnewSizetargetGroundLevelDelta junctionYOLnet/minecraft/world/level/levelgen/structure/pools/JigsawPlacement$PieceState;targetJigsawLocalPosrawTargetBoxPos rawTargetBB:Lnet/minecraft/world/level/levelgen/structure/BoundingBox; rawTargetYtargetProjection targetRigidZtargetJigsawLocalYdeltaYyOffsettargetBBtargetBoxPositionsourceGroundLevelDelta targetPieceHLnet/minecraft/world/level/levelgen/structure/PoolElementStructurePiece; targetJigsaw_Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate$JigsawBlockInfo; targetJigsawshackBoxtargetRotation*Lnet/minecraft/world/level/block/Rotation; targetElementILnet/minecraft/world/level/levelgen/structure/pools/StructurePoolElement;sourceDirectionLnet/minecraft/core/Direction;sourceJigsawPostargetJigsawPossourceJigsawLocalYsourceJigsawBaseHeightpoolNamemaybeTargetPoolLjava/util/Optional; targetPoolLnet/minecraft/core/Holder;fallbackattachInsideSource targetPieces sourceJigsaw sourcePiece contextFreedepthdoExpansionHackheightAccessor/Lnet/minecraft/world/level/LevelHeightAccessor; randomState0Lnet/minecraft/world/level/levelgen/RandomState;poolAliasLookupJLnet/minecraft/world/level/levelgen/structure/pools/alias/PoolAliasLookup;liquidSettingsLLnet/minecraft/world/level/levelgen/structure/templatesystem/LiquidSettings; sourceElementsourceBoxPositionsourceRotationsourceProjection sourceRigid sourceFreesourceBB sourceBoxY^Lorg/apache/commons/lang3/mutable/MutableObject;qLjava/util/List;qLnet/minecraft/resources/ResourceKey;~Ljava/util/Optional<+Lnet/minecraft/core/Holder;>;gLnet/minecraft/core/Holder;[Ljava/util/List; StackMapTable -net/minecraft/world/level/LevelHeightAccessor .net/minecraft/world/level/levelgen/RandomStateJnet/minecraft/world/level/levelgen/structure/templatesystem/LiquidSettingsRuntimeVisibleTypeAnnotations#Lorg/jspecify/annotations/Nullable; (Lnet/minecraft/world/level/levelgen/structure/PoolElementStructurePiece;Lorg/apache/commons/lang3/mutable/MutableObject;IZLnet/minecraft/world/level/LevelHeightAccessor;Lnet/minecraft/world/level/levelgen/RandomState;Lnet/minecraft/world/level/levelgen/structure/pools/alias/PoolAliasLookup;Lnet/minecraft/world/level/levelgen/structure/templatesystem/LiquidSettings;)Vlambda$tryPlacingChildren$1æ(Lnet/minecraft/world/level/levelgen/structure/BoundingBox;Lnet/minecraft/world/level/levelgen/structure/pools/alias/PoolAliasLookup;Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate$JigsawBlockInfo;)I childPoolName childPoolchildFallbackPool childPoolSizechildFallbackSize}Ljava/util/Optional;>;lambda$tryPlacingChildren$40(Lnet/minecraft/core/Holder;)Ljava/lang/Integer;plambda$tryPlacingChildren$3lambda$tryPlacingChildren$28(Lnet/minecraft/core/Holder;)Lnet/minecraft/core/Holder;lambda$tryPlacingChildren$09(Lnet/minecraft/resources/ResourceKey;)Ljava/lang/String;e SourceFileJigsawPlacement.javaNestHostBootstrapMethodsÒ) *  !!-(Ljava/lang/Object;)I/ 0 2b(Lnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate$JigsawBlockInfo;)I4 5 8 9 < = ? @AB CD"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; InnerClassesPlacer ProjectionIMnet/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateJigsawBlockInfoL,net/minecraft/world/level/levelgen/HeightmapTypes PieceStateP%java/lang/invoke/MethodHandles$LookupRjava/lang/invoke/MethodHandlesLookup0 °± !$%°²()°³´µÓ1*·*» Y· µ *+µ*µ*-µ*µ*µ"*µ&±¶& A?BCDE$F*G0H·H1¸¹1111 !1$%1()º1±1$²» $(°¼½¾µ ã :¹+¶*: +¶0: +¶4:  ¶8:  ²>¦§6 »DY·F:+¶G:¶K6 *´  *´&¶Q¹U:¹[™[¹aÀe:¶g¸k:¶q:¶t:¶zd6}6¶~¹‚:*´¹ˆ:¶Ž™²“—¶™¹Ÿ§ÿ�¶¥À§:¹©À¬¶®š"²±¹·š²“—¶™¹Ÿ§ÿW¹©À¬¶»:¹©À¬¶®š1²±¹·š$²“¿¹ÁºÅ¶ÉͶϹŸ§ÿ ¶Ó6™:¶×Ǹظ޶ä§,:¸è:*´Ÿ¹©À¬*´&¶î¹òW¹©À¬*´&¶î¹òW¶ö6¹U:  ¹[™ã ¹aÀ9:!!²ù¦§Ì*´&¸ÿ¹U:""¹[™±"¹aÀ:#!*´²#*´&¶Q:$!*´²#¶:%™ %¶ ¤ 6&§$$¹*%º¹¹¶"6&$¹U:''¹[™5'¹aÀe:((¸'š§ÿà(¶q:))¶+:*!*´*#¶:++¶K6,!¶8:--²>¦§6.)¶z6//d¶g¸k¶/`60 ™.™ 0`61§+} *´¶4¶7²:¶@6/d611,d62+2¶F:3*2¶J:4&ž6&`3¶N3¶Kd¸Q653»uY3¶V3¶K5`3¶Y·\¶_W¶×Àc3¸Øe¶g¸Þ²k¸q™§þ×¶×Àc3¸Ø¸Þ²u¸x¶ä+¶|65.™ 50d66§ !¶66»+Y*´!46#3·€:7 ™ `68§<.™ 1/`68§-} *´¶4¶7²:¶@60l`68+»ƒY¶48d5`¶70-·…¶ˆ7»ƒY¶48/d6`¶70t ·…¶ˆ*´"7¹ŒW`*´£'»�Y7`·’:9*´ 9¶•§ §ýK§ý§û¡±¶šfKL MOP(R1T7U>WlXvZ}[†]�^”`¢a¯c·dÆeÉhÓiðjÿknp.qLrOwXx]yazi{y~|‚�ƒ‰„¢†»‡Šá‹éŒì��$‘4”C•I—_¡j¤‰¥“¦–©�«¦¬µ­¼¯ðÒ³Ùµì¸ö¹»¼!¾(Á/Ã:ÄEÆJÇ^È}͜ΟѺÓÀÕÅ×ÏÙÖÜïßôàþáâ äå.ç7ê>ëKíUêXò`ómõxò{ú‡û‘ü¡ý¬þ¯²µ¸·d=a¿ÀFÁ&ýÂ1^Ã5ÌÄ6ûÅ8 Å8¡ iÆ9�Ç)¦ È*µúÉÊ+¼óË,ÃìÌC-ÒÝÍÎ.ÙÖÏ/ìÃÐ0(‡Â1/€Ñ2:uÒÊ3EjÓ4ÀïÔ5ÖÙÄ6ïÀÕÖ77xÅ8‰&ר($‹Ù%$4{ÚÊ%jEÁ&ŸÛÜ#áÑÝÞ!v?ßà}8á†/â�%ã”!ä¢å¶¯æçÓâèé¤êé|9¿ÀX]ëÎ�4ì%ÂóølIíØ¹¸¹¹îÖ¹ïÀ¹ð¹ñιòó¹ôõ¹ö÷¹øù³úÞ ­û §üÜ  ýC (‘þÎ 1ˆÿÀ7‚Ê>{ºf a¿$‹Ù$¢å¯æÓâè¤ê|9¿�4ì¹ï1ˆÿŠ"ÿ%  +D  ƒ 9u?@ÿ/ +D  ƒ 9u?DL\ÿr +D  ƒ 9u?DL\e0uuš�ü8§üL§ý)ÿ +D  ƒ 9u?DL\e0uuš�§§Dü%Vý(\ü 9ü \þHVLü ü\ü"eÿ8. +D  ƒ 9u?DL\e0uuš�§§DV\9\VL\euuL?@þ/ üþTLu!ü/üü'+ üÿw# +D  ƒ 9u?DL\e0uuš�§§DV\9\ùÿ +D  ƒ 9u?DL\ú@1ˆ»!îïðñòôöø°µ= x+-¶q-¶g¸k¶t¶Óš¬,-¶~¹‚:*´¹ˆ:º˜¶É:*º™¶É¸œ¶ÏÀ�¶¢6*º¥¶É¸œ¶ÏÀ�¶¢6¸Q¬¶"˜™›#œ0�<žVŸp ·\ x¸¹xÚÊxö÷xר#U¶0Hç<<çV"pº #U0H<<µH+¹©À¬*´¶¦¸œ°¶Ÿ·¸¹éµH+¹©À¬*´¶¦¸œ°¶ž·¸¹é µ7 *¹©À¬¶»°¶�·  é  !µ2*¶™¶ª°¶q· "¶#$%&4>'(+>,.1>'36>'7:>';:E2 F?¬G@eHJ;KM@�NOQS