C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System.Collections.Generic;
using System.Linq;
using Facepunch;
using Network;
using Newtonsoft.Json;
using Oxide.Core;
using Oxide.Core.Plugins;
using ProtoBuf;
using System;
using System.Text;
using UnityEngine;
using Oxide.Core.Libraries.Covalence;
namespace Oxide.Plugins {
[Info("BrightNight", "RustySpoon,CaptainNebulous,Clearshot", "1.0.6", ResourceId = 1)]
[Description("Custom Weather To Allow For A Brighter Night")]
class BrightNight : RustPlugin {
private PluginConfig _config;
private EnvSync _envSync;
private List<DateTime> _fullMoonDates = new List<DateTime> {
new DateTime(2024, 1, 25)
}
;
private DateTime _date;
private Dictionary<string, string> _weatherSync = new Dictionary<string, string>();
private int _current = 0;
private bool _playSound = false;
private bool IsDay = false;
private bool IsNight = false;
public Timer StormTimer;
public Timer SunTimer;
public int time = 0;
public int time2 = 0;
public List<string> cmds = new List<string> {
"brightnight rain", "brightnight fog", "brightnight dust", "brightnight overcast", "brightnight clear", "brightnight windy", "brightnight storm"
}
;
private Climate _climate;
[PluginReference("NightVision")]
Plugin NightVisionRef;
VersionNumber NightVisionMinVersion = new VersionNumber(1, 4, 0);
[PluginReference("TimeOfDay")]
Plugin TimeOfDay;
void OnServerInitialized() {
_envSync = BaseNetworkable.serverEntities.OfType<EnvSync>().FirstOrDefault();
_climate = SingletonComponent<global : : Climate>.Instance;
_date = _fullMoonDates[_current];
TOD_Sky.Instance.Components.Time.OnDay += OnSunrise;
TOD_Sky.Instance.Components.Time.OnSunset += OnSunset;
if (_envSync == null) {
NextTick(() => {
PrintError("Unable to find EnvSync! Are you using a custom map?");
Interface.Oxide.UnloadPlugin(Name);
}
);
return;
}
if (NightVisionRef != null && NightVisionRef.Version < NightVisionMinVersion) {
NextTick(() => {
PrintError($"NightVision version: v{NightVisionRef.Version}");
PrintError($"Please update NightVision to v{NightVisionMinVersion} or higher!");
Interface.Oxide.UnloadPlugin(Name);
}
);
return;
}
timer.Every(_config.syncInterval, () => {
if (!_envSync.limitNetworking) {
_envSync.limitNetworking = true;
}
if (NightVisionRef != null) {
NightVisionRef?.CallHook("BlockEnvUpdates", true);
}
UpdateCelestials();
List<Connection> subscribers = _envSync.net.group.subscribers;
if (subscribers != null && subscribers.Count > 0) {
for (int i = 0; i < subscribers.Count; i++) {
Connection connection = subscribers[i];
global : : BasePlayer basePlayer = connection.player as global : : BasePlayer;
if (!(basePlayer == null)) {
if (NightVisionRef != null && (bool)NightVisionRef?.CallHook("IsPlayerTimeLocked", basePlayer)) continue;
UpdatePlayerDateTime(ref connection, _config.freezeMoon && IsNight ? _date : _date.AddHours(TOD_Sky.Instance.Cycle.Hour));
if (_playSound) {
var effect = new Effect(_config.sound, basePlayer, 0, Vector3.zero, Vector3.forward);
EffectNetwork.Send(effect, connection);
}
}
}
}
_playSound = false;
}
);
timer.Every(4500f, () => {
Puts("New Weather Profile!");
covalence.Server.Command("brightnight random");
}
);
covalence.Server.Command("brightnight random");
covalence.Server.Command("weather.clear_chance 1");
covalence.Server.Command("weather.dust_chance 0");
covalence.Server.Command("weather.fog_chance 0");
covalence.Server.Command("weather.overcast_chance 0");
covalence.Server.Command("weather.rain_chance 0");
covalence.Server.Command("weather.storm_chance 0");
}
#region Morning or Night Brightness/Contrast
[ConsoleCommand("POD")]
void cmdSpecial2(ConsoleSystem.Arg arg) {
if (!arg.IsServerside) return;
if (arg.Args == null || arg.Args.Count() == 0) return;
var SunType = arg.Args[0];
if (SunType.Equals("Random")) {
arg.ReplyWith($"Woops");
}
if (!Sun.ContainsKey(SunType)) return;
NewSunTimer(SunType);
}
void NewSunTimer(string TypeOfSun) {
if (SunTimer != null) SunTimer.Destroy();
time2 = 0;
SunTimer = timer.Every(1, () => ProcessSun(Sun[TypeOfSun]));
}
void ProcessSun(Dictionary<int, List<string>> SunData) {
time2++;
if (SunData.ContainsKey(time2)) foreach (var entry in SunData[time2]) {
if (entry == "STOP") {
SunTimer.Destroy();
time2 = 0;
return;
}
ConsoleSystem.Run(ConsoleSystem.Option.Server, entry);
}
}
Dictionary<string, Dictionary<int, List<string>>> Sun = new Dictionary<string, Dictionary<int, List<string>>> {
{
"Sunrise", new Dictionary<int, List<string>> {
{
1 , new List<string> {
"weather.atmosphere_contrast 1.495"
}
}
, {
2 , new List<string> {
"weather.atmosphere_contrast 1.49"
}
}
, {
3 , new List<string> {
"weather.atmosphere_contrast 1.485"
}
}
, {
4 , new List<string> {
"weather.atmosphere_contrast 1.48"
}
}
, {
5 , new List<string> {
"weather.atmosphere_contrast 1.475", "weather.atmosphere_brightness 1.18"
}
}
, {
6 , new List<string> {
"weather.atmosphere_contrast 1.47"
}
}
, {
7 , new List<string> {
"weather.atmosphere_contrast 1.465"
}
}
, {
8 , new List<string> {
"weather.atmosphere_contrast 1.46"
}
}
, {
9 , new List<string> {
"weather.atmosphere_contrast 1.455"
}
}
, {
10, new List<string> {
"weather.atmosphere_contrast 1.45", "weather.atmosphere_brightness 1.16"
}
}
, {
11, new List<string> {
"weather.atmosphere_contrast 1.445"
}
}
, {
12, new List<string> {
"weather.atmosphere_contrast 1.44"
}
}
, {
13, new List<string> {
"weather.atmosphere_contrast 1.435"
}
}
, {
14, new List<string> {
"weather.atmosphere_contrast 1.43"
}
}
, {
15, new List<string> {
"weather.atmosphere_contrast 1.425"
}
}
, {
16, new List<string> {
"weather.atmosphere_contrast 1.42"
}
}
, {
17, new List<string> {
"weather.atmosphere_contrast 1.415", "weather.atmosphere_brightness 1.14"
}
}
, {
18, new List<string> {
"weather.atmosphere_contrast 1.41"
}
}
, {
19, new List<string> {
"weather.atmosphere_contrast 1.405"
}
}
, {
20, new List<string> {
"weather.atmosphere_contrast 1.4"
}
}
, {
21, new List<string> {
"weather.atmosphere_contrast 1.395"
}
}
, {
22, new List<string> {
"weather.atmosphere_contrast 1.39"
}
}
, {
23, new List<string> {
"weather.atmosphere_contrast 1.385", "weather.atmosphere_brightness 1.12"
}
}
, {
24, new List<string> {
"weather.atmosphere_contrast 1.38"
}
}
, {
25, new List<string> {
"weather.atmosphere_contrast 1.375"
}
}
, {
26, new List<string> {
"weather.atmosphere_contrast 1.37"
}
}
, {
27, new List<string> {
"weather.atmosphere_contrast 1.365"
}
}
, {
28, new List<string> {
"weather.atmosphere_contrast 1.36"
}
}
, {
29, new List<string> {
"weather.atmosphere_contrast 1.355"
}
}
, {
30, new List<string> {
"weather.atmosphere_contrast 1.35", "weather.atmosphere_brightness 1.1"
}
}
, {
31, new List<string> {
"weather.atmosphere_contrast 1.345"
}
}
, {
32, new List<string> {
"weather.atmosphere_contrast 1.34"
}
}
, {
33, new List<string> {
"weather.atmosphere_contrast 1.335"
}
}
, {
34, new List<string> {
"weather.atmosphere_contrast 1.33"
}
}
, {
35, new List<string> {
"weather.atmosphere_contrast 1.325"
}
}
, {
36, new List<string> {
"weather.atmosphere_contrast 1.32", "weather.atmosphere_brightness 1.08"
}
}
, {
37, new List<string> {
"weather.atmosphere_contrast 1.315"
}
}
, {
38, new List<string> {
"weather.atmosphere_contrast 1.31"
}
}
, {
39, new List<string> {
"weather.atmosphere_contrast 1.305"
}
}
, {
40, new List<string> {
"weather.atmosphere_contrast 1.3"
}
}
, {
41, new List<string> {
"weather.atmosphere_contrast 1.295"
}
}
, {
42, new List<string> {
"weather.atmosphere_contrast 1.29", "weather.atmosphere_brightness 1.06"
}
}
, {
43, new List<string> {
"weather.atmosphere_contrast 1.285"
}
}
, {
44, new List<string> {
"weather.atmosphere_contrast 1.28"
}
}
, {
45, new List<string> {
"weather.atmosphere_contrast 1.275"
}
}
, {
46, new List<string> {
"weather.atmosphere_contrast 1.27"
}
}
, {
47, new List<string> {
"weather.atmosphere_contrast 1.265"
}
}
, {
48, new List<string> {
"weather.atmosphere_contrast 1.26", "weather.atmosphere_brightness 1.04"
}
}
, {
49, new List<string> {
"weather.atmosphere_contrast 1.255"
}
}
, {
50, new List<string> {
"weather.atmosphere_contrast 1.25"
}
}
, {
51, new List<string> {
"weather.atmosphere_contrast 1.245"
}
}
, {
52, new List<string> {
"weather.atmosphere_contrast 1.24"
}
}
, {
53, new List<string> {
"weather.atmosphere_contrast 1.235"
}
}
, {
54, new List<string> {
"weather.atmosphere_contrast 1.23", "weather.atmosphere_brightness 1.02"
}
}
, {
55, new List<string> {
"weather.atmosphere_contrast 1.225"
}
}
, {
56, new List<string> {
"weather.atmosphere_contrast 1.22"
}
}
, {
57, new List<string> {
"weather.atmosphere_contrast 1.215"
}
}
, {
58, new List<string> {
"weather.atmosphere_contrast 1.21"
}
}
, {
59, new List<string> {
"weather.atmosphere_contrast 1.205"
}
}
, {
60, new List<string> {
"weather.atmosphere_contrast 1.2", "weather.atmosphere_brightness 1", "STOP"
}
}
,
}
}
, {
"Sunset", new Dictionary<int, List<string>> {
{
1, new List<string> {
"weather.atmosphere_contrast 1.2", "weather.atmosphere_brightness 1"
}
}
, {
2, new List<string> {
"weather.atmosphere_contrast 1.205"
}
}
, {
3, new List<string> {
"weather.atmosphere_contrast 1.21"
}
}
, {
4, new List<string> {
"weather.atmosphere_contrast 1.215"
}
}
, {
5, new List<string> {
"weather.atmosphere_contrast 1.22"
}
}
, {
6, new List<string> {
"weather.atmosphere_contrast 1.225"
}
}
, {
7, new List<string> {
"weather.atmosphere_contrast 1.23", "weather.atmosphere_brightness 1.02"
}
}
, {
8, new List<string> {
"weather.atmosphere_contrast 1.235"
}
}
, {
9, new List<string> {
"weather.atmosphere_contrast 1.24"
}
}
, {
10, new List<string> {
"weather.atmosphere_contrast 1.245"
}
}
, {
11, new List<string> {
"weather.atmosphere_contrast 1.25"
}
}
, {
12, new List<string> {
"weather.atmosphere_contrast 1.255"
}
}
, {
13, new List<string> {
"weather.atmosphere_contrast 1.26", "weather.atmosphere_brightness 1.04"
}
}
, {
14, new List<string> {
"weather.atmosphere_contrast 1.265"
}
}
, {
15, new List<string> {
"weather.atmosphere_contrast 1.27"
}
}
, {
16, new List<string> {
"weather.atmosphere_contrast 1.275"
}
}
, {
17, new List<string> {
"weather.atmosphere_contrast 1.28"
}
}
, {
18, new List<string> {
"weather.atmosphere_contrast 1.285"
}
}
, {
19, new List<string> {
"weather.atmosphere_contrast 1.29", "weather.atmosphere_brightness 1.06"
}
}
, {
20, new List<string> {
"weather.atmosphere_contrast 1.295"
}
}
, {
21, new List<string> {
"weather.atmosphere_contrast 1.3"
}
}
, {
22, new List<string> {
"weather.atmosphere_contrast 1.305"
}
}
, {
23, new List<string> {
"weather.atmosphere_contrast 1.31"
}
}
, {
24, new List<string> {
"weather.atmosphere_contrast 1.315"
}
}
, {
25, new List<string> {
"weather.atmosphere_contrast 1.32", "weather.atmosphere_brightness 1.08"
}
}
, {
26, new List<string> {
"weather.atmosphere_contrast 1.325"
}
}
, {
27, new List<string> {
"weather.atmosphere_contrast 1.33"
}
}
, {
28, new List<string> {
"weather.atmosphere_contrast 1.335"
}
}
, {
29, new List<string> {
"weather.atmosphere_contrast 1.34"
}
}
, {
30, new List<string> {
"weather.atmosphere_contrast 1.345"
}
}
, {
31, new List<string> {
"weather.atmosphere_contrast 1.35", "weather.atmosphere_brightness 1.1"
}
}
, {
32, new List<string> {
"weather.atmosphere_contrast 1.355"
}
}
, {
33, new List<string> {
"weather.atmosphere_contrast 1.36"
}
}
, {
34, new List<string> {
"weather.atmosphere_contrast 1.365"
}
}
, {
35, new List<string> {
"weather.atmosphere_contrast 1.37"
}
}
, {
36, new List<string> {
"weather.atmosphere_contrast 1.375"
}
}
, {
37, new List<string> {
"weather.atmosphere_contrast 1.38"
}
}
, {
38, new List<string> {
"weather.atmosphere_contrast 1.385", "weather.atmosphere_brightness 1.12"
}
}
, {
39, new List<string> {
"weather.atmosphere_contrast 1.39"
}
}
, {
40, new List<string> {
"weather.atmosphere_contrast 1.395"
}
}
, {
41, new List<string> {
"weather.atmosphere_contrast 1.4"
}
}
, {
42, new List<string> {
"weather.atmosphere_contrast 1.405"
}
}
, {
43, new List<string> {
"weather.atmosphere_contrast 1.41"
}
}
, {
44, new List<string> {
"weather.atmosphere_contrast 1.415", "weather.atmosphere_brightness 1.14"
}
}
, {
45, new List<string> {
"weather.atmosphere_contrast 1.42"
}
}
, {
46, new List<string> {
"weather.atmosphere_contrast 1.425"
}
}
, {
47, new List<string> {
"weather.atmosphere_contrast 1.43"
}
}
, {
48, new List<string> {
"weather.atmosphere_contrast 1.435"
}
}
, {
49, new List<string> {
"weather.atmosphere_contrast 1.44"
}
}
, {
50, new List<string> {
"weather.atmosphere_contrast 1.445"
}
}
, {
51, new List<string> {
"weather.atmosphere_contrast 1.45", "weather.atmosphere_brightness 1.16"
}
}
, {
52, new List<string> {
"weather.atmosphere_contrast 1.455"
}
}
, {
53, new List<string> {
"weather.atmosphere_contrast 1.46"
}
}
, {
54, new List<string> {
"weather.atmosphere_contrast 1.465"
}
}
, {
55, new List<string> {
"weather.atmosphere_contrast 1.47"
}
}
, {
56, new List<string> {
"weather.atmosphere_contrast 1.475", "weather.atmosphere_brightness 1.18"
}
}
, {
57, new List<string> {
"weather.atmosphere_contrast 1.48"
}
}
, {
58, new List<string> {
"weather.atmosphere_contrast 1.485"
}
}
, {
59, new List<string> {
"weather.atmosphere_contrast 1.49"
}
}
, {
60, new List<string> {
"weather.atmosphere_contrast 1.495"
}
}
, {
61, new List<string> {
"weather.atmosphere_contrast 1.5", "weather.atmosphere_brightness 1.2", "STOP"
}
}
,
}
}
}
;
void OnTimeSunset() {
covalence.Server.Command("POD Sunset");
}
void OnTimeSunrise() {
covalence.Server.Command("POD Sunrise");
}
#endregion
#region Weather
[ConsoleCommand("brightnight")]
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, 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.01", "weather.cloud_sharpness 0.05", "weather.cloud_size 2"
}
}
, {
5, new List<string> {
"weather.cloud_coverage 0.02"
}
}
, {
10, new List<string> {
"weather.cloud_coverage 0.025"
}
}
, {
15, new List<string> {
"weather.cloud_coverage 0.03"
}
}
, {
20, new List<string> {
"weather.cloud_coverage 0.035"
}
}
, {
25, new List<string> {
"weather.cloud_coverage 0.04"
}
}
, {
30, new List<string> {
"weather.cloud_coverage 0.045"
}
}
, {
35, new List<string> {
"weather.cloud_coverage 0.05"
}
}
, {
40, new List<string> {
"weather.cloud_coverage 0.055"
}
}
, {
45, new List<string> {
"weather.cloud_coverage 0.06"
}
}
, {
50, new List<string> {
"weather.cloud_coverage 0.065"
}
}
, {
55, new List<string> {
"weather.cloud_coverage 0.07"
}
}
, {
60, new List<string> {
"weather.cloud_coverage 0.075"
}
}
, {
65, new List<string> {
"weather.cloud_coverage 0.08"
}
}
, {
70, new List<string> {
"weather.cloud_coverage 0.085"
}
}
, {
75, new List<string> {
"weather.cloud_coverage 0.09"
}
}
, {
80, new List<string> {
"weather.cloud_coverage 0.095"
}
}
, {
85, new List<string> {
"weather.cloud_coverage 0.1"
}
}
, {
90, new List<string> {
"weather.cloud_coverage 0.102", "weather.cloud_sharpness 0.07"
}
}
, {
95, new List<string> {
"weather.cloud_coverage 0.105"
}
}
, {
100, new List<string> {
"weather.cloud_coverage 0.107"
}
}
, {
105, new List<string> {
"weather.cloud_coverage 0.11"
}
}
, {
110, new List<string> {
"weather.cloud_coverage 0.112"
}
}
, {
115, new List<string> {
"weather.cloud_coverage 0.115"
}
}
, {
120, new List<string> {
"weather.cloud_coverage 0.117"
}
}
, {
125, new List<string> {
"weather.cloud_coverage 0.12"
}
}
, {
130, new List<string> {
"weather.cloud_coverage 0.122"
}
}
, {
135, new List<string> {
"weather.cloud_coverage 0.125"
}
}
, {
140, new List<string> {
"weather.cloud_coverage 0.127"
}
}
, {
145, new List<string> {
"weather.cloud_coverage 0.13", "weather.cloud_sharpness 0.1"
}
}
, {
150, new List<string> {
"weather.cloud_coverage 0.132"
}
}
, {
155, new List<string> {
"weather.cloud_coverage 0.135"
}
}
, {
160, new List<string> {
"weather.cloud_coverage 0.137"
}
}
, {
165, new List<string> {
"weather.cloud_coverage 0.14",
}
}
, {
170, new List<string> {
"weather.cloud_coverage 0.142"
}
}
, {
175, new List<string> {
"weather.cloud_coverage 0.145"
}
}
, {
180, new List<string> {
"weather.cloud_coverage 0.147"
}
}
, {
185, new List<string> {
"weather.cloud_coverage 0.15", "weather.cloud_sharpness 0.12"
}
}
, {
190, new List<string> {
"weather.cloud_coverage 0.152"
}
}
, {
195, new List<string> {
"weather.cloud_coverage 0.155"
}
}
, {
200, new List<string> {
"weather.cloud_coverage 0.157"
}
}
, {
205, new List<string> {
"weather.cloud_coverage 0.16"
}
}
, {
210, new List<string> {
"weather.cloud_coverage 0.162"
}
}
, {
215, new List<string> {
"weather.cloud_coverage 0.165"
}
}
, {
220, new List<string> {
"weather.cloud_coverage 0.167"
}
}
, {
225, new List<string> {
"weather.cloud_coverage 0.17", "weather.cloud_sharpness 0.15"
}
}
, {
230, new List<string> {
"weather.cloud_coverage 0.172"
}
}
, {
235, new List<string> {
"weather.cloud_coverage 0.175"
}
}
, {
240, new List<string> {
"weather.cloud_coverage 0.177"
}
}
, {
245, new List<string> {
"weather.cloud_coverage 0.18"
}
}
, {
250, new List<string> {
"weather.cloud_coverage 0.182"
}
}
, {
255, new List<string> {
"weather.cloud_coverage 0.185"
}
}
, {
260, new List<string> {
"weather.cloud_coverage 0.187"
}
}
, {
265, new List<string> {
"weather.cloud_coverage 0.19"
}
}
, {
270, new List<string> {
"weather.cloud_coverage 0.192", "weather.cloud_sharpness 0.17"
}
}
, {
275, new List<string> {
"weather.cloud_coverage 0.195"
}
}
, {
280, new List<string> {
"weather.cloud_coverage 0.197"
}
}
, {
285, new List<string> {
"weather.cloud_coverage 0.2"
}
}
, {
290, new List<string> {
"weather.cloud_coverage 0.202"
}
}
, {
295, new List<string> {
"weather.cloud_coverage 0.205"
}
}
, {
300, new List<string> {
"weather.cloud_coverage 0.207"
}
}
, {
305, new List<string> {
"weather.cloud_coverage 0.21"
}
}
, {
310, new List<string> {
"weather.cloud_coverage 0.212"
}
}
, {
315, new List<string> {
"weather.cloud_coverage 0.215"
}
}
, {
320, new List<string> {
"weather.cloud_coverage 0.217"
}
}
, {
325, new List<string> {
"weather.cloud_coverage 0.22", "weather.cloud_sharpness 0.2"
}
}
, {
330, new List<string> {
"weather.cloud_coverage 0.222"
}
}
, {
335, new List<string> {
"weather.cloud_coverage 0.225"
}
}
, {
340, new List<string> {
"weather.cloud_coverage 0.227"
}
}
, {
345, new List<string> {
"weather.cloud_coverage 0.23"
}
}
, {
350, new List<string> {
"weather.cloud_coverage 0.232"
}
}
, {
355, new List<string> {
"weather.cloud_coverage 0.235"
}
}
, {
360, new List<string> {
"weather.cloud_coverage 0.237"
}
}
, {
365, new List<string> {
"weather.cloud_coverage 0.24"
}
}
, {
370, new List<string> {
"weather.cloud_coverage 0.242"
}
}
, {
375, new List<string> {
"weather.cloud_coverage 0.245"
}
}
, {
380, new List<string> {
"weather.cloud_coverage 0.247"
}
}
, {
385, new List<string> {
"weather.cloud_coverage 0.25"
}
}
, {
390, new List<string> {
"weather.cloud_coverage 0.252"
}
}
, {
395, new List<string> {
"weather.cloud_coverage 0.255", "weather.cloud_sharpness 0.22"
}
}
, {
400, new List<string> {
"weather.cloud_coverage 0.257"
}
}
, {
405, new List<string> {
"weather.cloud_coverage 0.26"
}
}
, {
410, new List<string> {
"weather.cloud_coverage 0.262"
}
}
, {
415, new List<string> {
"weather.cloud_coverage 0.265"
}
}
, {
420, new List<string> {
"weather.cloud_coverage 0.267"
}
}
, {
425, new List<string> {
"weather.cloud_coverage 0.27"
}
}
, {
430, new List<string> {
"weather.cloud_coverage 0.272"
}
}
, {
435, new List<string> {
"weather.cloud_coverage 0.275"
}
}
// ... [Code preview truncated due to length. Full source in attached file] ...