コード例 #1
0
        protected override void UpdateEmissivity(bool force)
        {
            MyEmissiveColorStateResult result;
            Color red        = Color.Red;
            float emissivity = 1f;

            if (base.IsWorking)
            {
                red = Color.Green;
                if (MyEmissiveColorPresets.LoadPresetState(base.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Working, out result))
                {
                    red = result.EmissiveColor;
                }
            }
            else if (!base.IsFunctional)
            {
                if (MyEmissiveColorPresets.LoadPresetState(base.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Damaged, out result))
                {
                    red = result.EmissiveColor;
                }
                emissivity = 0f;
            }
            else
            {
                if (MyEmissiveColorPresets.LoadPresetState(base.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Disabled, out result))
                {
                    red = result.EmissiveColor;
                }
                if (!base.IsEnoughPower())
                {
                    emissivity = 0f;
                }
            }
            base.SetEmissive(red, emissivity, force);
        }
コード例 #2
0
        private void UpdateEmissivity()
        {
            MyEmissiveColorStateResult result;
            Color red  = Color.Red;
            bool  flag = true;

            if (!this.CanStore)
            {
                if (!base.IsFunctional)
                {
                    if (MyEmissiveColorPresets.LoadPresetState(this.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Damaged, out result))
                    {
                        red = result.EmissiveColor;
                    }
                }
                else
                {
                    flag = false;
                    if (MyEmissiveColorPresets.LoadPresetState(this.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Disabled, out result))
                    {
                        red = result.EmissiveColor;
                    }
                }
            }
            else if (this.IsStockpiling)
            {
                red  = Color.Teal;
                flag = false;
                if (MyEmissiveColorPresets.LoadPresetState(this.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Alternative, out result))
                {
                    red = result.EmissiveColor;
                }
            }
            else if (this.FilledRatio <= 9.9999997473787516E-06)
            {
                red = Color.Yellow;
                if (MyEmissiveColorPresets.LoadPresetState(this.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Warning, out result))
                {
                    red = result.EmissiveColor;
                }
            }
            else
            {
                red = Color.Green;
                if (MyEmissiveColorPresets.LoadPresetState(this.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Working, out result))
                {
                    red = result.EmissiveColor;
                }
            }
            this.SetEmissive(red, flag ? ((float)this.FilledRatio) : 1f);
        }
コード例 #3
0
        private void UpdateEmissivity()
        {
            Color emissiveColor = COLOR_OFF;
            Color emissiveColor = COLOR_ON;

            if (base.UsesEmissivePreset)
            {
                MyEmissiveColorStateResult result;
                if (MyEmissiveColorPresets.LoadPresetState(base.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Working, out result))
                {
                    emissiveColor = result.EmissiveColor;
                }
                if (MyEmissiveColorPresets.LoadPresetState(base.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Disabled, out result))
                {
                    emissiveColor = result.EmissiveColor;
                }
            }
            UpdateEmissiveParts(base.Render.RenderObjectIDs[0], this.m_currentLightPower, Color.Lerp(emissiveColor, emissiveColor, this.m_currentLightPower), Color.White);
        }
コード例 #4
0
 internal void UpdateEmissivity()
 {
     if (base.InScene)
     {
         MyEmissiveColorStateResult result;
         float fill = 1f;
         Color red  = Color.Red;
         if (!base.IsFunctional || !base.Enabled)
         {
             if (base.IsFunctional)
             {
                 if (MyEmissiveColorPresets.LoadPresetState(this.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Disabled, out result))
                 {
                     red = result.EmissiveColor;
                 }
             }
             else if (MyEmissiveColorPresets.LoadPresetState(this.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Damaged, out result))
             {
                 red = result.EmissiveColor;
             }
         }
         else if (!base.IsWorking)
         {
             fill = 0.25f;
             if (MyEmissiveColorPresets.LoadPresetState(this.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Disabled, out result))
             {
                 red = result.EmissiveColor;
             }
         }
         else
         {
             fill = this.CurrentStoredPower / this.MaxStoredPower;
             if (this.ChargeMode == Sandbox.ModAPI.Ingame.ChargeMode.Auto)
             {
                 red = Color.Green;
                 if (MyEmissiveColorPresets.LoadPresetState(this.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Working, out result))
                 {
                     red = result.EmissiveColor;
                 }
             }
             else if (this.ChargeMode == Sandbox.ModAPI.Ingame.ChargeMode.Discharge)
             {
                 red = Color.SteelBlue;
                 if (MyEmissiveColorPresets.LoadPresetState(this.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Alternative, out result))
                 {
                     red = result.EmissiveColor;
                 }
             }
             else
             {
                 red = Color.Yellow;
                 if (MyEmissiveColorPresets.LoadPresetState(this.BlockDefinition.EmissiveColorPreset, MyCubeBlock.m_emissiveNames.Warning, out result))
                 {
                     red = result.EmissiveColor;
                 }
             }
         }
         if (this.BlockDefinition.Id.SubtypeName == "SmallBlockSmallBatteryBlock")
         {
             UpdateNamedEmissiveParts(base.Render.RenderObjectIDs[0], m_emissiveTextureNames[0], red, 1f);
         }
         else
         {
             this.SetEmissive(red, fill);
         }
     }
 }