scriptconsoleweathertab.c 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391
  1. class ScriptConsoleWeatherValues
  2. {
  3. static void SetDefaultValues()
  4. {
  5. }
  6. }
  7. class ScriptConsoleWeatherTab : ScriptConsoleTabBase
  8. {
  9. protected ref Timer m_RPCTimer = new Timer();
  10. protected const int INTERPOLATION_MAX = 920;
  11. protected const int DURATION_MAX = 960;
  12. // FOG
  13. protected SliderWidget m_FogValueSetSlider;
  14. protected SliderWidget m_FogValueGetSlider;
  15. protected TextWidget m_FogValueSetText;
  16. protected SliderWidget m_FogInterpolationTimeSlider;
  17. protected SliderWidget m_FogDurationTimeSlider;
  18. protected TextWidget m_FogInterpolationMaxText;
  19. protected TextWidget m_FogDurationMaxText;
  20. protected EditBoxWidget m_FogValueEditbox;
  21. protected EditBoxWidget m_FogInterpolationEditbox;
  22. protected EditBoxWidget m_FogDurationEditbox;
  23. protected static float m_FogValue = -1;
  24. protected static float m_FogInterpolationTimeValue;
  25. protected static float m_FogDurationTimeValue = -1;
  26. // OVERCAST
  27. protected SliderWidget m_OvercastValueSetSlider;
  28. protected SliderWidget m_OvercastValueGetSlider;
  29. protected TextWidget m_OvercastValueSetText;
  30. protected SliderWidget m_OvercastInterpolationTimeSlider;
  31. protected SliderWidget m_OvercastDurationTimeSlider;
  32. protected TextWidget m_OvercastInterpolationMaxText;
  33. protected TextWidget m_OvercastDurationMaxText;
  34. protected EditBoxWidget m_OvercastValueEditbox;
  35. protected EditBoxWidget m_OvercastInterpolationEditbox;
  36. protected EditBoxWidget m_OvercastDurationEditbox;
  37. protected static float m_OvercastValue = -1;
  38. protected static float m_OvercastInterpolationTimeValue;
  39. protected static float m_OvercastDurationTimeValue = -1;
  40. // Rain
  41. protected SliderWidget m_RainValueSetSlider;
  42. protected SliderWidget m_RainValueGetSlider;
  43. protected TextWidget m_RainValueSetText;
  44. protected SliderWidget m_RainInterpolationTimeSlider;
  45. protected SliderWidget m_RainDurationTimeSlider;
  46. protected TextWidget m_RainInterpolationMaxText;
  47. protected TextWidget m_RainDurationMaxText;
  48. protected EditBoxWidget m_RainValueEditbox;
  49. protected EditBoxWidget m_RainInterpolationEditbox;
  50. protected EditBoxWidget m_RainDurationEditbox;
  51. protected static float m_RainValue = -1;
  52. protected static float m_RainInterpolationTimeValue;
  53. protected static float m_RainDurationTimeValue = -1;
  54. // Snowfall
  55. protected SliderWidget m_SnowfallValueSetSlider;
  56. protected SliderWidget m_SnowfallValueGetSlider;
  57. protected TextWidget m_SnowfallValueSetText;
  58. protected SliderWidget m_SnowfallInterpolationTimeSlider;
  59. protected SliderWidget m_SnowfallDurationTimeSlider;
  60. protected TextWidget m_SnowfallInterpolationMaxText;
  61. protected TextWidget m_SnowfallDurationMaxText;
  62. protected EditBoxWidget m_SnowfallValueEditbox;
  63. protected EditBoxWidget m_SnowfallInterpolationEditbox;
  64. protected EditBoxWidget m_SnowfallDurationEditbox;
  65. protected static float m_SnowfallValue = -1;
  66. protected static float m_SnowfallInterpolationTimeValue;
  67. protected static float m_SnowfallDurationTimeValue = -1;
  68. // Vol Fog
  69. protected EditBoxWidget m_VolFogDistanceDensityEditbox;
  70. protected SliderWidget m_VolFogDistanceDensitySlider;
  71. protected TextWidget m_VolFogDistanceDensityMinText;
  72. protected TextWidget m_VolFogDistanceDensityMaxText;
  73. protected TextWidget m_VolFogDistanceDensitySetText;
  74. protected EditBoxWidget m_VolFogDistanceDensityTimeEditbox;
  75. protected SliderWidget m_VolFogDistanceDensityTimeSlider;
  76. protected TextWidget m_VolFogDistanceDensityTimeMinText;
  77. protected TextWidget m_VolFogDistanceDensityTimeMaxText;
  78. protected TextWidget m_VolFogDistanceDensityTimeSetText;
  79. protected EditBoxWidget m_VolFogHeightDensityEditbox;
  80. protected SliderWidget m_VolFogHeightDensitySlider;
  81. protected TextWidget m_VolFogHeightDensityMinText;
  82. protected TextWidget m_VolFogHeightDensityMaxText;
  83. protected TextWidget m_VolFogHeightDensitySetText;
  84. protected EditBoxWidget m_VolFogHeightDensityTimeEditbox;
  85. protected SliderWidget m_VolFogHeightDensityTimeSlider;
  86. protected TextWidget m_VolFogHeightDensityTimeMinText;
  87. protected TextWidget m_VolFogHeightDensityTimeMaxText;
  88. protected TextWidget m_VolFogHeightDensityTimeSetText;
  89. protected EditBoxWidget m_VolFogHeightBiasEditbox;
  90. protected SliderWidget m_VolFogHeightBiasSlider;
  91. protected TextWidget m_VolFogHeightBiasMinText;
  92. protected TextWidget m_VolFogHeightBiasMaxText;
  93. protected TextWidget m_VolFogHeightBiasSetText;
  94. protected EditBoxWidget m_VolFogHeightBiasTimeEditbox;
  95. protected SliderWidget m_VolFogHeightBiasTimeSlider;
  96. protected TextWidget m_VolFogHeightBiasTimeMinText;
  97. protected TextWidget m_VolFogHeightBiasTimeMaxText;
  98. protected TextWidget m_VolFogHeightBiasTimeSetText;
  99. protected static float m_VolFogDistanceDensityValue = -1;
  100. protected static float m_VolFogDistanceDensityTimeValue;
  101. protected static float m_VolFogHeightDensityValue = -1;
  102. protected static float m_VolFogHeightDensityTimeValue;
  103. protected static float m_VolFogHeightBiasValue = -1;
  104. protected static float m_VolFogHeightBiasTimeValue;
  105. // Wind Magnitude
  106. protected SliderWidget m_WindMValueSetSlider;
  107. protected SliderWidget m_WindMValueGetSlider;
  108. protected TextWidget m_WindMValueSetText;
  109. protected SliderWidget m_WindMInterpolationTimeSlider;
  110. protected SliderWidget m_WindMDurationTimeSlider;
  111. protected TextWidget m_WindMInterpolationMaxText;
  112. protected TextWidget m_WindMDurationMaxText;
  113. protected EditBoxWidget m_WindMValueEditbox;
  114. protected EditBoxWidget m_WindMInterpolationEditbox;
  115. protected EditBoxWidget m_WindMDurationEditbox;
  116. protected static float m_WindMagnitudeValue = -1;
  117. protected static float m_WindMInterpolationTimeValue;
  118. protected static float m_WindMDurationTimeValue = -1;
  119. // Wind Direction
  120. protected SliderWidget m_WindDValueSetSlider;
  121. protected SliderWidget m_WindDValueGetSlider;
  122. protected TextWidget m_WindDValueSetText;
  123. protected SliderWidget m_WindDInterpolationTimeSlider;
  124. protected SliderWidget m_WindDDurationTimeSlider;
  125. protected TextWidget m_WindDInterpolationMaxText;
  126. protected TextWidget m_WindDDurationMaxText;
  127. protected EditBoxWidget m_WindDValueEditbox;
  128. protected EditBoxWidget m_WindDInterpolationEditbox;
  129. protected EditBoxWidget m_WindDDurationEditbox;
  130. protected static float m_WindDirectionValue = -1;
  131. protected static float m_WindDInterpolationTimeValue;
  132. protected static float m_WindDDurationTimeValue = -1;
  133. // Other
  134. protected ButtonWidget m_HideUIButton;
  135. protected ImageWidget m_HideUIIcon;
  136. protected ButtonWidget m_LoadPresetButton;
  137. protected ButtonWidget m_DeletePresetButton;
  138. protected ButtonWidget m_SavePresetButton;
  139. protected ButtonWidget m_CopyButton;
  140. protected ButtonWidget m_PasteButton;
  141. protected ButtonWidget m_ResetButton;
  142. protected ButtonWidget m_UpdateButton;
  143. protected ButtonWidget m_ApplyButton;
  144. protected Widget m_WeatherPresetsPanel;
  145. protected EditBoxWidget m_WeatherPresetEditbox;
  146. protected bool m_UIVisibilityState = true;
  147. protected ScriptConsoleWeatherPreset m_SelectedWeatherPreset;
  148. protected ref ScriptConsolePresetsList m_WeatherPresetsList;
  149. protected bool m_MouseMovementEnabled;
  150. protected bool m_IsCAPSPressed;
  151. protected bool m_CanUseMovement;
  152. protected bool m_IsSavingPreset;
  153. void ~ScriptConsoleWeatherTab()
  154. {
  155. // FOG
  156. m_FogValue = m_FogValueSetSlider.GetCurrent() / 100;
  157. m_FogInterpolationTimeValue = m_FogInterpolationTimeSlider.GetCurrent() / 100 * INTERPOLATION_MAX;
  158. m_FogDurationTimeValue = m_FogDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  159. // OVERCAST
  160. m_OvercastValue = m_OvercastValueSetSlider.GetCurrent() / 100;
  161. m_OvercastInterpolationTimeValue = m_OvercastInterpolationTimeSlider.GetCurrent() / 100 * INTERPOLATION_MAX;
  162. m_OvercastDurationTimeValue = m_OvercastDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  163. // Rain
  164. m_RainValue = m_RainValueSetSlider.GetCurrent() / 100;
  165. m_RainInterpolationTimeValue = m_RainInterpolationTimeSlider.GetCurrent() / 100 * INTERPOLATION_MAX;
  166. m_RainDurationTimeValue = m_RainDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  167. // Snowfall
  168. m_SnowfallValue = m_SnowfallValueSetSlider.GetCurrent() / 100;
  169. m_SnowfallInterpolationTimeValue = m_SnowfallInterpolationTimeSlider.GetCurrent() / 100 * INTERPOLATION_MAX;
  170. m_SnowfallDurationTimeValue = m_SnowfallDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  171. // Vol Fog
  172. m_VolFogDistanceDensityValue = m_VolFogDistanceDensitySlider.GetCurrent() / 100;
  173. m_VolFogDistanceDensityTimeValue = m_VolFogDistanceDensityTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  174. m_VolFogHeightDensityValue = m_VolFogHeightDensitySlider.GetCurrent() / 100;
  175. m_VolFogHeightDensityTimeValue = m_VolFogHeightDensityTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  176. m_VolFogHeightBiasValue = m_VolFogHeightDensitySlider.GetCurrent();
  177. m_VolFogHeightBiasTimeValue = m_VolFogHeightDensityTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  178. }
  179. void ScriptConsoleWeatherTab(Widget root, ScriptConsole console, Widget button, ScriptConsoleTabBase parent = null)
  180. {
  181. // FOG
  182. m_FogValueSetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderFogValue"));
  183. m_FogValueGetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderFogActualValue"));
  184. m_FogValueSetText = TextWidget.Cast(root.FindAnyWidget("TextFogValueActual"));
  185. m_FogInterpolationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderFogTarget"));
  186. m_FogDurationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderFogDuration"));
  187. m_FogInterpolationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxFogTarget"));
  188. m_FogDurationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxFogDuration"));
  189. m_FogValueEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxFogValue"));
  190. m_FogInterpolationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxFogTarget"));
  191. m_FogDurationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxFogDuration"));
  192. // OVERCAST
  193. m_OvercastValueSetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderOvercastValue"));
  194. m_OvercastValueGetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderOvercastActualValue"));
  195. m_OvercastValueSetText = TextWidget.Cast(root.FindAnyWidget("TextOvercastValueActual"));
  196. m_OvercastInterpolationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderOvercastTarget"));
  197. m_OvercastDurationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderOvercastDuration"));
  198. m_OvercastInterpolationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxOvercastTarget"));
  199. m_OvercastDurationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxOvercastDuration"));
  200. m_OvercastValueEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxOvercastValue"));
  201. m_OvercastInterpolationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxOvercastTarget"));
  202. m_OvercastDurationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxOvercastDuration"));
  203. // Rain
  204. m_RainValueSetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderRainValue"));
  205. m_RainValueGetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderRainActualValue"));
  206. m_RainValueSetText = TextWidget.Cast(root.FindAnyWidget("TextRainValueActual"));
  207. m_RainInterpolationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderRainTarget"));
  208. m_RainDurationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderRainDuration"));
  209. m_RainInterpolationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxRainTarget"));
  210. m_RainDurationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxRainDuration"));
  211. m_RainValueEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxRainValue"));
  212. m_RainInterpolationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxRainTarget"));
  213. m_RainDurationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxRainDuration"));
  214. // Snowfall
  215. m_SnowfallValueSetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderSnowfallValue"));
  216. m_SnowfallValueGetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderSnowfallActualValue"));
  217. m_SnowfallValueSetText = TextWidget.Cast(root.FindAnyWidget("TextSnowfallValueActual"));
  218. m_SnowfallInterpolationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderSnowfallTarget"));
  219. m_SnowfallDurationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderSnowfallDuration"));
  220. m_SnowfallInterpolationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxSnowfallTarget"));
  221. m_SnowfallDurationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxSnowfallDuration"));
  222. m_SnowfallValueEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxSnowfallValue"));
  223. m_SnowfallInterpolationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxSnowfallTarget"));
  224. m_SnowfallDurationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxSnowfallDuration"));
  225. // Vol Fog
  226. m_VolFogDistanceDensityEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxVolfogDDValue"));
  227. m_VolFogDistanceDensitySlider = SliderWidget.Cast(root.FindAnyWidget("SliderVolfogDD"));
  228. m_VolFogDistanceDensitySlider.SetMinMax(0, 1);
  229. m_VolFogDistanceDensitySlider.SetStep(0.01);
  230. m_VolFogDistanceDensityMinText = TextWidget.Cast(root.FindAnyWidget("TextMinVolfogDDValue"));
  231. m_VolFogDistanceDensityMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxVolfogDDValue"));
  232. m_VolFogDistanceDensitySetText = TextWidget.Cast(root.FindAnyWidget("TextVolfogDDValueActual"));
  233. m_VolFogDistanceDensityTimeEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxVolfogDDTValue"));
  234. m_VolFogDistanceDensityTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderVolfogDDTime"));
  235. m_VolFogDistanceDensityTimeMinText = TextWidget.Cast(root.FindAnyWidget("TextMinVolfogDDTValue"));
  236. m_VolFogDistanceDensityTimeMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxVolfogDDTValue"));
  237. m_VolFogDistanceDensityTimeSetText = TextWidget.Cast(root.FindAnyWidget("TextVolfogDDTValueActual"));
  238. m_VolFogHeightDensityEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxVolfogHDValue"));
  239. m_VolFogHeightDensitySlider = SliderWidget.Cast(root.FindAnyWidget("SliderVolfogHD"));
  240. m_VolFogHeightDensitySlider.SetMinMax(0, 1);
  241. m_VolFogHeightDensitySlider.SetStep(0.01);
  242. m_VolFogHeightDensityMinText = TextWidget.Cast(root.FindAnyWidget("TextMinVolfogHDValue"));
  243. m_VolFogHeightDensityMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxVolfogHDValue"));
  244. m_VolFogHeightDensitySetText = TextWidget.Cast(root.FindAnyWidget("TextVolfogHDValueActual"));
  245. m_VolFogHeightDensityTimeEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxVolfogHDTValue"));
  246. m_VolFogHeightDensityTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderVolfogHDTime"));
  247. m_VolFogHeightDensityTimeMinText = TextWidget.Cast(root.FindAnyWidget("TextMinVolfogHDTValue"));
  248. m_VolFogHeightDensityTimeMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxVolfogHDTValue"));
  249. m_VolFogHeightDensityTimeSetText = TextWidget.Cast(root.FindAnyWidget("TextVolfogHDTValueActual"));
  250. m_VolFogHeightBiasEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxVolfogHBValue"));
  251. m_VolFogHeightBiasSlider = SliderWidget.Cast(root.FindAnyWidget("SliderVolfogHB"));
  252. m_VolFogHeightBiasSlider.SetMinMax(-500, 500);
  253. m_VolFogHeightBiasMinText = TextWidget.Cast(root.FindAnyWidget("TextMinVolfogHBValue"));
  254. m_VolFogHeightBiasMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxVolfogHBValue"));
  255. m_VolFogHeightBiasSetText = TextWidget.Cast(root.FindAnyWidget("TextVolfogHBValueActual"));
  256. m_VolFogHeightBiasTimeEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxVolfogHBTValue"));
  257. m_VolFogHeightBiasTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderVolfogHBTime"));
  258. m_VolFogHeightBiasTimeMinText = TextWidget.Cast(root.FindAnyWidget("TextMinVolfogHBTValue"));
  259. m_VolFogHeightBiasTimeMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxVolfogHbTValue"));
  260. m_VolFogHeightBiasTimeSetText = TextWidget.Cast(root.FindAnyWidget("TextVolfogHBTValueActual"));
  261. // Wind Magnitude
  262. m_WindMValueSetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderWindMValue"));
  263. m_WindMValueSetSlider.SetMinMax(0, 20);
  264. m_WindMValueSetSlider.SetStep(0.1);
  265. m_WindMValueGetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderWindMActualValue"));
  266. m_WindMValueGetSlider.SetMinMax(0, 20);
  267. m_WindMValueGetSlider.SetStep(0.1);
  268. m_WindMValueSetText = TextWidget.Cast(root.FindAnyWidget("TextWindMValueActual"));
  269. m_WindMInterpolationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderWindMTarget"));
  270. m_WindMDurationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderWindMDuration"));
  271. m_WindMInterpolationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxWindMTarget"));
  272. m_WindMDurationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxWindMDuration"));
  273. m_WindMValueEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxWindMValue"));
  274. m_WindMInterpolationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxWindMTarget"));
  275. m_WindMDurationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxWindMDuration"));
  276. // Wind Direction
  277. m_WindDValueSetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderWindDValue"));
  278. m_WindDValueSetSlider.SetMinMax(-3.14, 3.14);
  279. m_WindDValueSetSlider.SetStep(0.01);
  280. m_WindDValueGetSlider = SliderWidget.Cast(root.FindAnyWidget("SliderWindDActualValue"));
  281. m_WindDValueGetSlider.SetMinMax(-3.14, 3.14);
  282. m_WindDValueGetSlider.SetStep(0.01);
  283. m_WindDValueSetText = TextWidget.Cast(root.FindAnyWidget("TextWindDValueActual"));
  284. m_WindDInterpolationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderWindDTarget"));
  285. m_WindDDurationTimeSlider = SliderWidget.Cast(root.FindAnyWidget("SliderWindDDuration"));
  286. m_WindDInterpolationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxWindDTarget"));
  287. m_WindDDurationMaxText = TextWidget.Cast(root.FindAnyWidget("TextMaxWindDDuration"));
  288. m_WindDValueEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxWindDValue"));
  289. m_WindDInterpolationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxWindDTarget"));
  290. m_WindDDurationEditbox = EditBoxWidget.Cast(root.FindAnyWidget("EditBoxWindDDuration"));
  291. //Other
  292. m_HideUIButton = ButtonWidget.Cast(root.FindAnyWidget("ButtonHide"));
  293. m_HideUIIcon = ImageWidget.Cast(root.FindAnyWidget("ButtonHideIcon"));
  294. m_HideUIIcon.LoadImageFile(0, "set:dayz_gui image:PasswordEyeOpen");
  295. m_HideUIIcon.LoadImageFile(1, "set:dayz_gui image:PasswordEyeClose");
  296. m_HideUIIcon.SetImage(1);
  297. m_CopyButton = ButtonWidget.Cast(root.FindAnyWidget("ButtonCopy"));
  298. m_PasteButton = ButtonWidget.Cast(root.FindAnyWidget("ButtonPaste"));
  299. m_ResetButton = ButtonWidget.Cast(root.FindAnyWidget("ButtonReset"));
  300. m_UpdateButton = ButtonWidget.Cast(root.FindAnyWidget("ButtonUpdate"));
  301. m_ApplyButton = ButtonWidget.Cast(root.FindAnyWidget("ButtonApply"));
  302. m_LoadPresetButton = ButtonWidget.Cast(root.FindAnyWidget("ButtonLoadPreset"));
  303. m_DeletePresetButton = ButtonWidget.Cast(root.FindAnyWidget("ButtonDeletePreset"));
  304. m_SavePresetButton = ButtonWidget.Cast(root.FindAnyWidget("ButtonSavePreset"));
  305. m_WeatherPresetEditbox = EditBoxWidget.Cast(root.FindAnyWidget("WeatherPresetName"));
  306. m_WeatherPresetsPanel = root.FindAnyWidget("WeatherPresetsPanel");
  307. m_WeatherPresetsList = new ScriptConsolePresetsList(m_WeatherPresetsPanel, this);
  308. m_WeatherPresetsList.m_ItemSelected.Insert(OnListItemSelected);
  309. InitValues();
  310. ReloadWeatherPresetsList();
  311. }
  312. protected void ReloadWeatherPresetsList()
  313. {
  314. m_WeatherPresetsList.ClearList();
  315. for (int i = 0; i < m_ConfigDebugProfile.GetWeatherPresets().Count(); i++)
  316. {
  317. ScriptConsoleWeatherPreset preset = m_ConfigDebugProfile.GetWeatherPresets()[i];
  318. if (!preset)
  319. {
  320. ErrorEx("Could not load DOF preset entry!");
  321. continue;
  322. }
  323. m_WeatherPresetsList.AddListItem(preset.Name, 0, i);
  324. }
  325. }
  326. protected void ResetValues()
  327. {
  328. // FOG
  329. m_FogValueEditbox.SetText("0");
  330. m_FogDurationEditbox.SetText(DURATION_MAX.ToString());
  331. m_FogInterpolationEditbox.SetText("0");
  332. // OVERCAST
  333. m_OvercastValueEditbox.SetText("0");
  334. m_OvercastDurationEditbox.SetText(DURATION_MAX.ToString());
  335. m_OvercastInterpolationEditbox.SetText("0");
  336. // Rain
  337. m_RainValueEditbox.SetText("0");
  338. m_RainDurationEditbox.SetText(DURATION_MAX.ToString());
  339. m_RainInterpolationEditbox.SetText("0");
  340. // Snowfall
  341. m_SnowfallValueEditbox.SetText("0");
  342. m_SnowfallDurationEditbox.SetText(DURATION_MAX.ToString());
  343. m_SnowfallInterpolationEditbox.SetText("0");
  344. // Vol Fog
  345. m_VolFogDistanceDensityEditbox.SetText("0");
  346. m_VolFogDistanceDensityTimeEditbox.SetText(DURATION_MAX.ToString());
  347. m_VolFogHeightDensityEditbox.SetText("0");
  348. m_VolFogHeightDensityTimeEditbox.SetText(DURATION_MAX.ToString());
  349. m_VolFogHeightBiasEditbox.SetText("0");
  350. m_VolFogHeightBiasTimeEditbox.SetText(DURATION_MAX.ToString());
  351. // Wind Magnitude
  352. m_WindMValueEditbox.SetText("0");
  353. m_WindMDurationEditbox.SetText(DURATION_MAX.ToString());
  354. m_WindMInterpolationEditbox.SetText("0");
  355. // Wind Direction
  356. m_WindDValueEditbox.SetText("0");
  357. m_WindDDurationEditbox.SetText(DURATION_MAX.ToString());
  358. m_WindDInterpolationEditbox.SetText("0");
  359. UpdateSliderValues();
  360. //FOG
  361. m_FogValue = 0;
  362. m_FogInterpolationTimeValue = 0;
  363. m_FogDurationTimeValue = DURATION_MAX;
  364. // OVERCAST
  365. m_OvercastValue = 0;
  366. m_OvercastInterpolationTimeValue = 0;
  367. m_OvercastDurationTimeValue = DURATION_MAX;
  368. //RAIN
  369. m_RainValue = 0;
  370. m_RainInterpolationTimeValue = 0;
  371. m_RainDurationTimeValue = DURATION_MAX;
  372. //SNOWFALL
  373. m_SnowfallValue = 0;
  374. m_SnowfallInterpolationTimeValue = 0;
  375. m_SnowfallDurationTimeValue = DURATION_MAX;
  376. // Vol Fog
  377. m_VolFogDistanceDensityValue = 0;
  378. m_VolFogDistanceDensityTimeValue = DURATION_MAX;
  379. m_VolFogHeightDensityValue = 0;
  380. m_VolFogHeightDensityTimeValue = DURATION_MAX;
  381. m_VolFogHeightBiasValue = 0;
  382. m_VolFogHeightBiasTimeValue = DURATION_MAX;
  383. // Wind Magnitude
  384. m_WindMagnitudeValue = 0;
  385. m_WindMInterpolationTimeValue = 0;
  386. m_WindMDurationTimeValue = DURATION_MAX;
  387. // Wind Direction
  388. m_WindDirectionValue = 0;
  389. m_WindDInterpolationTimeValue = 0;
  390. m_WindDDurationTimeValue = DURATION_MAX;
  391. }
  392. protected void InitValues(bool forceCurrent = false)
  393. {
  394. // FOG
  395. float fogVal = m_FogValue;
  396. if (forceCurrent || m_FogValue == -1)
  397. {
  398. fogVal = GetGame().GetWeather().GetFog().GetActual();
  399. }
  400. m_FogValueEditbox.SetText(fogVal.ToString());
  401. m_FogInterpolationEditbox.SetText(m_FogInterpolationTimeValue.ToString());
  402. if (m_FogDurationTimeValue == -1)
  403. m_FogDurationTimeValue = DURATION_MAX;
  404. m_FogDurationEditbox.SetText(m_FogDurationTimeValue.ToString());
  405. m_FogInterpolationMaxText.SetText(INTERPOLATION_MAX.ToString());
  406. m_FogDurationMaxText.SetText(DURATION_MAX.ToString());
  407. // OVERCAST
  408. float overcastVal = m_OvercastValue;
  409. if (forceCurrent || m_OvercastValue == -1)
  410. {
  411. overcastVal = GetGame().GetWeather().GetOvercast().GetActual();
  412. }
  413. m_OvercastValueEditbox.SetText(overcastVal.ToString());
  414. m_OvercastInterpolationEditbox.SetText(m_OvercastInterpolationTimeValue.ToString());
  415. if (m_OvercastDurationTimeValue == -1)
  416. m_OvercastDurationTimeValue = DURATION_MAX;
  417. m_OvercastDurationEditbox.SetText(m_OvercastDurationTimeValue.ToString());
  418. m_OvercastInterpolationMaxText.SetText(INTERPOLATION_MAX.ToString());
  419. m_OvercastDurationMaxText.SetText(DURATION_MAX.ToString());
  420. // RAIN
  421. float rainVal = m_RainValue;
  422. if (forceCurrent || m_RainValue == -1)
  423. {
  424. rainVal = GetGame().GetWeather().GetRain().GetActual();
  425. }
  426. m_RainValueEditbox.SetText(rainVal.ToString());
  427. m_RainInterpolationEditbox.SetText(m_RainInterpolationTimeValue.ToString());
  428. if (m_RainDurationTimeValue == -1)
  429. m_RainDurationTimeValue = DURATION_MAX;
  430. m_RainDurationEditbox.SetText(m_RainDurationTimeValue.ToString());
  431. m_RainInterpolationMaxText.SetText(INTERPOLATION_MAX.ToString());
  432. m_RainDurationMaxText.SetText(DURATION_MAX.ToString());
  433. // SNOWFALL
  434. float snowfallVal = m_SnowfallValue;
  435. if (forceCurrent || m_SnowfallValue == -1)
  436. {
  437. snowfallVal = GetGame().GetWeather().GetSnowfall().GetActual();
  438. }
  439. m_SnowfallValueEditbox.SetText(snowfallVal.ToString());
  440. m_SnowfallInterpolationEditbox.SetText(m_SnowfallInterpolationTimeValue.ToString());
  441. if (m_SnowfallDurationTimeValue == -1)
  442. m_SnowfallDurationTimeValue = DURATION_MAX;
  443. m_SnowfallDurationEditbox.SetText(m_SnowfallDurationTimeValue.ToString());
  444. m_SnowfallInterpolationMaxText.SetText(INTERPOLATION_MAX.ToString());
  445. m_SnowfallDurationMaxText.SetText(DURATION_MAX.ToString());
  446. // VOLFOG
  447. float volFogDistanceDensityValue = m_VolFogDistanceDensityValue;
  448. if (forceCurrent || m_VolFogDistanceDensityValue == -1)
  449. {
  450. volFogDistanceDensityValue = GetGame().GetWeather().GetDynVolFogDistanceDensity();
  451. }
  452. m_VolFogDistanceDensityEditbox.SetText(volFogDistanceDensityValue.ToString());
  453. m_VolFogDistanceDensityTimeValue = 0;
  454. m_VolFogDistanceDensityTimeEditbox.SetText(m_VolFogDistanceDensityTimeValue.ToString());
  455. float volFogHeightDensityValue = m_VolFogHeightDensityValue;
  456. if (forceCurrent || m_VolFogHeightDensityValue == -1)
  457. {
  458. volFogHeightDensityValue = GetGame().GetWeather().GetDynVolFogHeightDensity();
  459. }
  460. m_VolFogHeightDensityEditbox.SetText(volFogHeightDensityValue.ToString());
  461. m_VolFogHeightDensityTimeValue = 0;
  462. m_VolFogHeightDensityTimeEditbox.SetText(m_VolFogHeightDensityTimeValue.ToString());
  463. float volFogHeightBiasValue = m_VolFogHeightBiasValue;
  464. if (forceCurrent /*|| m_VolFogHeightBiasValue == -500*/)
  465. {
  466. volFogHeightBiasValue = GetGame().GetWeather().GetDynVolFogHeightBias();
  467. }
  468. m_VolFogHeightBiasEditbox.SetText(volFogHeightBiasValue.ToString());
  469. m_VolFogHeightBiasTimeValue = 0;
  470. m_VolFogHeightBiasTimeEditbox.SetText(m_VolFogHeightBiasTimeValue.ToString());
  471. // Wind Magnitude
  472. float windMagnitudeVal = m_WindMagnitudeValue;
  473. if (forceCurrent || m_WindMagnitudeValue == -1)
  474. {
  475. windMagnitudeVal = GetGame().GetWeather().GetWindMagnitude().GetActual();
  476. }
  477. m_WindMValueEditbox.SetText(windMagnitudeVal.ToString());
  478. m_WindMInterpolationEditbox.SetText(m_WindMInterpolationTimeValue.ToString());
  479. if (m_WindMDurationTimeValue == -1)
  480. m_WindMDurationTimeValue = DURATION_MAX;
  481. m_WindMDurationEditbox.SetText(m_WindMDurationTimeValue.ToString());
  482. m_WindMInterpolationMaxText.SetText(INTERPOLATION_MAX.ToString());
  483. m_WindMDurationMaxText.SetText(DURATION_MAX.ToString());
  484. // Wind Direction
  485. float windDirectionVal = m_WindDirectionValue;
  486. if (forceCurrent || m_WindDirectionValue == -1)
  487. {
  488. windDirectionVal = GetGame().GetWeather().GetWindDirection().GetActual();
  489. }
  490. m_WindDValueEditbox.SetText(windDirectionVal.ToString());
  491. m_WindDInterpolationEditbox.SetText(m_WindDInterpolationTimeValue.ToString());
  492. if (m_WindDDurationTimeValue == -1)
  493. m_WindDDurationTimeValue = DURATION_MAX;
  494. m_WindDDurationEditbox.SetText(m_WindDDurationTimeValue.ToString());
  495. m_WindDInterpolationMaxText.SetText(INTERPOLATION_MAX.ToString());
  496. m_WindDDurationMaxText.SetText(DURATION_MAX.ToString());
  497. UpdateSliderValues();
  498. }
  499. protected void PasteValues(string clipboard)
  500. {
  501. TStringArray values = new TStringArray();
  502. clipboard.Split(" ", values);
  503. if (values.Count() >= 9)
  504. {
  505. // FOG
  506. m_FogValueEditbox.SetText(values.Get(0));
  507. m_FogInterpolationEditbox.SetText(values.Get(1));
  508. m_FogDurationEditbox.SetText(values.Get(2));
  509. // OVERCAST
  510. m_OvercastValueEditbox.SetText(values.Get(3));
  511. m_OvercastInterpolationEditbox.SetText(values.Get(4));
  512. m_OvercastDurationEditbox.SetText(values.Get(5));
  513. // RAIN
  514. m_RainValueEditbox.SetText(values.Get(6));
  515. m_RainInterpolationEditbox.SetText(values.Get(7));
  516. m_RainDurationEditbox.SetText(values.Get(8));
  517. if (values.Count() >= 12)
  518. {
  519. // SNOWFALL
  520. m_SnowfallValueEditbox.SetText(values.Get(9));
  521. m_SnowfallInterpolationEditbox.SetText(values.Get(10));
  522. m_SnowfallDurationEditbox.SetText(values.Get(11));
  523. }
  524. if (values.Count() >= 18)
  525. {
  526. // VOL FOG
  527. m_VolFogDistanceDensityEditbox.SetText(values.Get(12));
  528. m_VolFogDistanceDensityTimeEditbox.SetText(values.Get(13));
  529. m_VolFogHeightDensityEditbox.SetText(values.Get(14));
  530. m_VolFogHeightDensityTimeEditbox.SetText(values.Get(15));
  531. m_VolFogHeightBiasEditbox.SetText(values.Get(16));
  532. m_VolFogHeightBiasTimeEditbox.SetText(values.Get(17));
  533. }
  534. if (values.Count() >= 24)
  535. {
  536. // WIND MAGNITUDE
  537. m_WindMValueEditbox.SetText(values.Get(18));
  538. m_WindMInterpolationEditbox.SetText(values.Get(19));
  539. m_WindMDurationEditbox.SetText(values.Get(20));
  540. // WIND DIRECTION
  541. m_WindDValueEditbox.SetText(values.Get(21));
  542. m_WindDInterpolationEditbox.SetText(values.Get(22));
  543. m_WindDDurationEditbox.SetText(values.Get(23));
  544. }
  545. }
  546. }
  547. protected string CopyValues()
  548. {
  549. string output;
  550. // FOG
  551. output += m_FogValueEditbox.GetText();
  552. output += " ";
  553. output += m_FogInterpolationEditbox.GetText();
  554. output += " ";
  555. output += m_FogDurationEditbox.GetText();
  556. output += " ";
  557. // OVERCAST
  558. output += m_OvercastValueEditbox.GetText();
  559. output += " ";
  560. output += m_OvercastInterpolationEditbox.GetText();
  561. output += " ";
  562. output += m_OvercastDurationEditbox.GetText();
  563. output += " ";
  564. // RAIN
  565. output += m_RainValueEditbox.GetText();
  566. output += " ";
  567. output += m_RainInterpolationEditbox.GetText();
  568. output += " ";
  569. output += m_RainDurationEditbox.GetText();
  570. output += " ";
  571. // SNOWFALL
  572. output += m_SnowfallValueEditbox.GetText();
  573. output += " ";
  574. output += m_SnowfallInterpolationEditbox.GetText();
  575. output += " ";
  576. output += m_SnowfallDurationEditbox.GetText();
  577. output += " ";
  578. // VOLFOG
  579. output += m_VolFogDistanceDensityEditbox.GetText();
  580. output += " ";
  581. output += m_VolFogDistanceDensityTimeEditbox.GetText();
  582. output += " ";
  583. output += m_VolFogHeightDensityEditbox.GetText();
  584. output += " ";
  585. output += m_VolFogHeightDensityTimeEditbox.GetText();
  586. output += " ";
  587. output += m_VolFogHeightBiasEditbox.GetText();
  588. output += " ";
  589. output += m_VolFogHeightBiasTimeEditbox.GetText();
  590. output += " ";
  591. // WIND MAGNITUDE
  592. output += m_WindMValueEditbox.GetText();
  593. output += " ";
  594. output += m_WindMInterpolationEditbox.GetText();
  595. output += " ";
  596. output += m_WindMDurationEditbox.GetText();
  597. output += " ";
  598. // WIND DIRECTION
  599. output += m_WindDValueEditbox.GetText();
  600. output += " ";
  601. output += m_WindDInterpolationEditbox.GetText();
  602. output += " ";
  603. output += m_WindDDurationEditbox.GetText();
  604. return output;
  605. }
  606. override bool OnChange(Widget w, int x, int y, bool finished)
  607. {
  608. bool rmbDrag = (GetMouseState(MouseState.RIGHT) & MB_PRESSED_MASK);
  609. bool immDrag = (GetMouseState(MouseState.LEFT) & MB_PRESSED_MASK) && KeyState(KeyCode.KC_LSHIFT);
  610. if (rmbDrag)
  611. {
  612. if (w == m_FogValueSetSlider)
  613. {
  614. m_OvercastValueSetSlider.SetCurrent(m_FogValueSetSlider.GetCurrent());
  615. m_RainValueSetSlider.SetCurrent(m_FogValueSetSlider.GetCurrent());
  616. m_SnowfallValueSetSlider.SetCurrent(m_FogValueSetSlider.GetCurrent());
  617. }
  618. else if (w == m_OvercastValueSetSlider)
  619. {
  620. m_FogValueSetSlider.SetCurrent(m_OvercastValueSetSlider.GetCurrent());
  621. m_RainValueSetSlider.SetCurrent(m_OvercastValueSetSlider.GetCurrent());
  622. m_SnowfallValueSetSlider.SetCurrent(m_OvercastValueSetSlider.GetCurrent());
  623. }
  624. else if (w == m_RainValueSetSlider)
  625. {
  626. m_FogValueSetSlider.SetCurrent(m_RainValueSetSlider.GetCurrent());
  627. m_OvercastValueSetSlider.SetCurrent(m_RainValueSetSlider.GetCurrent());
  628. m_SnowfallValueSetSlider.SetCurrent(m_RainValueSetSlider.GetCurrent());
  629. }
  630. else if (w == m_SnowfallValueSetSlider)
  631. {
  632. m_FogValueSetSlider.SetCurrent(m_SnowfallValueSetSlider.GetCurrent());
  633. m_OvercastValueSetSlider.SetCurrent(m_SnowfallValueSetSlider.GetCurrent());
  634. m_RainValueSetSlider.SetCurrent(m_SnowfallValueSetSlider.GetCurrent());
  635. }
  636. else if (w == m_FogInterpolationTimeSlider)
  637. {
  638. m_OvercastInterpolationTimeSlider.SetCurrent(m_FogInterpolationTimeSlider.GetCurrent());
  639. m_RainInterpolationTimeSlider.SetCurrent(m_FogInterpolationTimeSlider.GetCurrent());
  640. m_SnowfallInterpolationTimeSlider.SetCurrent(m_FogInterpolationTimeSlider.GetCurrent());
  641. }
  642. else if (w == m_OvercastInterpolationTimeSlider)
  643. {
  644. m_FogInterpolationTimeSlider.SetCurrent(m_OvercastInterpolationTimeSlider.GetCurrent());
  645. m_RainInterpolationTimeSlider.SetCurrent(m_OvercastInterpolationTimeSlider.GetCurrent());
  646. m_SnowfallInterpolationTimeSlider.SetCurrent(m_OvercastInterpolationTimeSlider.GetCurrent());
  647. }
  648. else if (w == m_RainInterpolationTimeSlider)
  649. {
  650. m_OvercastInterpolationTimeSlider.SetCurrent(m_RainInterpolationTimeSlider.GetCurrent());
  651. m_FogInterpolationTimeSlider.SetCurrent(m_RainInterpolationTimeSlider.GetCurrent());
  652. m_SnowfallInterpolationTimeSlider.SetCurrent(m_RainInterpolationTimeSlider.GetCurrent());
  653. }
  654. else if (w == m_SnowfallInterpolationTimeSlider)
  655. {
  656. m_FogInterpolationTimeSlider.SetCurrent(m_SnowfallInterpolationTimeSlider.GetCurrent());
  657. m_OvercastInterpolationTimeSlider.SetCurrent(m_SnowfallInterpolationTimeSlider.GetCurrent());
  658. m_RainInterpolationTimeSlider.SetCurrent(m_SnowfallInterpolationTimeSlider.GetCurrent());
  659. }
  660. else if (w == m_FogDurationTimeSlider)
  661. {
  662. m_RainDurationTimeSlider.SetCurrent(m_FogDurationTimeSlider.GetCurrent());
  663. m_OvercastDurationTimeSlider.SetCurrent(m_FogDurationTimeSlider.GetCurrent());
  664. m_SnowfallDurationTimeSlider.SetCurrent(m_FogDurationTimeSlider.GetCurrent());
  665. }
  666. else if (w == m_RainDurationTimeSlider)
  667. {
  668. m_FogDurationTimeSlider.SetCurrent(m_RainDurationTimeSlider.GetCurrent());
  669. m_OvercastDurationTimeSlider.SetCurrent(m_RainDurationTimeSlider.GetCurrent());
  670. m_SnowfallDurationTimeSlider.SetCurrent(m_RainDurationTimeSlider.GetCurrent());
  671. }
  672. else if (w == m_OvercastDurationTimeSlider)
  673. {
  674. m_RainDurationTimeSlider.SetCurrent(m_OvercastDurationTimeSlider.GetCurrent());
  675. m_FogDurationTimeSlider.SetCurrent(m_OvercastDurationTimeSlider.GetCurrent());
  676. m_SnowfallDurationTimeSlider.SetCurrent(m_OvercastDurationTimeSlider.GetCurrent());
  677. }
  678. else if (w == m_SnowfallDurationTimeSlider)
  679. {
  680. m_FogDurationTimeSlider.SetCurrent(m_SnowfallDurationTimeSlider.GetCurrent());
  681. m_OvercastDurationTimeSlider.SetCurrent(m_SnowfallDurationTimeSlider.GetCurrent());
  682. m_RainDurationTimeSlider.SetCurrent(m_SnowfallDurationTimeSlider.GetCurrent());
  683. }
  684. }
  685. SliderWidget slider = SliderWidget.Cast(w);
  686. if (slider)
  687. {
  688. if ((rmbDrag||immDrag) && !m_RPCTimer.IsRunning())
  689. {
  690. if (w == m_OvercastValueSetSlider || w == m_RainValueSetSlider || w == m_FogValueSetSlider || w == m_SnowfallValueSetSlider || w == m_VolFogDistanceDensitySlider || w == m_VolFogHeightDensitySlider || w == m_VolFogHeightBiasSlider || w == m_WindMValueSetSlider || w == m_WindDValueSetSlider)
  691. m_RPCTimer.Run(0.25, this, "InvokeSendRPC");
  692. }
  693. UpdateEditboxValues();
  694. return true;
  695. }
  696. EditBoxWidget box = EditBoxWidget.Cast(w);
  697. if (box)
  698. {
  699. UpdateSliderValues();
  700. return true;
  701. }
  702. return false;
  703. }
  704. void UpdateSliderValues()
  705. {
  706. //fog
  707. float editboxFogValue = m_FogValueEditbox.GetText().ToFloat();
  708. m_FogValueSetSlider.SetCurrent(editboxFogValue * 100);
  709. float editboxFogInterpolation = m_FogInterpolationEditbox.GetText().ToFloat();
  710. m_FogInterpolationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxFogInterpolation) * 100);
  711. float editboxFogDuration = m_FogDurationEditbox.GetText().ToFloat();
  712. m_FogDurationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxFogDuration) * 100);
  713. //overcast
  714. float editboxOvercastValue = m_OvercastValueEditbox.GetText().ToFloat();
  715. m_OvercastValueSetSlider.SetCurrent(editboxOvercastValue * 100);
  716. float editboxOvercastInterpolation = m_OvercastInterpolationEditbox.GetText().ToFloat();
  717. m_OvercastInterpolationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxOvercastInterpolation) * 100);
  718. float editboxOvercastDuration = m_OvercastDurationEditbox.GetText().ToFloat();
  719. m_OvercastDurationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxOvercastDuration) * 100);
  720. //rain
  721. float editboxRainValue = m_RainValueEditbox.GetText().ToFloat();
  722. m_RainValueSetSlider.SetCurrent(editboxRainValue * 100);
  723. float editboxRainInterpolation = m_RainInterpolationEditbox.GetText().ToFloat();
  724. m_RainInterpolationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxRainInterpolation) * 100);
  725. float editboxRainDuration = m_RainDurationEditbox.GetText().ToFloat();
  726. m_RainDurationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxRainDuration) * 100);
  727. //snowfall
  728. float editboxSnowfallValue = m_SnowfallValueEditbox.GetText().ToFloat();
  729. m_SnowfallValueSetSlider.SetCurrent(editboxSnowfallValue * 100);
  730. float editboxSnowfallInterpolation = m_SnowfallInterpolationEditbox.GetText().ToFloat();
  731. m_SnowfallInterpolationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxSnowfallInterpolation) * 100);
  732. float editboxSnowfallDuration = m_SnowfallDurationEditbox.GetText().ToFloat();
  733. m_SnowfallDurationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxSnowfallDuration) * 100);
  734. // vol fog
  735. float editboxVolFogDistanceDensity = m_VolFogDistanceDensityEditbox.GetText().ToFloat();
  736. m_VolFogDistanceDensitySlider.SetCurrent(editboxVolFogDistanceDensity);
  737. float editboxVolFogDistanceDensityTime = m_VolFogDistanceDensityTimeEditbox.GetText().ToFloat();
  738. m_VolFogDistanceDensityTimeSlider.SetCurrent(Math.InverseLerp(0,DURATION_MAX,editboxVolFogDistanceDensityTime) * 100);
  739. float editboxVolFogHeightDensity = m_VolFogHeightDensityEditbox.GetText().ToFloat();
  740. m_VolFogHeightDensitySlider.SetCurrent(editboxVolFogHeightDensity);
  741. float editboxVolFogHeightDensityTime = m_VolFogHeightDensityTimeEditbox.GetText().ToFloat();
  742. m_VolFogHeightDensityTimeSlider.SetCurrent(Math.InverseLerp(0,DURATION_MAX,editboxVolFogHeightDensityTime) * 100);
  743. float editboxVolFogHeightBias = m_VolFogHeightBiasEditbox.GetText().ToFloat();
  744. m_VolFogHeightBiasSlider.SetCurrent(editboxVolFogHeightBias);
  745. float editboxVolFogHeightBiasTime = m_VolFogHeightBiasTimeEditbox.GetText().ToFloat();
  746. m_VolFogHeightBiasTimeSlider.SetCurrent(Math.InverseLerp(0,DURATION_MAX,editboxVolFogHeightBiasTime) * 100);
  747. // wind magnitude
  748. float editboxWindMValue = m_WindMValueEditbox.GetText().ToFloat();
  749. m_WindMValueSetSlider.SetCurrent(editboxWindMValue);
  750. float editboxWindMInterpolation = m_WindMInterpolationEditbox.GetText().ToFloat();
  751. m_WindMInterpolationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxWindMInterpolation) * 100);
  752. float editboxWindMDuration = m_WindMDurationEditbox.GetText().ToFloat();
  753. m_WindMDurationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxWindMDuration) * 100);
  754. // wind direction
  755. float editboxWindDValue = m_WindDValueEditbox.GetText().ToFloat();
  756. m_WindDValueSetSlider.SetCurrent(editboxWindDValue);
  757. float editboxWindDInterpolation = m_WindDInterpolationEditbox.GetText().ToFloat();
  758. m_WindDInterpolationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxWindDInterpolation) * 100);
  759. float editboxWindDDuration = m_WindDDurationEditbox.GetText().ToFloat();
  760. m_WindDDurationTimeSlider.SetCurrent(Math.InverseLerp(0,INTERPOLATION_MAX,editboxWindDDuration) * 100);
  761. }
  762. void UpdateEditboxValues()
  763. {
  764. //fog
  765. m_FogInterpolationTimeValue = m_FogInterpolationTimeSlider.GetCurrent() / 100 * INTERPOLATION_MAX;
  766. m_FogInterpolationEditbox.SetText(m_FogInterpolationTimeValue.ToString());
  767. m_FogDurationTimeValue = m_FogDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  768. m_FogDurationEditbox.SetText(m_FogDurationTimeValue.ToString());
  769. m_FogValue = m_FogValueSetSlider.GetCurrent() / 100;
  770. m_FogValueEditbox.SetText(m_FogValue.ToString());
  771. //overcast
  772. m_OvercastInterpolationTimeValue = m_OvercastInterpolationTimeSlider.GetCurrent() / 100 * INTERPOLATION_MAX;
  773. m_OvercastInterpolationEditbox.SetText(m_OvercastInterpolationTimeValue.ToString());
  774. m_OvercastDurationTimeValue = m_OvercastDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  775. m_OvercastDurationEditbox.SetText(m_OvercastDurationTimeValue.ToString());
  776. m_OvercastValue = m_OvercastValueSetSlider.GetCurrent() / 100;
  777. m_OvercastValueEditbox.SetText(m_OvercastValue.ToString());
  778. //rain
  779. m_RainInterpolationTimeValue = m_RainInterpolationTimeSlider.GetCurrent() / 100 * INTERPOLATION_MAX;
  780. m_RainInterpolationEditbox.SetText(m_RainInterpolationTimeValue.ToString());
  781. m_RainDurationTimeValue = m_RainDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  782. m_RainDurationEditbox.SetText(m_RainDurationTimeValue.ToString());
  783. m_RainValue = m_RainValueSetSlider.GetCurrent() / 100;
  784. m_RainValueEditbox.SetText(m_RainValue.ToString());
  785. //snowfall
  786. m_SnowfallInterpolationTimeValue = m_SnowfallInterpolationTimeSlider.GetCurrent() / 100 * INTERPOLATION_MAX;
  787. m_SnowfallInterpolationEditbox.SetText(m_SnowfallInterpolationTimeValue.ToString());
  788. m_SnowfallDurationTimeValue = m_SnowfallDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  789. m_SnowfallDurationEditbox.SetText(m_SnowfallDurationTimeValue.ToString());
  790. m_SnowfallValue = m_SnowfallValueSetSlider.GetCurrent() / 100;
  791. m_SnowfallValueEditbox.SetText(m_SnowfallValue.ToString());
  792. // vol fog
  793. m_VolFogDistanceDensityValue = m_VolFogDistanceDensitySlider.GetCurrent();
  794. m_VolFogDistanceDensityEditbox.SetText(m_VolFogDistanceDensityValue.ToString());
  795. m_VolFogDistanceDensityTimeValue = m_VolFogDistanceDensityTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  796. m_VolFogDistanceDensityTimeEditbox.SetText(m_VolFogDistanceDensityTimeValue.ToString());
  797. m_VolFogHeightDensityValue = m_VolFogHeightDensitySlider.GetCurrent();
  798. m_VolFogHeightDensityEditbox.SetText(m_VolFogHeightDensityValue.ToString());
  799. m_VolFogHeightDensityTimeValue = m_VolFogHeightDensityTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  800. m_VolFogHeightDensityTimeEditbox.SetText(m_VolFogHeightDensityTimeValue.ToString());
  801. m_VolFogHeightBiasValue = m_VolFogHeightBiasSlider.GetCurrent();
  802. m_VolFogHeightBiasEditbox.SetText(m_VolFogHeightBiasValue.ToString());
  803. m_VolFogHeightBiasTimeValue = m_VolFogHeightBiasTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  804. m_VolFogHeightBiasTimeEditbox.SetText(m_VolFogHeightBiasTimeValue.ToString());
  805. //wind magnitude
  806. m_WindMInterpolationTimeValue = m_WindMInterpolationTimeSlider.GetCurrent() / 100 * INTERPOLATION_MAX;
  807. m_WindMInterpolationEditbox.SetText(m_WindMInterpolationTimeValue.ToString());
  808. m_WindMDurationTimeValue = m_WindMDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  809. m_WindMDurationEditbox.SetText(m_WindMDurationTimeValue.ToString());
  810. m_WindMagnitudeValue = m_WindMValueSetSlider.GetCurrent();
  811. m_WindMValueEditbox.SetText(m_WindMagnitudeValue.ToString());
  812. //wind direction
  813. m_WindDInterpolationTimeValue = m_WindDInterpolationTimeSlider.GetCurrent() / 100 * INTERPOLATION_MAX;
  814. m_WindDInterpolationEditbox.SetText(m_WindDInterpolationTimeValue.ToString());
  815. m_WindDDurationTimeValue = m_WindDDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  816. m_WindDDurationEditbox.SetText(m_WindDDurationTimeValue.ToString());
  817. m_WindDirectionValue = m_WindDValueSetSlider.GetCurrent();
  818. m_WindDValueEditbox.SetText(m_WindDirectionValue.ToString());
  819. }
  820. override bool OnClick(Widget w, int x, int y, int button)
  821. {
  822. if (w == m_HideUIButton)
  823. {
  824. ToogleUIVisibility();
  825. }
  826. else if (w == m_ApplyButton)
  827. {
  828. SendRPC(GetRPCDataNormal());
  829. return true;
  830. }
  831. else if (w == m_UpdateButton)
  832. {
  833. InitValues(true);
  834. return true;
  835. }
  836. else if (w == m_ResetButton)
  837. {
  838. ResetValues();
  839. InitValues(true);
  840. return true;
  841. }
  842. else if (w == m_CopyButton)
  843. {
  844. string output = CopyValues();
  845. GetGame().CopyToClipboard(output);
  846. return true;
  847. }
  848. else if (w == m_PasteButton)
  849. {
  850. string input;
  851. GetGame().CopyFromClipboard(input);
  852. PasteValues(input);
  853. UpdateSliderValues();
  854. return true;
  855. }
  856. else if (w == m_LoadPresetButton)
  857. {
  858. LoadWeatherPreset();
  859. return true;
  860. }
  861. else if (w == m_SavePresetButton)
  862. {
  863. SaveWeatherPreset();
  864. return true;
  865. }
  866. else if (w == m_DeletePresetButton)
  867. {
  868. DeleteWeatherPreset();
  869. return true;
  870. }
  871. return false;
  872. }
  873. protected void SaveWeatherPreset()
  874. {
  875. if (m_IsSavingPreset || m_WeatherPresetEditbox.GetText() == "")
  876. return;
  877. m_IsSavingPreset = true;
  878. m_ConfigDebugProfile.AddWeatherPreset(m_WeatherPresetEditbox.GetText(), m_OvercastValueEditbox.GetText().ToFloat(), m_RainValueEditbox.GetText().ToFloat(), m_SnowfallValueEditbox.GetText().ToFloat(), m_FogValueEditbox.GetText().ToFloat(), m_WindMValueEditbox.GetText().ToFloat(), m_WindDValueEditbox.GetText().ToFloat(), m_VolFogDistanceDensityEditbox.GetText().ToFloat(), m_VolFogHeightDensityEditbox.GetText().ToFloat(), m_VolFogHeightBiasEditbox.GetText().ToFloat());
  879. ReloadWeatherPresetsList();
  880. m_IsSavingPreset = false;
  881. }
  882. protected void DeleteWeatherPreset()
  883. {
  884. if (!m_SelectedWeatherPreset)
  885. return;
  886. m_ConfigDebugProfile.RemoveWeatherPreset(m_SelectedWeatherPreset.Name);
  887. ReloadWeatherPresetsList();
  888. }
  889. protected void LoadWeatherPreset()
  890. {
  891. if (!m_SelectedWeatherPreset)
  892. return;
  893. m_OvercastValueSetSlider.SetCurrent(m_SelectedWeatherPreset.WOvercast * 100);
  894. m_RainValueSetSlider.SetCurrent(m_SelectedWeatherPreset.WRain * 100);
  895. m_SnowfallValueSetSlider.SetCurrent(m_SelectedWeatherPreset.WSnow * 100);
  896. m_FogValueSetSlider.SetCurrent(m_SelectedWeatherPreset.WFog * 100);
  897. m_WindMValueSetSlider.SetCurrent(m_SelectedWeatherPreset.WWindMagnitude);
  898. m_WindDValueSetSlider.SetCurrent(m_SelectedWeatherPreset.WWindDir);
  899. m_VolFogDistanceDensitySlider.SetCurrent(m_SelectedWeatherPreset.WVolFogDD);
  900. m_VolFogHeightDensitySlider.SetCurrent(m_SelectedWeatherPreset.WVolFogHD);
  901. m_VolFogHeightBiasSlider.SetCurrent(m_SelectedWeatherPreset.WVolFogHB);
  902. UpdateEditboxValues();
  903. UpdateSliderValues();
  904. InvokeSendRPC();
  905. }
  906. protected void OnListItemSelected(int row, int column)
  907. {
  908. m_SelectedWeatherPreset = m_ConfigDebugProfile.GetWeatherPresets().Get(row);
  909. m_WeatherPresetEditbox.SetText(m_SelectedWeatherPreset.Name);
  910. }
  911. protected void ToogleUIVisibility()
  912. {
  913. m_UIVisibilityState = !m_UIVisibilityState;
  914. m_ScriptConsole.ShowMenuBackground(m_UIVisibilityState);
  915. m_Root.FindAnyWidget("WeatherRoot").Show(m_UIVisibilityState);
  916. m_HideUIIcon.SetImage(m_UIVisibilityState);
  917. }
  918. //RPC data where each value is strickly as shown in the UI on the sliders
  919. protected DebugWeatherRPCData GetRPCDataNormal()
  920. {
  921. DebugWeatherRPCData data = new DebugWeatherRPCData();
  922. // FOG
  923. data.m_FogValue = m_FogValueSetSlider.GetCurrent() / 100;
  924. data.m_FogInterpolation = m_FogInterpolationTimeValue;
  925. data.m_FogDuration = m_FogDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  926. // Rain
  927. data.m_RainValue = m_RainValueSetSlider.GetCurrent() / 100;
  928. data.m_RainInterpolation = m_RainInterpolationTimeValue;
  929. data.m_RainDuration = m_RainDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  930. // OVERCAST
  931. data.m_OvercastValue = m_OvercastValueSetSlider.GetCurrent() / 100;
  932. data.m_OvercastInterpolation = m_OvercastInterpolationTimeValue;
  933. data.m_OvercastDuration = m_OvercastDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  934. // SNOWFALL
  935. data.m_SnowfallValue = m_SnowfallValueSetSlider.GetCurrent() / 100;
  936. data.m_SnowfallInterpolation = m_SnowfallInterpolationTimeValue;
  937. data.m_SnowfallDuration = m_SnowfallDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  938. // VOLFOG
  939. data.m_VolFogDistanceDensity = m_VolFogDistanceDensitySlider.GetCurrent();
  940. data.m_VolFogDistanceDensityTime = m_VolFogDistanceDensityTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  941. data.m_VolFogHeightDensity = m_VolFogHeightDensitySlider.GetCurrent();
  942. data.m_VolFogHeightDensityTime = m_VolFogHeightDensityTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  943. data.m_VolFogHeightBias = m_VolFogHeightBiasSlider.GetCurrent();
  944. data.m_VolFogHeightBiasTime = m_VolFogHeightBiasTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  945. // Wind Magnitude
  946. data.m_WindMagnitudeValue = m_WindMValueSetSlider.GetCurrent();
  947. data.m_WindMInterpolation = m_WindMInterpolationTimeValue;
  948. data.m_WindMDuration = m_WindMDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  949. // Wind Direction
  950. data.m_WindDirectionValue = m_WindDValueSetSlider.GetCurrent();
  951. data.m_WindDInterpolation = m_WindDInterpolationTimeValue;
  952. data.m_WindDDuration = m_WindDDurationTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  953. return data;
  954. }
  955. //RPC data where the duration and interpolation times are forced(their slider values are ignored) to allow for immediate change and lasting effect
  956. protected DebugWeatherRPCData GetRPCDataImmediate()
  957. {
  958. Print(ToString() + "::GetRPCDataImmediate");
  959. DebugWeatherRPCData data = new DebugWeatherRPCData();
  960. // FOG
  961. data.m_FogValue = m_FogValueSetSlider.GetCurrent() / 100;
  962. data.m_FogInterpolation = 0;
  963. data.m_FogDuration = 960;
  964. // Rain
  965. data.m_RainValue = m_RainValueSetSlider.GetCurrent() / 100;
  966. data.m_RainInterpolation = 0;
  967. data.m_RainDuration = 960;
  968. // OVERCAST
  969. data.m_OvercastValue = m_OvercastValueSetSlider.GetCurrent() / 100;
  970. data.m_OvercastInterpolation = 0;
  971. data.m_OvercastDuration = 960;
  972. // SNOWFALL
  973. data.m_SnowfallValue = m_SnowfallValueSetSlider.GetCurrent() / 100;
  974. data.m_SnowfallInterpolation = 0;
  975. data.m_SnowfallDuration = 960;
  976. // VOLFOG
  977. data.m_VolFogDistanceDensity = m_VolFogDistanceDensitySlider.GetCurrent();
  978. data.m_VolFogDistanceDensityTime = m_VolFogDistanceDensityTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  979. data.m_VolFogHeightDensity = m_VolFogHeightDensitySlider.GetCurrent();
  980. data.m_VolFogHeightDensityTime = m_VolFogHeightDensityTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  981. data.m_VolFogHeightBias = m_VolFogHeightBiasSlider.GetCurrent();
  982. data.m_VolFogHeightBiasTime = m_VolFogHeightBiasTimeSlider.GetCurrent() / 100 * DURATION_MAX;
  983. // Wind Magnitude
  984. data.m_WindMagnitudeValue = m_WindMValueSetSlider.GetCurrent();
  985. data.m_WindMInterpolation = 0;
  986. data.m_WindMDuration = 960;
  987. // Wind Direction
  988. data.m_WindDirectionValue = m_WindDValueSetSlider.GetCurrent();
  989. data.m_WindDInterpolation = 0;
  990. data.m_WindDDuration = 960;
  991. return data;
  992. }
  993. protected void SendRPC(DebugWeatherRPCData data)
  994. {
  995. Print(ToString() + "::SendRPC");
  996. PlayerIdentity identity = null;
  997. if (GetGame().GetPlayer())
  998. {
  999. identity = GetGame().GetPlayer().GetIdentity();
  1000. }
  1001. GetGame().RPCSingleParam(null, ERPCs.DEV_SET_WEATHER, new Param1<DebugWeatherRPCData>(data), true, identity);
  1002. }
  1003. protected void InvokeSendRPC()
  1004. {
  1005. Print(ToString() + "::InvokeSendRPC");
  1006. SendRPC(GetRPCDataImmediate());
  1007. //m_RPCTimer.Stop();
  1008. }
  1009. protected void UpdateWeatherValues()
  1010. {
  1011. float overcast = GetGame().GetWeather().GetOvercast().GetActual();
  1012. m_OvercastValueGetSlider.SetCurrent(overcast * 100);
  1013. m_OvercastValueSetText.SetText(overcast.ToString());
  1014. float fog = GetGame().GetWeather().GetFog().GetActual();
  1015. m_FogValueGetSlider.SetCurrent(fog * 100);
  1016. m_FogValueSetText.SetText(fog.ToString());
  1017. float rain = GetGame().GetWeather().GetRain().GetActual();
  1018. m_RainValueGetSlider.SetCurrent(rain * 100);
  1019. m_RainValueSetText.SetText(rain.ToString());
  1020. float snowfall = GetGame().GetWeather().GetSnowfall().GetActual();
  1021. m_SnowfallValueGetSlider.SetCurrent(snowfall * 100);
  1022. m_SnowfallValueSetText.SetText(snowfall.ToString());
  1023. float volFogDistanceDensity = GetGame().GetWeather().GetDynVolFogDistanceDensity();
  1024. //m_VolFogDistanceDensitySlider.SetCurrent(volFogDistanceDensity * 100);
  1025. m_VolFogDistanceDensitySetText.SetText(volFogDistanceDensity.ToString());
  1026. float volFogHeightDensity = GetGame().GetWeather().GetDynVolFogHeightDensity();
  1027. //m_VolFogHeightDensitySlider.SetCurrent(volFogHeightDensity * 100);
  1028. m_VolFogHeightDensitySetText.SetText(volFogHeightDensity.ToString());
  1029. float volFogHeightBias = GetGame().GetWeather().GetDynVolFogHeightBias();
  1030. //m_VolFogHeightBiasSlider.SetCurrent(volFogHeightBias * 100);
  1031. m_VolFogHeightBiasSetText.SetText(volFogHeightBias.ToString());
  1032. float windMagnitude = GetGame().GetWeather().GetWindMagnitude().GetActual();
  1033. m_WindMValueGetSlider.SetCurrent(windMagnitude);
  1034. m_WindMValueSetText.SetText(windMagnitude.ToString());
  1035. float windDirection = GetGame().GetWeather().GetWindDirection().GetActual();
  1036. m_WindDValueGetSlider.SetCurrent(windDirection);
  1037. m_WindDValueSetText.SetText(windDirection.ToString());
  1038. }
  1039. override void Update(float timeslice)
  1040. {
  1041. super.Update(timeslice);
  1042. UpdateWeatherValues();
  1043. m_IsCAPSPressed = KeyState(KeyCode.KC_CAPITAL);
  1044. if (m_IsCAPSPressed && !m_MouseMovementEnabled && (!GetFocus() || GetFocus() != m_WeatherPresetEditbox) && GetWidgetUnderCursor() != m_WeatherPresetEditbox)
  1045. {
  1046. if (GetGame() && GetGame().GetMission() && GetGame().GetUIManager())
  1047. {
  1048. m_MouseMovementEnabled = true;
  1049. GetGame().GetMission().RemoveActiveInputExcludes({"aiming"});
  1050. GetGame().GetUIManager().ShowUICursor(false);
  1051. }
  1052. }
  1053. else if (!m_IsCAPSPressed && m_MouseMovementEnabled)
  1054. {
  1055. if (GetGame() && GetGame().GetMission() && GetGame().GetUIManager())
  1056. {
  1057. m_MouseMovementEnabled = false;
  1058. GetGame().GetMission().AddActiveInputExcludes({"aiming"});
  1059. GetGame().GetUIManager().ShowUICursor(true);
  1060. }
  1061. }
  1062. if (GetFocus() == m_WeatherPresetEditbox && !m_CanUseMovement)
  1063. {
  1064. m_CanUseMovement = true;
  1065. GetGame().GetMission().RemoveActiveInputExcludes({"UAMoveForward", "UAMoveBack", "UAMoveLeft", "UAMoveRight", "UAWalkRunTemp"});
  1066. }
  1067. else if ((GetFocus() != m_WeatherPresetEditbox || !GetFocus()) && GetWidgetUnderCursor() != m_WeatherPresetEditbox && m_CanUseMovement)
  1068. {
  1069. m_CanUseMovement = false;
  1070. GetGame().GetMission().AddActiveInputExcludes({"UAMoveForward", "UAMoveBack", "UAMoveLeft", "UAMoveRight", "UAWalkRunTemp"});
  1071. }
  1072. }
  1073. override bool OnMouseEnter(Widget w, int x, int y)
  1074. {
  1075. ButtonHighlight(w);
  1076. return false;
  1077. }
  1078. override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
  1079. {
  1080. ButtonNormal(w);
  1081. return false;
  1082. }
  1083. protected void ButtonHighlight(Widget w)
  1084. {
  1085. ButtonWidget wb;
  1086. if (Class.CastTo(wb, w))
  1087. {
  1088. if (wb.GetName() == "ButtonHide")
  1089. {
  1090. ImageWidget iw = ImageWidget.Cast(wb.FindAnyWidget(wb.GetName() + "Icon"));
  1091. iw.SetColor(ARGB(255, 0, 0, 0));
  1092. }
  1093. else
  1094. {
  1095. wb.SetTextColor(ARGB(255, 0, 0, 0));
  1096. }
  1097. }
  1098. }
  1099. protected void ButtonNormal(Widget w)
  1100. {
  1101. ButtonWidget wb;
  1102. if (Class.CastTo(wb, w))
  1103. {
  1104. if (wb.GetName() == "ButtonHide")
  1105. {
  1106. ImageWidget iw = ImageWidget.Cast(wb.FindAnyWidget(wb.GetName() + "Icon"));
  1107. iw.SetColor(ARGB(255, 255, 255, 255));
  1108. }
  1109. else
  1110. {
  1111. wb.SetTextColor(ARGB(255, 255, 255, 255));
  1112. }
  1113. }
  1114. }
  1115. }
  1116. class ScriptConsoleWeatherWindTab : ScriptConsoleTabBase
  1117. {
  1118. protected ScriptConsoleWeatherTab m_WeatherTab;
  1119. void ScriptConsoleWeatherWindTab(Widget root, ScriptConsole console, Widget button, ScriptConsoleTabBase parent = null)
  1120. {
  1121. m_Parent = parent;
  1122. m_WeatherTab = ScriptConsoleWeatherTab.Cast(parent);
  1123. }
  1124. }