123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- class UIPopupScriptSceneSettings extends UIPopupScript
- {
- private static const int m_DaysInMonth[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
-
- private ButtonWidget m_BtnSave;
- private ButtonWidget m_BtnCancel;
-
- private TextWidget m_TxtWeatherTime;
-
- private SliderWidget m_SldStartTime;
- private TextWidget m_TxtStartTimeValue;
- private SliderWidget m_SldStartDay;
- private TextWidget m_TxtStartDayValue;
- private SliderWidget m_SldOvercast;
- private TextWidget m_TxtOvercastValue;
- private SliderWidget m_SldRain;
- private TextWidget m_TxtRainValue;
- private SliderWidget m_SldFog;
- private TextWidget m_TxtFogValue;
- private SliderWidget m_SldWindForce;
- private TextWidget m_TxtWindForceValue;
-
- private int m_OrigYear;
- private int m_OrigMonth;
- private int m_OrigDay;
- private int m_OrigHour;
- private int m_OrigMinute;
- private float m_OrigOvercast;
- private float m_OrigRain;
- private float m_OrigFog;
- private float m_OrigWindForce;
-
- private int m_CurrYear;
- private int m_CurrMonth;
- private int m_CurrDay;
- private int m_CurrHour;
- private int m_CurrMinute;
- private float m_CurrOvercast;
- private float m_CurrRain;
- private float m_CurrFog;
- private float m_CurrWindForce;
-
- //================================================
- // UIPopupScriptSceneSettings
- //================================================
- void UIPopupScriptSceneSettings(Widget wgt)
- {
- m_BtnSave = ButtonWidget.Cast( wgt.FindAnyWidget("btn_ppp_st_save") );
- m_BtnCancel = ButtonWidget.Cast( wgt.FindAnyWidget("btn_ppp_st_cancel") );
-
- m_TxtWeatherTime = TextWidget.Cast( wgt.FindAnyWidget("txt_ppp_st_w_time_value") );
-
- m_SldStartTime = SliderWidget.Cast( wgt.FindAnyWidget("sld_ppp_st_start_time") );
- m_TxtStartTimeValue = TextWidget.Cast( wgt.FindAnyWidget("txt_ppp_st_start_time_value") );
-
- m_SldStartDay = SliderWidget.Cast( wgt.FindAnyWidget("sld_ppp_st_start_day") );
- m_TxtStartDayValue = TextWidget.Cast( wgt.FindAnyWidget("txt_ppp_st_start_day_value") );
-
- m_SldOvercast = SliderWidget.Cast( wgt.FindAnyWidget("sld_ppp_st_overcast") );
- m_TxtOvercastValue = TextWidget.Cast( wgt.FindAnyWidget("txt_ppp_st_overcast_value") );
-
- m_SldRain = SliderWidget.Cast( wgt.FindAnyWidget("sld_ppp_st_rain") );
- m_TxtRainValue = TextWidget.Cast( wgt.FindAnyWidget("txt_ppp_st_rain_value") );
-
- m_SldFog = SliderWidget.Cast( wgt.FindAnyWidget("sld_ppp_st_fog") );
- m_TxtFogValue = TextWidget.Cast( wgt.FindAnyWidget("txt_ppp_st_fog_value") );
-
- m_SldWindForce = SliderWidget.Cast( wgt.FindAnyWidget("sld_ppp_st_wind_force") );
- m_TxtWindForceValue = TextWidget.Cast( wgt.FindAnyWidget("txt_ppp_st_wind_force_value") );
- }
-
- void ~UIPopupScriptSceneSettings()
- {
- GetGame().GetUpdateQueue(CALL_CATEGORY_SYSTEM).Remove(this.OnUpdate);
- }
- //================================================
- // OnClick
- //================================================
- override bool OnClick(Widget w, int x, int y, int button)
- {
- super.OnClick(w, x, y, button);
-
- if ( w == m_BtnSave )
- {
- m_OrigYear = m_CurrYear;
- m_OrigMonth = m_CurrMonth;
- m_OrigDay = m_CurrDay;
- m_OrigHour = m_CurrHour;
- m_OrigMinute = m_CurrMinute;
- m_OrigOvercast = m_CurrOvercast;
- m_OrigRain = m_CurrRain;
- m_OrigFog = m_CurrFog;
- m_OrigWindForce = m_CurrWindForce;
-
- PluginSceneManager editor = PluginSceneManager.Cast( GetPlugin(PluginSceneManager) );
- editor.SetWeather(m_CurrOvercast, m_CurrRain, m_CurrFog, m_CurrWindForce);
- editor.SetDate(m_CurrYear, m_CurrMonth, m_CurrDay, m_CurrHour, m_CurrMinute);
- PopupBack();
-
- return true;
- }
- else if ( w == m_BtnCancel )
- {
-
- PopupBack();
-
- return true;
- }
-
- return false;
- }
-
- override bool OnChange(Widget w, int x, int y, bool finished)
- {
- if ( w == m_SldStartTime )
- {
- float slider_value_start_time = m_SldStartTime.GetCurrent() * 0.01;
- float start_time_f = slider_value_start_time * 1439;
- int start_time = start_time_f;
- m_CurrHour = start_time / 60;
- m_CurrMinute = start_time % 60;
-
- UpdateSliderStartTime( m_CurrHour, m_CurrMinute );
-
- GetGame().GetWorld().SetDate( m_CurrYear, m_CurrMonth, m_CurrDay, m_CurrHour, m_CurrMinute );
-
- return true;
- }
- else if ( w == m_SldStartDay )
- {
- float slider_value_start_day = m_SldStartDay.GetCurrent();
- float start_day_f = slider_value_start_day * 3.64 + 1;
- int start_day = start_day_f;
-
- for ( int i = 0; i < 12; i++ )
- {
- int days = m_DaysInMonth[i];
- if ( start_day <= days )
- {
- m_CurrMonth = i+1;
- m_CurrDay = start_day;
- break;
- }
- else
- {
- start_day -= days;
- }
- }
-
- UpdateSliderStartDay( m_CurrMonth, m_CurrDay );
-
- GetGame().GetWorld().SetDate( m_CurrYear, m_CurrMonth, m_CurrDay, m_CurrHour, m_CurrMinute );
-
- return true;
- }
- else if ( w == m_SldOvercast )
- {
- UpdateSliderOvercast();
-
- m_CurrOvercast = m_SldOvercast.GetCurrent() * 0.01;
- GetGame().GetWeather().GetOvercast().Set( m_CurrOvercast, 0, 1000 );
- return true;
- }
- else if ( w == m_SldRain )
- {
- UpdateSliderRain();
-
- m_CurrRain = m_SldRain.GetCurrent() * 0.01;
- GetGame().GetWeather().GetRain().Set( m_CurrRain, 0, 1000 );
- return true;
- }
- else if ( w == m_SldFog )
- {
- UpdateSliderFog();
-
- m_CurrFog = m_SldFog.GetCurrent() * 0.01;
- GetGame().GetWeather().GetFog().Set( m_CurrFog, 0, 1000 );
- return true;
- }
- else if ( w == m_SldWindForce )
- {
- UpdateSliderWindForce();
-
- m_CurrWindForce = m_SldWindForce.GetCurrent() * 0.01;
- //GetGame().GetWeather().SetWindSpeed( m_CurrWindForce );
- return true;
- }
-
- return false;
- }
-
- //================================================
- // OnOpen
- //================================================
- override void OnOpen(Param param)
- {
- GetGame().GetWorld().GetDate( m_OrigYear, m_OrigMonth, m_OrigDay, m_OrigHour, m_OrigMinute );
- Weather weather = GetGame().GetWeather();
- m_OrigOvercast = weather.GetOvercast().GetActual();
- m_OrigRain = weather.GetRain().GetActual();
- m_OrigFog = weather.GetFog().GetActual();
- m_OrigWindForce = weather.GetWindSpeed();
- m_CurrYear = m_OrigYear;
- m_CurrMonth = m_OrigMonth;
- m_CurrDay = m_OrigDay;
- m_CurrHour = m_OrigHour;
- m_CurrMinute = m_OrigMinute;
- m_CurrOvercast = m_OrigOvercast;
- m_CurrRain = m_OrigRain;
- m_CurrFog = m_OrigFog;
- m_CurrWindForce = m_OrigWindForce;
-
- Print( "Year" );
- Print( m_CurrYear );
-
- GetGame().GetUpdateQueue(CALL_CATEGORY_SYSTEM).Insert(this.OnUpdate);
-
- ResetSliders();
- }
-
- //================================================
- // OnClose
- //================================================
- override void OnClose()
- {
- Weather weather = GetGame().GetWeather();
- GetGame().GetWorld().SetDate( m_OrigYear, m_OrigMonth, m_OrigDay, m_OrigHour, m_OrigMinute );
- weather.GetOvercast().Set( m_OrigOvercast, 0, 1000 );
- weather.GetRain().Set( m_OrigRain, 0, 1000 );
- weather.GetFog().Set( m_OrigFog, 0, 1000 );
- //weather.SetWindSpeed( m_OrigWindForce );
- }
- //================================================
- // OnUpdate
- //================================================
- void OnUpdate()
- {
- m_TxtWeatherTime.SetText(GetGame().GetWeather().GetTime().ToString());
- }
- //================================================
- // ResetSliders
- //================================================
- void ResetSliders()
- {
- int year, month, day, hour, minute;
- GetGame().GetWorld().GetDate( year, month, day, hour, minute );
- m_SldStartTime.SetCurrent( ((hour * 60) + minute) / 14.39 );
- UpdateSliderStartTime( hour, minute );
-
- float start_day = day;
- int month_tmp = month;
- while ( month_tmp > 1 )
- {
- month_tmp--;
- start_day += m_DaysInMonth[month];
- }
- m_SldStartDay.SetCurrent( start_day / 3.64 );
- UpdateSliderStartDay( month, day );
- Weather weather = GetGame().GetWeather();
- m_SldOvercast.SetCurrent(weather.GetOvercast().GetActual() * 100);
- UpdateSliderOvercast();
- m_SldRain.SetCurrent(weather.GetRain().GetActual() * 100);
- UpdateSliderRain();
- m_SldFog.SetCurrent(weather.GetFog().GetActual() * 100);
- UpdateSliderFog();
- float slider_wind_value = ( weather.GetWindSpeed() / weather.GetWindMaximumSpeed() ) * 100;
- m_SldWindForce.SetCurrent( slider_wind_value );
- UpdateSliderWindForce();
- }
-
- void UpdateSliderStartTime( int hour, int minute )
- {
- string label_text = hour.ToStringLen(2) + ":" + minute.ToStringLen(2);
- m_TxtStartTimeValue.SetText( label_text );
- }
- void UpdateSliderStartDay( int month, int day )
- {
- string label_text = day.ToString() + "." + month.ToString() + ". " + m_CurrYear.ToString();
- m_TxtStartDayValue.SetText( label_text );
- }
- void UpdateSliderOvercast()
- {
- string label_text = m_SldOvercast.GetCurrent().ToString()+"%";
- m_TxtOvercastValue.SetText( label_text );
- }
- void UpdateSliderRain()
- {
- string label_text = m_SldRain.GetCurrent().ToString()+"%";
- m_TxtRainValue.SetText( label_text );
- }
- void UpdateSliderFog()
- {
- string label_text = m_SldFog.GetCurrent().ToString()+"%";
- m_TxtFogValue.SetText( label_text );
- }
- void UpdateSliderWindForce()
- {
- string label_text = m_SldWindForce.GetCurrent().ToString()+"%";
- m_TxtWindForceValue.SetText( label_text );
- }
- }
|