public RollerShutterAutomation(
            AutomationId id,
            IHomeAutomationTimer timer,
            IDaylightService daylightService,
            IWeatherService weatherService,
            IComponentController componentController)
            : base(id)
        {
            if (timer == null)
            {
                throw new ArgumentNullException(nameof(timer));
            }
            if (daylightService == null)
            {
                throw new ArgumentNullException(nameof(daylightService));
            }
            if (weatherService == null)
            {
                throw new ArgumentNullException(nameof(weatherService));
            }
            if (componentController == null)
            {
                throw new ArgumentNullException(nameof(componentController));
            }

            _timer               = timer;
            _daylightService     = daylightService;
            _weatherService      = weatherService;
            _componentController = componentController;

            SpecialSettingsWrapper = new RollerShutterAutomationSettingsWrapper(Settings);
        }
    // TODO (or at least consider) - so much copied code between this and shield version, refactor?


    public void Initialise(IComponentController weapon)
    {
        Weapon               = (WeaponController)weapon;
        WeaponNameLabel      = transform.Find("WeaponName").GetComponent <Text>();
        WeaponNameLabel.text = Weapon.Name;

        TargetButton = transform.Find("TargetButton").GetComponent <Button>();
        TargetButton.onClick.AddListener(StartTargeting);

        ArcButton = transform.Find("ArcButton").GetComponent <Button>();
        ArcButton.onClick.AddListener(ToggleArc);

        FreeFireToggle      = transform.Find("FreeFireToggle").GetComponent <Toggle>();
        FreeFireToggle.isOn = Weapon.FreeFire;
        FreeFireToggle.onValueChanged.AddListener(SetFreeFire);

        DamageBoostToggle      = transform.Find("DamageBoostToggle").GetComponent <Toggle>();
        DamageBoostToggle.isOn = Weapon.DamageBoosted;
        DamageBoostToggle.onValueChanged.AddListener(SetDamageBoost);

        RangeBoostToggle      = transform.Find("RangeBoostToggle").GetComponent <Toggle>();
        RangeBoostToggle.isOn = Weapon.RangeBoosted;
        RangeBoostToggle.onValueChanged.AddListener(SetRangeBoost);

        // store text color so we can set back
        labelColor  = WeaponNameLabel.color;
        buttonColor = TargetButton.GetComponentInChildren <Text>().color;
    }
示例#3
0
    public void Initialise(IComponentController shield)
    {
        Shield               = (ShieldController)shield;
        ShieldNameLabel      = transform.Find("ShieldName").GetComponent <Text>();
        ShieldNameLabel.text = Shield.Name;

        TargetButton = transform.Find("TargetButton").GetComponent <Button>();
        TargetButton.onClick.AddListener(StartTargeting);

        ArcButton = transform.Find("ArcButton").GetComponent <Button>();
        ArcButton.onClick.AddListener(ToggleArc);

        DirectionSlider = transform.Find("DirectionSlider").GetComponent <Slider>();
        DirectionSlider.onValueChanged.AddListener(SetDirection);
        DirectionSlider.value        = Shield.GetRotationProportion();
        DirectionSlider.interactable = (Shield.GetTarget() == null);

        RechargeToggle      = transform.Find("RechargeToggle").GetComponent <Toggle>();
        RechargeToggle.isOn = Shield.Recharging;
        RechargeToggle.onValueChanged.AddListener(SetRecharging);


        // store text color so we can set back
        labelColor  = ShieldNameLabel.color;
        buttonColor = TargetButton.GetComponentInChildren <Text>().color;
    }
        public static IActuator GetActuator(this IComponentController controller, ComponentId id)
        {
            if (controller == null)
            {
                throw new ArgumentNullException(nameof(controller));
            }
            if (id == null)
            {
                throw new ArgumentNullException(nameof(id));
            }

            return(controller.GetComponent <IActuator>(id));
        }
示例#5
0
    public void Initialise(IComponentController powerController)
    {
        _powerController = (PowerController)powerController;
        _powerController.RegisterOnPowerChange(OnPowerChange);

        PowerNameLabel      = transform.Find("EntryTitle").GetComponent <Text>();
        PowerNameLabel.text = "Power"; // hard coded for now?

        RechargeLabel      = transform.Find("RechargeRate").GetComponent <Text>();
        RechargeLabel.text = string.Format("Rechg: ({0}/t)", _powerController.PowerPerTurn);

        PowerLevelLabel      = transform.Find("PowerLevel").GetComponent <Text>();
        PowerLevelLabel.text = string.Format("{0}/{1}", _powerController.CurrentPower, _powerController.MaxPower);
    }
示例#6
0
        public RollerShutterAutomation(
            AutomationId id,
            ISchedulerService schedulerService,
            IDateTimeService dateTimeService,
            IDaylightService daylightService,
            IOutdoorTemperatureService outdoorTemperatureService,
            IComponentController componentController)
            : base(id)
        {
            if (schedulerService == null)
            {
                throw new ArgumentNullException(nameof(schedulerService));
            }
            if (dateTimeService == null)
            {
                throw new ArgumentNullException(nameof(dateTimeService));
            }
            if (daylightService == null)
            {
                throw new ArgumentNullException(nameof(daylightService));
            }
            if (outdoorTemperatureService == null)
            {
                throw new ArgumentNullException(nameof(outdoorTemperatureService));
            }
            if (componentController == null)
            {
                throw new ArgumentNullException(nameof(componentController));
            }

            _schedulerService          = schedulerService;
            _dateTimeService           = dateTimeService;
            _daylightService           = daylightService;
            _outdoorTemperatureService = outdoorTemperatureService;
            _componentController       = componentController;

            SpecialSettingsWrapper = new RollerShutterAutomationSettingsWrapper(Settings);
        }