C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("Weather Events", "OuTSMoKE, Rick", "1.4.0")]
[Description("Calls weather events with console commands.")]
class WeatherEvents : RustPlugin
{
public Timer StormTimer;
public int time = 0;
public List<string> cmds = new List<string>
{
"we rain",
"we lightrain",
"we heavyrain",
"we storm",
"we heavystorm",
"we lightfog",
"we fog",
"we dust",
"we heavyfog",
"we overcast",
"we partlycloudy",
"we spottyshowers",
"we quickfront",
"we sunandclouds",
"we clear",
"we volcanicsky",
"we smokeysky",
"we windy"
};
void Unload()
{
if (StormTimer != null)
StormTimer.Destroy();
time = 0;
}
void OnServerInitialized ()
{
ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), $"weather.rain 0");
ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), $"weather.fog 0");
ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), $"weather.wind 0");
}
[ConsoleCommand("we")]
void cmdSpecial(ConsoleSystem.Arg arg)
{
if (!arg.IsServerside) return;
if (arg.Args == null || arg.Args.Count() == 0) return;
var stormType = arg.Args[0];
if (stormType.Equals("random"))
{
stormType = Storms.Keys.ToList().GetRandom();
arg.ReplyWith($"Running random weather event: {stormType}");
}
if (!Storms.ContainsKey(stormType)) return;
NewStormTimer(stormType);
}
void NewStormTimer(string TypeOfStorm)
{
if (StormTimer != null)
StormTimer.Destroy();
time = 0;
StormTimer = timer.Every(1, () => ProcessStorm(Storms[TypeOfStorm]));
}
void ProcessStorm(Dictionary<int, List<string>> StormData)
{
time++;
if (StormData.ContainsKey(time))
foreach (var entry in StormData[time])
{
if (entry == "STOP") { StormTimer.Destroy(); time = 0; return; }
ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), entry);
}
}
public Dictionary<string, Dictionary<int, List<string>>> Storms = new Dictionary<string, Dictionary<int, List<string>>>
{
{"storm", new Dictionary<int, List<string>>
{
{1, new List<string> {"weather.cloud_coverage 0.02", "weather.cloud_sharpness 0.1", "weather.atmosphere_contrast 1.38" } },
{10, new List<string> {"weather.cloud_coverage 0.04" } },
{20, new List<string> {"weather.cloud_coverage 0.06", "weather.cloud_size 1.25" } },
{30, new List<string> {"weather.cloud_coverage 0.08" } },
{40, new List<string> {"weather.cloud_coverage 0.1", "weather.cloud_size 1.5" } },
{50, new List<string> {"weather.cloud_coverage 0.12" } },
{60, new List<string> {"weather.cloud_coverage 0.14", "weather.cloud_size 1.75" } },
{70, new List<string> {"weather.cloud_coverage 0.16" } },
{80, new List<string> {"weather.cloud_coverage 0.18" } },
{90, new List<string> {"weather.cloud_coverage 0.2", "weather.cloud_size 2.0" } },
{100, new List<string> {"weather.cloud_coverage 0.22", "weather.cloud_sharpness 0.2", "weather.atmosphere_contrast 1.75" } },
{110, new List<string> {"weather.cloud_coverage 0.24" } },
{120, new List<string> {"weather.cloud_coverage 0.26", "weather.cloud_size 2.25" } },
{130, new List<string> {"weather.cloud_coverage 0.28" } },
{140, new List<string> {"weather.cloud_coverage 0.3", "weather.cloud_size 2.5" } },
{150, new List<string> {"weather.cloud_coverage 0.32" } },
{160, new List<string> {"weather.cloud_coverage 0.34" } },
{170, new List<string> {"weather.cloud_coverage 0.36", "weather.cloud_sharpness 0.3" } },
{180, new List<string> {"weather.cloud_coverage 0.38" } },
{190, new List<string> {"weather.cloud_coverage 0.4" } },
{200, new List<string> {"weather.cloud_coverage 0.42" } },
{210, new List<string> {"weather.cloud_coverage 0.44" } },
{220, new List<string> {"weather.cloud_coverage 0.46" } },
{230, new List<string> {"weather.cloud_coverage 0.48", "weather.cloud_sharpness 0.4" } },
{240, new List<string> {"weather.cloud_coverage 0.5" } },
{245, new List<string> {"weather.rain 0.01" } },
{250, new List<string> {"weather.fog 0.02" } },
{260, new List<string> {"weather.cloud_coverage 0.52", "weather.cloud_sharpness 0.5" } },
{270, new List<string> {"weather.fog 0.04" } },
{280, new List<string> {"weather.cloud_coverage 0.54" } },
{290, new List<string> {"weather.fog 0.06" } },
{300, new List<string> {"weather.cloud_coverage 0.56" } },
{305, new List<string> {"weather.rain 0.02" } },
{310, new List<string> {"weather.fog 0.08" } },
{320, new List<string> {"weather.cloud_coverage 0.58" } },
{330, new List<string> {"weather.fog 0.1" } },
{340, new List<string> {"weather.cloud_coverage 0.6" } },
{350, new List<string> {"weather.fog 0.12" } },
{360, new List<string> {"weather.cloud_coverage 0.62" } },
{365, new List<string> {"weather.rain 0.05" } },
{370, new List<string> {"weather.fog 0.14" } },
{380, new List<string> {"weather.cloud_coverage 0.64" } },
{390, new List<string> {"weather.fog 0.16" } },
{400, new List<string> {"weather.cloud_coverage 0.66", "weather.cloud_attenuation 0.1" } },
{410, new List<string> {"weather.fog 0.18" } },
{420, new List<string> {"weather.cloud_coverage 0.68" } },
{425, new List<string> {"weather.rain 0.1" } },
{430, new List<string> {"weather.fog 0.20" } },
{440, new List<string> {"weather.cloud_coverage 0.7", "weather.cloud_attenuation 0.2" } },
{450, new List<string> {"weather.fog 0.22" } },
{460, new List<string> {"weather.cloud_coverage 0.72" } },
{470, new List<string> {"weather.fog 0.24" } },
{480, new List<string> {"weather.cloud_coverage 0.74", "weather.cloud_attenuation 0.3" } },
{485, new List<string> {"weather.rain 0.2" } },
{490, new List<string> {"weather.fog 0.26" } },
{500, new List<string> {"weather.cloud_coverage 0.76", "weather.cloud_attenuation 0.4" } },
{520, new List<string> {"weather.cloud_coverage 0.78" } },
{540, new List<string> {"weather.cloud_coverage 0.8", "weather.cloud_attenuation 0.5" } },
{545, new List<string> {"weather.rain 0.3" } },
{560, new List<string> {"weather.cloud_coverage 0.82", "weather.cloud_attenuation 0.6" } },
{580, new List<string> {"weather.cloud_coverage 0.84", "weather.cloud_attenuation 0.7" } },
{600, new List<string> {"weather.cloud_coverage 0.86", "weather.cloud_attenuation 0.8" } },
{605, new List<string> {"weather.rain 0.4", "weather.wind 0.2", "weather.thunder 1" } },
{620, new List<string> {"weather.cloud_coverage 0.88" } },
{640, new List<string> {"weather.cloud_coverage 0.9" } },
{660, new List<string> {"weather.cloud_coverage 0.92" } },
{665, new List<string> {"weather.rain 0.5" } },
{680, new List<string> {"weather.cloud_coverage 0.94" } },
{700, new List<string> {"weather.cloud_coverage 0.96" } },
{720, new List<string> {"weather.cloud_coverage 0.98" } },
{725, new List<string> {"weather.rain 0.6", "weather.wind 0.4" } },
{740, new List<string> {"weather.cloud_coverage 1" } },
{785, new List<string> {"weather.rain 0.7" } },
{845, new List<string> {"weather.rain 0.8" } },
{850, new List<string> {"weather.wind 0.6" } },
{905, new List<string> {"weather.rain 0.9", "weather.wind 0.8" } },
{965, new List<string> {"weather.rain 1", "weather.wind 1", "weather.cloud_size 2.0" } },
{1035, new List<string> {"weather.rain 0.8" } },
{1065, new List<string> {"weather.rain 0.7", "weather.wind 0.8" } },
{1095, new List<string> {"weather.rain 0.6", "weather.wind 0.6", "weather.cloud_attenuation 0.7" } },
{1160, new List<string> {"weather.wind 0.4", "weather.cloud_size 1.75" } },
{1185, new List<string> {"weather.rain 0.4", "weather.rainbow 1" } },
{1240, new List<string> {"weather.wind 0.2", "weather.cloud_attenuation 0.6" } },
{1245, new List<string> {"weather.rain 0.3", "weather.cloud_size 1.5" } },
{1250, new List<string> {"weather.cloud_coverage 0.98" } },
{1270, new List<string> {"weather.cloud_coverage 0.96" } },
{1285, new List<string> {"weather.rain 0.2", "weather.cloud_size 1.25" } },
{1290, new List<string> {"weather.cloud_coverage 0.94" } },
{1310, new List<string> {"weather.cloud_coverage 0.92", "weather.cloud_attenuation 0.5" } },
{1330, new List<string> {"weather.cloud_coverage 0.9", "weather.cloud_size 1.0" } },
{1335, new List<string> {"weather.rain 0.15", "weather.wind 0", "weather.thunder 0" } },
{1340, new List<string> {"weather.cloud_attenuation 0.4" } },
{1350, new List<string> {"weather.cloud_coverage 0.88" } },
{1370, new List<string> {"weather.cloud_coverage 0.86" } },
{1375, new List<string> {"weather.rain 0.1", "weather.cloud_size 0.88" } },
{1390, new List<string> {"weather.cloud_coverage 0.84" } },
{1405, new List<string> {"weather.rain 0.06" } },
{1410, new List<string> {"weather.cloud_coverage 0.82" } },
{1430, new List<string> {"weather.cloud_coverage 0.8", "weather.cloud_attenuation 0.3", "weather.cloud_size 0.75" } },
{1450, new List<string> {"weather.cloud_coverage 0.78" } },
{1455, new List<string> {"weather.rain 0.05" } },
{1470, new List<string> {"weather.cloud_coverage 0.76" } },
{1490, new List<string> {"weather.cloud_coverage 0.74" } },
{1495, new List<string> {"weather.rain 0.04" } },
{1500, new List<string> {"weather.fog 0.24" } },
{1510, new List<string> {"weather.cloud_coverage 0.72" } },
{1520, new List<string> {"weather.fog 0.22" } },
{1530, new List<string> {"weather.cloud_coverage 0.7" } },
{1535, new List<string> {"weather.rain 0.03" } },
{1540, new List<string> {"weather.fog 0.2" } },
{1550, new List<string> {"weather.cloud_coverage 0.68" } },
{1560, new List<string> {"weather.fog 0.18" } },
{1570, new List<string> {"weather.cloud_coverage 0.66", "weather.cloud_attenuation 0.2" } },
{1575, new List<string> {"weather.rain 0.02" } },
{1580, new List<string> {"weather.fog 0.16", } },
{1590, new List<string> {"weather.cloud_coverage 0.64" } },
{1600, new List<string> {"weather.fog 0.14" } },
{1610, new List<string> {"weather.cloud_coverage 0.62" } },
{1615, new List<string> {"weather.rain 0.01" } },
{1620, new List<string> {"weather.fog 0.12" } },
{1630, new List<string> {"weather.cloud_coverage 0.6" } },
{1640, new List<string> {"weather.fog 0.1" } },
{1650, new List<string> {"weather.cloud_coverage 0.58" } },
{1660, new List<string> {"weather.fog 0.08" } },
{1670, new List<string> {"weather.cloud_coverage 0.56" } },
{1680, new List<string> {"weather.fog 0.06" } },
{1690, new List<string> {"weather.cloud_coverage 0.54" } },
{1700, new List<string> {"weather.fog 0.04" } },
{1710, new List<string> {"weather.cloud_coverage 0.52" } },
{1720, new List<string> {"weather.fog 0.02" } },
{1730, new List<string> {"weather.cloud_coverage 0.5", "weather.cloud_attenuation 0.1" } },
{1735, new List<string> {"weather.rain 0" } },
{1740, new List<string> {"weather.fog 0" } },
{1750, new List<string> {"weather.cloud_coverage 0.48", "weather.cloud_sharpness 0.4" } },
{1760, new List<string> {"weather.cloud_coverage 0.46" } },
{1770, new List<string> {"weather.cloud_coverage 0.44" } },
{1780, new List<string> {"weather.cloud_coverage 0.42" } },
{1790, new List<string> {"weather.cloud_coverage 0.4" } },
{1800, new List<string> {"weather.cloud_coverage 0.38" } },
{1810, new List<string> {"weather.cloud_coverage 0.36", "weather.cloud_sharpness 0.3" } },
{1820, new List<string> {"weather.cloud_coverage 0.34", "weather.cloud_size 0.88" } },
{1830, new List<string> {"weather.cloud_coverage 0.32" } },
{1840, new List<string> {"weather.cloud_coverage 0.3" } },
{1850, new List<string> {"weather.cloud_coverage 0.28", "weather.cloud_sharpness 0.2" } },
{1860, new List<string> {"weather.cloud_coverage 0.26" } },
{1870, new List<string> {"weather.cloud_coverage 0.24" } },
{1880, new List<string> {"weather.cloud_coverage 0.22" } },
{1890, new List<string> {"weather.cloud_coverage 0.2", "weather.cloud_size 0.875" } },
{1900, new List<string> {"weather.cloud_coverage 0.18", "weather.cloud_attenuation -1" } },
{1910, new List<string> {"weather.cloud_coverage 0.16", "weather.cloud_sharpness 0.1", "weather.atmosphere_contrast 1.25" } },
{1920, new List<string> {"weather.cloud_coverage 0.14" } },
{1930, new List<string> {"weather.cloud_coverage 0.12" } },
{1940, new List<string> {"weather.cloud_coverage 0.1", "weather.cloud_size -1" } },
{1950, new List<string> {"weather.cloud_coverage 0.08", "weather.cloud_sharpness -1", "weather.atmosphere_contrast -1" } },
{1960, new List<string> {"weather.cloud_coverage 0.06" } },
{1970, new List<string> {"weather.cloud_coverage 0.04" } },
{1980, new List<string> {"weather.cloud_coverage 0.02", "weather.rainbow -1" } },
{1990, new List<string> {"weather.cloud_coverage 0", "weather.reset", "STOP" } },
}
},
{"heavystorm", new Dictionary<int, List<string>>
{
{1, new List<string> {"weather.cloud_coverage 0.02" } },
{10, new List<string> {"weather.cloud_coverage 0.04" } },
{20, new List<string> {"weather.cloud_coverage 0.06", "weather.cloud_size 1.38" } },
{30, new List<string> {"weather.cloud_coverage 0.08", "weather.cloud_sharpness 0.1", "weather.atmosphere_contrast 1.5" } },
{40, new List<string> {"weather.cloud_coverage 0.1", "weather.cloud_size 1.75" } },
{50, new List<string> {"weather.cloud_coverage 0.12" } },
{60, new List<string> {"weather.cloud_coverage 0.14", "weather.cloud_size 2.0" } },
{70, new List<string> {"weather.cloud_coverage 0.16" } },
{80, new List<string> {"weather.cloud_coverage 0.18", "weather.cloud_sharpness 0.2", "weather.atmosphere_contrast 2.0" } },
{90, new List<string> {"weather.cloud_coverage 0.2", "weather.cloud_size 2.38" } },
{100, new List<string> {"weather.cloud_coverage 0.22" } },
{110, new List<string> {"weather.cloud_coverage 0.24", "weather.cloud_size 2.75" } },
{120, new List<string> {"weather.cloud_coverage 0.26" } },
{130, new List<string> {"weather.cloud_coverage 0.28", "weather.cloud_sharpness 0.3" } },
{140, new List<string> {"weather.cloud_coverage 0.3", "weather.cloud_attenuation 0.1", "weather.cloud_size 3.0" } },
{150, new List<string> {"weather.cloud_coverage 0.32", "weather.cloud_sharpness 0.4" } },
{160, new List<string> {"weather.cloud_coverage 0.34" } },
{170, new List<string> {"weather.cloud_coverage 0.36", "weather.cloud_sharpness 0.5" } },
{180, new List<string> {"weather.cloud_coverage 0.38" } },
{190, new List<string> {"weather.cloud_coverage 0.4", "weather.atmosphere_rayleigh 1.5" } },
{200, new List<string> {"weather.cloud_coverage 0.42" } },
{210, new List<string> {"weather.cloud_coverage 0.44", "weather.cloud_sharpness 0.6" } },
{220, new List<string> {"weather.cloud_coverage 0.46", "weather.cloud_attenuation 0.2" } },
{230, new List<string> {"weather.cloud_coverage 0.48" } },
{240, new List<string> {"weather.cloud_coverage 0.5", "weather.cloud_sharpness 0.7" } },
{245, new List<string> {"weather.rain 0.01" } },
{250, new List<string> {"weather.fog 0.02" } },
{260, new List<string> {"weather.cloud_coverage 0.52" } },
{270, new List<string> {"weather.fog 0.04" } },
{280, new List<string> {"weather.cloud_coverage 0.54", "weather.cloud_attenuation 0.3" } },
{290, new List<string> {"weather.fog 0.06" } },
{300, new List<string> {"weather.cloud_coverage 0.56" } },
{305, new List<string> {"weather.rain 0.02" } },
{310, new List<string> {"weather.fog 0.08" } },
{320, new List<string> {"weather.cloud_coverage 0.58" } },
{330, new List<string> {"weather.fog 0.1" } },
{340, new List<string> {"weather.cloud_coverage 0.6", "weather.cloud_attenuation 0.4" } },
{350, new List<string> {"weather.fog 0.12" } },
{360, new List<string> {"weather.cloud_coverage 0.62" } },
{365, new List<string> {"weather.rain 0.05" } },
{370, new List<string> {"weather.fog 0.14" } },
{380, new List<string> {"weather.cloud_coverage 0.64", "weather.cloud_attenuation 0.5" } },
{390, new List<string> {"weather.fog 0.16" } },
{400, new List<string> {"weather.cloud_coverage 0.66", "weather.cloud_attenuation 0.6" } },
{410, new List<string> {"weather.fog 0.18" } },
{420, new List<string> {"weather.cloud_coverage 0.68", "weather.thunder 1" } },
{425, new List<string> {"weather.rain 0.1", "weather.cloud_attenuation 0.7" } },
{430, new List<string> {"weather.fog 0.20" } },
{440, new List<string> {"weather.cloud_coverage 0.7" } },
{450, new List<string> {"weather.fog 0.22" } },
{460, new List<string> {"weather.cloud_coverage 0.72", "weather.cloud_attenuation 0.8" } },
{470, new List<string> {"weather.fog 0.24" } },
{480, new List<string> {"weather.cloud_coverage 0.74" } },
{485, new List<string> {"weather.rain 0.2" } },
{490, new List<string> {"weather.fog 0.26" } },
{500, new List<string> {"weather.cloud_coverage 0.76" } },
{510, new List<string> {"weather.fog 0.28" } },
{520, new List<string> {"weather.cloud_coverage 0.78", "weather.cloud_attenuation 0.9" } },
{530, new List<string> {"weather.fog 0.3" } },
{540, new List<string> {"weather.cloud_coverage 0.8", "weather.atmosphere_rayleigh -1" } },
{545, new List<string> {"weather.rain 0.3" } },
{550, new List<string> {"weather.fog 0.32" } },
{560, new List<string> {"weather.cloud_coverage 0.82" } },
{570, new List<string> {"weather.fog 0.34" } },
{580, new List<string> {"weather.cloud_coverage 0.84" } },
{590, new List<string> {"weather.fog 0.36" } },
{600, new List<string> {"weather.cloud_coverage 0.86" } },
{605, new List<string> {"weather.rain 0.4", "weather.wind 0.2" } },
{610, new List<string> {"weather.fog 0.38" } },
{620, new List<string> {"weather.cloud_coverage 0.88" } },
{630, new List<string> {"weather.fog 0.4" } },
{640, new List<string> {"weather.cloud_coverage 0.9", "weather.cloud_attenuation 1" } },
{650, new List<string> {"weather.fog 0.42" } },
{660, new List<string> {"weather.cloud_coverage 0.92" } },
{665, new List<string> {"weather.rain 0.5" } },
{670, new List<string> {"weather.fog 0.44" } },
{680, new List<string> {"weather.cloud_coverage 0.94" } },
{690, new List<string> {"weather.fog 0.46" } },
{700, new List<string> {"weather.cloud_coverage 0.96" } },
{710, new List<string> {"weather.fog 0.48" } },
{720, new List<string> {"weather.cloud_coverage 0.98" } },
{725, new List<string> {"weather.rain 0.6", "weather.wind 0.4" } },
{730, new List<string> {"weather.fog 0.5" } },
{740, new List<string> {"weather.cloud_coverage 1" } },
{785, new List<string> {"weather.rain 0.7" } },
{845, new List<string> {"weather.rain 0.8" } },
{850, new List<string> {"weather.wind 0.6" } },
{905, new List<string> {"weather.rain 0.9", "weather.wind 0.8" } },
{965, new List<string> {"weather.rain 1", "weather.wind 1" } },
{980, new List<string> {"weather.cloud_attenuation 0.9" } },
{2095, new List<string> {"weather.rain 0.9", "weather.cloud_size 2.38" } },
{2135, new List<string> {"weather.rain 0.8" } },
{2165, new List<string> {"weather.rain 0.7", "weather.wind 0.8" } },
{2170, new List<string> {"weather.cloud_attenuation 0.8", "weather.cloud_size 2.0" } },
{2195, new List<string> {"weather.rain 0.6", "weather.wind 0.6" } },
{2225, new List<string> {"weather.rain 0.5" } },
{2260, new List<string> {"weather.wind 0.4", "weather.cloud_size 1.38" } },
{2285, new List<string> {"weather.rain 0.4", "weather.cloud_attenuation 0.7" } },
{2340, new List<string> {"weather.wind 0.2" } },
{2345, new List<string> {"weather.rain 0.3" } },
{2350, new List<string> {"weather.cloud_coverage 0.98", "weather.cloud_size 1.0" } },
{2360, new List<string> {"weather.fog 0.48" } },
{2370, new List<string> {"weather.cloud_coverage 0.96" } },
{2380, new List<string> {"weather.fog 0.46" } },
{2385, new List<string> {"weather.rain 0.2", "weather.cloud_size 0.88" } },
{2390, new List<string> {"weather.cloud_coverage 0.94" } },
{2400, new List<string> {"weather.fog 0.44" } },
{2410, new List<string> {"weather.cloud_coverage 0.92" } },
{2420, new List<string> {"weather.fog 0.42" } },
{2430, new List<string> {"weather.cloud_coverage 0.9", "weather.cloud_size 0.75" } },
{2435, new List<string> {"weather.rain 0.15", "weather.wind 0" } },
{2440, new List<string> {"weather.fog 0.4", "weather.cloud_attenuation 0.6", "weather.rainbow 1" } },
{2450, new List<string> {"weather.cloud_coverage 0.88" } },
{2460, new List<string> {"weather.fog 0.38", "weather.cloud_size 0.63" } },
{2470, new List<string> {"weather.cloud_coverage 0.86" } },
{2475, new List<string> {"weather.rain 0.1", } },
{2480, new List<string> {"weather.fog 0.36", "weather.cloud_size 0.5" } },
{2490, new List<string> {"weather.cloud_coverage 0.84" } },
{2500, new List<string> {"weather.fog 0.34" } },
{2505, new List<string> {"weather.rain 0.06" } },
{2510, new List<string> {"weather.cloud_coverage 0.82" } },
{2520, new List<string> {"weather.fog 0.32" } },
{2530, new List<string> {"weather.cloud_coverage 0.8", "weather.atmosphere_rayleigh 1.5", "weather.cloud_opacity 0.9" } },
{2540, new List<string> {"weather.fog 0.3" } },
{2550, new List<string> {"weather.cloud_coverage 0.78" } },
{2555, new List<string> {"weather.rain 0.05" } },
{2560, new List<string> {"weather.fog 0.28", "weather.cloud_size 0.63" } },
{2570, new List<string> {"weather.cloud_coverage 0.76" } },
{2580, new List<string> {"weather.fog 0.26" } },
{2590, new List<string> {"weather.cloud_coverage 0.74" } },
{2595, new List<string> {"weather.rain 0.04" } },
{2600, new List<string> {"weather.fog 0.24", } },
{2610, new List<string> {"weather.cloud_coverage 0.72" } },
{2620, new List<string> {"weather.fog 0.22"} },
{2630, new List<string> {"weather.cloud_coverage 0.7", "weather.cloud_attenuation 0.5", "weather.cloud_opacity 0.8" } },
{2635, new List<string> {"weather.rain 0.03", "weather.cloud_size 0.75" } },
{2640, new List<string> {"weather.fog 0.2" } },
{2650, new List<string> {"weather.cloud_coverage 0.68" } },
{2660, new List<string> {"weather.fog 0.18" } },
{2670, new List<string> {"weather.cloud_coverage 0.66" } },
{2675, new List<string> {"weather.rain 0.02", } },
{2680, new List<string> {"weather.fog 0.16" } },
{2690, new List<string> {"weather.cloud_coverage 0.64", "weather.cloud_attenuation 0.4" } },
{2700, new List<string> {"weather.fog 0.14" } },
{2710, new List<string> {"weather.cloud_coverage 0.62", "weather.thunder 0" } },
{2715, new List<string> {"weather.rain 0.01" } },
{2720, new List<string> {"weather.fog 0.12" } },
{2730, new List<string> {"weather.cloud_coverage 0.6", "weather.cloud_opacity 0.7" } },
{2740, new List<string> {"weather.fog 0.1", "weather.cloud_size 0.88" } },
{2750, new List<string> {"weather.cloud_coverage 0.58" } },
{2760, new List<string> {"weather.fog 0.08" } },
{2770, new List<string> {"weather.cloud_coverage 0.56" } },
{2780, new List<string> {"weather.fog 0.06" } },
{2790, new List<string> {"weather.cloud_coverage 0.54" } },
{2800, new List<string> {"weather.fog 0.04" } },
{2810, new List<string> {"weather.cloud_coverage 0.52" } },
{2820, new List<string> {"weather.fog 0.02" } },
{2830, new List<string> {"weather.cloud_coverage 0.5", "weather.cloud_attenuation 0.3" } },
{2835, new List<string> {"weather.rain 0" } },
{3340, new List<string> {"weather.fog 0", "weather.cloud_size -1" } },
{3350, new List<string> {"weather.cloud_coverage 0.48", "weather.cloud_sharpness 0.6" } },
{3360, new List<string> {"weather.cloud_coverage 0.46", } },
{3370, new List<string> {"weather.cloud_coverage 0.44" } },
{3380, new List<string> {"weather.cloud_coverage 0.42" } },
{3390, new List<string> {"weather.cloud_coverage 0.4", "weather.atmosphere_rayleigh -1" } },
{3400, new List<string> {"weather.cloud_coverage 0.38", "weather.cloud_sharpness 0.5" } },
{3410, new List<string> {"weather.cloud_coverage 0.36" } },
{3420, new List<string> {"weather.cloud_coverage 0.34" } },
{3430, new List<string> {"weather.cloud_coverage 0.32", "weather.cloud_attenuation 0.2" } },
{3440, new List<string> {"weather.cloud_coverage 0.3", "weather.cloud_sharpness 0.4" } },
{3450, new List<string> {"weather.cloud_coverage 0.28" } },
{3460, new List<string> {"weather.cloud_coverage 0.26", "weather.cloud_opacity 0.8" } },
{3470, new List<string> {"weather.cloud_coverage 0.24" } },
{3480, new List<string> {"weather.cloud_coverage 0.22", "weather.cloud_sharpness 0.3" } },
{3490, new List<string> {"weather.cloud_coverage 0.2" } },
{3500, new List<string> {"weather.cloud_coverage 0.18" } },
{3510, new List<string> {"weather.cloud_coverage 0.16", "weather.cloud_opacity 0.9" } },
{3520, new List<string> {"weather.cloud_coverage 0.14", "weather.cloud_sharpness 0.2" } },
{3530, new List<string> {"weather.cloud_coverage 0.12", "weather.cloud_attenuation 0.1" } },
{3540, new List<string> {"weather.cloud_coverage 0.1" } },
{3550, new List<string> {"weather.cloud_coverage 0.08", "weather.cloud_sharpness 0.1", "weather.atmosphere_contrast 1.5" } },
{3560, new List<string> {"weather.cloud_coverage 0.06", "weather.cloud_attenuation -1" } },
{3570, new List<string> {"weather.cloud_coverage 0.04", "weather.cloud_sharpness -1", "weather.atmosphere_contrast -1", "weather.cloud_opacity -1" } },
{3580, new List<string> {"weather.cloud_coverage 0.02", "weather.rainbow -1" } },
{3590, new List<string> {"weather.cloud_coverage 0", "weather.reset", "STOP" } },
}
},
{"lightrain", new Dictionary<int, List<string>>
{
{1, new List<string> {"weather.cloud_coverage 0.01" } },
{10, new List<string> {"weather.cloud_coverage 0.02" } },
{20, new List<string> {"weather.cloud_coverage 0.04" } },
{30, new List<string> {"weather.cloud_coverage 0.06" } },
{40, new List<string> {"weather.cloud_coverage 0.08" } },
{50, new List<string> {"weather.cloud_coverage 0.1" } },
{60, new List<string> {"weather.cloud_coverage 0.12" } },
{70, new List<string> {"weather.cloud_coverage 0.14" } },
{80, new List<string> {"weather.cloud_coverage 0.16" } },
{90, new List<string> {"weather.cloud_coverage 0.18" } },
{100, new List<string> {"weather.cloud_coverage 0.2" } },
{110, new List<string> {"weather.cloud_coverage 0.22" } },
{120, new List<string> {"weather.cloud_coverage 0.24", "weather.cloud_size 1.25" } },
{130, new List<string> {"weather.cloud_coverage 0.26" } },
{140, new List<string> {"weather.cloud_coverage 0.28" } },
{150, new List<string> {"weather.cloud_coverage 0.3" } },
{160, new List<string> {"weather.cloud_coverage 0.32" } },
{170, new List<string> {"weather.cloud_coverage 0.34" } },
{180, new List<string> {"weather.cloud_coverage 0.36" } },
{190, new List<string> {"weather.cloud_coverage 0.38" } },
{200, new List<string> {"weather.cloud_coverage 0.4" } },
{210, new List<string> {"weather.cloud_coverage 0.42" } },
{220, new List<string> {"weather.cloud_coverage 0.44" } },
{230, new List<string> {"weather.cloud_coverage 0.46" } },
{240, new List<string> {"weather.cloud_coverage 0.48" } },
{250, new List<string> {"weather.cloud_coverage 0.5", "weather.cloud_size 1.5" } },
{260, new List<string> {"weather.cloud_coverage 0.52" } },
{270, new List<string> {"weather.cloud_coverage 0.54" } },
{280, new List<string> {"weather.cloud_coverage 0.56" } },
{290, new List<string> {"weather.cloud_coverage 0.58" } },
{300, new List<string> {"weather.cloud_coverage 0.6" } },
{310, new List<string> {"weather.cloud_coverage 0.62" } },
{320, new List<string> {"weather.cloud_coverage 0.64" } },
{330, new List<string> {"weather.cloud_coverage 0.66" } },
{340, new List<string> {"weather.cloud_coverage 0.68" } },
{350, new List<string> {"weather.cloud_coverage 0.7" } },
{360, new List<string> {"weather.cloud_coverage 0.72" } },
{370, new List<string> {"weather.cloud_coverage 0.74" } },
{380, new List<string> { "weather.cloud_coverage 0.75", "weather.cloud_attenuation 0.1" } },
{390, new List<string> { "weather.fog 0.02" } },
{400, new List<string> { "weather.cloud_coverage 0.76" } },
{410, new List<string> { "weather.fog 0.04" } },
{420, new List<string> { "weather.cloud_coverage 0.78" } },
{430, new List<string> { "weather.fog 0.06" } },
{440, new List<string> { "weather.cloud_coverage 0.8" } },
{450, new List<string> { "weather.fog 0.08" } },
{460, new List<string> { "weather.cloud_coverage 0.82" } },
{470, new List<string> { "weather.fog 0.1" } },
{480, new List<string> { "weather.rain 0.01" } },
{490, new List<string> { "weather.cloud_coverage 0.84" } },
{500, new List<string> { "weather.fog 0.12" } },
{510, new List<string> { "weather.rain 0.02" } },
{520, new List<string> { "weather.cloud_coverage 0.86" } },
{540, new List<string> { "weather.cloud_coverage 0.88" } },
{560, new List<string> { "weather.rain 0.03" } },
{570, new List<string> { "weather.cloud_coverage 0.9" } },
{590, new List<string> { "weather.rain 0.04" } },
{600, new List<string> { "weather.cloud_coverage 0.92" } },
{620, new List<string> { "weather.rain 0.05" } },
{630, new List<string> { "weather.cloud_coverage 0.94" } },
{650, new List<string> { "weather.cloud_coverage 0.96" } },
{670, new List<string> { "weather.cloud_coverage 0.98" } },
{690, new List<string> { "weather.cloud_coverage 1", "weather.cloud_attenuation 0.2" } },
{1040, new List<string> { "weather.cloud_coverage 0.98" } },
{1050, new List<string> { "weather.cloud_coverage 0.96" } },
{1060, new List<string> { "weather.cloud_coverage 0.94" } },
{1070, new List<string> { "weather.cloud_coverage 0.92", "weather.cloud_attenuation 0.1" } },
{1080, new List<string> { "weather.cloud_coverage 0.9" } },
{1090, new List<string> { "weather.rain 0.04" } },
{1100, new List<string> { "weather.cloud_coverage 0.88" } },
{1110, new List<string> { "weather.cloud_coverage 0.86" } },
{1120, new List<string> { "weather.cloud_coverage 0.84" } },
{1130, new List<string> { "weather.cloud_coverage 0.82" } },
{1140, new List<string> { "weather.cloud_coverage 0.8" } },
{1150, new List<string> { "weather.rain 0.03" } },
{1160, new List<string> { "weather.cloud_coverage 0.78" } },
{1170, new List<string> { "weather.cloud_coverage 0.76" } },
{1180, new List<string> { "weather.cloud_coverage 0.74", "weather.cloud_attenuation -1" } },
{1190, new List<string> { "weather.cloud_coverage 0.72" } },
{1200, new List<string> { "weather.cloud_coverage 0.7" } },
{1210, new List<string> { "weather.rain 0.02" } },
{1220, new List<string> { "weather.cloud_coverage 0.68" } },
{1230, new List<string> { "weather.cloud_coverage 0.66" } },
{1240, new List<string> { "weather.cloud_coverage 0.64" } },
{1250, new List<string> { "weather.cloud_coverage 0.62" } },
{1260, new List<string> { "weather.rain 0.01" } },
{1270, new List<string> { "weather.cloud_coverage 0.6" } },
{1280, new List<string> { "weather.cloud_coverage 0.58" } },
{1290, new List<string> { "weather.cloud_coverage 0.56" } },
{1300, new List<string> { "weather.cloud_coverage 0.54" } },
{1310, new List<string> { "weather.cloud_coverage 0.52" } },
{1320, new List<string> { "weather.cloud_coverage 0.5" } },
{1330, new List<string> { "weather.rain 0", "weather.cloud_size 1.25" } },
{1350, new List<string> { "weather.cloud_coverage 0.48" } },
{1370, new List<string> { "weather.cloud_coverage 0.46" } },
{1390, new List<string> { "weather.cloud_coverage 0.44" } },
{1410, new List<string> { "weather.cloud_coverage 0.42" } },
{1430, new List<string> { "weather.cloud_coverage 0.4" } },
{1450, new List<string> { "weather.cloud_coverage 0.38" } },
{1470, new List<string> { "weather.cloud_coverage 0.36" } },
{1490, new List<string> { "weather.cloud_coverage 0.34" } },
{1510, new List<string> { "weather.cloud_coverage 0.32" } },
{1530, new List<string> { "weather.cloud_coverage 0.3" } },
{1550, new List<string> { "weather.cloud_coverage 0.28" } },
{1570, new List<string> { "weather.cloud_coverage 0.26", "weather.cloud_size -1" } },
{1580, new List<string> { "weather.fog 0.1" } },
{1590, new List<string> { "weather.cloud_coverage 0.24" } },
{1600, new List<string> { "weather.fog 0.08" } },
{1610, new List<string> { "weather.cloud_coverage 0.22" } },
{1620, new List<string> { "weather.fog 0.06" } },
{1630, new List<string> { "weather.cloud_coverage 0.2" } },
{1640, new List<string> { "weather.fog 0.04" } },
{1650, new List<string> { "weather.cloud_coverage 0.18" } },
{1660, new List<string> { "weather.fog 0.02" } },
{1670, new List<string> { "weather.cloud_coverage 0.16" } },
{1680, new List<string> { "weather.fog 0.01" } },
{1690, new List<string> { "weather.cloud_coverage 0.14" } },
{1700, new List<string> { "weather.fog 0" } },
{1710, new List<string> { "weather.cloud_coverage 0.12" } },
{1720, new List<string> { "weather.cloud_coverage 0.1" } },
{1730, new List<string> { "weather.cloud_coverage 0.08" } },
{1740, new List<string> { "weather.cloud_coverage 0.06" } },
{1750, new List<string> { "weather.cloud_coverage 0.04" } },
{1760, new List<string> { "weather.cloud_coverage 0.02" } },
{1770, new List<string> {"weather.cloud_coverage 0", "weather.reset", "STOP" } },
}
},
{"rain", new Dictionary<int, List<string>>
{
{1, new List<string> { "weather.cloud_coverage 0.05" } },
{30, new List<string> { "weather.cloud_coverage 0.1", "weather.cloud_size 1.25" } },
{60, new List<string> { "weather.cloud_coverage 0.15" } },
{90, new List<string> { "weather.cloud_coverage 0.2", "weather.cloud_size 1.5" } },
{120, new List<string> { "weather.cloud_coverage 0.25" } },
{150, new List<string> { "weather.cloud_coverage 0.3" } },
{180, new List<string> { "weather.cloud_coverage 0.35" } },
{210, new List<string> { "weather.cloud_coverage 0.4" } },
{240, new List<string> { "weather.cloud_coverage 0.45" } },
{270, new List<string> { "weather.cloud_coverage 0.5" } },
{300, new List<string> { "weather.cloud_coverage 0.55" } },
{330, new List<string> { "weather.cloud_coverage 0.6", "weather.cloud_attenuation 0.1" } },
{340, new List<string> { "weather.rain 0.02" } },
{360, new List<string> { "weather.cloud_coverage 0.85" } },
{370, new List<string> { "weather.rain 0.2" } },
{390, new List<string> { "weather.fog 0.05" } },
{400, new List<string> { "weather.rain 0.3" } },
{410, new List<string> { "weather.cloud_coverage 0.9", "weather.cloud_attenuation 0.2" } },
{420, new List<string> { "weather.fog 0.1" } },
{430, new List<string> { "weather.rain 0.4" } },
{450, new List<string> { "weather.fog 0.15" } },
{440, new List<string> { "weather.cloud_coverage 0.95", "weather.cloud_sharpness 0.1", "weather.atmosphere_contrast 1.25" } },
{460, new List<string> { "weather.rain 0.5" } },
{470, new List<string> { "weather.cloud_coverage 1", "weather.cloud_attenuation 0.3" } },
{480, new List<string> { "weather.fog 0.2" } },
{500, new List<string> { "weather.fog 0.25" } },
{520, new List<string> { "weather.cloud_sharpness 0.2", "weather.atmosphere_contrast 1.5" } },
{600, new List<string> { "weather.cloud_attenuation 0.4" } },
{2200, new List<string> { "weather.rain 0.4" } },
{2230, new List<string> { "weather.rain 0.3" } },
{2260, new List<string> { "weather.rain 0.2" } },
{2280, new List<string> { "weather.cloud_coverage 0.95" } },
{2290, new List<string> { "weather.rain 0.1" } },
{2295, new List<string> { "weather.cloud_coverage 0.9" } },
{2310, new List<string> { "weather.cloud_coverage 0.85", "weather.cloud_attenuation 0.3" } },
{2320, new List<string> { "weather.rain 0.05" } },
{2340, new List<string> { "weather.cloud_coverage 0.80" } },
{2350, new List<string> { "weather.rain 0.02" } },
{2370, new List<string> { "weather.cloud_coverage 0.75" } },
{2380, new List<string> { "weather.rain 0", "weather.cloud_size 1.25" } },
{2400, new List<string> { "weather.cloud_coverage 0.7", "weather.cloud_attenuation 0.2" } },
{2410, new List<string> { "weather.fog 0.2" } },
{2420, new List<string> { "weather.cloud_coverage 0.65" } },
{2430, new List<string> { "weather.fog 0.15" } },
{2440, new List<string> { "weather.cloud_coverage 0.6", "weather.cloud_attenuation 0.1" } },
{2450, new List<string> { "weather.fog 0.1" } },
{2460, new List<string> { "weather.cloud_coverage 0.55" } },
{2470, new List<string> { "weather.fog 0.05" } },
{2480, new List<string> { "weather.cloud_coverage 0.5" } },
{2500, new List<string> { "weather.fog 0" } },
{2510, new List<string> { "weather.cloud_coverage 0.45", "weather.cloud_sharpness 0.1", "weather.atmosphere_contrast 1.25" } },
{2530, new List<string> { "weather.cloud_coverage 0.4" } },
{2550, new List<string> { "weather.cloud_coverage 0.35" } },
{2570, new List<string> { "weather.cloud_coverage 0.3", "weather.cloud_attenuation -1" } },
{2590, new List<string> { "weather.cloud_coverage 0.25" } },
{2610, new List<string> { "weather.cloud_coverage 0.20", "weather.cloud_size -1" } },
{2630, new List<string> { "weather.cloud_coverage 0.15", "weather.cloud_sharpness -1", "weather.atmosphere_contrast -1" } },
{2650, new List<string> { "weather.cloud_coverage 0.1" } },
{2670, new List<string> { "weather.cloud_coverage 0.05" } },
{2690, new List<string> {"weather.cloud_coverage 0", "weather.reset", "STOP" } },
}
},
{"heavyrain", new Dictionary<int, List<string>>
{
{1, new List<string> { "weather.cloud_coverage 0.05" } },
{30, new List<string> { "weather.cloud_coverage 0.1", "weather.cloud_size 1.25" } },
{60, new List<string> { "weather.cloud_coverage 0.15" } },
{90, new List<string> { "weather.cloud_coverage 0.2", "weather.cloud_size 1.5" } },
{120, new List<string> { "weather.cloud_coverage 0.25" } },
{150, new List<string> { "weather.cloud_coverage 0.3", "weather.cloud_size 1.75" } },
{180, new List<string> { "weather.cloud_coverage 0.35", "weather.cloud_sharpness 0.1", "weather.atmosphere_contrast 1.38" } },
{210, new List<string> { "weather.cloud_coverage 0.4", "weather.cloud_size 2.0" } },
{240, new List<string> { "weather.cloud_coverage 0.45" } },
{270, new List<string> { "weather.cloud_coverage 0.5", "weather.cloud_attenuation 0.15" } },
{300, new List<string> { "weather.cloud_coverage 0.55" } },
{330, new List<string> { "weather.cloud_coverage 0.6" } },
{340, new List<string> { "weather.rain 0.02", "weather.cloud_sharpness 0.2", "weather.atmosphere_contrast 1.75" } },
{360, new List<string> { "weather.cloud_coverage 0.85", "weather.cloud_attenuation 0.3" } },
{370, new List<string> { "weather.rain 0.2" } },
{390, new List<string> { "weather.fog 0.05", "weather.cloud_attenuation 0.4" } },
{400, new List<string> { "weather.rain 0.3" } },
{410, new List<string> { "weather.cloud_coverage 0.9" } },
{420, new List<string> { "weather.fog 0.1" } },
{430, new List<string> { "weather.rain 0.4" } },
{450, new List<string> { "weather.fog 0.15" } },
{440, new List<string> { "weather.cloud_coverage 0.95", "weather.cloud_attenuation 0.5" } },
{460, new List<string> { "weather.rain 0.5" } },
{470, new List<string> { "weather.cloud_coverage 1" } },
{480, new List<string> { "weather.fog 0.2", "weather.cloud_sharpness 0.3" } },
{500, new List<string> { "weather.fog 0.25" } },
{520, new List<string> { "weather.fog 0.3" } },
{540, new List<string> { "weather.fog 0.35" } },
{560, new List<string> { "weather.fog 0.4" } },
{580, new List<string> { "weather.fog 0.45" } },
{600, new List<string> { "weather.fog 0.5" } },
{2800, new List<string> { "weather.rain 0.4", "weather.cloud_attenuation 0.4" } },
{2830, new List<string> { "weather.rain 0.3" } },
{2860, new List<string> { "weather.rain 0.2" } },
{2880, new List<string> { "weather.cloud_coverage 0.95" } },
{2890, new List<string> { "weather.rain 0.1", "weather.cloud_attenuation 0.3" } },
{2895, new List<string> { "weather.cloud_coverage 0.9" } },
{2900, new List<string> { "weather.fog 0.45" } },
{2910, new List<string> { "weather.cloud_coverage 0.85" } },
{2920, new List<string> { "weather.rain 0.05", "weather.cloud_attenuation 0.2" } },
{2930, new List<string> { "weather.fog 0.4", "weather.cloud_sharpness 0.2" } },
{2940, new List<string> { "weather.cloud_coverage 0.80", "weather.atmosphere_rayleigh 1.5" } },
{2950, new List<string> { "weather.rain 0.02" } },
{2960, new List<string> { "weather.fog 0.35" } },
{2970, new List<string> { "weather.cloud_coverage 0.75", "weather.cloud_attenuation 0.1" } },
{2980, new List<string> { "weather.rain 0" } },
{2990, new List<string> { "weather.fog 0.25", "weather.rainbow 1" } },
{3000, new List<string> { "weather.cloud_coverage 0.7" } },
{3010, new List<string> { "weather.fog 0.2", "weather.cloud_size 1.75" } },
{3020, new List<string> { "weather.cloud_coverage 0.65" } },
{3030, new List<string> { "weather.fog 0.15" } },
{3040, new List<string> { "weather.cloud_coverage 0.6", "weather.cloud_attenuation -1" } },
{3050, new List<string> { "weather.fog 0.1" } },
{3060, new List<string> { "weather.cloud_coverage 0.55" } },
{3070, new List<string> { "weather.fog 0.05" } },
{3080, new List<string> { "weather.cloud_coverage 0.5" } },
{3100, new List<string> { "weather.fog 0" } },
{3110, new List<string> { "weather.cloud_coverage 0.45" } },
{3130, new List<string> { "weather.cloud_coverage 0.4", "weather.atmosphere_rayleigh -1", "weather.cloud_size 1.5" } },
{3150, new List<string> { "weather.cloud_coverage 0.35" } },
{3170, new List<string> { "weather.cloud_coverage 0.3", "weather.cloud_sharpness 0.1", "weather.atmosphere_contrast 1.38" } },
{3190, new List<string> { "weather.cloud_coverage 0.25", "weather.cloud_size 1.25" } },
{3210, new List<string> { "weather.cloud_coverage 0.20", "weather.cloud_size -1" } },
{3230, new List<string> { "weather.cloud_coverage 0.15" } },
{3250, new List<string> { "weather.cloud_coverage 0.1", "weather.cloud_sharpness -1", "weather.atmosphere_contrast -1" } },
{3270, new List<string> { "weather.cloud_coverage 0.05", "weather.rainbow -1" } },
{3290, new List<string> {"weather.cloud_coverage 0", "weather.reset", "STOP" } },
}
},
{"lightfog", new Dictionary<int, List<string>>
{
{1, new List<string> {"weather.cloud_coverage 0.02" } },
{10, new List<string> {"weather.cloud_coverage 0.04" } },
{20, new List<string> {"weather.cloud_coverage 0.06" } },
{30, new List<string> {"weather.cloud_coverage 0.08" } },
{40, new List<string> {"weather.cloud_coverage 0.1" } },
{50, new List<string> {"weather.cloud_coverage 0.12" } },
{60, new List<string> {"weather.cloud_coverage 0.14" } },
{70, new List<string> {"weather.cloud_coverage 0.16" } },
{80, new List<string> {"weather.cloud_coverage 0.18" } },
{90, new List<string> {"weather.cloud_coverage 0.2" } },
{100, new List<string> {"weather.cloud_coverage 0.22" } },
{110, new List<string> {"weather.cloud_coverage 0.24" } },
{120, new List<string> {"weather.cloud_coverage 0.26" } },
{130, new List<string> {"weather.cloud_coverage 0.28" } },
{140, new List<string> {"weather.cloud_coverage 0.3" } },
{150, new List<string> {"weather.cloud_coverage 0.32" } },
{160, new List<string> {"weather.cloud_coverage 0.34" } },
{170, new List<string> {"weather.cloud_coverage 0.36" } },
{180, new List<string> {"weather.cloud_coverage
// ... [Code preview truncated due to length. Full source in attached file] ...