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; }
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); } }