public EntityTracking_Module(GridTerminalSystemUtils GTS, IMyShipController reference, IMyCameraBlock targetingCamera, string ignoreTag = null) { Func <IMyTerminalBlock, bool> filter = null; if (ignoreTag != null) { filter = (x => !x.CustomName.Contains(ignoreTag)); } List <IMyLargeTurretBase> turretList = new List <IMyLargeTurretBase>(); GTS.GridTerminalSystem.GetBlocksOfType(turretList, filter); ObjectTrackers.Add(new TurretTracking(turretList)); List <IMySensorBlock> sensorList = new List <IMySensorBlock>(); GTS.GridTerminalSystem.GetBlocksOfType(sensorList, filter); ObjectTrackers.Add(new SensorTracking(sensorList)); List <IMyCameraBlock> cameraList = new List <IMyCameraBlock>(); GTS.GridTerminalSystem.GetBlocksOfType(cameraList, filter); ObjectTrackers.Add(new LidarTracking(cameraList, reference, known_Objects.LidarEntities)); targetPainter = new TargetPainter(targetingCamera, cameraList); foreach (var tracker in ObjectTrackers) { tracker.OnEntityDetected += OnEntityDetected; } }
public EntityTracking_Module(GridTerminalSystemUtils GTS, IMyShipController reference, IMyCameraBlock targetingCamera) { List <IMyLargeTurretBase> turretList = new List <IMyLargeTurretBase>(); GTS.GridTerminalSystem.GetBlocksOfType(turretList); ObjectTrackers.Add(new TurretTracking(turretList)); List <IMySensorBlock> sensorList = new List <IMySensorBlock>(); GTS.GridTerminalSystem.GetBlocksOfType(sensorList); ObjectTrackers.Add(new SensorTracking(sensorList)); List <IMyCameraBlock> cameraList = new List <IMyCameraBlock>(); GTS.GridTerminalSystem.GetBlocksOfType(cameraList); ObjectTrackers.Add(new LidarTracking(cameraList, reference, known_Objects.LidarEntities)); targetPainter = new TargetPainter(targetingCamera, cameraList); foreach (var tracker in ObjectTrackers) { tracker.OnEntityDetected += OnEntityDetected; } }