namespace BP
{
	namespace Maps
	{
		class Hub : BP::ScriptActor
		{
			//------------------------------------------------------------------------------------------------------------------------
			Hub(kActor@ actor)
			{
				super(actor);
			}
			//------------------------------------------------------------------------------------------------------------------------
			void BP_OnStart()
			{
				kActor @actor = BP::Spawn::Enemy(kActor_AI_Endtrail, kVec3(-38.0f, -216.0f, 30.0f));
				actor.Flags() |= AF_NODAMAGE;
				SetActorPath(@actor, array<int> = { 2001, 2002 }, true);
				//SetActorPath(2000, array<int> = { 2001, 2002 }, ignorePlayer: true);
			}
			//------------------------------------------------------------------------------------------------------------------------
			void SetActorPath(const int tagID, const array<int>& pathPoints, const bool ignorePlayer)
			{
				kActor @actor = BP::Actor::FindActorWithTID(tagID);
				SetActorPath(@actor, pathPoints, ignorePlayer);
			}
			//------------------------------------------------------------------------------------------------------------------------
			void SetActorPath(kActor@ actor, const array<int>& pathPoints, const bool ignorePlayer)
			{
				if (@actor != null)
				{
					BP::AI @ai = BP::Trigger::AIGetScript(@actor);
					DebugAssert(@ai != null, "[BP::Maps::SetActorPath] actor does not have a BP::AI script");
					ai.SetPath(pathPoints, ignorePlayer);
				}
			}
			//------------------------------------------------------------------------------------------------------------------------
		};
	}
}
