4 qr qs tu tv w x v y z{ |} ~     z } z  v    q        z q ) ) )    q    q   :    A @ J H H       I : T  : : H   :  H   f  :  l H  L J K J K  L : L Jv : : : :  M M M K  K : K  @ K  : : : K? K? K?ə333333 ?333333 l l l l l ?zG{   BC  H    :   l  H ! " # i$ % & H' q( I) *+ , - J. / 0 12 345 InnerClasses6PositionTracking PLAYER_RADIUSIPLAYER_RADIUS_SQDenabledZ trackBlocksLjava/util/Map; Signature8Ljava/util/Map; trackPatternLjava/lang/String;pattern[Ljava/lang/String;roadEdgeLorg/bukkit/Material;junctionapiLcom/useful/uCarsAPI/uCarsAPI;isEncodedRouting()ZCodeLineNumberTable isTrackBlock(Lorg/bukkit/Material;)ZLocalVariableTablematemat StackMapTable7getTrackBlockType)(Lorg/bukkit/Material;)Ljava/lang/String;namegetTrackBlockIndexByType(Ljava/lang/String;)Iitype(Z)V patternNamethis.Lnet/stormdev/ucars/trade/AIVehicles/AIRouter;edgeRawjunRawsect/Lorg/bukkit/configuration/ConfigurationSection;8 isAIEnabledgetVelocityDataO(Lorg/bukkit/entity/Vehicle;)Lnet/stormdev/ucars/trade/AIVehicles/VelocityData;eLjava/lang/Exception;msLjava/util/List;carLorg/bukkit/entity/Vehicle;data2Lnet/stormdev/ucars/trade/AIVehicles/VelocityData;LocalVariableTypeTable5Ljava/util/List;9:routeE(Lorg/bukkit/entity/Entity;Lnet/stormdev/ucarstrade/cars/DrivenCar;)Ve1faceLorg/bukkit/block/BlockFace;txtytzxyzpxpzuxmultdirLocLorg/bukkit/Location;yawFpassLorg/bukkit/entity/Entity;c(Lnet/stormdev/ucarstrade/cars/DrivenCar;speed directionvelLorg/bukkit/util/Vector;locunderLorg/bukkit/block/Block;cxcyczsupposedToBeStoppedstationaryRemoveTimeJvdesbrm;;<=>?@ ExceptionsfindRoad(Lorg/bukkit/entity/Entity;Lnet/stormdev/ucarstrade/cars/DrivenCar;DLorg/bukkit/block/Block;Lorg/bukkit/Location;ZLnet/stormdev/ucars/trade/AIVehicles/VelocityData;)V currentLoc atJunctionrbrbt toDriveLoccarLoc relocateRoad}(Lorg/bukkit/entity/Entity;Lorg/bukkit/block/Block;Lorg/bukkit/Location;ZLnet/stormdev/ucars/trade/AIVehicles/VelocityData;)VoLjava/lang/Object;bdbd currentDirprevtoGodirgoDirA clearNPCMeta(Lorg/bukkit/entity/Entity;)V despawnNPCCarrunLjava/lang/Runnable;BdespawnNPCCarNow isCompassDir(Lorg/bukkit/block/BlockFace;)Z()V SourceFile AIRouter.javaC DE FGH IG JK L M NOP QR S @Torg/bukkit/Material U VW XYZjava/lang/String [\ na,b,c ]^general.ai.roadEdgeBlock_ `ageneral.ai.junctionBlock bc general.ai.trackerBlock de fg hi jk lmjava/lang/StringBuilderFound AI tracker block: no pUq rsgeneral.ai.trackerBlock.pattern,t ua vw xy6Didn't enable AIs routing as configuration is invalid!z{ |} ~ 0net/stormdev/ucars/trade/AIVehicles/VelocityData   trade.npc   [!org/bukkit/metadata/MetadataValue Tjava/lang/Exception            com/useful/ucarsCommon/StatValue     car.frozen    i f   .net/stormdev/ucars/trade/AIVehicles/AIRouter$1   ncurrentlyStopped org/bukkit/util/Vector         OP  relocatingRoad  n     a  2    U  i istepcarpet i  n idouble  i      org/bukkit/Location     org/bukkit/entity/LivingEntitytrade.npcvillager e         npc.turning.net/stormdev/ucars/trade/AIVehicles/AIRouter$2   gn  de n    n    i   java/util/HashMap,net/stormdev/ucars/trade/AIVehicles/AIRouterjava/lang/Object.net/stormdev/ucars/trade/AIVehicles/AIRouter$3=net/stormdev/ucars/trade/AIVehicles/AIRouter$PositionTrackingjava/util/Iterator-org/bukkit/configuration/ConfigurationSectionorg/bukkit/entity/Vehiclejava/util/Listorg/bukkit/entity/Entity&net/stormdev/ucarstrade/cars/DrivenCarorg/bukkit/block/BlockFaceorg/bukkit/block/Block:net/stormdev/ucars/trade/AIVehicles/routing/BlockRouteData0net/stormdev/ucars/trade/AIVehicles/TrackingData[Lorg/bukkit/block/BlockFace;java/lang/Runnablenet/stormdev/ucars/trade/mainpluginLnet/stormdev/ucars/trade/main; aiRouteMethod9Lnet/stormdev/ucars/trade/AIVehicles/routing/RouteMethod;7net/stormdev/ucars/trade/AIVehicles/routing/RouteMethodENCODEDequals(Ljava/lang/Object;)Z STAINED_GLASS java/util/Mapvalues()Ljava/util/Collection;java/util/Collectioniterator()Ljava/util/Iterator;hasNext()Ljava/lang/Object;()Ljava/lang/String;contains(Ljava/lang/CharSequence;)ZkeySet()Ljava/util/Set; java/util/Setget&(Ljava/lang/Object;)Ljava/lang/Object;config1Lorg/bukkit/configuration/file/FileConfiguration;/org/bukkit/configuration/file/FileConfiguration getString&(Ljava/lang/String;)Ljava/lang/String; getMaterial)(Ljava/lang/String;)Lorg/bukkit/Material;getConfigurationSectionC(Ljava/lang/String;)Lorg/bukkit/configuration/ConfigurationSection;getKeys(Z)Ljava/util/Set;length()Iput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; getLogger()Ljava/util/logging/Logger;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;toStringjava/util/logging/Loggerinfo(Ljava/lang/String;)Vjava/util/regex/Patternquotesplit'(Ljava/lang/String;)[Ljava/lang/String;logger'Lnet/stormdev/ucars/trade/CustomLogger;%net/stormdev/ucars/trade/CustomLoggercom/useful/uCarsAPI/uCarsAPIgetAPI ()Lcom/useful/uCarsAPI/uCarsAPI;aiSpawns=Lnet/stormdev/ucars/trade/AIVehicles/spawning/AISpawnManager;;net/stormdev/ucars/trade/AIVehicles/spawning/AISpawnManagerisNPCCarsSpawningNow getLocation()Lorg/bukkit/Location;L(Lorg/bukkit/block/BlockFace;Lorg/bukkit/util/Vector;Lorg/bukkit/Location;)V!com/useful/ucars/util/UEntityMeta hasMetadata/(Lorg/bukkit/entity/Entity;Ljava/lang/String;)Z getMetadata>(Lorg/bukkit/entity/Entity;Ljava/lang/String;)Ljava/util/List;(I)Ljava/lang/Object;valueremoveMetadata/(Lorg/bukkit/entity/Entity;Ljava/lang/String;)VNORTH getVelocity()Lorg/bukkit/util/Vector;cloneadd(DDD)Lorg/bukkit/Location;getBlock()Lorg/bukkit/block/Block;getX()DgetYgetZisNPCgetDir()Lorg/bukkit/block/BlockFace;/(Ljava/lang/Object;Lorg/bukkit/plugin/Plugin;)V setMetadataR(Lorg/bukkit/entity/Entity;Ljava/lang/String;Lorg/bukkit/metadata/MetadataValue;)VupdateLocation(Lorg/bukkit/Location;)VisStoppedForOtherCar(Ljava/lang/String;)ZatTrafficLight/(Lorg/bukkit/entity/Entity;)Ljava/lang/Boolean;java/lang/Boolean booleanValuegetStationaryCountgetWorld()Lorg/bukkit/World;org/bukkit/World getEntities()Ljava/util/List;org/bukkit/Bukkit getScheduler(()Lorg/bukkit/scheduler/BukkitScheduler;(Lnet/stormdev/ucars/trade/AIVehicles/AIRouter;Lorg/bukkit/entity/Entity;Lorg/bukkit/Location;Lnet/stormdev/ucarstrade/cars/DrivenCar;Ljava/util/List;Lnet/stormdev/ucars/trade/AIVehicles/VelocityData;)V$org/bukkit/scheduler/BukkitSchedulerrunTaskAsynchronouslyQ(Lorg/bukkit/plugin/Plugin;Ljava/lang/Runnable;)Lorg/bukkit/scheduler/BukkitTask; notStationaryvalueOf(Z)Ljava/lang/Boolean;(III)V setVelocity(Lorg/bukkit/util/Vector;)V1net/stormdev/ucars/trade/AIVehicles/AITrackFollowcarriagewayDirectionV(Lorg/bukkit/block/Block;)Lnet/stormdev/ucars/trade/AIVehicles/routing/BlockRouteData;getType>()Lnet/stormdev/ucars/trade/AIVehicles/routing/RouteBlockType;DOWN getRelative6(Lorg/bukkit/block/BlockFace;)Lorg/bukkit/block/Block;UP7(Lorg/bukkit/block/BlockFace;I)Lorg/bukkit/block/Block; isJunctionisInProgressOfTurningAtJunction getDirectionresetUpdatesSinceTurn setMotion hasMotionsetDir(Lorg/bukkit/block/BlockFace;)V nextBlock(Lorg/bukkit/block/Block;Lnet/stormdev/ucars/trade/AIVehicles/VelocityData;Lnet/stormdev/ucars/trade/AIVehicles/routing/BlockRouteData;Lorg/bukkit/entity/Entity;)Lnet/stormdev/ucars/trade/AIVehicles/TrackingData; forJunction()Lorg/bukkit/Material;setTargetBlockLocisEmpty toLowerCasedistanceSquared(Lorg/bukkit/Location;)D getBlockYgetUpdatesSinceTurn getMotionincrementUpdatesSinceTurngetData()Bjava/lang/Mathabs(D)D(DDD)VsetY(I)Lorg/bukkit/util/Vector; normalize lengthSquared(Lorg/bukkit/World;DDD)V setDirection/(Lorg/bukkit/util/Vector;)Lorg/bukkit/Location;getYaw()F$com/useful/ucars/CartOrientationUtilsetYaw(Lorg/bukkit/entity/Entity;F)V getPassenger()Lorg/bukkit/entity/Entity; net/stormdev/ucars/utils/NoMobAIclearAIgetCarPassengerProviderG()Lnet/stormdev/ucars/trade/AIVehicles/spawning/AICarPassengerProvider;Cnet/stormdev/ucars/trade/AIVehicles/spawning/AICarPassengerProvidersetPassengerYaw$(Lorg/bukkit/entity/LivingEntity;F)VgetTargetBlockLoc compassDirs()[Lorg/bukkit/block/BlockFace; diagonalDirsmultiplycom/useful/ucars/ClosestFacegetClosestFace(F)Lorg/bukkit/block/BlockFace;/(Ljava/lang/String;Lorg/bukkit/plugin/Plugin;)VisPrimaryThreadrunTaskremovecarSaver#Lnet/stormdev/ucars/trade/CarSaver;getId()Ljava/util/UUID;!net/stormdev/ucars/trade/CarSavercarNoLongerInUseNow(Ljava/util/UUID;)VdecrementSpawnedAICount%$SwitchMap$org$bukkit$block$BlockFace[Iordinalpow(DD)D!    % ~ J *  L+  +  M*,*/=?B/J  " AL+ ++ M*, ,!:<?!A - t <2*  **MN*, -!":#: d :P$H%>&'W()Y*+,&,-.*/*012*  345<*67R$  (/9^u>^R 9!Hg' =89@@:Y+;(+=?N-@AB:M :+=D, 36C" 368>48     @@ 0   6:C 1]EJG:+H:+I:JKMN:O9 P9 Q9 ,R:Y+I<:+=?@AB::S S::+=D+=TYUV+IWX%+YZ+Y>*7+[\6 ]_7a +,b:+cd:efY*+,ghW-i+jTYkUV+lYmn+jDo:pQqr:o:p6st:o:p*+,)qruvw+x>6+=>Wv,oy:z{:6|6*+,)+INqtvu}6y p&*+,)+INqtvuy+yz{y:6~+:/w'v:6{~|6w6:{::6'!qr:qr:st:st:6'!qr:qr:sr:JMsr:::& 66:+n0c9c9 !  g9   g9 c9" g9$  g9&" g9(&&9&$9*(9,*,6.)k9/&E3.$,o/k9$(,o/k9($*o/k9$(*o/k9( v$k9$(k9(lY$&(:+xD|+n:Y+c:Wb8   b8    f8 + +:!!9!1!>'!8! f!~`C  29@GNO0`2y349678;<=?@ADEF05:N^_elt >?LOd "&)<?KZgt    2CSV_bgn v!~%&'(*,-/12356 =>?'A.C7D<GFHSL]MgPwQRabcdfghijnoqr tuv1w6xPyU\)  "$&( *!,'"..}#/~$%l&' ;()!]] )]*+ R,M-E./ =0%2+129$3 @4 G5 `|6l78V9I: l;<{=>?";@2&7A2)4BiC2OD@EF/ I:G14G HIJlK8:BC4@ B[:bL@8" "AM  KK0&0-KS A7HIJlK::LMKKK@-#HIJlK::LMKKK=lHNCOPd*{ +,bJ:  N:  :  :  +,b EM:  N:$ M:  N:+,b+I:O9P9Q9c9c9 !   g9  g9c9g9g9g9 99" 9$"$6&)k9'E3&$o'k9 $o'k9 "o'k9 "o'k9 lY :))|+)n2 $-7?DEQXbls} ',3:IPY^hu$ )*+,12Q%R9A% $S2 -{T 7qD QWU% XPC2V%345  3u ":n!$I_"&PX#'./) 1 HIK:K <K^HIK:K K7HIK:K K@-WXm{:+x>=+x?@AB::+xD +xD:-O9-P9 -Q9 :::qS::662:,r:pcoy:+z! z:::4/z% z:: ::^:662:,r:pcoy:+z! z:::4/z% z:: ::^ N:|+n+xTYUV ~st:sr:c99c9g9 g9 g99lY:+n+I: ,oy::~|VU'4;D!J"K&R'X(^)d*g+j,m.r/y0123456789;<=>B!C%0+FFGPHjIoJyKLMNOQRSTXYF\^abcdgi%j,m9nCpOqYsZxhyrz|}~$'$YZV[\2]yV[P\2F]yd^ )12Q%R9_%R./X3^4 d5 g`2jambhryrkd*-D:HK:lKJJJc1JK,J  c1JK,J HK:lKJJ'-OHK:lKJJ7J dev4*=*x**=D*xD*D !'-3 4 ) f'Y*+M ,e,W & ' )'*+ gh i j4*M**, ,+ǶȲ8" (3 4 )4*+-()Hkl2+.( "$&(*,.022(mnH$Ḟ̲EͳλYг #%op" f