Êþº¾E.net/minecraft/SharedConstants  5net/minecraft/world/entity/ai/memory/MemoryModuleType LOOK_TARGET7Lnet/minecraft/world/entity/ai/memory/MemoryModuleType;  1net/minecraft/world/entity/ai/memory/MemoryStatus REGISTERED3Lnet/minecraft/world/entity/ai/memory/MemoryStatus;  RAM_COOLDOWN_TICKS   VALUE_ABSENT  NEAREST_VISIBLE_LIVING_ENTITIES   VALUE_PRESENT   RAM_TARGET  ! "#&com/google/common/collect/ImmutableMapofº(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap;%>net/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget '() *+/net/minecraft/world/entity/ai/behavior/Behavior(Ljava/util/Map;I)V -./ 01java/util/Optionalempty()Ljava/util/Optional; $3 45reachedRamPositionTimestampLjava/util/Optional; $7 85 ramCandidate $: ;<getCooldownOnFail"Ljava/util/function/ToIntFunction; $> ?@minRamDistanceI $B C@maxRamDistance $E FG walkSpeedF $I JK ramTargeting=Lnet/minecraft/world/entity/ai/targeting/TargetingConditions; $M N@ramPrepareTime $P QRgetPrepareRamSoundLjava/util/function/Function; TUV WX(net/minecraft/world/entity/PathfinderMobgetBrain'()Lnet/minecraft/world/entity/ai/Brain; Z[\ ]^#net/minecraft/world/entity/ai/Brain getMemoryM(Lnet/minecraft/world/entity/ai/memory/MemoryModuleType;)Ljava/util/Optional;` abapply±(Lnet/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/PathfinderMob;)Ljava/util/function/Function; -d efflatMap3(Ljava/util/function/Function;)Ljava/util/Optional;h ijaccept‰(Lnet/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget;Lnet/minecraft/world/entity/PathfinderMob;)Ljava/util/function/Consumer; -l mn ifPresent (Ljava/util/function/Consumer;)V Zp qrhasMemoryValue:(Lnet/minecraft/world/entity/ai/memory/MemoryModuleType;)Zt&net/minecraft/world/entity/EntityEvent vwx yz&net/minecraft/server/level/ServerLevelbroadcastEntityEvent'(Lnet/minecraft/world/entity/Entity;B)V |}~ € java/util/function/ToIntFunction applyAsInt(Ljava/lang/Object;)I ‚ƒ„ …†java/lang/IntegervalueOf(I)Ljava/lang/Integer; Zˆ ‰Š setMemoryL(Lnet/minecraft/world/entity/ai/memory/MemoryModuleType;Ljava/lang/Object;)V -Œ �Ž isPresent()Z -� ‘’get()Ljava/lang/Object;”Knet/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget$RamCandidate “– —˜ getTarget+()Lnet/minecraft/world/entity/LivingEntity; š›œ �Ž'net/minecraft/world/entity/LivingEntityisAlive -Ÿ  ŽisEmpty ¢ £ WALK_TARGET¥/net/minecraft/world/entity/ai/memory/WalkTarget “§ ¨©getStartPosition()Lnet/minecraft/core/BlockPos; ¤« *¬"(Lnet/minecraft/core/BlockPos;FI)V®4net/minecraft/world/entity/ai/behavior/EntityTracker ­° *±'(Lnet/minecraft/world/entity/Entity;Z)V š³ ´© blockPosition “¶ ·©getTargetPosition ¹º» ¼½net/minecraft/core/BlockPosequals(Ljava/lang/Object;)Z T¿ ÀÁ getNavigation;()Lnet/minecraft/world/entity/ai/navigation/PathNavigation; ÃÄÅ ÆÇ7net/minecraft/world/entity/ai/navigation/PathNavigationstop()V “É ÊËtarget)Lnet/minecraft/world/entity/LivingEntity; $Í ÎÏchooseRamPositionV(Lnet/minecraft/world/entity/PathfinderMob;Lnet/minecraft/world/entity/LivingEntity;)V T³ ÒÓÔ …Õjava/lang/Long(J)Ljava/lang/Long; -× "Ø((Ljava/lang/Object;)Ljava/util/Optional; ÒÚ ÛÜ longValue()J $Þ ßàgetEdgeOfBlock[(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/phys/Vec3; âãä aåjava/util/function/Function&(Ljava/lang/Object;)Ljava/lang/Object;çnet/minecraft/sounds/SoundEvent éêë ìí net/minecraft/sounds/SoundSourceNEUTRAL"Lnet/minecraft/sounds/SoundSource; Tï ðñ getVoicePitch()F vó ôõ playSoundŽ(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/sounds/SoundEvent;Lnet/minecraft/sounds/SoundSource;FF)V?à ¹ù úûgetX()I ýþÿ net/minecraft/util/Mthsign(D)I ¹ ûgetZ    net/minecraft/world/phys/Vec3atBottomCenterOf;(Lnet/minecraft/core/Vec3i;)Lnet/minecraft/world/phys/Vec3;   add$(DDD)Lnet/minecraft/world/phys/Vec3; $ isWalkableBlockJ(Lnet/minecraft/world/entity/PathfinderMob;Lnet/minecraft/core/BlockPos;)Z  com/google/common/collect/Lists newArrayList()Ljava/util/ArrayList; ¹ mutable/()Lnet/minecraft/core/BlockPos$MutableBlockPos;  !""net/minecraft/core/Direction$Plane HORIZONTAL$Lnet/minecraft/core/Direction$Plane; $ %&iterator()Ljava/util/Iterator; ()* +Žjava/util/IteratorhasNext (- .’next0net/minecraft/core/Direction 234 56+net/minecraft/core/BlockPos$MutableBlockPossetI(Lnet/minecraft/core/Vec3i;)Lnet/minecraft/core/BlockPos$MutableBlockPos; 28 9:moveM(Lnet/minecraft/core/Direction;)Lnet/minecraft/core/BlockPos$MutableBlockPos; /< => getOpposite ()Lnet/minecraft/core/Direction; 2@ AB distManhattan(Lnet/minecraft/core/Vec3i;)I 2D E© immutable GHI  ½java/util/List GK LMstream()Ljava/util/stream/Stream; OPQ Råjava/util/ObjectsrequireNonNullT UV applyAsDoubleD(Lnet/minecraft/core/BlockPos;)Ljava/util/function/ToDoubleFunction; XYZ [\java/util/ComparatorcomparingDouble=(Ljava/util/function/ToDoubleFunction;)Ljava/util/Comparator; ^_` abjava/util/stream/Streamsorted1(Ljava/util/Comparator;)Ljava/util/stream/Stream;d eftestY(Lnet/minecraft/world/entity/ai/navigation/PathNavigation;)Ljava/util/function/Predicate; ^h ijfilter9(Ljava/util/function/Predicate;)Ljava/util/stream/Stream; ^l m1 findFirst Ão pqisStableDestination (Lnet/minecraft/core/BlockPos;)Z stu vw6net/minecraft/world/level/pathfinder/WalkNodeEvaluatorgetPathTypeStaticn(Lnet/minecraft/world/entity/Mob;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/pathfinder/PathType; Ty z{getPathfindingMalus2(Lnet/minecraft/world/level/pathfinder/PathType;)F $} ~calculateRammingStartPositioni(Lnet/minecraft/world/entity/PathfinderMob;Lnet/minecraft/world/entity/LivingEntity;)Ljava/util/Optional;� a‚H(Lnet/minecraft/world/entity/LivingEntity;)Ljava/util/function/Function; -„ …fmap $‡ ˆ‰ canStillUseV(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/PathfinderMob;J)Z $‹ ÆŒV(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/PathfinderMob;J)V $Ž �Œtick $‘ ’Œstart “” *•f(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/entity/LivingEntity;)V × ˜™ createPathK(Lnet/minecraft/core/BlockPos;I)Lnet/minecraft/world/level/pathfinder/Path; ›œ� žŽ)net/minecraft/world/level/pathfinder/PathcanReach  e¡²(Lnet/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/PathfinderMob;)Ljava/util/function/Predicate; £¤¥ ¦§Anet/minecraft/world/entity/ai/memory/NearestVisibleLivingEntities findClosest4(Ljava/util/function/Predicate;)Ljava/util/Optional; ©ª« e¬;net/minecraft/world/entity/ai/targeting/TargetingConditions}(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/entity/LivingEntity;)ZTIME_OUT_DURATION ConstantValue  Signature'Ljava/util/function/ToIntFunction;CLjava/util/function/Function;&Ljava/util/Optional;cLjava/util/Optional;ƒ(Ljava/util/function/ToIntFunction;IIFLnet/minecraft/world/entity/ai/targeting/TargetingConditions;ILjava/util/function/Function;)VCodeLineNumberTableLocalVariableTablethis@Lnet/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget;LocalVariableTypeTableELnet/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget;MethodParameters®(Ljava/util/function/ToIntFunction;IIFLnet/minecraft/world/entity/ai/targeting/TargetingConditions;ILjava/util/function/Function;)Vlevel(Lnet/minecraft/server/level/ServerLevel;body*Lnet/minecraft/world/entity/PathfinderMob; timestampJbrain%Lnet/minecraft/world/entity/ai/Brain;(Lnet/minecraft/world/entity/ai/Brain<*>;TE; StackMapTable/(Lnet/minecraft/server/level/ServerLevel;TE;J)V startRamPosLnet/minecraft/core/BlockPos; didTargetMoveZ targetPosoffsetDistanceDxOffsetzOffsetdistance directionLnet/minecraft/core/Direction; ramableTargetpossibleRamPositionsLjava/util/List;!walkablePosFurthestAwayFromTarget-Lnet/minecraft/core/BlockPos$MutableBlockPos; navigation9Lnet/minecraft/world/entity/ai/navigation/PathNavigation;/Ljava/util/List;ˆ(Lnet/minecraft/world/entity/PathfinderMob;Lnet/minecraft/world/entity/LivingEntity;)Ljava/util/Optional;U(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/LivingEntity;J)ZU(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/LivingEntity;J)Vlambda$chooseRamPosition$0•(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget$RamCandidate;pos&lambda$calculateRammingStartPosition$0Y(Lnet/minecraft/world/entity/ai/navigation/PathNavigation;Lnet/minecraft/core/BlockPos;)Zpath+Lnet/minecraft/world/level/pathfinder/Path;lambda$start$2 livingEntitylambda$start$0«(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/PathfinderMob;Lnet/minecraft/world/entity/ai/memory/NearestVisibleLivingEntities;)Ljava/util/Optional;livingEntitiesCLnet/minecraft/world/entity/ai/memory/NearestVisibleLivingEntities;lambda$start$1~(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/PathfinderMob;Lnet/minecraft/world/entity/LivingEntity;)ZentitydLnet/minecraft/world/entity/ai/behavior/Behavior; SourceFilePrepareRamNearestTarget.java NestMembersBootstrapMethodsåù $ú ëìüY(Lnet/minecraft/world/entity/ai/memory/NearestVisibleLivingEntities;)Ljava/util/Optional;þ(Ljava/lang/Object;)V $ éÏ,(Lnet/minecraft/world/entity/LivingEntity;)V(Ljava/lang/Object;)D     net/minecraft/core/Vec3idistSqr(Lnet/minecraft/core/Vec3i;)D (Lnet/minecraft/core/BlockPos;)D½ $ åæq $ âãl(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget$RamCandidate; $ ïð,(Lnet/minecraft/world/entity/LivingEntity;)Z  !" #$"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; InnerClasses RamCandidateMutableBlockPosPlane*%java/lang/invoke/MethodHandles$Lookup,java/lang/invoke/MethodHandlesLookup!$' ­@®¯;<°±?@C@FGJKN@QR°²45°³85°´*µ¶ X*²² ²²²²²²¸ ·&*¸,µ2*¸,µ6*+µ9*µ=*µA*µD*µH*µL*µO±·. 6"*)+0=5>:??@EAKBQCWD¸RX¹ºX;<X?@XC@XFGXJKXN@XQR» X¹¼X;±XQ²½;?CFJNQ°¾’Œ¶¢$,¶S:²¶Y*+,º_¶c*,ºg¶k±·HIJ K#L¸4$¹º$¿À$ÁÂ$ÃÄÅÆ»$¹¼Åǽ ¿ÁÃÆŒ¶Ä.,¶S:²¶oš+,;¶u²*´9,¹{¸�¶‡±·PQRS-U¸4.¹º.¿À.ÁÂ.ÃÄ(ÅÆ» .¹¼.ÁÈ(ÅÇÉü-Z½ ¿Áðʈ‰¶�#*´6¶‹™*´6¶�À“¶•¶™™§¬·YZ"Y¸*#¹º#¿À#ÁÂ#ÃÄ» #¹¼É!@½ ¿ÁÃ�Œ¶ .*´6¶ž™±,¶S²¡»¤Y*´6¶�À“¶¦*´D·ª¶‡,¶S²»­Y*´6¶�À“¶•·¯¶‡*´6¶�À“¶•¶²*´6¶�À“¶µ¶¸š§6™&+,;¶u,¶¾¶Â*,*´6¶�À“´È¶Ì§‘,¶Ð:*´6¶�À“¶¦¶¸™v+,:¶u*´2¶ž™*!¸Ñ¸Öµ2!*´2¶�ÀÒ¶Ùe*´L…”›B,¶S²**´6¶�À“¶µ¶Ý¶‡+,*´O,¹áÀæ²è ,¶î¶ò*¸,µ6±·N_ ` c.dMfwg|hƒiŠjŸl¥mºnÁoËpÖrîs t&u-y¸>¥ˆËÌ.¹º.¿À.ÁÂ.ÃÄw·Íλ.¹¼.ÁÈÉ ûh@ü)ü6¹úV½ ¿ÁðÊßà¶³ 9öJö,¶ø+¶ød‡¸ü‡k9ö,¶+¶d‡¸ü‡k9,¸¶ °·|}~,€¸>9¹º9ËÌ9ÏÌ5ÐÑ!ÒÑ, ÓÑ» 9¹¼½ ËÏ~¶Ô Ã,¶²N*+-¶š¸,°¸:-¶:²¶#:¹'™b¹,À/:-¶1W6*´A¢&*+¶7¶š¶;¶7W§ „§ÿ×-¶?*´=¡¶C¹FW§ÿš+¶¾:¹J+¶ÐY¸NWºS¸W¹]ºc¹g¹k°·V„…†‰‹Œ;�BŽN�]�h‘kŽq•~–‹˜Žš”œœ�¸ž½¢Âœ¸\ E,Ô@;PÕÖùºÃÁÂÃ×˾Ï̬ØÙ¦ÚÛ”/Üݻù¼¬ØÞÉ%ü¹þG2(ý/%úúú½ Á×°ß¶‚+¶¾,¶n™++,¸r¶x •𧬷¦§¦¸ ¹ºÁÂÏÌ» ¹¼É@½ ÁÏÎ϶w*¸,µ2**+,¶|,º€¶ƒµ6±·«¬­®¸ ¹ºÁÂ×Ë» ¹¼½ Á×Dˆà¶G *+,ÀT!¶†¬·¸  ¹º»  ¹¼½ ¿ÁÃDÆá¶G *+,ÀT!¶б·¸  ¹º»  ¹¼½ ¿ÁÃD�á¶G *+,ÀT!¶�±·¸  ¹º»  ¹¼½ ¿ÁÃD’á¶G *+,ÀT!¶�±·¸  ¹º»  ¹¼½ ¿Áà âã¶B»“Y+*¶²*·“°·­¸×ËäÌ åæ¶j*+¶–M,Æ,¶š™§¬· Ÿ ¸ ÜÝäÌçèÉ ü›@é϶W*+,¶Ì±·K¸ ¹ºÁÂêË» ¹¼ëì¶g -*+,ºŸ¶¢°·J¸* ¹º ¿À Á íî»  ¹¼ïð¶e *´H+,-¶¨¬·J¸* ¹º ¿À Á ñË»  ¹¼°òóôõ“ö>÷øûýÿ ÷%"“$& 2¹' /(@)+-