feature(drawings): Navpoints settings saved in session data

This commit is contained in:
MarcoJayUsai 2025-03-26 15:21:17 +01:00
parent 1262c85802
commit fca63fb103
4 changed files with 9 additions and 4 deletions

View File

@ -60,6 +60,7 @@ export interface SessionData {
hotgroups?: { [key: string]: number[] };
starredSpawns?: { [key: number]: SpawnRequestTable };
drawings?: { [key: string]: { visibility: boolean; opacity: number; name: string; guid: string; containers: any; drawings: any } };
navpoints?: { [key: string]: { visibility: boolean; opacity: number; name: string; guid: string; containers: any; drawings: any } };
}
export interface ProfileOptions {

View File

@ -703,6 +703,7 @@ export class DrawingsManager {
#navpointsContainer: DCSDrawingsContainer;
#updateEventRequested: boolean = false;
#sessionDataDrawings = {};
#sessionDataNavpoints = {};
#initialized: boolean = false;
constructor() {
@ -717,9 +718,10 @@ export class DrawingsManager {
SessionDataLoadedEvent.on((sessionData) => {
this.#sessionDataDrawings = sessionData.drawings ?? {};
this.#sessionDataNavpoints = sessionData.navpoints ?? {};
if (this.#initialized) {
if (this.#sessionDataDrawings["Mission drawings"]) this.#drawingsContainer.fromJSON(this.#sessionDataDrawings["Mission drawings"]);
if (this.#sessionDataDrawings["Navpoints"]) this.#navpointsContainer.fromJSON(this.#sessionDataDrawings["Navpoints"]);
if (this.#sessionDataNavpoints["Navpoints"]) this.#navpointsContainer.fromJSON(this.#sessionDataNavpoints["Navpoints"]);
}
this.#drawingsContainer.setVisibility(getApp().getMap().getOptions().showMissionDrawings);
});

View File

@ -134,8 +134,10 @@ export class SessionDataManager {
});
DrawingsUpdatedEvent.on(() => {
let container = getApp().getDrawingsManager().getDrawingsContainer();
this.#sessionData.drawings = {"Mission drawings": container.toJSON()};
let mainDrawingsContainer = getApp().getDrawingsManager().getDrawingsContainer();
let navpointsContainer = getApp().getDrawingsManager().getNavpointsContainer();
this.#sessionData.drawings = {"Mission drawings": mainDrawingsContainer.toJSON()};
this.#sessionData.navpoints = {"Navpoints": navpointsContainer.toJSON()};
this.#saveSessionData();
});
}, 200);

View File

@ -308,7 +308,7 @@ export function DrawingMenu(props: { open: boolean; onClose: () => void }) {
</span>
Navpoints
</div>
<OlSearchBar onChange={(search) => setSearchString(search)} text={searchString || ""}></OlSearchBar>
{/* <OlSearchBar onChange={(search) => setSearchString(search)} text={searchString || ""}></OlSearchBar> */}
<div className="flex flex-col gap-2">{navpointsContainer.container && renderDrawingsContainerControls(navpointsContainer.container)}</div>
</div>
</div>