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;
                }
            }