void OnDestroy()
        {
            ToggleSkyObjects(false);

            //Unsubscribe from events
            PlayerEnterExit.OnTransitionInterior        -= InteriorTransitionEvent; //interior transition
            PlayerEnterExit.OnTransitionDungeonInterior -= InteriorTransitionEvent; //dungeon interior transition
            PlayerEnterExit.OnTransitionExterior        -= ExteriorTransitionEvent; //exterior transition
            PlayerEnterExit.OnTransitionDungeonExterior -= ExteriorTransitionEvent; //dungeon exterior transition
            StreamingWorld.OnTeleportToCoordinates      -= EnhancedSkyUpdate;
            WeatherManager.OnClearOvercast   -= WeatherManagerSkyEventsHandler;
            WeatherManager.OnSetRainOvercast -= WeatherManagerSkyEventsHandler;
            WeatherManager.OnSetSnowOvercast -= WeatherManagerSkyEventsHandler;

            Destroy(StarsMat);
            Destroy(_skyObjMat);
            Destroy(StarMaskMat);
            Destroy(MasserMat);
            Destroy(SecundaMat);
            Resources.UnloadAsset(_depthMaskShader);
            Resources.UnloadAsset(_UnlitAlphaFadeShader);


            StopAllCoroutines();
            if (_instance == this)
            {
                _instance = null;
            }
        }
Example #2
0
            public static string Execute(params string[] args)
            {
                SkyManager skyMan = SkyManager.instance;

                if (SkyManager.instance == null)
                {
                    return("SkyManager instance not found");
                }
                else
                {
                    switch (skyMan.SkyObjectSizeSetting)
                    {
                    case SkyObjectSize.Normal:
                    {
                        skyMan.SkyObjectSizeChange(SkyObjectSize.Large);
                    }
                    break;

                    case SkyObjectSize.Large:
                    {
                        skyMan.SkyObjectSizeChange(SkyObjectSize.Normal);
                    }
                    break;

                    default:
                        break;
                    }
                }

                return(string.Format("Set sky object size normal: {0} ", skyMan.SkyObjectSizeSetting));
            }
        public static void initMod()
        {
            Debug.Log("init of EnhancedSky standalone");

            gameobjectEnhancedSky = new GameObject("EnhancedSkyController");

            componentPresetContainer = gameobjectEnhancedSky.AddComponent <PresetContainer>() as PresetContainer;
            SetPresetContainerValues(componentPresetContainer);
            PresetContainer.Instance = componentPresetContainer;

            componentSkyManager = gameobjectEnhancedSky.AddComponent <SkyManager>() as SkyManager;
            SkyManager.instance = componentSkyManager;

            componentCloudGenerator = gameobjectEnhancedSky.AddComponent <CloudGenerator>() as CloudGenerator;

            componentSkyManager.ModSelf = mod;

            starMaskMat = new Material(shaderDepthMask);
            skyObjMat   = new Material(shaderUnlitAlphaWithFade);

            componentSkyManager.StarMaskMat = starMaskMat;
            componentSkyManager.SkyObjMat   = skyObjMat;
            componentSkyManager.StarsMat    = starsMat;
            componentSkyManager.SkyMat      = skyMat;

            if (containerPrefab)
            {
                GameObject container = Instantiate(containerPrefab) as GameObject;
                container.transform.SetParent(GameManager.Instance.ExteriorParent.transform, true);

                componentSkyManager.Container = container;

                //container.AddComponent<MoonController>();
                //container.AddComponent<AmbientFogLightController>();

                //container.transform.Find("SkyCam").gameObject.AddComponent<SkyCam>();
                //container.transform.Find("Stars").Find("StarParticles").gameObject.AddComponent<StarController>();
                //container.transform.Find("Rotator").gameObject.AddComponent<RotationScript>();
                //container.transform.Find("cloudPrefab").gameObject.AddComponent<Cloud>();

                GameObject goParticles = container.transform.Find("Stars").Find("StarParticles").gameObject;
                goParticles.GetComponent <ParticleSystemRenderer>().sharedMaterial = new Material(shaderUnlitAlphaWithFade);

                GameObject goSun = container.transform.Find("Rotator").Find("Sun").gameObject;
                goSun.GetComponent <LensFlare>().flare = sunFlare;
                goSun.GetComponent <Light>().intensity = sunSize;
            }
            else
            {
                throw new System.NullReferenceException();
            }

            componentSkyManager.ToggleEnhancedSky(true);
            componentSkyManager.UseSunFlare  = enableSunFlare;
            componentSkyManager.cloudQuality = cloudQuality;
            componentSkyManager.SkyObjectSizeChange(0); // set normal size
        }
