示例#1
0
        public static void RefreshPowerSwitch(this IPowerConsumerToggleable module)
        {
            if (module.PowerCabinet == null)
            {
                Debug.LogWarning("No power cabinet on " + module.ToString());
            }
            else
            {
                module.PowerCabinet.mesh = module.IsOn ? ModuleBridge.Instance.CabinetOn : ModuleBridge.Instance.CabinetOff;
                module.PowerCabinet.transform.GetChild(0).name = module.IsOn ? "on" : "off";

                var gameplay = (module as ModuleGameplay);
                if (gameplay != null && gameplay.SoundSource != null)
                {
                    if (module.IsOn)
                    {
                        gameplay.SoundSource.Play();
                    }
                    else
                    {
                        gameplay.SoundSource.Stop();
                    }
                }
            }
        }
示例#2
0
        public static void TogglePower(this IPowerConsumerToggleable consumer)
        {
            //only allow power to turn on when power is connected
            bool newPowerState = !consumer.IsOn;

            if (newPowerState && consumer.HasPower)
            {
                consumer.IsOn = newPowerState;
            }
            else
            {
                consumer.IsOn = false;
            }
            consumer.RefreshPowerSwitch();
            consumer.RefreshVisualization();
        }