コード例 #1
0
    void PickWeather()
    {
        Debug.Log("PickWeather");
        _switchWeather = Random.Range(0, 5);                        //_switchWeather is equal to a random range between (0,5)

        _sunClouds.enabled = false;                                 //disables our sun clouds particle system
        _thunder.enabled   = false;                                 //disables our thunder storm particle system
        _mist.enabled      = false;                                 //disables our mist particle system
        _snow.enabled      = false;                                 //disables our snow particle system

        switch (_switchWeather)
        {
        case 0:
            _weatherstate = DynamicWeather.WeatherStates.SunnyWeather;
            break;

        case 1:
            _weatherstate = DynamicWeather.WeatherStates.ThunderWeather;
            break;

        case 2:
            _weatherstate = DynamicWeather.WeatherStates.MistWeather;
            break;

        case 3:
            _weatherstate = DynamicWeather.WeatherStates.SnowWeather;
            break;
        }
    }
コード例 #2
0
    void WeatherCirculation()
    {
        int switchWeather = Random.Range(0, 4);

        sunnyModule.enabled = false;
        rainyModule.enabled = false;
        snowyModule.enabled = false;

        sunnySkyState = false;
        rainySkyState = false;
        snowySkyState = false;

        switch (switchWeather)
        {
        case 0:
            currentWeatherState = Weather.WeatherStates.WeatherCirculation;
            break;

        case 1:
            currentWeatherState = Weather.WeatherStates.SunnyWeather;
            break;

        case 2:
            currentWeatherState = Weather.WeatherStates.RainyWeather;
            break;

        case 3:
            currentWeatherState = Weather.WeatherStates.SnowyWeather;
            break;
        }
    }
コード例 #3
0
    private void Update()
    {
        RainParticles = GameObject.FindGameObjectWithTag("Rain").GetComponent <ParticleSystem>();
        MistParticles = GameObject.FindGameObjectWithTag("Mist").GetComponent <ParticleSystem>();
        SnowParticles = GameObject.FindGameObjectWithTag("Snow").GetComponent <ParticleSystem>();

        if (RainParticles != null)
        {
            SwitchWeatherTimer();
            RainParticles.Stop();
            MistParticles.Stop();
            SnowParticles.Stop();

            _switchWeatherTimer -= Time.deltaTime;

            if (_switchWeatherTimer < 0)
            {
                _switchWeatherTimer = 0;
            }

            if (_switchWeatherTimer > 0)
            {
                return;
            }

            if (_switchWeatherTimer == 0)
            {
                weatherState = Weather.WeatherStates.PickWeather;
            }

            _switchWeatherTimer = resetWeatherTimer;
        }
    }
コード例 #4
0
ファイル: Weather.cs プロジェクト: Najsr/MSCMP
        /// <summary>
        /// Handle variables sent from the remote client.
        /// </summary>
        public void HandleSyncedVariables(float[] variables)
        {
            weatherFSM.FsmVariables.GetFsmFloat("Offset").Value    = variables[0];
            weatherFSM.FsmVariables.GetFsmInt("WeatherType").Value = Convert.ToInt32(variables[1]);
            WeatherStates newState = (WeatherStates)variables[2];

            if (newState != currentWeather)
            {
                switch (newState)
                {
                case WeatherStates.NoWeather:
                    weatherFSM.SendEvent("MP_NoWeather");
                    currentWeather = WeatherStates.NoWeather;
                    break;

                case WeatherStates.Rain:
                    weatherFSM.SendEvent("MP_Rain");
                    currentWeather = WeatherStates.Rain;
                    break;

                case WeatherStates.Thunder:
                    weatherFSM.SendEvent("MP_Thunder");
                    currentWeather = WeatherStates.Thunder;
                    break;
                }
            }
        }
コード例 #5
0
    // Update is called once per frame
    void PickWeather()
    {
        switchWeather = Random.Range(0, 5);

        switch (switchWeather)
        {
        case 0:
            weatherState = Weather.WeatherStates.SunnyWeather;
            break;

        case 1:
            weatherState = Weather.WeatherStates.ThunderWeather;
            break;

        case 2:
            weatherState = Weather.WeatherStates.MistWeather;
            break;

        case 3:
            weatherState = Weather.WeatherStates.OvercastWeather;
            break;

        case 4:
            weatherState = Weather.WeatherStates.SnowWeather;
            break;
        }
    }
