mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
feat(navpoints): added navpoint sublayers
This commit is contained in:
parent
8e20499b92
commit
6e7b5b1cc3
@ -530,7 +530,7 @@ export class DCSDrawingsContainer {
|
||||
if (layerName === 'navpoints') {
|
||||
return;
|
||||
}
|
||||
if (drawingsData[layerName]["name"] === undefined) {
|
||||
if (drawingsData[layerName]["name"] === undefined && drawingsData[layerName]["callsignStr"] === undefined) {
|
||||
const newContainer = new DCSDrawingsContainer(layerName, this);
|
||||
this.addSubContainer(newContainer);
|
||||
newContainer.initFromData(drawingsData[layerName]);
|
||||
@ -557,7 +557,9 @@ export class DCSDrawingsContainer {
|
||||
|
||||
if (isANavpoint) {
|
||||
newDrawing = new DCSNavpoint(drawingsData[layerName], othersContainer);
|
||||
this.addDrawing(newDrawing);
|
||||
if (hasContainers) othersContainer.addDrawing(newDrawing);
|
||||
else this.addDrawing(newDrawing);
|
||||
if (othersContainer.getDrawings().length === 0) this.removeSubContainer(othersContainer); // Remove empty container
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -1077,19 +1077,37 @@ function getUnitDescription(unit)
|
||||
end
|
||||
|
||||
-- This function gets the navpoints from the DCS mission
|
||||
function Olympus.getNavPoints()
|
||||
function Olympus.getNavPoints()
|
||||
local function extract_tag(str)
|
||||
return str:match("^%[(.-)%]")
|
||||
end
|
||||
|
||||
local navpoints = {}
|
||||
if mist.DBs.navPoints ~= nil then
|
||||
for coalitionName, coalitionNavpoints in pairs(mist.DBs.navPoints) do
|
||||
if navpoints[coalitionName] == nil then
|
||||
navpoints[coalitionName] = {}
|
||||
end
|
||||
|
||||
for index, navpointDrawingData in pairs(coalitionNavpoints) do
|
||||
local navpointCustomLayer = extract_tag(navpointDrawingData['callsignStr']);
|
||||
|
||||
-- Let's convert DCS coords to lat lon
|
||||
local vec3 = { x = navpointDrawingData['x'], y = 0, z = navpointDrawingData['y'] }
|
||||
local lat, lng = coord.LOtoLL(vec3)
|
||||
navpointDrawingData['lat'] = lat
|
||||
navpointDrawingData['lng'] = lng
|
||||
navpointDrawingData['coalition'] = coalitionName
|
||||
|
||||
if navpointCustomLayer ~= nil then
|
||||
if navpoints[coalitionName][navpointCustomLayer] == nil then
|
||||
navpoints[coalitionName][navpointCustomLayer] = {}
|
||||
end
|
||||
navpoints[coalitionName][navpointCustomLayer][navpointDrawingData['callsignStr']] = navpointDrawingData
|
||||
else
|
||||
navpoints[coalitionName][navpointDrawingData['callsignStr']] = navpointDrawingData
|
||||
end
|
||||
end
|
||||
navpoints[coalitionName] = coalitionNavpoints
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user