Guest User

Untitled

a guest
Feb 2nd, 2016
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.00 KB | None | 0 0
  1. $Pref::Survival::DayCycle::Length = 12;
  2. $Pref::Survival::DayCycle::Precition = 2.5;
  3. $EnvGUI::SimpleMode = 0;
  4. setHourOfDay(12);
  5.  
  6. function dayNightCycleLoop() {
  7. if($Pref::Survival::DayCycle::doDayCycle) {
  8. setHourOfDay($Survival::TimeOfDay + $Pref::Survival::DayCycle::Length/24/$Pref::Survival::DayCycle::Precition);
  9. //echo("Doing tick!");
  10. schedule($Pref::Survival::DayCycle::Length*1000*60/24/$Pref::Survival::DayCycle::Precition, 0, "dayNightCycleLoop");
  11. }
  12. }
  13.  
  14. function servercmdStartDayCycle(%client) {
  15. //if(%client.isAdmin) {
  16. $Pref::Survival::DayCycle::doDayCycle = true;
  17. talk("Day cycle now running!");
  18. dayNightCycleLoop();
  19. //}
  20. }
  21.  
  22. function foggyDays() {
  23. $Pref::Survival::DayCycle::Disasters = 1.0;
  24. }
  25.  
  26. function servercmdStopDayCycle(%client) {
  27. //if(%client.isAdmin) { //give power to the people!
  28. $Pref::Survival::DayCycle::doDayCycle = false;
  29. talk("Day cycle stopped running!");
  30. //}
  31. }
  32.  
  33. function onHourChange(%hour) {
  34. //Package it!
  35. }
  36.  
  37.  
  38. function setHourOfDay(%hour) {
  39. if(%hour > 23)
  40. %hour = 0;
  41. %actualHour = %hour;
  42. $Survival::TimeOfDay = %hour;
  43. if(%hour > 12) {
  44. %hour = %hour-12;
  45. %hour = 12-%hour;
  46. }
  47. setEnvironment("AmbientLightColor",0.35/12 * %hour + 0.6/12 SPC 0.35/12 * %hour + 0.6/12 SPC 0.35/12 * %hour + 0.6/12 SPC "1.000000");
  48. setEnvironment("DirectLightColor",0.53/12 * %hour + 0/12 SPC 0.53/12 * %hour + 0/12 SPC 0.53/12 * %hour + 0/12 SPC "1.000000");
  49. setEnvironment("FogColor",1/12 * %hour + 0/12 SPC 1/12 * %hour + 0/12 SPC 1/12 * %hour + 0/12 SPC 0/11 * %hour + 0/11);
  50. setEnvironment("FogDistance",1000/2 * %hour + -10000/2);
  51. setEnvironment("FogHeight","0");
  52. setEnvironment("GroundColor","1.000000 1.000000 0.700000 1.000000");
  53. setEnvironment("ShadowColor",0.4/12 * %hour + 0/12 SPC 0.4/12 * %hour + 0/12 SPC 0.4/12 * %hour + 0/12 SPC "1.000000");
  54. setEnvironment("SkyColor",1/12 * %hour + 0/12 SPC 1/12 * %hour + 0/12 SPC 1/12 * %hour + 0/12 SPC "1.000000");
  55. setEnvironment("SunAzimuth","160");
  56. setEnvironment("SunElevation",200/23 * %actualHour + -230/23);
  57. setEnvironment("SunFlareColor",0.4/12 * %hour + 0/12 SPC 0.5/12 * %hour + 0/12 SPC 0.7/12 * %hour + 0/12 SPC "1.000000");
  58. setEnvironment("SunFlareSize",1/12 * %hour + 0/12);
  59. // setEnvironment("UnderWaterColor",139.4/12 * %hour + 7.2/12 SPC 177.3/12 * %hour + 8.4/12 SPC 254/12 * %hour + 12/12 SPC 133.5/12 * %hour + 6/12);
  60. // setEnvironment("VignetteColor","0.000000 0.000000 0.000000 0.000000"); //Doesn't seem to exist.
  61. setEnvironment("VisibleDistance",1000/-38 * %hour + -50000/-38);
  62. // setEnvironment("WaterColor",139.4/12 * %hour + 7.2/12 SPC 177.3/12 * %hour + 8.4/12 SPC 254/12 * %hour + 12/12 SPC 133.5/12 * %hour + 6/12);
  63. // setEnvironment("WaterHeight",0.3/12 * %hour + 36/12);
  64. if(mFloor(%actualHour) == %actualHour) {
  65. onHourChange(%actualHour);
  66. }
  67. }
  68.  
  69. function getEquation(%x1,%y1,%x2,%y2) {
  70. echo(%y2 - %y1 @ "/" @ %x2 - %x1 @ " * %hour + " @ %x2*%y1 - %x1*%y2 @ "/" @ %x2 - %x1);
  71. setClipboard(%y2 - %y1 @ "/" @ %x2 - %x1 @ " * %hour + " @ %x2*%y1 - %x1*%y2 @ "/" @ %x2 - %x1);
  72. }
  73. function exportHourEnvironmentSettings() {
  74. %file = new FileObject();
  75. %file.openForAppend("config/server/envSettings.cs");
  76. %file.writeLine("setEnvironment(\"AmbientLightColor\",\"" @ $EnvGUI::AmbientLightColor @ "\");");
  77. %file.writeLine("setEnvironment(\"DirectLightColor\",\"" @ $EnvGUIServer::DirectLightColor @ "\");");
  78. %file.writeLine("setEnvironment(\"FogColor\",\"" @ $EnvGUIServer::FogColor @ "\");");
  79. %file.writeLine("setEnvironment(\"FogDistance\",\"" @ $EnvGUIServer::FogDistance @ "\");");
  80. %file.writeLine("setEnvironment(\"FogHeight\",\"" @ $EnvGUIServer::FogHeight @ "\");");
  81. %file.writeLine("setEnvironment(\"GroundColor\",\"" @ $EnvGUIServer::GroundColor @ "\");");
  82. %file.writeLine("setEnvironment(\"ShadowColor\",\"" @ $EnvGUIServer::ShadowColor @ "\");");
  83. %file.writeLine("setEnvironment(\"SkyColor\",\"" @ $EnvGUIServer::SkyColor @ "\");");
  84. %file.writeLine("setEnvironment(\"SunAzimuth\",\"" @ $EnvGUIServer::SunAzimuth @ "\");");
  85. %file.writeLine("setEnvironment(\"SunElevation\",\"" @ $EnvGUIServer::SunElevation @ "\");");
  86. %file.writeLine("setEnvironment(\"SunFlareColor\",\"" @ $EnvGUIServer::SunFlareColor @ "\");");
  87. %file.writeLine("setEnvironment(\"SunFlareSize\",\"" @ $EnvGUIServer::SunFlareSize @ "\");");
  88. %file.writeLine("setEnvironment(\"UnderWaterColor\",\"" @ $EnvGUIServer::UnderWaterColor @ "\");");
  89. %file.writeLine("setEnvironment(\"VignetteColor\",\"" @ $EnvGUIServer::VignetteColor @ "\");");
  90. %file.writeLine("setEnvironment(\"VisibleDistance\",\"" @ $EnvGUIServer::VisibleDistance @ "\");");
  91. %file.writeLine("setEnvironment(\"WaterColor\",\"" @ $EnvGUIServer::WaterColor @ "\");");
  92. %file.writeLine("setEnvironment(\"WaterHeight\",\"" @ $EnvGUIServer::WaterHeight @ "\");");
  93. %file.close();
  94. %file.delete();
  95. }
  96.  
  97. //fuck you
  98. function setEnvironment(%varName, %value)
  99. {
  100. // if ($EnvGuiServer["::" @ %varName] $= %value)
  101. // return;
  102.  
  103. switch$ (%varName)
  104. {
  105. case "SimpleMode":
  106. $EnvGuiServer::SimpleMode = mClamp(%value, 0, 1);
  107. EnvGuiServer::setSimpleMode();
  108.  
  109. if (!$EnvGuiServer::SimpleMode)
  110. {
  111. if (!$EnvGuiServer::HasSetAdvancedOnce)
  112. EnvGuiServer::readAdvancedVarsFromSimple();
  113.  
  114. EnvGuiServer::setAdvancedMode();
  115. }
  116.  
  117. case "SkyIdx":
  118. $EnvGuiServer::SkyIdx = mClamp(%value, 0, $EnvGuiServer::SkyCount);
  119. setSkyBox($EnvGuiServer::Sky[$EnvGuiServer::SkyIdx]);
  120.  
  121. case "WaterIdx":
  122. $EnvGuiServer::WaterIdx = mClamp(%value, 0, $EnvGuiServer::WaterCount);
  123. setWater($EnvGuiServer::Water[$EnvGuiServer::WaterIdx]);
  124.  
  125. case "GroundIdx":
  126. $EnvGuiServer::GroundIdx = mClamp(%value, 0, $EnvGuiServer::GroundCount);
  127. setGround($EnvGuiServer::Ground[$EnvGuiServer::GroundIdx]);
  128.  
  129. case "SunFlareTopIdx":
  130. $EnvGuiServer::SunFlareTopIdx = mClamp(%value, 0, $EnvGuiServer::SunFlareCount);
  131. %top = $EnvGuiServer::SunFlareTop[$EnvGuiServer::SunFlareTopIdx];
  132. %bottom = $EnvGuiServer::SunFlareBottom[$EnvGuiServer::SunFlareBottomIdx];
  133. SunLight.setFlareBitmaps(%top, %bottom);
  134.  
  135. case "SunFlareBottomIdx":
  136. $EnvGuiServer::SunFlareBottomIdx = mClamp(%value, 0, $EnvGuiServer::SunFlareCount);
  137. %top = $EnvGuiServer::SunFlareTop[$EnvGuiServer::SunFlareTopIdx];
  138. %bottom = $EnvGuiServer::SunFlareBottom[$EnvGuiServer::SunFlareBottomIdx];
  139. SunLight.setFlareBitmaps(%top, %bottom);
  140.  
  141. case "DayOffset":
  142. $EnvGuiServer::DayOffset = mClampF(%value, 0, 1);
  143. DayCycle.setDayOffset($EnvGuiServer::DayOffset);
  144.  
  145. case "DayLength":
  146. $EnvGuiServer::DayLength = mClamp(%value, 0, 86400);
  147. DayCycle.setDayLength($EnvGuiServer::DayLength);
  148.  
  149. case "DayCycleEnabled":
  150. $EnvGuiServer::DayCycleEnabled = mClamp(%value, 0, 1);
  151. DayCycle.setEnabled($EnvGuiServer::DayCycleEnabled);
  152.  
  153. case "DayCycleIdx":
  154. $EnvGuiServer::DayCycleIdx = mClamp(%value, 0, $EnvGuiServer::DayCycleCount);
  155. %dayCycle = $EnvGuiServer::DayCycle[$EnvGuiServer::DayCycleIdx];
  156. echo("server setting daycycle to " @ %dayCycle);
  157. loadDayCycle(%dayCycle);
  158.  
  159. case "SunAzimuth":
  160. $EnvGuiServer::SunAzimuth = mClampF(%value, 0, 360);
  161. Sun.azimuth = $EnvGuiServer::SunAzimuth;
  162. Sun.sendUpdate();
  163.  
  164. case "SunElevation":
  165. $EnvGuiServer::SunElevation = mClampF(%value, -10, 190);
  166. Sun.elevation = $EnvGuiServer::SunElevation;
  167. Sun.sendUpdate();
  168.  
  169. case "DirectLightColor":
  170. $EnvGuiServer::DirectLightColor = getColorF(%value);
  171. Sun.color = $EnvGuiServer::DirectLightColor;
  172. Sun.sendUpdate();
  173.  
  174. case "AmbientLightColor":
  175. $EnvGuiServer::AmbientLightColor = getColorF(%value);
  176. Sun.ambient = $EnvGuiServer::AmbientLightColor;
  177. Sun.sendUpdate();
  178.  
  179. case "ShadowColor":
  180. $EnvGuiServer::ShadowColor = getColorF(%value);
  181. Sun.shadowColor = $EnvGuiServer::DirectLightColor;
  182. Sun.sendUpdate();
  183.  
  184. case "SunFlareColor":
  185. $EnvGuiServer::SunFlareColor = getColorF(%value);
  186. SunLight.color = $EnvGuiServer::SunFlareColor;
  187. SunLight.sendUpdate();
  188.  
  189. case "SunFlareSize":
  190. $EnvGuiServer::SunFlareSize = mClampF(%value, 0, 10);
  191. // Badspot, why not just SunLight.setFlareSize(...);?
  192. SunLight.flareSize = $EnvGuiServer::SunFlareSize;
  193. SunLight.sendUpdate();
  194.  
  195. case "SunFlareIdx":
  196. $EnvGuiServer::SunFlareIdx = mClamp(%value, 0, $EnvGuiServer::SunFlareCount);
  197. // ... what? Why does this exist? There is no "SunFlareIdx" system.
  198. // Get outta' here.
  199.  
  200. case "VisibleDistance":
  201. $EnvGuiServer::VisibleDistance = mClampF(%value, 0, 1000);
  202. Sky.visibleDistance = $EnvGuiServer::VisibleDistance;
  203. Sky.sendUpdate();
  204.  
  205. case "FogDistance":
  206. $EnvGuiServer::FogDistance = mClampF(%value, 0, 1000);
  207. Sky.fogDistance = $EnvGuiServer::FogDistance;
  208. Sky.sendUpdate();
  209.  
  210. case "FogHeight":
  211. $EnvGuiServer::FogHeight = mClampF(%value, 0, 1000);
  212. // Nothing to see here...
  213.  
  214. case "FogColor":
  215. $EnvGuiServer::FogColor = getColorF(%value);
  216. Sky.fogColor = $EnvGuiServer::FogColor;
  217. Sky.sendUpdate();
  218.  
  219. case "WaterColor":
  220. $EnvGuiServer::WaterColor = getColorF(%value);
  221.  
  222. if (isObject(WaterPlane))
  223. {
  224. WaterPlane.color = getColorI($EnvGuiServer::WaterColor);
  225. WaterPlane.blend = getWord(WaterPlane.color, 3) < 255;
  226. WaterPlane.sendUpdate();
  227. }
  228.  
  229. //updateWaterFog();
  230.  
  231. case "WaterHeight":
  232. $EnvGuiServer::WaterHeight = mClampF(%value, 0, 100);
  233.  
  234. if (isObject(WaterPlane))
  235. {
  236. %pos = getWords(GroundPlane.getTransform(), 0, 2);
  237. %pos = vectorAdd(%pos, "0 0" SPC $EnvGuiServer::WaterHeight);
  238.  
  239. WaterPlane.setTransform(%pos SPC "0 0 1 0");
  240. WaterPlane.sendUpdate();
  241.  
  242. //updateWaterFog();
  243.  
  244. if (isObject(WaterZone))
  245. {
  246. %pos = vectorSub(%pos, "0 0 99.5");
  247. %pos = vectorSub(%pos, "500000 -500000 0");
  248. WaterZone.setTransform(%pos SPC "0 0 1 0");
  249. }
  250. }
  251.  
  252. case "UnderWaterColor":
  253. $EnvGuiServer::UnderWaterColor = getColorF(%value);
  254.  
  255. if (isObject(WaterZone))
  256. {
  257. WaterZone.setWaterColor($EnvGuiServer::UnderWaterColor);
  258. }
  259.  
  260. case "SkyColor":
  261. $EnvGuiServer::SkyColor = getColorF(%value);
  262. // Something is off about this one...
  263. Sky.skyColor = $EnvGuiServer::SkyColor;
  264. Sky.sendUpdate();
  265.  
  266. // Should probably combine this into one
  267. // case "WaterScrollX" or "WaterScrollY":
  268. case "WaterScrollX":
  269. $EnvGuiServer::WaterScrollX = mClampF(%value, -10, 10);
  270. $EnvGuiServer::WaterScrollY = mClampF($EnvGuiServer::WaterScrollY, -10, 10);
  271.  
  272. if (isObject(WaterPlane))
  273. {
  274. WaterPlane.scrollSpeed = $EnvGuiServer::WaterScrollX SPC $EnvGuiServer::WaterScrollY;
  275. WaterPlane.sendUpdate();
  276. }
  277.  
  278. if (isObject(WaterZone))
  279. {
  280. %fx = $EnvGuiServer::WaterScrollX * 414;
  281. %fy = $EnvGuiServer::WaterScrollY * -414;
  282.  
  283. WaterZone.appliedForce = %fx SPC %fy SPC 0;
  284. WaterZone.sendUpdate();
  285. }
  286.  
  287. case "WaterScrollY":
  288. $EnvGuiServer::WaterScrollY = mClampF(%value, -10, 10);
  289. $EnvGuiServer::WaterScrollX = mClampF($EnvGuiServer::WaterScrollX, -10, 10);
  290.  
  291. if (isObject(WaterPlane))
  292. {
  293. WaterPlane.scrollSpeed = $EnvGuiServer::WaterScrollX SPC $EnvGuiServer::WaterScrollY;
  294. WaterPlane.sendUpdate();
  295. }
  296.  
  297. if (isObject(WaterZone))
  298. {
  299. %fx = $EnvGuiServer::WaterScrollX * 414;
  300. %fy = $EnvGuiServer::WaterScrollY * -414;
  301.  
  302. WaterZone.appliedForce = %fx SPC %fy SPC 0;
  303. WaterZone.sendUpdate();
  304. }
  305.  
  306. case "GroundColor":
  307. $EnvGuiServer::GroundColor = getColorF(%value);
  308.  
  309. if (isObject(GroundPlane))
  310. {
  311. GroundPlane.color = getColorI($EnvGuiServer::GroundColor);
  312. GroundPlane.blend = getWord(GroundPlane.color, 3) < 255;
  313. GroundPlane.sendUpdate();
  314.  
  315. Sky.renderBottomTexture = getWord(GroundPlane.color, 3) <= 0;
  316. Sky.noRenderBans = Sky.renderBottomTexture;
  317. Sky.sendUpdate();
  318. }
  319.  
  320. case "GroundScrollX":
  321. $EnvGuiServer::GroundScrollX = mClampF(%value, -10, 10);
  322. $EnvGuiServer::GroundScrollY = mClampF($EnvGuiServer::GroundScrollY, -10, 10);
  323.  
  324. if (isObject(GroundPlane))
  325. {
  326. GroundPlane.scrollSpeed = $EnvGuiServer::GroundScrollX SPC $EnvGuiServer::GroundScrollY;
  327. GroundPlane.sendUpdate();
  328. }
  329.  
  330. case "GroundScrollY":
  331. $EnvGuiServer::GroundScrollY = mClampF(%value, -10, 10);
  332. $EnvGuiServer::GroundScrollX = mClampF($EnvGuiServer::GroundScrollX, -10, 10);
  333.  
  334. if (isObject(GroundPlane))
  335. {
  336. GroundPlane.scrollSpeed = $EnvGuiServer::GroundScrollX SPC $EnvGuiServer::GroundScrollY;
  337. GroundPlane.sendUpdate();
  338. }
  339.  
  340. case "VignetteMultiply":
  341. $EnvGuiServer::VignetteMultiply = mClamp(%value, 0, 1);
  342. sendVignetteAll();
  343.  
  344. case "VignetteColor":
  345. $EnvGuiServer::VignetteColor = getColorF(%value);
  346. sendVignetteAll();
  347.  
  348. default:
  349. return 0;
  350. }
  351.  
  352. return 1;
  353. }//leetie <3
Advertisement
Add Comment
Please, Sign In to add comment