Esempio n. 1
0
        public void SetTemplate(WorldLightTemplate newTemplate)
        {
            Template = newTemplate;

            mTargetHeatIntensity = -1f;
            mTargetBaseRange     = -1f;
            mTargetSpotRange     = -1f;
            mTargetBaseIntensity = -1f;
            mTargetSpotIntensity = -1f;
            mMasterBrightness    = -1f;

            if (Globals.MissionDevelopmentMode)
            {
                SpotlightTop.enabled    = false;
                SpotlightBottom.enabled = false;
                SpotlightLeft.enabled   = false;
                SpotlightRight.enabled  = false;
                SpotlightFront.enabled  = false;
                SpotlightBack.enabled   = false;
            }
            else
            {
                SpotlightTop.enabled    = Flags.Check((uint)Template.Spotlights, (uint)SpotlightDirection.Top, Flags.CheckType.MatchAny);
                SpotlightBottom.enabled = Flags.Check((uint)Template.Spotlights, (uint)SpotlightDirection.Bottom, Flags.CheckType.MatchAny);
                SpotlightLeft.enabled   = Flags.Check((uint)Template.Spotlights, (uint)SpotlightDirection.Left, Flags.CheckType.MatchAny);
                SpotlightRight.enabled  = Flags.Check((uint)Template.Spotlights, (uint)SpotlightDirection.Right, Flags.CheckType.MatchAny);
                SpotlightFront.enabled  = Flags.Check((uint)Template.Spotlights, (uint)SpotlightDirection.Front, Flags.CheckType.MatchAny);
                SpotlightBack.enabled   = Flags.Check((uint)Template.Spotlights, (uint)SpotlightDirection.Back, Flags.CheckType.MatchAny);
            }

            Color     color  = Colors.Get.ByName(Template.Color1);
            Texture2D cookie = LightManager.Get.Cookie(Template.Cookie);

            for (int i = 0; i < mSpotlights.Count; i++)
            {
                Light spotlight = mSpotlights [i];
                spotlight.color     = color;
                spotlight.intensity = 0f;
                spotlight.range     = 0f;
                spotlight.spotAngle = Template.SpotlightAngle;
                spotlight.cookie    = cookie;
            }

            TargetSpotIntensity = Template.SpotlightIntensity;
            TargetSpotRange     = Template.SpotlightRange;

            if (Globals.MissionDevelopmentMode)
            {
                BaseLight.enabled = false;
            }
            else
            {
                BaseLight.enabled = Template.BaseLight;
            }
            BaseLight.intensity = 0f;
            BaseLight.color     = color;
            TargetBaseRange     = Template.BaseRange;
            TargetBaseIntensity = Template.BaseIntensity;
        }
Esempio n. 2
0
        public void DrawEditor()
        {
            if (GUILayout.Button("Save Template"))
            {
                if (!Manager.IsAwake <Colors> ())
                {
                    Manager.WakeUp <Colors> ("Frontiers_ArtResourceManagers");
                }

                if (Template == null)
                {
                    Template            = new WorldLightTemplate();
                    Template.Spotlights = SpotlightDirection.None;
                }

                float  spotlightAngle = 75f;
                float  spotlightRange = 15f;
                string cookie         = string.Empty;

                if (SpotlightTop.enabled)
                {
                    Template.Spotlights |= SpotlightDirection.Top;
                    spotlightAngle       = SpotlightTop.spotAngle;
                    spotlightRange       = SpotlightTop.range;
                    if (SpotlightTop.cookie != null)
                    {
                        cookie = SpotlightTop.cookie.name;
                    }
                }
                if (SpotlightBottom.enabled)
                {
                    Template.Spotlights |= SpotlightDirection.Bottom;
                    spotlightAngle       = SpotlightBottom.spotAngle;
                    spotlightRange       = SpotlightBottom.range;
                    if (SpotlightBottom.cookie != null)
                    {
                        cookie = SpotlightBottom.cookie.name;
                    }
                }
                if (SpotlightLeft.enabled)
                {
                    Template.Spotlights |= SpotlightDirection.Left;
                    spotlightAngle       = SpotlightLeft.spotAngle;
                    spotlightRange       = SpotlightLeft.range;
                    if (SpotlightLeft.cookie != null)
                    {
                        cookie = SpotlightLeft.cookie.name;
                    }
                }
                if (SpotlightRight.enabled)
                {
                    Template.Spotlights |= SpotlightDirection.Right;
                    spotlightAngle       = SpotlightRight.spotAngle;
                    spotlightRange       = SpotlightRight.range;
                    if (SpotlightRight.cookie != null)
                    {
                        cookie = SpotlightRight.cookie.name;
                    }
                }
                if (SpotlightFront.enabled)
                {
                    Template.Spotlights |= SpotlightDirection.Front;
                    spotlightAngle       = SpotlightFront.spotAngle;
                    spotlightRange       = SpotlightFront.range;
                    if (SpotlightFront.cookie != null)
                    {
                        cookie = SpotlightFront.cookie.name;
                    }
                }
                if (SpotlightBack.enabled)
                {
                    Template.Spotlights |= SpotlightDirection.Back;
                    spotlightAngle       = SpotlightBack.spotAngle;
                    spotlightRange       = SpotlightBack.range;
                    if (SpotlightBack.cookie != null)
                    {
                        cookie = SpotlightBack.cookie.name;
                    }
                }

                Template.Cookie = cookie;

                if (BaseLight.enabled)
                {
                    Template.BaseLight = true;
                }
                else
                {
                    Template.BaseLight = false;
                }

                if (string.IsNullOrEmpty(Template.Color1))
                {
                    Template.Color1 = Colors.Get.GetOrCreateColor(BaseLight.color, 10, name + "Color");
                }
                if (EditorColor != Color.black)
                {
                    Template.Color2 = Colors.Get.GetOrCreateColor(EditorColor, 10, name + "Color");
                }

                if (!Manager.IsAwake <Mods> ())
                {
                    Manager.WakeUp <Mods> ("__MODS");
                }
                Mods.Get.Editor.InitializeEditor();

                Mods.Get.Editor.SaveMod <WorldLightTemplate> (Template, "Light", name);
            }
        }