Wetter & Zeit¶
Synchronisiertes Wetter- und Echtzeit-System. Der Server erzeugt einen Wetter-Rasterplan für 7 Tage in der Datenbank, Clients lesen den aktuellen Zustand via GlobalState.
Architektur¶
Server
└─ generateWeatherGrid() → DB-Tabelle weather_grid (7-Tage-Raster, 15-min-Slots)
└─ runWeatherList() → Wetterwechsel nach Slot-Dauer
└─ GlobalState.weather → wird von Clients gelesen
└─ GlobalState.currentTime → Echtzeitstunde (Deutschland-Zeitzone)
└─ GlobalState.isNight → boolean
Client
└─ liest GlobalState und wendet Wetter/Uhrzeit an
Wetter-API (Server)¶
-- Aktuelles Wetter abfragen
cv.weather.getCurrentWeatherInformation()
-- → { weather, windSpeed, windDirection, hasSnow, time }
-- Aktuelle Uhrzeit (Echtzeit Deutschland)
cv.weather.getCurrentTime()
-- → { hour, minute }
GlobalState-Werte¶
Können von Client und Server gelesen werden:
GlobalState.weather -- { weather, windSpeed, windDirection, hasSnow }
GlobalState.currentTime -- { hour, minute }
GlobalState.isNight -- boolean
GlobalState.freezeTime -- boolean
GlobalState.blackOut -- boolean (Blackout-Modus)
GlobalState.timeScale -- Millisekunden pro Spielminute
Wetter-Typen¶
Vordefinierte Typen aus Config.WeatherSettings.weatherTypes:
| Typ | Beschreibung | normalCycle |
|---|---|---|
CLEAR |
Klar | ✅ |
CLOUDS |
Bewölkt | ✅ |
OVERCAST |
Bedeckt | ✅ |
RAIN |
Regen | ✅ |
THUNDER |
Gewitter | ✅ |
FOGGY |
Nebel | ✅ |
SMOG |
Smog | ✅ |
XMAS |
Schnee (Weihnachten) | nur Dez 20–Jan 10 |
SNOW |
Schnee | nur Dez 20–Jan 10 |
BLIZZARD |
Blizzard | nur Dez 20–Jan 10 |
HALLOWEEN |
Halloween | ❌ (nur manuell) |
Admin Commands¶
| Command | Beschreibung | Berechtigung |
|---|---|---|
/blackout |
Blackout ein/ausschalten | command.weather |
hourlyweather (Server-Konsole) |
Wetterbericht der nächsten 24h | — |
Zeit-Konfiguration¶
Config.TimeSettings = {
timeScaleNight = 60000, -- ms pro Minute bei Nacht
nightTime = {
beginning = 21, -- Nacht beginnt um 21 Uhr
ending = 6, -- Nacht endet um 6 Uhr
}
}
Wetter-Konfiguration¶
Config.WeatherSettings = {
gridSlotsTotal = 672, -- 7 Tage × 24h × (60/15) Slots
gridSlotMinutes = 15, -- Minuten pro Slot
weatherCycletimer = 15, -- Standard-Slot-Dauer in Minuten
weatherTypes = {
CLEAR = { probability = 5, duration = { min = 2, max = 16 }, normalCycle = true },
RAIN = { probability = 2, duration = { min = 1, max = 6 }, normalCycle = true },
-- ...
}
}