Realistic Water & Soil Management 1.36.85.0
Autor: Sherman

Kartenrenderer vollständig neu aufgebaut

- Den alten Native-DensityMap-Kartenpfad und sämtliche doppelt definierten Kartenmethoden vollständig entfernt.
- Nur noch ein eindeutiger RWSM-Kartenrenderer, ein Cachepfad und ein Draw-Callback vorhanden.
- Keine globale Überschreibung von InGameMenuMapFrame.onDrawPostIngameMap mehr.
- RWSM hängt sich direkt an den vorhandenen onDrawPostIngameMapCallback der aktuellen IngameMap-Instanz.
- Bereits vorhandene Karten-Callbacks anderer Mods oder des Spiels werden weiterhin aufgerufen.
- Der RWSM-Overlay wird nach der Grundkarte und vor Fahrzeugen sowie Karten-Hotspots gezeichnet.

GIANTS-Overlay-System

- RWSM verwendet jetzt vorrangig ein echtes Overlay.new-Objekt.
- Vor dem Zeichnen wird geprüft, ob eine gültige Overlay-ID vorhanden und die Textur bereit ist.
- Position, Abmessungen, Farbe und Transparenz werden über die Overlay-Klasse gesetzt.
- Overlay:render übernimmt das Clipping am sichtbaren Kartenausschnitt und setzt die UV-Koordinaten anschließend zurück.
- Ein kleiner Roh-Overlay-Fallback bleibt nur für ungewöhnliche Modumgebungen erhalten.
- Renderaufrufe erfolgen ausschließlich im Karten-Draw-Callback.

Kartenposition, Zoom und Sichtbarkeit

- Keine fest einprogrammierten Bildschirmkoordinaten für den RWSM-Overlay mehr.
- mapExtensionOffsetX, mapExtensionOffsetZ und mapExtensionScaleFactor werden direkt aus der aktuellen IngameMap-Instanz gelesen.
- Zoom, Verschiebung, Kartenlayout und mobile Darstellung werden über layout:getMapObjectPosition berücksichtigt.
- Rechtecke außerhalb des sichtbaren Kartenbereichs werden vor dem Rendern verworfen.
- Teilweise sichtbare Rechtecke werden sauber auf den Kartenausschnitt beschnitten.
- Es werden ausschließlich sichtbare RWSM-Rechtecke gezeichnet.

Mehrstufiger Karten-Cache

- Drei Detailstufen für unterschiedliche Zoomstufen eingeführt.
- Weiter herausgezoomte Karten verwenden stärker zusammengefasste RWSM-Zellen.
- Beim Heranzoomen wird automatisch auf eine feinere Darstellung gewechselt.
- Filterzustand, Farbblindmodus, aktive Ebene, Detailstufe und Datenrevision werden im visuellen Cache berücksichtigt.
- Benachbarte Zellen derselben Klasse werden horizontal und vertikal zu größeren Rechtecken zusammengeführt.
- Dadurch sinkt die Zahl der Overlay-Renderaufrufe ohne Verlust der gespeicherten Bodenwerte.

Änderungsbasierte Aktualisierung

- Boden- und Agronomiezellen melden ihre Kartenänderung jetzt mit ihrem konkreten Zellenschlüssel.
- Mehrere Änderungen derselben Zelle innerhalb eines Aktualisierungsfensters werden zusammengeführt.
- Bei einer Einzeländerung wird nur die betroffene Quelle neu klassifiziert.
- Bleibt die Zelle in derselben sichtbaren Farbklasse, wird kein neuer sichtbarer Kartenaufbau ausgelöst.
- Vollständige Cache-Neuberechnungen erfolgen nur noch bei globalen Änderungen, fehlendem Cache oder zu alten Änderungsprotokollen.
- Unkraut-, Wasser-, Verdichtungs-, Pflanzen- und Ertragswerte bleiben vollständig erhalten.

Doppelte Pufferung und asynchroner Aufbau

- Der zuletzt vollständig erzeugte Karten-Cache bleibt sichtbar, während ein neuer Cache aufgebaut wird.
- Ein neuer Cache wird erst nach vollständiger Fertigstellung aktiv geschaltet.
- Dadurch verschwindet die Karte während einer Aktualisierung nicht und zeigt keine halbfertigen Zwischenstände.
- Große Erstaufbauten und Detailstufenwechsel werden mit einem kleinen Zeitbudget über mehrere Schritte verteilt.
- Wenn verfügbar, werden GIANTS-Subtasks über g_asyncTaskManager:addSubtask verwendet.
- Ein zeitgesteuerter Update-Fallback verhindert, dass die Karte bei einem blockierten oder nicht verfügbaren Task-Manager stehen bleibt.

Diagnose und Kompatibilität

- Beim Öffnen einer RWSM-Kartenebene wird eine kompakte Diagnose mit Callback-Status, Overlay-ID, Bereitschaft, Ebene, Detailstufe, Quellzellen, Rechtecken, sichtbaren Rechtecken und Kartengrenzen ausgegeben.
- Alte Native-Map-Speicher- und Sync-Aufrufe bleiben als sichere Kompatibilitätseinstiege erhalten, erzeugen aber keine eigenen Kartendateien mehr.
- RWSM-Karten werden vollständig aus den bereits gespeicherten Boden- und Agronomiezellen abgeleitet.

Unverändert

- Direkte GIANTS-WorkArea-Anbindung und Seeder-Performanceoptimierung.
- 250-ms-Kompatibilitätsfallback für ungewöhnliche Modgeräte.
- Zellenbasierte Multiplayer-Priorisierung und vollständige Beitrittssynchronisierung.
- Globale Feldsimulation und Round-Robin-Hintergrundberechnung.
- Oberboden-, Wurzelzonen- und Unterbodenverdichtung.
- Reale Rad- und Achslasten, Reifendruck, Schlupf und Mehrfachüberfahrten.
- Pflanzen-, Wurzel-, Unkraut-, Wasser- und Ertragssystem.
- WaterSoilAPI und Visual-Mud-Tracks-Kompatibilität.
- Rainstar, Regnerwagen, Schlauchtrommel, Manual Attach, Auto-Reel und komplettes 3D-Modell.
