Êþº¾EÛ  java/lang/Object()V   ,net/minecraft/world/level/portal/PortalShapeaxis#Lnet/minecraft/core/Direction$Axis;  numPortalBlocksI  rightDirLnet/minecraft/core/Direction;   bottomLeftLnet/minecraft/core/BlockPos;  width  height !"test ()Ljava/util/function/Predicate; $ %&findPortalShape�(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Ljava/util/function/Predicate;Lnet/minecraft/core/Direction$Axis;)Ljava/util/Optional; ( )* findAnyShape—(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction$Axis;)Lnet/minecraft/world/level/portal/PortalShape; ,-. /0java/util/Optionalof((Ljava/lang/Object;)Ljava/util/Optional; ,2 34filter4(Ljava/util/function/Predicate;)Ljava/util/Optional; ,6 78 isPresent()Z :;< = !net/minecraft/core/Direction$AxisX :? @ Z BCD Enet/minecraft/core/DirectionWEST BG HSOUTH J KLcalculateBottomLeft�(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/Direction;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/core/BlockPos; N Od(Lnet/minecraft/core/Direction$Axis;ILnet/minecraft/core/Direction;Lnet/minecraft/core/BlockPos;II)V Q RScalculateWidthe(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;)IU+org/apache/commons/lang3/mutable/MutableInt T X YZcalculateHeight“(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;ILorg/apache/commons/lang3/mutable/MutableInt;)I T\ ]^intValue()I `ab c^%net/minecraft/world/level/BlockGettergetMinY efg h^net/minecraft/core/BlockPosgetY jkl mnjava/lang/Mathmax(II)I ep qrbelow()Lnet/minecraft/core/BlockPos; `t uv getBlockStateQ(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState; x yzisEmpty5(Lnet/minecraft/world/level/block/state/BlockState;)Z B| }~ getOpposite ()Lnet/minecraft/core/Direction; € �SgetDistanceUntilEdgeAboveFrame eƒ „…relative>(Lnet/minecraft/core/Direction;I)Lnet/minecraft/core/BlockPos;‡+net/minecraft/core/BlockPos$MutableBlockPos † †Š ‹ŒsetI(Lnet/minecraft/core/Vec3i;)Lnet/minecraft/core/BlockPos$MutableBlockPos; †Ž ��moveN(Lnet/minecraft/core/Direction;I)Lnet/minecraft/core/BlockPos$MutableBlockPos; ’ “”FRAMELjava/util/function/Predicate; –—˜ !™java/util/function/Predicate(Ljava/lang/Object;)Z B› œDOWN †ž �ŸM(Lnet/minecraft/core/Direction;)Lnet/minecraft/core/BlockPos$MutableBlockPos; ¡ ¢£getDistanceUntilTopÀ(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;Lnet/minecraft/core/BlockPos$MutableBlockPos;ILorg/apache/commons/lang3/mutable/MutableInt;)I ¥ ¦§ hasTopFrame”(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;Lnet/minecraft/core/BlockPos$MutableBlockPos;II)Z B© ªUP ¬­® ¯°&net/minecraft/world/level/block/Blocks NETHER_PORTAL'Lnet/minecraft/world/level/block/Block; ²³´ µ™0net/minecraft/world/level/block/state/BlockStateis T· ¸ increment ²º »8isAir ½¾¿ ÀÁnet/minecraft/tags/BlockTagsFIRELnet/minecraft/tags/TagKey; ²Ã µÄ(Lnet/minecraft/tags/TagKey;)Z ÆÇÈ ÉÊ%net/minecraft/world/level/block/BlockdefaultBlockState4()Lnet/minecraft/world/level/block/state/BlockState; ÌÍÎ ÏÐ1net/minecraft/world/level/block/NetherPortalBlockAXIS?Lnet/minecraft/world/level/block/state/properties/EnumProperty; ²Ò ÓÔsetValuee(Lnet/minecraft/world/level/block/state/properties/Property;Ljava/lang/Comparable;)Ljava/lang/Object; eÖ ×Ø betweenClosedP(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/BlockPos;)Ljava/lang/Iterable;Ú ÛÜacceptz(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/world/level/block/state/BlockState;)Ljava/util/function/Consumer; Þßà áâjava/lang/IterableforEach (Ljava/util/function/Consumer;)V ä å8isValid çèé ê+net/minecraft/util/BlockUtil$FoundRectangle axis1Size ìíî ï+net/minecraft/world/entity/EntityDimensions()F çñ ò axis2Size ìô ï çö ÷ minCorner eù úûget&(Lnet/minecraft/core/Direction$Axis;)I@ ÿ únet/minecraft/world/phys/Vec3&(Lnet/minecraft/core/Direction$Axis;)D  net/minecraft/util/Mth inverseLerp(DDD)D   clamp?à :  Y ÿ (DDD)V@€ ÿ add$(DDD)Lnet/minecraft/world/phys/Vec3;  net/minecraft/world/phys/AABBofSizeC(Lnet/minecraft/world/phys/Vec3;DDD)Lnet/minecraft/world/phys/AABB;  !" expandTowards$(DDD)Lnet/minecraft/world/phys/AABB;$&net/minecraft/world/phys/shapes/Shapes>°Æ÷ µí� ( )*inflate"(D)Lnet/minecraft/world/phys/AABB; #, -.createM(Lnet/minecraft/world/phys/AABB;)Lnet/minecraft/world/phys/shapes/VoxelShape; 012 34&net/minecraft/server/level/ServerLevelfindFreePosition‡(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/phys/shapes/VoxelShape;Lnet/minecraft/world/phys/Vec3;DDD)Ljava/util/Optional;6 78apply (D)Ljava/util/function/Function; ,: ;<map3(Ljava/util/function/Function;)Ljava/util/Optional; ,> ?@orElse&(Ljava/lang/Object;)Ljava/lang/Object; ÿB Csubtract EFG HI'net/minecraft/world/level/LevelAccessorsetBlockS(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;I)Z ½K LÁNETHER_PORTAL_FRAME  MIN_WIDTH ConstantValue MAX_WIDTH MIN_HEIGHT MAX_HEIGHT SignatureRLjava/util/function/Predicate;SAFE_TRAVEL_MAX_ENTITY_XYFSAFE_TRAVEL_MAX_VERTICAL_DELTAD?ðCodeLineNumberTableLocalVariableTablethis.Lnet/minecraft/world/level/portal/PortalShape;portalBlockCountMethodParametersfindEmptyPortalShape(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction$Axis;)Ljava/util/Optional;level)Lnet/minecraft/world/level/LevelAccessor;pos preferredAxis¯(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction$Axis;)Ljava/util/Optional; firstAxisLjava/util/Optional; otherAxisLocalVariableTypeTableNLjava/util/function/Predicate;DLjava/util/Optional; StackMapTableý(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;Ljava/util/function/Predicate;Lnet/minecraft/core/Direction$Axis;)Ljava/util/Optional;'Lnet/minecraft/world/level/BlockGetter;portalBlockCountOutput-Lorg/apache/commons/lang3/mutable/MutableInt;minYleftDiredgeRuntimeVisibleTypeAnnotations#Lorg/jspecify/annotations/Nullable; blockState2Lnet/minecraft/world/level/block/state/BlockState; belowState directionblockPos-Lnet/minecraft/core/BlockPos$MutableBlockPos;framePosistatecreatePortalBlocks,(Lnet/minecraft/world/level/LevelAccessor;)V portalState isCompletegetRelativePosition½(Lnet/minecraft/util/BlockUtil$FoundRectangle;Lnet/minecraft/core/Direction$Axis;Lnet/minecraft/world/phys/Vec3;Lnet/minecraft/world/entity/EntityDimensions;)Lnet/minecraft/world/phys/Vec3; bottomStart relativeRight heightAxis relativeUplargestRectangleAround-Lnet/minecraft/util/BlockUtil$FoundRectangle;positionLnet/minecraft/world/phys/Vec3; dimensions-Lnet/minecraft/world/entity/EntityDimensions; bottomMin forwardAxisrelativeForwardfindCollisionFreePosition¸(Lnet/minecraft/world/phys/Vec3;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/entity/EntityDimensions;)Lnet/minecraft/world/phys/Vec3; bottomCenter serverLevel(Lnet/minecraft/server/level/ServerLevel;entity#Lnet/minecraft/world/entity/Entity; halfHeightcenterallowedCenters,Lnet/minecraft/world/phys/shapes/VoxelShape;collisionFreePositioncollisionFreeBottomCenter5Ljava/util/Optional;"lambda$findCollisionFreePosition$0A(DLnet/minecraft/world/phys/Vec3;)Lnet/minecraft/world/phys/Vec3;veclambda$createPortalBlocks$0{(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;)Vlambda$findEmptyPortalShape$01(Lnet/minecraft/world/level/portal/PortalShape;)Zshapelambda$static$0 SourceFilePortalShape.javaBootstrapMethods™µ ¶ «¬¬¹(Ljava/lang/Object;)V» ¼ ©ª¾ (Lnet/minecraft/core/BlockPos;)V@Á  ¦§Ä@(Lnet/minecraft/world/phys/Vec3;)Lnet/minecraft/world/phys/Vec3;Æ Ç ®zzÊ ËÌÍ ÎÏ"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; InnerClassesAxisMutableBlockPosÔnet/minecraft/util/BlockUtilFoundRectangle×%java/lang/invoke/MethodHandles$LookupÙjava/lang/invoke/MethodHandlesLookup! NOPQORSOTUOR“”VWXYOZ[O\ O^¨&*·*+µ*µ *-µ*µ*µ*µ±_",- ./012%3`H&ab& &c&&&&d c ef^J *+º,¸#°_6`  gh i j d gijVk %&^Ö;*+-¸'¸+,¶1:¶5™°-²9¦ ²>§²9:*+¸'¸+,¶1°_:;<?,@`>;gh;i;å”;j ,lm,n o;åp,lqr ü, B:dgiåjVs )*^"t,²9¦ ²A§²FN*-+¸I:Ç»Y,-+·M°*-¸P6š»Y,-·M°»TY·V:*-¸W6»Y,¶[-·M°_* DHIJ,M5N:OIRRS_T`Rtgttit c[5?R"uv_r BBýBeüd gi  KL^ÞR*¹_,¶dd¸i>,¶d¤*,¶o¹s¸w™ ,¶oM§ÿã+¶{:*,¸d6œ°,¶‚°_"YZ)[1^7_B`GaIc`>RgtRRiAw7xByrüýBd giz{ RS^w*+,¸>¡ ¤¬¬_gijm`*gtrüd g �S^f»†Y·ˆN6£U-+¶‰,¶�W*-¹s:¸w𲑹•™+¬*-²š¶�¹s:²‘¹•š§ „§ÿª¬_2 qstv'w/x<y?N€[�^sd…`H'7|}N~} Yfgtfif^€�rý †ü3²úúd gi YZ^¼6»†Y·ˆ:*+,¸ 6¡£*+,¸¤š¬¬_‰ ŠŒ1�3�`H6gt6666cv -i� r ý1†dgc ¦§^Ð<6¢3-+¶‰²¨¶�,¶�:²‘*¹s¹•𬄧ÿ̬_” •–2—4”:š`R‚�7ƒ<gt<<<i�<<r ü0údgi ¢£^‡ ¬6¢¢-+¶‰²¨¶�,¶�W²‘*-¹s¹•š¬-+¶‰²¨¶�,¶�W²‘*-¹s¹•š¬6¢A-+¶‰²¨¶�,¶�W*-¹s:¸w𬲫¶±™¶¶„§ÿ¾„§ÿ]¬_Fž  ¡/¢2¦F§X¨[¬e­y¯‚°Š±�´˜µ�¬£ž©¹`\ ‚„}^Eƒ¦¬gt¬¬¬i�¬¬cvrü.(üü.²úúúdgic yz^W!*¶¹š*²¼¶Âš *²«¶±™§¬_½` !„}r@d„å8^](*´¡!*´£*´¡*´£§¬_Á` (abr&@…†^‹E²«¶Å²Ë*´¶ÑÀ²M*´*´²¨*´d¶‚*´*´d¶‚¸Õ+,ºÙ¹Ý±_ÅÇDÊ` EabEgh1‡}dgˆ8^R*¶ã™*´ *´*´h §¬_Í` abr@ ‰Š^ʺ*´æ‡-¶ë�g9*´ð‡-¶ó�g9*´õ:—ž.+¶ø‡-¶ë�üoc9 ,+¶þ g¸¸ 9 § 9 —ž'²: , ¶þ ¶ø‡g¸¸ 9 §9 +²9¦ ²>§²9: , ¶þ ¶ø‡ cg9»ÿY  ·°_BÒ ÓÕ ×'Ø:ÙOÚRÛWÞ^ßcàá‚â…å—æ¬è`˜:‹[ OŒ[ c� Ž[ º��º º‘’º“” ­[ [ š•WcŒ[ …5Ž[ —#– ¬—[rþReü*ü B:d� ‘“ ˜™^< €-¶ë•�-¶ó•ž*°-¶ó�üo9*¶:-¶ë�-¶ë�¸¶%¶'¸+:+,-¶ë�-¶ó�-¶ë�¶/:º5¶9:  *¶=Àÿ°_"ìíð#ñ-óNôhõv÷`\ €š’€›œ€�ž€“”#]Ÿ[-S ’N2¡¢h£mv ¤m oh£¥v ¤¥ rdš›�“ ¦§^<,&¶A°_õ`Ÿ[¨’ ©ª^J *,+¹DW±_È`  gh ‡} i «¬^I*¶ã™*´ š§¬_6` ­br@ ®z^2*²J¶Â¬_!` „}¯^! ºM³‘±_!°±²*ɳ´·É¸º½É¿ÀÃɳÅÈÐ":BÑ@†eÒ çÓÕ ÖØÚ