static void ResetEnv(Player p) { Level lvl = p.level; SetPreset(p, "normal"); LevelEnv.SetWeather(p, lvl, "normal"); LevelEnv.SetBlock(p, "normal", EnvProp.EdgeBlock, "edge block", Block.waterstill, ref lvl.HorizonBlock); LevelEnv.SetBlock(p, "normal", EnvProp.SidesBlock, "sides block", Block.blackrock, ref lvl.EdgeBlock); LevelEnv.SetShort(p, "normal", EnvProp.EdgeLevel, "water level", (short)(lvl.Height / 2), ref lvl.EdgeLevel); LevelEnv.SetShort(p, "normal", EnvProp.CloudsLevel, "clouds height", (short)(lvl.Height + 2), ref lvl.CloudsHeight); }
internal static bool Handle(Player p, string variable, string value) { Level lvl = p.level; switch (variable) { case "fog": LevelEnv.SetColor(p, value, 2, "fog", ref lvl.FogColor); break; case "cloud": case "clouds": LevelEnv.SetColor(p, value, 1, "cloud", ref lvl.CloudColor); break; case "sky": LevelEnv.SetColor(p, value, 0, "sky", ref lvl.SkyColor); break; case "dark": case "shadow": LevelEnv.SetColor(p, value, 3, "shadow", ref lvl.ShadowColor); break; case "sun": case "light": case "sunlight": LevelEnv.SetColor(p, value, 4, "sunlight", ref lvl.LightColor); break; case "weather": LevelEnv.SetWeather(p, p.level, value); break; case "cloudsheight": case "cloudheight": LevelEnv.SetShort(p, value, EnvProp.CloudsLevel, "clouds height", (short)(lvl.Height + 2), ref lvl.CloudsHeight); break; case "waterlevel": case "edgelevel": case "level": LevelEnv.SetShort(p, value, EnvProp.EdgeLevel, "water level", (short)(lvl.Height / 2), ref lvl.EdgeLevel); break; case "maxfogdistance": case "maxfog": case "fogdistance": case "fogdist": LevelEnv.SetShort(p, value, EnvProp.MaxFog, "max fog distance", 0, ref lvl.MaxFogDistance); break; case "cloudspeed": case "cloudsspeed": LevelEnv.SetFloat(p, value, EnvProp.CloudsSpeed, 256, "clouds speed", 256, ref lvl.CloudsSpeed, -32767, 32767); break; case "weatherspeed": LevelEnv.SetFloat(p, value, EnvProp.WeatherSpeed, 256, "weather speed", 256, ref lvl.WeatherSpeed, -32767, 32767); break; case "weatherfade": LevelEnv.SetFloat(p, value, EnvProp.WeatherFade, 128, "weather fade rate", 128, ref lvl.WeatherFade, 0, 255); break; case "horizon": case "edge": case "water": LevelEnv.SetBlock(p, value, EnvProp.EdgeBlock, "edge block", Block.waterstill, ref lvl.HorizonBlock); break; case "side": case "border": case "bedrock": LevelEnv.SetBlock(p, value, EnvProp.SidesBlock, "sides block", Block.blackrock, ref lvl.EdgeBlock); break; default: return(false); } Level.SaveSettings(lvl); return(true); }
static bool SetPreset(Player p, string value) { EnvPreset preset = null; // fog, sky, clouds, sun, shadow if (value.CaselessEq("midnight")) { preset = new EnvPreset("8b8989", "191970", "000080", "0000cd", "918A3B"); } else if (value.CaselessEq("cartoon")) { preset = new EnvPreset("00ffff", "1e90ff", "00bfff", "f5deb3", "f4a460"); } else if (value.CaselessEq("noir")) { preset = new EnvPreset("000000", "1f1f1f", "000000", "696969", "1f1f1f"); } else if (value.CaselessEq("trippy")) { preset = new EnvPreset("4B0082", "FFD700", "006400", "7CFC00", "B22222"); } else if (value.CaselessEq("watery")) { preset = new EnvPreset("5f9ea0", "008080", "008B8B", "E0FFFF", "008B8B"); } else if (value.CaselessEq("normal")) { preset = new EnvPreset("-1", "-1", "-1", "-1", "-1"); } else if (value.CaselessEq("gloomy")) { preset = new EnvPreset("6A80A5", "405875", "405875", "444466", "3B3B59"); } else if (value.CaselessEq("cloudy")) { preset = new EnvPreset("AFAFAF", "8E8E8E", "8E8E8E", "9b9b9b", "8C8C8C"); } else if (value.CaselessEq("sunset")) { preset = new EnvPreset("FFA322", "836668", "9A6551", "7F6C60", "46444C"); } else if (value.CaselessEq("midnight2")) { preset = new EnvPreset("131947", "070A23", "1E223A", "181828", "0F0F19"); } else if (File.Exists("presets/" + value.ToLower() + ".env")) { string text = File.ReadAllText("presets/" + value.ToLower() + ".env"); string[] parts = text.Split(' '); preset = new EnvPreset(parts[0], parts[1], parts[2], parts[3], parts[4]); } if (preset == null) { SendPresetsMessage(p); return(false); } LevelEnv.UpdateEnvColor(p, 0, preset.Sky); p.level.SkyColor = preset.Sky; LevelEnv.UpdateEnvColor(p, 1, preset.Clouds); p.level.CloudColor = preset.Clouds; LevelEnv.UpdateEnvColor(p, 2, preset.Fog); p.level.FogColor = preset.Fog; LevelEnv.UpdateEnvColor(p, 3, preset.Shadow); p.level.ShadowColor = preset.Shadow; LevelEnv.UpdateEnvColor(p, 4, preset.Sun); p.level.LightColor = preset.Sun; Level.SaveSettings(p.level); return(true); }
internal static bool Handle(Player p, Predicate <Player> selector, string opt, string value, AreaConfig cfg, string area) { Level lvl = p.level; // using if else instead of switch here reduces IL by about 200 bytes if (opt == "sky") { LevelEnv.SetColor(p, value, area, "sky color", ref cfg.SkyColor); LevelEnv.UpdateColor(selector, 0, cfg.SkyColor); } else if (opt == "cloud" || opt == "clouds") { LevelEnv.SetColor(p, value, area, "cloud color", ref cfg.CloudColor); LevelEnv.UpdateColor(selector, 1, cfg.CloudColor); } else if (opt == "fog") { LevelEnv.SetColor(p, value, area, "fog color", ref cfg.FogColor); LevelEnv.UpdateColor(selector, 2, cfg.FogColor); } else if (opt == "dark" || opt == "shadow") { LevelEnv.SetColor(p, value, area, "shadow color", ref cfg.ShadowColor); LevelEnv.UpdateColor(selector, 3, cfg.ShadowColor); } else if (opt == "sun" || opt == "light" || opt == "sunlight") { LevelEnv.SetColor(p, value, area, "sun color", ref cfg.LightColor); LevelEnv.UpdateColor(selector, 4, cfg.LightColor); } else if (opt == "weather") { LevelEnv.SetWeather(p, value, area, ref cfg.Weather); LevelEnv.UpdateWeather(selector, (byte)cfg.Weather); } else if (opt == "cloudheight" || opt == "cloudsheight") { LevelEnv.SetShort(p, value, area, "clouds height", lvl.Height + 2, ref cfg.CloudsHeight); LevelEnv.UpdateAppearance(selector, EnvProp.CloudsLevel, cfg.CloudsHeight); } else if (opt == "waterlevel" || opt == "edgelevel" || opt == "level") { LevelEnv.SetShort(p, value, area, "water level", lvl.Height / 2, ref cfg.EdgeLevel); LevelEnv.UpdateAppearance(selector, EnvProp.EdgeLevel, cfg.EdgeLevel); } else if (opt == "bedrockoffset" || opt == "sidesoffset" || opt == "sideoffset") { LevelEnv.SetShort(p, value, area, "bedrock offset", -2, ref cfg.SidesOffset); LevelEnv.UpdateAppearance(selector, EnvProp.SidesOffset, cfg.SidesOffset); } else if (opt == "maxfogdistance" || opt == "maxfog" || opt == "fogdistance") { LevelEnv.SetShort(p, value, area, "max fog distance", 0, ref cfg.MaxFogDistance); LevelEnv.UpdateAppearance(selector, EnvProp.MaxFog, cfg.MaxFogDistance); } else if (opt == "cloudspeed" || opt == "cloudsspeed") { LevelEnv.SetFloat(p, value, area, 256, "clouds speed", 256, ref cfg.CloudsSpeed, -0xFFFFFF, 0xFFFFFF); LevelEnv.UpdateAppearance(selector, EnvProp.CloudsSpeed, cfg.CloudsSpeed); } else if (opt == "weatherspeed") { LevelEnv.SetFloat(p, value, area, 256, "weather speed", 256, ref cfg.WeatherSpeed, -0xFFFFFF, 0xFFFFFF); LevelEnv.UpdateAppearance(selector, EnvProp.WeatherSpeed, cfg.WeatherSpeed); } else if (opt == "weatherfade") { LevelEnv.SetFloat(p, value, area, 128, "weather fade rate", 128, ref cfg.WeatherFade, 0, 255); LevelEnv.UpdateAppearance(selector, EnvProp.WeatherFade, cfg.WeatherFade); } else if (opt == "horizon" || opt == "edge" || opt == "water") { LevelEnv.SetBlock(p, value, area, "edge block", Block.Water, ref cfg.HorizonBlock); LevelEnv.UpdateAppearance(selector, EnvProp.EdgeBlock, cfg.HorizonBlock); } else if (opt == "side" || opt == "border" || opt == "bedrock") { LevelEnv.SetBlock(p, value, area, "sides block", Block.Bedrock, ref cfg.EdgeBlock); LevelEnv.UpdateAppearance(selector, EnvProp.SidesBlock, cfg.EdgeBlock); } else if (opt == "expfog") { LevelEnv.SetBool(p, value, area, "exp fog", 0, ref cfg.ExpFog); LevelEnv.UpdateAppearance(selector, EnvProp.ExpFog, cfg.ExpFog); } else if (opt == "skyboxhorspeed" || opt == "skyboxhor") { LevelEnv.SetFloat(p, value, area, 1024, "skybox horizontal speed", 0, ref cfg.SkyboxHorSpeed, -0xFFFFFF, 0xFFFFFF); LevelEnv.UpdateAppearance(selector, EnvProp.SkyboxHorSpeed, cfg.SkyboxHorSpeed); } else if (opt == "skyboxverspeed" || opt == "skyboxver") { LevelEnv.SetFloat(p, value, area, 1024, "skybox vertical speed", 0, ref cfg.SkyboxVerSpeed, -0xFFFFFF, 0xFFFFFF); LevelEnv.UpdateAppearance(selector, EnvProp.SkyboxVerSpeed, cfg.SkyboxVerSpeed); } else { return(false); } Level.SaveSettings(lvl); return(true); }
internal static bool Handle(Player p, string opt, string value) { Level lvl = p.level; // using if else instead of switch here reduces IL by about 200 bytes if (opt == "fog") { LevelEnv.SetColor(p, value, 2, opt, ref lvl.Config.FogColor); } else if (opt == "cloud" || opt == "clouds") { LevelEnv.SetColor(p, value, 1, opt, ref lvl.Config.CloudColor); } else if (opt == "sky") { LevelEnv.SetColor(p, value, 0, opt, ref lvl.Config.SkyColor); } else if (opt == "dark" || opt == "shadow") { LevelEnv.SetColor(p, value, 3, opt, ref lvl.Config.ShadowColor); } else if (opt == "sun" || opt == "light" || opt == "sunlight") { LevelEnv.SetColor(p, value, 4, opt, ref lvl.Config.LightColor); } else if (opt == "weather") { LevelEnv.SetWeather(p, p.level, value); } else if (opt == "cloudheight" || opt == "cloudsheight") { LevelEnv.SetShort(p, value, EnvProp.CloudsLevel, "clouds height", (short)(lvl.Height + 2), ref lvl.Config.CloudsHeight); } else if (opt == "waterlevel" || opt == "edgelevel" || opt == "level") { LevelEnv.SetShort(p, value, EnvProp.EdgeLevel, "water level", (short)(lvl.Height / 2), ref lvl.Config.EdgeLevel); } else if (opt == "bedrockoffset" || opt == "sidesoffset" || opt == "sideoffset") { LevelEnv.SetShort(p, value, EnvProp.SidesOffset, "bedrock offset", -2, ref lvl.Config.SidesOffset); } else if (opt == "maxfogdistance" || opt == "maxfog" || opt == "fogdistance") { LevelEnv.SetShort(p, value, EnvProp.MaxFog, "max fog distance", 0, ref lvl.Config.MaxFogDistance); } else if (opt == "cloudspeed" || opt == "cloudsspeed") { LevelEnv.SetFloat(p, value, EnvProp.CloudsSpeed, 256, "clouds speed", 256, ref lvl.Config.CloudsSpeed, -0xFFFFFF, 0xFFFFFF); } else if (opt == "weatherspeed") { LevelEnv.SetFloat(p, value, EnvProp.WeatherSpeed, 256, "weather speed", 256, ref lvl.Config.WeatherSpeed, -0xFFFFFF, 0xFFFFFF); } else if (opt == "weatherfade") { LevelEnv.SetFloat(p, value, EnvProp.WeatherFade, 128, "weather fade rate", 128, ref lvl.Config.WeatherFade, 0, 255); } else if (opt == "horizon" || opt == "edge" || opt == "water") { LevelEnv.SetBlock(p, value, EnvProp.EdgeBlock, "edge block", Block.Water, ref lvl.Config.HorizonBlock); } else if (opt == "side" || opt == "border" || opt == "bedrock") { LevelEnv.SetBlock(p, value, EnvProp.SidesBlock, "sides block", Block.Bedrock, ref lvl.Config.EdgeBlock); } else if (opt == "expfog") { LevelEnv.SetBool(p, value, EnvProp.ExpFog, "exp fog", false, ref lvl.Config.ExpFog); } else if (opt == "skyboxhorspeed" || opt == "skyboxhor") { LevelEnv.SetFloat(p, value, EnvProp.SkyboxHorSpeed, 1024, "skybox horizontal speed", 0, ref lvl.Config.SkyboxHorSpeed, -0xFFFFFF, 0xFFFFFF); } else if (opt == "skyboxverspeed" || opt == "skyboxver") { LevelEnv.SetFloat(p, value, EnvProp.SkyboxVerSpeed, 1024, "skybox vertical speed", 0, ref lvl.Config.SkyboxVerSpeed, -0xFFFFFF, 0xFFFFFF); } else { return(false); } Level.SaveSettings(lvl); return(true); }