コード例 #6
0
 public WeatherControlEntry(DateTime day, WeatherStates weatherState, string info, double minTemp, double maxTemp)
 {
     _day          = day;
     _weatherState = weatherState;
     _info         = info;
     _minTemp      = minTemp;
     _maxTemp      = maxTemp;
 }
コード例 #7
0
    void WeatherUpdate()
    {
        currentSwitchTimer -= Time.deltaTime;

        if (currentSwitchTimer <= 0.0f)
        {
            currentSwitchTimer  = weatherSwitchTimer;
            currentWeatherState = Weather.WeatherStates.WeatherCirculation;
        }
    }
コード例 #8
0
 public int CreateTrip(int odometer, bool isNightTime, WeatherStates weather)
 {
     return(_database.Insert(new TripRecord
     {
         Start = DateTime.UtcNow,
         Supervisor = App.Current.Supervisor,
         OdometerStart = odometer,
         IsNightTime = isNightTime,
         WeatherID = (int)weather,
     }));
 }
コード例 #9
0
    // When time out, switch to a new Weather State
    void PickWeather()
    {
        Debug.Log("PickWeather!");


        // Stop all playing Particle Systems
        StopParticleSystem(_sunnyParticleSystem);
        StopParticleSystem(_overcastParticleSystem);
        StopParticleSystem(_rainParticleSystem);
        StopParticleSystem(_thunderStormParticleSystem);
        StopParticleSystem(_snowParticleSystem);


        // Randomize new weather which should satisfy Prerequisite
        WeatherStates _switchWeatherState;
        bool          isPrerequisiteOK = false;

        do
        {
            _switchWeatherState = (WeatherStates)UnityEngine.Random.Range(1, 6);

            if (_switchWeatherState == WeatherStates.RAINY)
            {
                if (_previousWeatherState == WeatherStates.OVERCAST)
                {
                    isPrerequisiteOK = true;
                }
            }
            else if (_switchWeatherState == WeatherStates.THUNDERSTORM)
            {
                if (_previousWeatherState == WeatherStates.RAINY)
                {
                    isPrerequisiteOK = true;
                }
            }
            //else if(_switchWeatherState == WeatherStates.TORONTO)
            //{
            //    if (_previousWeatherState == WeatherStates.OVERCAST)
            //    {
            //        isPrerequisiteOK = true;
            //    }
            //}
            else
            {
                isPrerequisiteOK = true;
            }
        }while (isPrerequisiteOK != true);


        // set current weather state to a new state
        _currentWeatherState = _switchWeatherState;
    }
コード例 #10
0
 void SwitchWeatherTimer()
 {
     Debug.Log("SwitchWeatherTimer()");
     _switchWeatherTimer -= Time.deltaTime;
     if (_switchWeatherTimer > 0)
     {
         return;
     }
     if (_switchWeatherTimer <= 0)
     {
         _weatherStates = DynamicWeather.WeatherStates.PickWeather;
     }
     _switchWeatherTimer = Random.Range(_minTimer, _maxTimer);
 }
コード例 #11
0
    // Counting time until changing to new Weather
    void SwitchWeatherTimer()
    {
        if (_weatherTimer > 0)
        {
            _weatherTimer -= Time.deltaTime;
        }

        if (_weatherTimer <= 0)
        {
            _previousWeatherState = _currentWeatherState;
            _currentWeatherState  = WeatherStates.PICKING;
            _weatherTimer         = _resetWeatherTimer;
        }
    }
コード例 #12
0
    // Start is called before the first frame update
    void Start()
    {
        _globalLight = GetComponent <Light2D>();
        _soundSource = GetComponent <AudioSource>();

        //GameObject _playergameObject = GameObject.FindGameObjectWithTag("Player");
        //_player = _playergameObject.transform;

        //GameObject _weathergameObject = GameObject.FindGameObjectWithTag("Weather");
        //_weather = _weathergameObject.transform;

        _previousWeatherState = _currentWeatherState;

        StartCoroutine(WeatherFSM());
    }