Example #4
0
        void Awake()
        {
            if (_instance == null)
            {
                _instance = this;
            }
            else if (this != instance)
            {
                Destroy(this.gameObject);
            }

            /*
             * PresetContainer presetContainer = this.gameObject.GetComponent<PresetContainer>(); //this.gameObject.AddComponent<PresetContainer>();
             *
             * Gradient gradient = new Gradient();
             * GradientAlphaKey[] gak = {
             *  new GradientAlphaKey(55.0f/255.0f, 0.0f),
             *  new GradientAlphaKey(75.0f/255.0f, 0.21f),
             *  new GradientAlphaKey(255.0f/255.0f, 0.31f),
             *  new GradientAlphaKey(255.0f/255.0f, 0.69f),
             *  new GradientAlphaKey(75.0f/255.0f, 0.79f),
             *  new GradientAlphaKey(75.0f/255.0f, 1.0f)
             * };
             * string[] colorsAsHex = { "#3C3C3C", "#727272", "#A8553E", "#DAD6D6", "#D6D6D6", "#C5BFBF", "#A8553E", "#3C3C3C" };
             * Color[] colors = new Color[colorsAsHex.Length];
             * for (int i = 0; i < colors.Length; i++)
             * {
             *  UnityEngine.ColorUtility.TryParseHtmlString(colorsAsHex[i], out colors[i]);
             * }
             * GradientColorKey[] gck = {
             *  new GradientColorKey(colors[0], 0.0f),
             *  new GradientColorKey(colors[1], 0.159f),
             *  new GradientColorKey(colors[2], 0.244f),
             *  new GradientColorKey(colors[3], 0.318f),
             *  new GradientColorKey(colors[4], 0.5f),
             *  new GradientColorKey(colors[5], 0.694f),
             *  new GradientColorKey(colors[6], 0.762f),
             *  new GradientColorKey(colors[7], 0.835f)
             * };
             * gradient.alphaKeys = gak;
             * gradient.colorKeys = gck;
             * presetContainer.colorBase = gradient;
             */
            _stopWatch = new System.Diagnostics.Stopwatch();

            PlayerEnterExit.OnTransitionInterior        += InteriorTransitionEvent; //interior transition
            PlayerEnterExit.OnTransitionDungeonInterior += InteriorTransitionEvent; //dungeon interior transition
            PlayerEnterExit.OnTransitionExterior        += ExteriorTransitionEvent; //exterior transition
            PlayerEnterExit.OnTransitionDungeonExterior += ExteriorTransitionEvent; //dungeon exterior transition
            StreamingWorld.OnTeleportToCoordinates      += EnhancedSkyUpdate;
            WeatherManager.OnWeatherChange += WeatherManagerSkyEventsHandler;

            //ToggleEnhancedSky(true);
        }
Example #5
0
            public static string Execute(params string[] args)
            {
                SkyManager skyMan = SkyManager.instance;

                if (skyMan == null)
                {
                    return("SkyManager instance not found");
                }
                else
                {
                    skyMan.UseSunFlare = !skyMan.UseSunFlare;
                    return(string.Format("SkyManager: Sun flare toggled; current state: {0}", skyMan.UseSunFlare));
                }
            }
Example #6
0
            public static string Execute(params string[] args)
            {
                SkyManager skyMan = SkyManager.instance;

                if (skyMan == null)
                {
                    return("SkyManager instance not found");
                }
                else
                {
                    skyMan.ToggleEnhancedSky(!skyMan.EnhancedSkyCurrentToggle);
                    return(string.Format("SkyManager toggled; current state on: {0}", skyMan.EnhancedSkyCurrentToggle));
                }
            }
Example #7
0
        void OnDestroy()
        {
            ToggleSkyObjects(false);

            //Unsubscribe from events
            PlayerEnterExit.OnTransitionInterior        -= InteriorTransitionEvent; //interior transition
            PlayerEnterExit.OnTransitionDungeonInterior -= InteriorTransitionEvent; //dungeon interior transition
            PlayerEnterExit.OnTransitionExterior        -= ExteriorTransitionEvent; //exterior transition
            PlayerEnterExit.OnTransitionDungeonExterior -= ExteriorTransitionEvent; //dungeon exterior transition
            StreamingWorld.OnTeleportToCoordinates      -= EnhancedSkyUpdate;
            WeatherManager.OnWeatherChange -= WeatherManagerSkyEventsHandler;

            StopAllCoroutines();
            if (_instance == this)
            {
                _instance = null;
            }
        }
        void Awake()
        {
            if (_instance == null)
            {
                _instance = this;
            }
            else if (this != instance)
            {
                Destroy(this.gameObject);
            }
            _stopWatch = new System.Diagnostics.Stopwatch();

            PlayerEnterExit.OnTransitionInterior        += InteriorTransitionEvent; //interior transition
            PlayerEnterExit.OnTransitionDungeonInterior += InteriorTransitionEvent; //dungeon interior transition
            PlayerEnterExit.OnTransitionExterior        += ExteriorTransitionEvent; //exterior transition
            PlayerEnterExit.OnTransitionDungeonExterior += ExteriorTransitionEvent; //dungeon exterior transition
            StreamingWorld.OnTeleportToCoordinates      += EnhancedSkyUpdate;
            WeatherManager.OnClearOvercast   += WeatherManagerSkyEventsHandler;
            WeatherManager.OnSetRainOvercast += WeatherManagerSkyEventsHandler;
            WeatherManager.OnSetSnowOvercast += WeatherManagerSkyEventsHandler;
        }
