Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $Pref::Survival::DayCycle::Length = 12;
- $Pref::Survival::DayCycle::Precition = 2.5;
- $EnvGUI::SimpleMode = 0;
- setHourOfDay(12);
- function dayNightCycleLoop() {
- if($Pref::Survival::DayCycle::doDayCycle) {
- setHourOfDay($Survival::TimeOfDay + $Pref::Survival::DayCycle::Length/24/$Pref::Survival::DayCycle::Precition);
- //echo("Doing tick!");
- schedule($Pref::Survival::DayCycle::Length*1000*60/24/$Pref::Survival::DayCycle::Precition, 0, "dayNightCycleLoop");
- }
- }
- function servercmdStartDayCycle(%client) {
- //if(%client.isAdmin) {
- $Pref::Survival::DayCycle::doDayCycle = true;
- talk("Day cycle now running!");
- dayNightCycleLoop();
- //}
- }
- function foggyDays() {
- $Pref::Survival::DayCycle::Disasters = 1.0;
- }
- function servercmdStopDayCycle(%client) {
- //if(%client.isAdmin) { //give power to the people!
- $Pref::Survival::DayCycle::doDayCycle = false;
- talk("Day cycle stopped running!");
- //}
- }
- function onHourChange(%hour) {
- //Package it!
- }
- function setHourOfDay(%hour) {
- if(%hour > 23)
- %hour = 0;
- %actualHour = %hour;
- $Survival::TimeOfDay = %hour;
- if(%hour > 12) {
- %hour = %hour-12;
- %hour = 12-%hour;
- }
- 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");
- 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");
- 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);
- setEnvironment("FogDistance",1000/2 * %hour + -10000/2);
- setEnvironment("FogHeight","0");
- setEnvironment("GroundColor","1.000000 1.000000 0.700000 1.000000");
- 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");
- setEnvironment("SkyColor",1/12 * %hour + 0/12 SPC 1/12 * %hour + 0/12 SPC 1/12 * %hour + 0/12 SPC "1.000000");
- setEnvironment("SunAzimuth","160");
- setEnvironment("SunElevation",200/23 * %actualHour + -230/23);
- 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");
- setEnvironment("SunFlareSize",1/12 * %hour + 0/12);
- // 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);
- // setEnvironment("VignetteColor","0.000000 0.000000 0.000000 0.000000"); //Doesn't seem to exist.
- setEnvironment("VisibleDistance",1000/-38 * %hour + -50000/-38);
- // 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);
- // setEnvironment("WaterHeight",0.3/12 * %hour + 36/12);
- if(mFloor(%actualHour) == %actualHour) {
- onHourChange(%actualHour);
- }
- }
- function getEquation(%x1,%y1,%x2,%y2) {
- echo(%y2 - %y1 @ "/" @ %x2 - %x1 @ " * %hour + " @ %x2*%y1 - %x1*%y2 @ "/" @ %x2 - %x1);
- setClipboard(%y2 - %y1 @ "/" @ %x2 - %x1 @ " * %hour + " @ %x2*%y1 - %x1*%y2 @ "/" @ %x2 - %x1);
- }
- function exportHourEnvironmentSettings() {
- %file = new FileObject();
- %file.openForAppend("config/server/envSettings.cs");
- %file.writeLine("setEnvironment(\"AmbientLightColor\",\"" @ $EnvGUI::AmbientLightColor @ "\");");
- %file.writeLine("setEnvironment(\"DirectLightColor\",\"" @ $EnvGUIServer::DirectLightColor @ "\");");
- %file.writeLine("setEnvironment(\"FogColor\",\"" @ $EnvGUIServer::FogColor @ "\");");
- %file.writeLine("setEnvironment(\"FogDistance\",\"" @ $EnvGUIServer::FogDistance @ "\");");
- %file.writeLine("setEnvironment(\"FogHeight\",\"" @ $EnvGUIServer::FogHeight @ "\");");
- %file.writeLine("setEnvironment(\"GroundColor\",\"" @ $EnvGUIServer::GroundColor @ "\");");
- %file.writeLine("setEnvironment(\"ShadowColor\",\"" @ $EnvGUIServer::ShadowColor @ "\");");
- %file.writeLine("setEnvironment(\"SkyColor\",\"" @ $EnvGUIServer::SkyColor @ "\");");
- %file.writeLine("setEnvironment(\"SunAzimuth\",\"" @ $EnvGUIServer::SunAzimuth @ "\");");
- %file.writeLine("setEnvironment(\"SunElevation\",\"" @ $EnvGUIServer::SunElevation @ "\");");
- %file.writeLine("setEnvironment(\"SunFlareColor\",\"" @ $EnvGUIServer::SunFlareColor @ "\");");
- %file.writeLine("setEnvironment(\"SunFlareSize\",\"" @ $EnvGUIServer::SunFlareSize @ "\");");
- %file.writeLine("setEnvironment(\"UnderWaterColor\",\"" @ $EnvGUIServer::UnderWaterColor @ "\");");
- %file.writeLine("setEnvironment(\"VignetteColor\",\"" @ $EnvGUIServer::VignetteColor @ "\");");
- %file.writeLine("setEnvironment(\"VisibleDistance\",\"" @ $EnvGUIServer::VisibleDistance @ "\");");
- %file.writeLine("setEnvironment(\"WaterColor\",\"" @ $EnvGUIServer::WaterColor @ "\");");
- %file.writeLine("setEnvironment(\"WaterHeight\",\"" @ $EnvGUIServer::WaterHeight @ "\");");
- %file.close();
- %file.delete();
- }
- //fuck you
- function setEnvironment(%varName, %value)
- {
- // if ($EnvGuiServer["::" @ %varName] $= %value)
- // return;
- switch$ (%varName)
- {
- case "SimpleMode":
- $EnvGuiServer::SimpleMode = mClamp(%value, 0, 1);
- EnvGuiServer::setSimpleMode();
- if (!$EnvGuiServer::SimpleMode)
- {
- if (!$EnvGuiServer::HasSetAdvancedOnce)
- EnvGuiServer::readAdvancedVarsFromSimple();
- EnvGuiServer::setAdvancedMode();
- }
- case "SkyIdx":
- $EnvGuiServer::SkyIdx = mClamp(%value, 0, $EnvGuiServer::SkyCount);
- setSkyBox($EnvGuiServer::Sky[$EnvGuiServer::SkyIdx]);
- case "WaterIdx":
- $EnvGuiServer::WaterIdx = mClamp(%value, 0, $EnvGuiServer::WaterCount);
- setWater($EnvGuiServer::Water[$EnvGuiServer::WaterIdx]);
- case "GroundIdx":
- $EnvGuiServer::GroundIdx = mClamp(%value, 0, $EnvGuiServer::GroundCount);
- setGround($EnvGuiServer::Ground[$EnvGuiServer::GroundIdx]);
- case "SunFlareTopIdx":
- $EnvGuiServer::SunFlareTopIdx = mClamp(%value, 0, $EnvGuiServer::SunFlareCount);
- %top = $EnvGuiServer::SunFlareTop[$EnvGuiServer::SunFlareTopIdx];
- %bottom = $EnvGuiServer::SunFlareBottom[$EnvGuiServer::SunFlareBottomIdx];
- SunLight.setFlareBitmaps(%top, %bottom);
- case "SunFlareBottomIdx":
- $EnvGuiServer::SunFlareBottomIdx = mClamp(%value, 0, $EnvGuiServer::SunFlareCount);
- %top = $EnvGuiServer::SunFlareTop[$EnvGuiServer::SunFlareTopIdx];
- %bottom = $EnvGuiServer::SunFlareBottom[$EnvGuiServer::SunFlareBottomIdx];
- SunLight.setFlareBitmaps(%top, %bottom);
- case "DayOffset":
- $EnvGuiServer::DayOffset = mClampF(%value, 0, 1);
- DayCycle.setDayOffset($EnvGuiServer::DayOffset);
- case "DayLength":
- $EnvGuiServer::DayLength = mClamp(%value, 0, 86400);
- DayCycle.setDayLength($EnvGuiServer::DayLength);
- case "DayCycleEnabled":
- $EnvGuiServer::DayCycleEnabled = mClamp(%value, 0, 1);
- DayCycle.setEnabled($EnvGuiServer::DayCycleEnabled);
- case "DayCycleIdx":
- $EnvGuiServer::DayCycleIdx = mClamp(%value, 0, $EnvGuiServer::DayCycleCount);
- %dayCycle = $EnvGuiServer::DayCycle[$EnvGuiServer::DayCycleIdx];
- echo("server setting daycycle to " @ %dayCycle);
- loadDayCycle(%dayCycle);
- case "SunAzimuth":
- $EnvGuiServer::SunAzimuth = mClampF(%value, 0, 360);
- Sun.azimuth = $EnvGuiServer::SunAzimuth;
- Sun.sendUpdate();
- case "SunElevation":
- $EnvGuiServer::SunElevation = mClampF(%value, -10, 190);
- Sun.elevation = $EnvGuiServer::SunElevation;
- Sun.sendUpdate();
- case "DirectLightColor":
- $EnvGuiServer::DirectLightColor = getColorF(%value);
- Sun.color = $EnvGuiServer::DirectLightColor;
- Sun.sendUpdate();
- case "AmbientLightColor":
- $EnvGuiServer::AmbientLightColor = getColorF(%value);
- Sun.ambient = $EnvGuiServer::AmbientLightColor;
- Sun.sendUpdate();
- case "ShadowColor":
- $EnvGuiServer::ShadowColor = getColorF(%value);
- Sun.shadowColor = $EnvGuiServer::DirectLightColor;
- Sun.sendUpdate();
- case "SunFlareColor":
- $EnvGuiServer::SunFlareColor = getColorF(%value);
- SunLight.color = $EnvGuiServer::SunFlareColor;
- SunLight.sendUpdate();
- case "SunFlareSize":
- $EnvGuiServer::SunFlareSize = mClampF(%value, 0, 10);
- // Badspot, why not just SunLight.setFlareSize(...);?
- SunLight.flareSize = $EnvGuiServer::SunFlareSize;
- SunLight.sendUpdate();
- case "SunFlareIdx":
- $EnvGuiServer::SunFlareIdx = mClamp(%value, 0, $EnvGuiServer::SunFlareCount);
- // ... what? Why does this exist? There is no "SunFlareIdx" system.
- // Get outta' here.
- case "VisibleDistance":
- $EnvGuiServer::VisibleDistance = mClampF(%value, 0, 1000);
- Sky.visibleDistance = $EnvGuiServer::VisibleDistance;
- Sky.sendUpdate();
- case "FogDistance":
- $EnvGuiServer::FogDistance = mClampF(%value, 0, 1000);
- Sky.fogDistance = $EnvGuiServer::FogDistance;
- Sky.sendUpdate();
- case "FogHeight":
- $EnvGuiServer::FogHeight = mClampF(%value, 0, 1000);
- // Nothing to see here...
- case "FogColor":
- $EnvGuiServer::FogColor = getColorF(%value);
- Sky.fogColor = $EnvGuiServer::FogColor;
- Sky.sendUpdate();
- case "WaterColor":
- $EnvGuiServer::WaterColor = getColorF(%value);
- if (isObject(WaterPlane))
- {
- WaterPlane.color = getColorI($EnvGuiServer::WaterColor);
- WaterPlane.blend = getWord(WaterPlane.color, 3) < 255;
- WaterPlane.sendUpdate();
- }
- //updateWaterFog();
- case "WaterHeight":
- $EnvGuiServer::WaterHeight = mClampF(%value, 0, 100);
- if (isObject(WaterPlane))
- {
- %pos = getWords(GroundPlane.getTransform(), 0, 2);
- %pos = vectorAdd(%pos, "0 0" SPC $EnvGuiServer::WaterHeight);
- WaterPlane.setTransform(%pos SPC "0 0 1 0");
- WaterPlane.sendUpdate();
- //updateWaterFog();
- if (isObject(WaterZone))
- {
- %pos = vectorSub(%pos, "0 0 99.5");
- %pos = vectorSub(%pos, "500000 -500000 0");
- WaterZone.setTransform(%pos SPC "0 0 1 0");
- }
- }
- case "UnderWaterColor":
- $EnvGuiServer::UnderWaterColor = getColorF(%value);
- if (isObject(WaterZone))
- {
- WaterZone.setWaterColor($EnvGuiServer::UnderWaterColor);
- }
- case "SkyColor":
- $EnvGuiServer::SkyColor = getColorF(%value);
- // Something is off about this one...
- Sky.skyColor = $EnvGuiServer::SkyColor;
- Sky.sendUpdate();
- // Should probably combine this into one
- // case "WaterScrollX" or "WaterScrollY":
- case "WaterScrollX":
- $EnvGuiServer::WaterScrollX = mClampF(%value, -10, 10);
- $EnvGuiServer::WaterScrollY = mClampF($EnvGuiServer::WaterScrollY, -10, 10);
- if (isObject(WaterPlane))
- {
- WaterPlane.scrollSpeed = $EnvGuiServer::WaterScrollX SPC $EnvGuiServer::WaterScrollY;
- WaterPlane.sendUpdate();
- }
- if (isObject(WaterZone))
- {
- %fx = $EnvGuiServer::WaterScrollX * 414;
- %fy = $EnvGuiServer::WaterScrollY * -414;
- WaterZone.appliedForce = %fx SPC %fy SPC 0;
- WaterZone.sendUpdate();
- }
- case "WaterScrollY":
- $EnvGuiServer::WaterScrollY = mClampF(%value, -10, 10);
- $EnvGuiServer::WaterScrollX = mClampF($EnvGuiServer::WaterScrollX, -10, 10);
- if (isObject(WaterPlane))
- {
- WaterPlane.scrollSpeed = $EnvGuiServer::WaterScrollX SPC $EnvGuiServer::WaterScrollY;
- WaterPlane.sendUpdate();
- }
- if (isObject(WaterZone))
- {
- %fx = $EnvGuiServer::WaterScrollX * 414;
- %fy = $EnvGuiServer::WaterScrollY * -414;
- WaterZone.appliedForce = %fx SPC %fy SPC 0;
- WaterZone.sendUpdate();
- }
- case "GroundColor":
- $EnvGuiServer::GroundColor = getColorF(%value);
- if (isObject(GroundPlane))
- {
- GroundPlane.color = getColorI($EnvGuiServer::GroundColor);
- GroundPlane.blend = getWord(GroundPlane.color, 3) < 255;
- GroundPlane.sendUpdate();
- Sky.renderBottomTexture = getWord(GroundPlane.color, 3) <= 0;
- Sky.noRenderBans = Sky.renderBottomTexture;
- Sky.sendUpdate();
- }
- case "GroundScrollX":
- $EnvGuiServer::GroundScrollX = mClampF(%value, -10, 10);
- $EnvGuiServer::GroundScrollY = mClampF($EnvGuiServer::GroundScrollY, -10, 10);
- if (isObject(GroundPlane))
- {
- GroundPlane.scrollSpeed = $EnvGuiServer::GroundScrollX SPC $EnvGuiServer::GroundScrollY;
- GroundPlane.sendUpdate();
- }
- case "GroundScrollY":
- $EnvGuiServer::GroundScrollY = mClampF(%value, -10, 10);
- $EnvGuiServer::GroundScrollX = mClampF($EnvGuiServer::GroundScrollX, -10, 10);
- if (isObject(GroundPlane))
- {
- GroundPlane.scrollSpeed = $EnvGuiServer::GroundScrollX SPC $EnvGuiServer::GroundScrollY;
- GroundPlane.sendUpdate();
- }
- case "VignetteMultiply":
- $EnvGuiServer::VignetteMultiply = mClamp(%value, 0, 1);
- sendVignetteAll();
- case "VignetteColor":
- $EnvGuiServer::VignetteColor = getColorF(%value);
- sendVignetteAll();
- default:
- return 0;
- }
- return 1;
- }//leetie <3
Advertisement
Add Comment
Please, Sign In to add comment