コード例 #13
0
ファイル: Weather.cs プロジェクト: Najsr/MSCMP
 /// <summary>
 /// Hook vehicle door related events.
 /// </summary>
 void HookEvents()
 {
     EventHook.Add(weatherFSM, "Rain", new Func <bool>(() => {
         currentWeather = WeatherStates.Rain;
         return(false);
     }));
     EventHook.Add(weatherFSM, "Thunder", new Func <bool>(() => {
         currentWeather = WeatherStates.Thunder;
         return(false);
     }));
     EventHook.Add(weatherFSM, "No weather", new Func <bool>(() => {
         currentWeather = WeatherStates.NoWeather;
         return(false);
     }));
 }
コード例 #14
0
    void PickWeather()
    {
        Debug.Log("Picking Weather");

        _sunnyEmission.enabled = false;
        Debug.Log("Sunny PS is " + _sunnyEmission.enabled);
        _thunderEmission.enabled = false;
        Debug.Log("Thunder PS is " + _thunderEmission.enabled);
        _mistEmission.enabled = false;
        Debug.Log("Mist PS is " + _mistEmission.enabled);
        _overcastEmission.enabled = false;
        Debug.Log("Overcast PS is " + _overcastEmission.enabled);
        _snowEmission.enabled = false;
        Debug.Log("Snow PS is " + _snowEmission.enabled);


        /*_sunnyPS.enableEmission = false;
         * _thunderPS.enableEmission = false;
         * _mistPS.enableEmission = false;
         * _overcastPS.enableEmission = false;
         * _snowPS.enableEmission = false;*/

        _switchWeather = Random.Range(0, 5);

        switch (_switchWeather)
        {
        case 0:
            _weatherStates = DynamicWeather.WeatherStates.SunnyWeather;
            break;

        case 1:
            _weatherStates = DynamicWeather.WeatherStates.ThunderWeather;
            break;

        case 2:
            _weatherStates = DynamicWeather.WeatherStates.MistWeather;
            break;

        case 3:
            _weatherStates = DynamicWeather.WeatherStates.OvercastWeather;
            break;

        case 4:
            _weatherStates = DynamicWeather.WeatherStates.SnowWeather;
            break;
        }
    }
コード例 #15
0
    void SwitchWeatherTimer()
    {
        Debug.Log("SwitchWeatherTimer");

        _switchWeatherTimer -= Time.deltaTime;                                              // decrease weather timer by real time

        if (_switchWeatherTimer < 0)                                                        //if switch timer is greater than zero
        {
            _switchWeatherTimer = 0;                                                        //then switch timer is equal to zero
        }
        if (_switchWeatherTimer > 0)                                                        //if switch timer is greater than zero
        {
            return;                                                                         //then do nothing and return
        }
        if (_switchWeatherTimer == 0)                                                       //if switch timer is equal to zero
        {
            _weatherstate = DynamicWeather.WeatherStates.PickWeather;                       //then switch our case block to pick weather
        }
        _switchWeatherTimer = _resetWeatherTimer;                                           // switch timer is equal to reset timer
    }
コード例 #16
0
    void PickWeather()
    {
        _switchWeather = UnityEngine.Random.Range(0, 2);

        _sunnyState = false;
        _cloudState = false;
        _rainState  = false;

        switch (_switchWeather)
        {
        case 0:
            _weatherState = WeatherStates.SunnyWeather;
            break;

        case 1:
            _weatherState = WeatherStates.RainWeather;
            break;

        case 2:
            _weatherState = WeatherStates.CloudWeather;
            break;
        }
    }
コード例 #17
0
    void SwitchWeatherTimer()
    {
        //print("SwitchWeatherTimer");
        _switchWeatherTimer -= Time.deltaTime;

        if (_switchWeatherTimer < 0)
        {
            _switchWeatherTimer = 0;
        }

        if (_switchWeatherTimer > 0)
        {
            return;
        }

        if (_switchWeatherTimer == 0)
        {
            _weatherState = WeatherStates.PickWeather;
        }

        _resetWeatherTimer = UnityEngine.Random.Range(5f, 10f);

        _switchWeatherTimer = _resetWeatherTimer;
    }
コード例 #18
0
 public WeatherControlEntry(DateTime day, WeatherStates weatherState, string info, double minTemp, double maxTemp)
 {
     _day = day;
     _weatherState = weatherState;
     _info = info;
     _minTemp = minTemp;
     _maxTemp = maxTemp;
 }