using Gley.UrbanSystem.Internal; using System.Collections.Generic; namespace Gley.TrafficSystem.Internal { /// /// Base class for all intersections /// [System.Serializable] public abstract class GenericIntersection : IIntersection { protected List _carsInIntersection; #region InterfactImplementation public abstract bool IsPathFree(int waypointIndex); public void VehicleEnter(int vehicleIndex) { _carsInIntersection.Add(vehicleIndex); } public void VehicleLeft(int vehicleIndex) { _carsInIntersection.Remove(vehicleIndex); } public abstract void PedestrianPassed(int agentIndex); #endregion internal abstract void UpdateIntersection(float realtimeSinceStartup); internal abstract int[] GetPedStopWaypoint(); internal abstract string GetName(); internal abstract List GetStopWaypoints(); internal void RemoveVehicle(int index) { VehicleLeft(index); } internal virtual void ResetIntersection() { _carsInIntersection = new List(); } } }