Example #9
0
            public static string Execute(params string[] args)
            {
                SkyManager skyMan = SkyManager.instance;
                //Cloud cloud = GameObject.FindObjectOfType<Cloud>();

                int quality = 1;

                if (args == null || args.Length < 1 || skyMan == null)
                {
                    return(Wenzil.Console.Commands.HelpCommand.Execute(SetCloudQuality.name));
                }
                else if (!int.TryParse(args[0], out quality))
                {
                    return(Wenzil.Console.Commands.HelpCommand.Execute(SetCloudQuality.name));
                }
                else
                {
                    //skyMan.cloudQuality = quality;
                    skyMan.SetCloudTextureResolution(quality);
                    return(string.Format("Set cloud quality to : {0}", skyMan.cloudQuality));
                }
            }
        public override void OnInspectorGUI()
        {
            SkyManager skyMan = (SkyManager)target;


            DrawDefaultInspector();

            if (EditorApplication.isPlaying)
            {
                if (GUILayout.Button("Toggle Enhanced Sky"))
                {
                    skyMan.EnhancedSkyCurrentToggle = !skyMan.EnhancedSkyCurrentToggle;
                    skyMan.ToggleEnhancedSky(skyMan.EnhancedSkyCurrentToggle);
                }
                if (GUILayout.Button("Toggle Sun Flare"))
                {
                    skyMan.UseSunFlare = !skyMan.UseSunFlare;
                }

                if (GUILayout.Button("Apply normal cloud texture"))
                {
                    Cloud cloud = GameObject.FindObjectOfType <Cloud>();
                    if (cloud != null)
                    {
                        cloud.GetNewTexture(false);
                    }
                }

                if (GUILayout.Button("Apply overcast cloud texture"))
                {
                    Cloud cloud = GameObject.FindObjectOfType <Cloud>();
                    if (cloud != null)
                    {
                        cloud.GetNewTexture(true);
                    }
                }

                if (GUILayout.Button("Toggle Weather"))          //WeatherManager doesn't like this before the game is properly started
                {
                    if (skyMan.IsOvercast)
                    {
                        skyMan.weatherMan.ClearAllWeather();
                    }
                    else
                    {
                        skyMan.weatherMan.SetRainOvercast(true);
                    }


                    Debug.Log("Is Overcast: " + skyMan.weatherMan.IsOvercast);
                }


                skyObjectSizeSelected = (SkyObjectSize)EditorGUILayout.EnumPopup("Sky Object Size", skyObjectSizeSelected);

                if (GUILayout.Button("Update Setting"))
                {
                    skyMan.SkyObjectSizeChange(skyObjectSizeSelected);
                }
            }
        }
        void OnDestroy()
        {
            ToggleSkyObjects(false);

            //Unsubscribe from events
            PlayerEnterExit.OnTransitionInterior        -= InteriorTransitionEvent; //interior transition
            PlayerEnterExit.OnTransitionDungeonInterior -= InteriorTransitionEvent; //dungeon interior transition
            PlayerEnterExit.OnTransitionExterior        -= ExteriorTransitionEvent; //exterior transition
            PlayerEnterExit.OnTransitionDungeonExterior -= ExteriorTransitionEvent; //dungeon exterior transition
            StreamingWorld.OnTeleportToCoordinates      -= EnhancedSkyUpdate;
            WeatherManager.OnClearOvercast              -= WeatherManagerSkyEventsHandler;
            WeatherManager.OnSetRainOvercast            -= WeatherManagerSkyEventsHandler;
            WeatherManager.OnSetSnowOvercast            -= WeatherManagerSkyEventsHandler;

            Destroy(StarsMat);
            Destroy(_skyObjMat);
            Destroy(StarMaskMat);
            Destroy(MasserMat);
            Destroy(SecundaMat);
            Resources.UnloadAsset(_depthMaskShader);
            Resources.UnloadAsset(_UnlitAlphaFadeShader);

            StopAllCoroutines();
            if (_instance == this)
                _instance = null;
        }
        void Awake()
        {
            if (_instance == null)
                _instance = this;
            else if (this != instance)
            {
                Destroy(this.gameObject);
            }
            _stopWatch = new System.Diagnostics.Stopwatch();

            PlayerEnterExit.OnTransitionInterior        += InteriorTransitionEvent; //interior transition
            PlayerEnterExit.OnTransitionDungeonInterior += InteriorTransitionEvent; //dungeon interior transition
            PlayerEnterExit.OnTransitionExterior        += ExteriorTransitionEvent; //exterior transition
            PlayerEnterExit.OnTransitionDungeonExterior += ExteriorTransitionEvent; //dungeon exterior transition
            StreamingWorld.OnTeleportToCoordinates      += EnhancedSkyUpdate;
            WeatherManager.OnClearOvercast              += WeatherManagerSkyEventsHandler;
            WeatherManager.OnSetRainOvercast            += WeatherManagerSkyEventsHandler;
            WeatherManager.OnSetSnowOvercast            += WeatherManagerSkyEventsHandler;
        }