Esempio n. 1
0
    public override void _PhysicsProcess(float deltaTime)
    {
        UpdateShipStatusInfo();
        //ActiveSensors.GenerateEMSReadings();
        //ActiveSensors.PerformScan(0f, Mathf.Pi * 2f, 400f);
        PassiveSensors.GeneratePassiveSensorReadings();

        if (SensorsController.IsProcessing)
        {
            SensorsController.SensorsUpdate(shipStatusInfo, ActiveSensors, PassiveSensors, deltaTime);
        }

        if (NavigationController.IsProcessing)
        {
            NavigationController.NavigationUpdate(shipStatusInfo, gameCore.GalaxyMap.GalaxyMapData, deltaTime);
        }

        if (PropulsionController.IsProcessing)
        {
            PropulsionController.PropulsionUpdate(shipStatusInfo, ThrusterControls, deltaTime);
        }

        if (DefenceController.IsProcessing)
        {
            DefenceController.DefenceUpdate(shipStatusInfo, Turret.TurretControls, deltaTime);
        }

        if (!IsLanded)
        {
            TimeElapsed += deltaTime;
        }
    }
        public void AddNewElement(UIElement uIElement)
        {
            uIElement.Id = _item_counter;
            UIElements.Add(uIElement);
            IDevice device = _deviceFactory.CreateDevice(uIElement.DeviceType, _item_counter);

            device.Position = uIElement.Position;
            switch (uIElement.DeviceType)
            {
            case DeviceType.Device:
                Device temp_device = (Device)device;
                switch (uIElement.Area)
                {
                case Area.AirTemperature:
                    temp_device.Command = _commandFactory.CreateAirTemperatureHeaterCommand();
                    break;

                case Area.WaterTemperature:
                    temp_device.Command = _commandFactory.CreateWaterTemperatureHeaterCommand();
                    break;

                case Area.Nutrient:
                    temp_device.Command = _commandFactory.CreateNutrientRegulatorCommand();
                    break;

                case Area.Acid:
                    temp_device.Command = _commandFactory.CreateAcidRegulatorCommand();
                    break;

                default:
                    throw new NotImplementedException();
                }
                Devices.Add(temp_device);
                break;

            case DeviceType.ActiveSensor:
                ActiveSensors.Add(device as ActiveSensor);
                break;

            case DeviceType.PasssiveSensor:
                PassiveSensors.Add(device as PassiveSensor);
                break;

            default:
                throw new NotImplementedException();
            }
            _item_counter++;
        }
 public override void SensorsUpdate(ShipStatusInfo shipStatusInfo, IActiveSensors activeSensors, PassiveSensors passiveSensors, float deltaTime)
 {
     //Student code goes here
 }
    /*
     * bool sensorsControllerEnabled = true;
     * public event Action<bool> OnSensorsControllerEnabledChanged;
     * public bool IsSensorsControllerEnabled {get{return sensorsControllerEnabled;} set{sensorsControllerEnabled = value; OnSensorsControllerEnabledChanged?.Invoke(sensorsControllerEnabled);}}
     *
     *
     * bool navigationControllerEnabled = true;
     * public event Action<bool> OnNavigationControllerEnabledChanged;
     * public bool IsNavigationControllerEnabled {get{return navigationControllerEnabled;} set{navigationControllerEnabled = value; OnNavigationControllerEnabledChanged?.Invoke(navigationControllerEnabled);}}
     *
     * bool propulsionControllerEnabled = true;
     * public event Action<bool> OnPropulsionControllerEnabledChanged;
     * public bool IsPropulsionControllerEnabled {get{return propulsionControllerEnabled;} set{propulsionControllerEnabled = value; OnPropulsionControllerEnabledChanged?.Invoke(propulsionControllerEnabled);}}
     *
     * bool defenceControllerEnabled = true;
     * public event Action<bool> OnDefenceControllerEnabledChanged;
     * public bool IsDefenceControllerEnabled {get{return defenceControllerEnabled;} set{defenceControllerEnabled = value; OnDefenceControllerEnabledChanged?.Invoke(defenceControllerEnabled);}}
     */
    /*
     * //Subsystems
     * public AbstractSensorsController Sensors { get; private set; }
     * public AbstractNavigationController Navigation { get; private set; }
     * public AbstractDefenceController Defence { get; private set; }
     * public AbstractPropulsionController Propulsion { get; private set; }
     *
     * public SubsystemReferences(AbstractSensorsController sensors, AbstractNavigationController navigation, AbstractDefenceController defence, AbstractPropulsionController propulsion)
     * {
     *
     *  Sensors = sensors;
     *  Defence = defence;
     *  Navigation = navigation;
     *  Propulsion = propulsion;
     * }
     */

    public abstract void ProcessPhysics(ShipStatusInfo shipStatusInfo, float deltaTime, ActiveSensors ActiveSensors, PassiveSensors passiveSensors, GalaxyMapData galaxyMapData, ThrusterControls thrusterControls, TurretControls turretControls);
Esempio n. 5
0
    public override void SensorsUpdate(ShipStatusInfo shipStatusInfo, IActiveSensors activeSensors, PassiveSensors passiveSensors, float deltaTime)
    {
        //Student code goes here
        timePassed += deltaTime;
        if (timePassed >= 1)
        {
            timePassed = 0;
            List <EMSReading> spaceObj;

            spaceObj = activeSensors.PerformScan(shipStatusInfo.forwardVector.Angle(), 2 * Mathf.Pi, 500);

            DefenceController.ls_asteroids.Clear();
            for (int index = 0; index < spaceObj.Count; index++)
            {
                if (spaceObj[index].ScanSignature == "Rock:90|Common:10")
                {
                    float x = spaceObj[index].Amplitude * activeSensors.GConstant * Mathf.Cos((spaceObj[index].Angle));
                    float y = spaceObj[index].Amplitude * activeSensors.GConstant * Mathf.Sin((spaceObj[index].Angle));
                    x += shipStatusInfo.positionWithinSystem.x;
                    y += shipStatusInfo.positionWithinSystem.y;
                    DefenceController.ls_asteroids.Add(new EMSReport(x, y));
                }
            }
        }
    }
Esempio n. 6
0
 public abstract void SensorsUpdate(ShipStatusInfo shipStatusInfo, IActiveSensors activeSensors, PassiveSensors passiveSensors, float deltaTime);