Êþº¾E¢net/minecraft/SharedConstants  5net/minecraft/world/entity/ai/memory/MemoryModuleTypeRAM_COOLDOWN_TICKS7Lnet/minecraft/world/entity/ai/memory/MemoryModuleType;  1net/minecraft/world/entity/ai/memory/MemoryStatus VALUE_ABSENT3Lnet/minecraft/world/entity/ai/memory/MemoryStatus;   RAM_TARGET   VALUE_PRESENT  &com/google/common/collect/ImmutableMapofr(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap;0net/minecraft/world/entity/ai/behavior/RamTarget  !"/net/minecraft/world/entity/ai/behavior/Behavior(Ljava/util/Map;I)V $ %&getTimeBetweenRamsLjava/util/function/Function; ( )* ramTargeting=Lnet/minecraft/world/entity/ai/targeting/TargetingConditions; , -.speedF 0 12getKnockbackForce%Ljava/util/function/ToDoubleFunction; 4 5&getImpactSound 7 8&getHornBreakSound :;< =>net/minecraft/world/phys/Vec3ZEROLnet/minecraft/world/phys/Vec3; @ A> ramDirection CDE FG+net/minecraft/world/entity/animal/goat/GoatgetBrain'()Lnet/minecraft/world/entity/ai/Brain; IJK LM#net/minecraft/world/entity/ai/BrainhasMemoryValue:(Lnet/minecraft/world/entity/ai/memory/MemoryModuleType;)Z CO PQ blockPosition()Lnet/minecraft/core/BlockPos; IS TU getMemoryM(Lnet/minecraft/world/entity/ai/memory/MemoryModuleType;)Ljava/util/Optional; WXY Z[java/util/Optionalget()Ljava/lang/Object; ]^_ `anet/minecraft/core/BlockPosgetX()I :c dex()D ]g hagetZ :j kez :m !n(DDD)V :p qr normalize!()Lnet/minecraft/world/phys/Vec3; t u WALK_TARGETw/net/minecraft/world/entity/ai/memory/WalkTarget vy !z$(Lnet/minecraft/world/phys/Vec3;FI)V I| }~ setMemoryL(Lnet/minecraft/world/entity/ai/memory/MemoryModuleType;Ljava/lang/Object;)V€'net/minecraft/world/entity/LivingEntity C‚ ƒ„getBoundingBox!()Lnet/minecraft/world/phys/AABB; †‡ˆ ‰Š&net/minecraft/server/level/ServerLevelgetNearbyEntities¨(Ljava/lang/Class;Lnet/minecraft/world/entity/ai/targeting/TargetingConditions;Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/phys/AABB;)Ljava/util/List; Œ�Ž ��java/util/ListisEmpty()Z Œ’ Z“(I)Ljava/lang/Object; †• –— damageSources2()Lnet/minecraft/world/damagesource/DamageSources; ™š› œ�.net/minecraft/world/damagesource/DamageSourcesnoAggroMobAttackZ(Lnet/minecraft/world/entity/LivingEntity;)Lnet/minecraft/world/damagesource/DamageSource; Ÿ ¡ ¢£3net/minecraft/world/entity/ai/attributes/Attributes ATTACK_DAMAGELnet/minecraft/core/Holder; C¥ ¦§getAttributeValue(Lnet/minecraft/core/Holder;)D © ª« hurtServer[(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/damagesource/DamageSource;F)Z ­®¯ °±6net/minecraft/world/item/enchantment/EnchantmentHelperdoPostAttackEffects}(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/damagesource/DamageSource;)V ³´µ ¶£%net/minecraft/world/effect/MobEffectsSPEED C¸ ¹º hasEffect(Lnet/minecraft/core/Holder;)Z C¼ ½¾ getEffectK(Lnet/minecraft/core/Holder;)Lnet/minecraft/world/effect/MobEffectInstance; ÀÁ Ãa,net/minecraft/world/effect/MobEffectInstance getAmplifier ³Å Æ£SLOWNESS>€ CÉ ÊËgetSpeed()F?Ó33>LÌÍ@@ ÐÑÒ ÓÔnet/minecraft/util/Mthclamp(FFF)F ™Ö ×� mobAttack Ù ÚÛapplyItemBlocking[(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/damagesource/DamageSource;F)F? Þßà áâ#java/util/function/ToDoubleFunction applyAsDouble(Ljava/lang/Object;)D ä åæ knockback6(DDDLnet/minecraft/world/damagesource/DamageSource;F)V è éê finishRamX(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/animal/goat/Goat;)V ìíî ïðjava/util/function/Functionapply&(Ljava/lang/Object;)Ljava/lang/Object;ònet/minecraft/sounds/SoundEvent ôõö ÷ø net/minecraft/sounds/SoundSourceNEUTRAL"Lnet/minecraft/sounds/SoundSource; †ú ûü playSoundŽ(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/entity/Entity;Lnet/minecraft/sounds/SoundEvent;Lnet/minecraft/sounds/SoundSource;FF)V þ ÿhasRammedHornBreakingBlockX(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/animal/goat/Goat;)Z C �dropHorn W� v  getTarget:()Lnet/minecraft/world/entity/ai/behavior/PositionTracker;     r6net/minecraft/world/entity/ai/behavior/PositionTrackercurrentPositionnet/minecraft/core/Position?Ð :  closerThan!(Lnet/minecraft/core/Position;D)Z C rgetDeltaMovement : multiply$(DDD)Lnet/minecraft/world/phys/Vec3; C rposition :! "#add@(Lnet/minecraft/world/phys/Vec3;)Lnet/minecraft/world/phys/Vec3; ]% &' containing<(Lnet/minecraft/core/Position;)Lnet/minecraft/core/BlockPos; †) *+ getBlockStateQ(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState; -./ 01net/minecraft/tags/BlockTagsSNAPS_GOAT_HORNLnet/minecraft/tags/TagKey; 345 670net/minecraft/world/level/block/state/BlockStateis(Lnet/minecraft/tags/TagKey;)Z ]9 :Qabove<&net/minecraft/world/entity/EntityEvent †> ?@broadcastEntityEvent'(Lnet/minecraft/world/entity/Entity;B)VB,net/minecraft/util/valueproviders/UniformInt †D EF getRandom#()Lnet/minecraft/util/RandomSource; AH IJsample$(Lnet/minecraft/util/RandomSource;)I LMN OPjava/lang/IntegervalueOf(I)Ljava/lang/Integer; IR ST eraseMemory:(Lnet/minecraft/world/entity/ai/memory/MemoryModuleType;)V V WcheckExtraStartConditions Y Z[ canStillUseY(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/animal/goat/Goat;J)Z ] ^_tickY(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/animal/goat/Goat;J)V a b_startTIME_OUT_DURATIONI ConstantValueÈRAM_SPEED_FORCE_FACTOR SignaturezLjava/util/function/Function;TLjava/util/function/ToDoubleFunction;mLjava/util/function/Function;½(Ljava/util/function/Function;Lnet/minecraft/world/entity/ai/targeting/TargetingConditions;FLjava/util/function/ToDoubleFunction;Ljava/util/function/Function;Ljava/util/function/Function;)VCodeLineNumberTableLocalVariableTablethis2Lnet/minecraft/world/entity/ai/behavior/RamTarget;LocalVariableTypeTableMethodParametersé(Ljava/util/function/Function;Lnet/minecraft/world/entity/ai/targeting/TargetingConditions;FLjava/util/function/ToDoubleFunction;Ljava/util/function/Function;Ljava/util/function/Function;)Vlevel(Lnet/minecraft/server/level/ServerLevel;body-Lnet/minecraft/world/entity/animal/goat/Goat; timestampJcurPosLnet/minecraft/core/BlockPos;brain%Lnet/minecraft/world/entity/ai/Brain; ramTargetPos(Lnet/minecraft/world/entity/ai/Brain<*>; ramTarget)Lnet/minecraft/world/entity/LivingEntity; damageSource/Lnet/minecraft/world/damagesource/DamageSource;damagemovementSpeedLevelmovementSlowdownLevelspeedBoostPower speedFactorsource blockedDamageblockingFactordroppedZ walkTargetLjava/util/Optional;lostOrReachedTargetnearbyEntitiesLjava/util/List;GLjava/util/Optional;5Ljava/util/Optional;;Ljava/util/List; StackMapTable™-net/minecraft/world/damagesource/DamageSourcehorizontalMovementNormalizedfacingBlockPositionT(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/LivingEntity;)ZU(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/LivingEntity;J)ZU(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/LivingEntity;J)V`Lnet/minecraft/world/entity/ai/behavior/Behavior; SourceFileRamTarget.java! cdefg.eÌ%&hi)*-.12hjA>5&hk8&hk !lmõ?*²² ²²¸È·*+µ#*,µ'*%µ+*µ/*µ3*µ6*²9µ?±n& 49: ;%<+=1>7@>AoH?pq?%&?)*?-.?12?5&?8&r*?%i?1j?5k?8ks%)-158htWmI ,¶B²¶H¬nEo  pq uv wxs uwZ[mS ,¶B²¶H¬nJo* pq uv wx yzs uwyb_mæ Z,¶N:,¶B:²¶R¶VÀ::*»:Y¶\‡¶bg¶f‡¶ig·l¶oµ?²s»vY*´+·x¶{±nOP QTCUYVoHZpqZuvZwxZyzT{| N}~>>r  N}€s uwy^_mÜ À+*´',,¶�¶…:,¶B:¹‹šý¹‘À:+¶”,¶˜:,²ž¶¤�8 + ¶¨™ +¸¬,²²¶·™,²²¶»¶¿`§6 ,²Ä¶·™,²Ä¶»¶¿`§6 Ç  d†j8 ,¶ÈÌjÍθÏ b8 +¶”,¶Õ:+ ¶Ø8 •žܧ 8 j�*´/,¹Ýk*´?¶b*´?¶i ¶ã*+,¶ç+,*´3,¹ëÀñ²ó ¶ù§§*+,¶ý™G+,*´3,¹ëÀñ²ó ¶ù,¶6™+,*´6,¹ëÀñ²ó ¶ù*+,¶ç§Z²s¶R:²¶R:¶š,¶š$¶VÀv¶¹ ¶VÀ¶™§6  ™ *+,¶ç±n†!Z\]!^._8`BaObWesf�gšh­j·kÃlÒmúopq$r<sBtGu_wexhyrz|{†|Ž}´~¹¿‚oÊ.ê�‚8àƒ„BÖ…. s¥†d �‰‡d š~ˆ. ­k‰. ·aŠ„ÃU‹.ÒFŒ.B#�ŽrM��|C��´ ‘Ž ÀpqÀuvÀwxÀyz¯’“©}~r*rM�”|C�•¯’–©}€—~ÿW †CŒI˜@ü@ÿA†CŒI˜˜@ÿJ†CŒIüCúýDWW@ù s uwyÿm°B,¶¶¶oN,¶-¶ ¸$:+¶(²,¶2š+¶8¶(²,¶2™§¬n…†‡o4BpqBuvBwx4š>'›|—ý<:]@s uwéêm}3+,;¶=,¶B²*´#,¹ëÀA+¶C¶G¸K¶{,¶B²¶Q±n‹Œ(�2Žo 3pq3uv3wxs uwDWœm4 *+,ÀC¶U¬no  pqs uwDZ�m5 *+,ÀC!¶X¬no  pqs uwyD^žm5 *+,ÀC!¶\±no  pqs uwyDbžm5 *+,ÀC!¶`±no  pqs uwyhŸ ¡