merged develop
This commit is contained in:
@@ -122,7 +122,7 @@ function Database.New(Logger)
|
||||
self._logger:debug("Initiating tables")
|
||||
|
||||
do -- INIT ZONE TABLES
|
||||
for zone_ind, zone_data in pairs(DcsUtil.__trigger_zones) do
|
||||
for _, zone_data in pairs(DcsUtil.__trigger_zones) do
|
||||
local zone_name = zone_data.name
|
||||
|
||||
---@type Vec2
|
||||
@@ -209,15 +209,18 @@ function Database.New(Logger)
|
||||
self._logger:debug("initiated zone tables, continuing with descriptions")
|
||||
do --load markers
|
||||
if env.mission.drawings and env.mission.drawings.layers then
|
||||
for i, layer in pairs(env.mission.drawings.layers) do
|
||||
for _, layer in pairs(env.mission.drawings.layers) do
|
||||
if string.lower(layer.name) == "author" then
|
||||
for key, layer_object in pairs(layer.objects) do
|
||||
for _, layer_object in pairs(layer.objects) do
|
||||
if Util.startsWith(string.lower(layer_object.name), "buildable", true) == true then
|
||||
local airbaseData = self:getAirbaseDataForDrawLayer(layer_object)
|
||||
if airbaseData then
|
||||
self._logger:debug("found airbase data for " .. layer_object.name)
|
||||
local number = tonumber(layer_object.text)
|
||||
airbaseData.buildingKilos = number
|
||||
if layer_object.primitiveType == "TextBox" then
|
||||
layer_object = layer_object --[[@as TextBox]]
|
||||
local number = tonumber(layer_object.text)
|
||||
airbaseData.buildingKilos = number
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -229,9 +232,9 @@ function Database.New(Logger)
|
||||
---@type table<integer, boolean>
|
||||
do -- custom drawings
|
||||
if env.mission.drawings and env.mission.drawings.layers then
|
||||
for i, layer in pairs(env.mission.drawings.layers) do
|
||||
for _, layer in pairs(env.mission.drawings.layers) do
|
||||
if string.lower(layer.name) == "author" then
|
||||
for key, layer_object in pairs(layer.objects) do
|
||||
for _, layer_object in pairs(layer.objects) do
|
||||
if Util.startsWith(layer_object.name, "drawing_", true) then
|
||||
local object = layer_object --[[@as DrawingObject]]
|
||||
local stageDrawing = StageDrawing.New(object)
|
||||
@@ -257,16 +260,19 @@ function Database.New(Logger)
|
||||
|
||||
-- Find and add Briefing
|
||||
if env.mission.drawings and env.mission.drawings.layers then
|
||||
for i, layer in pairs(env.mission.drawings.layers) do
|
||||
for _, layer in pairs(env.mission.drawings.layers) do
|
||||
if string.lower(layer.name) == "author" then
|
||||
for key, layer_object in pairs(layer.objects) do
|
||||
for _, layer_object in pairs(layer.objects) do
|
||||
if Util.startsWith(string.lower(layer_object.name), "stagebriefing_", true) == true then
|
||||
local zone = DcsUtil.getZoneByName(stageZoneName)
|
||||
local vec2 = { x = layer_object.mapX, y = layer_object.mapY }
|
||||
if zone and Util.is2dPointInZone(vec2, zone) == true then
|
||||
local description = layer_object.text
|
||||
if description and description ~= "" then
|
||||
stageData.StageBriefing = description
|
||||
if layer_object.primitiveType == "TextBox" then
|
||||
layer_object = layer_object --[[@as TextBox]]
|
||||
local description = layer_object.text
|
||||
if description and description ~= "" then
|
||||
stageData.StageBriefing = description
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -340,14 +346,14 @@ function Database.New(Logger)
|
||||
end
|
||||
|
||||
-- fill missions
|
||||
for key, missionZone in pairs(self._tables.MissionZones) do
|
||||
for _, missionZone in pairs(self._tables.MissionZones) do
|
||||
if DcsUtil.isZoneInZone(missionZone, stageZoneName) == true then
|
||||
table.insert(stageData.MissionZones, missionZone)
|
||||
end
|
||||
end
|
||||
|
||||
-- fill random missions
|
||||
for key, missionZone in pairs(self._tables.RandomMissionZones) do
|
||||
for _, missionZone in pairs(self._tables.RandomMissionZones) do
|
||||
if DcsUtil.isZoneInZone(missionZone, stageZoneName) == true then
|
||||
table.insert(stageData.RandomMissionZones, missionZone)
|
||||
end
|
||||
@@ -469,6 +475,7 @@ function Database.New(Logger)
|
||||
return self
|
||||
end
|
||||
|
||||
---@type table<string, boolean>
|
||||
local is_group_taken = {}
|
||||
|
||||
local getAvailableGroups = function()
|
||||
@@ -621,13 +628,14 @@ function Database:loadBlueSamUnits()
|
||||
samData.buildingKilos = number
|
||||
|
||||
if env.mission.drawings and env.mission.drawings.layers then
|
||||
for i, layer in pairs(env.mission.drawings.layers) do
|
||||
for _, layer in pairs(env.mission.drawings.layers) do
|
||||
if string.lower(layer.name) == "author" then
|
||||
for key, layer_object in pairs(layer.objects) do
|
||||
for _, layer_object in pairs(layer.objects) do
|
||||
|
||||
local vec2 = { x = layer_object.mapX, y = layer_object.mapY }
|
||||
if triggerZone and Util.is2dPointInZone(vec2, triggerZone) then
|
||||
if layer_object.primitiveType == "TextBox" and triggerZone and Util.is2dPointInZone(vec2, triggerZone) then
|
||||
if layer_object.name and Util.startsWith(layer_object.name, "supplybriefing_", true) then
|
||||
layer_object = layer_object --[[@as TextBox]]
|
||||
local description = layer_object.text
|
||||
if description and description ~= "" then
|
||||
samData.briefing = description
|
||||
@@ -638,7 +646,7 @@ function Database:loadBlueSamUnits()
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
else
|
||||
MissionEditorWarnings.Add("Buildable number for " .. blueSamZone .. " is invalid")
|
||||
end
|
||||
end
|
||||
@@ -671,13 +679,13 @@ function Database:LoadZoneData(missionZoneName)
|
||||
for _, groupName in pairs(groups) do
|
||||
if MizGroupsManager.IsGroupStatic(groupName) == true then
|
||||
local object = StaticObject.getByName(groupName)
|
||||
|
||||
|
||||
if object and object:getCoalition() == coalition.side.RED then
|
||||
table.insert(self._tables.MissionZoneData[missionZoneName].RedGroups, groupName)
|
||||
elseif object then
|
||||
table.insert(self._tables.MissionZoneData[missionZoneName].BlueGroups, groupName)
|
||||
end
|
||||
|
||||
|
||||
else
|
||||
local group = Group.getByName(groupName)
|
||||
if group and group:getCoalition() == coalition.side.RED then
|
||||
@@ -729,13 +737,14 @@ function Database:LoadZoneData(missionZoneName)
|
||||
|
||||
---Adds Briefings
|
||||
if env.mission.drawings and env.mission.drawings.layers then
|
||||
for i, layer in pairs(env.mission.drawings.layers) do
|
||||
for _, layer in pairs(env.mission.drawings.layers) do
|
||||
if string.lower(layer.name) == "author" then
|
||||
for key, layer_object in pairs(layer.objects) do
|
||||
for _, layer_object in pairs(layer.objects) do
|
||||
|
||||
local vec2 = { x = layer_object.mapX, y = layer_object.mapY }
|
||||
if triggerZone and Util.is2dPointInZone(vec2, triggerZone) then
|
||||
if layer_object.primitiveType == "TextBox" and triggerZone and Util.is2dPointInZone(vec2, triggerZone) then
|
||||
if layer_object.name and Util.startsWith(layer_object.name, "briefing_", true) then
|
||||
layer_object = layer_object --[[@as TextBox]]
|
||||
local description = layer_object.text
|
||||
if description and description ~= "" then
|
||||
self._tables.MissionZoneData[missionZoneName].description = description
|
||||
@@ -785,12 +794,13 @@ function Database:loadFarpData()
|
||||
|
||||
-- check briefings
|
||||
if env.mission.drawings and env.mission.drawings.layers then
|
||||
for i, layer in pairs(env.mission.drawings.layers) do
|
||||
for _, layer in pairs(env.mission.drawings.layers) do
|
||||
if string.lower(layer.name) == "author" then
|
||||
for key, layer_object in pairs(layer.objects) do
|
||||
for _, layer_object in pairs(layer.objects) do
|
||||
|
||||
local vec2 = { x = layer_object.mapX, y = layer_object.mapY }
|
||||
if triggerZone and Util.is2dPointInZone(vec2, triggerZone) then
|
||||
if layer_object.primitiveType == "TextBox" and triggerZone and Util.is2dPointInZone(vec2, triggerZone) then
|
||||
layer_object = layer_object --[[@as TextBox]]
|
||||
if layer_object.name and Util.startsWith(layer_object.name, "supplybriefing_", true) then
|
||||
local description = layer_object.text
|
||||
if description and description ~= "" then
|
||||
@@ -805,8 +815,6 @@ function Database:loadFarpData()
|
||||
else
|
||||
MissionEditorWarnings.Add("Buildable number for " .. farpZone .. " is invalid.")
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -961,6 +969,7 @@ function Database:getBriefingForStage(stagename)
|
||||
return stageZone.StageBriefing or ""
|
||||
end
|
||||
|
||||
---@param stagename string
|
||||
---@return Array<string>
|
||||
function Database:getMissionsForStage(stagename)
|
||||
local stageZone = self._tables.StageZones[stagename]
|
||||
@@ -968,6 +977,7 @@ function Database:getMissionsForStage(stagename)
|
||||
return stageZone.MissionZones
|
||||
end
|
||||
|
||||
---@param stagename string
|
||||
---@return Array<string>
|
||||
function Database:getRandomMissionsForStage(stagename)
|
||||
local stageZone = self._tables.StageZones[stagename]
|
||||
@@ -975,13 +985,14 @@ function Database:getRandomMissionsForStage(stagename)
|
||||
return stageZone.RandomMissionZones
|
||||
end
|
||||
|
||||
---@param missionZoneName string
|
||||
---@return MissionZoneData?
|
||||
function Database:getMissionDataForZone(missionZoneName)
|
||||
return self._tables.MissionZoneData[missionZoneName]
|
||||
end
|
||||
|
||||
---@param stageName string
|
||||
---@return table result airbase Names
|
||||
---@return Array<string> result airbase Names
|
||||
function Database:getAirbaseNamesInStage(stageName)
|
||||
local stageData = self._tables.StageZones[stageName]
|
||||
if not stageData then return {} end
|
||||
@@ -995,6 +1006,7 @@ function Database:getFarpNamesInStage(stageName)
|
||||
return stageData.FarpZones or {}
|
||||
end
|
||||
|
||||
---@param farpZoneName string
|
||||
---@return FarpZoneData?
|
||||
function Database:getFarpDataForZone(farpZoneName)
|
||||
local farpData = self._tables.FarpZoneData[farpZoneName]
|
||||
@@ -1010,6 +1022,7 @@ function Database:getAirbaseDataForZone(baseName)
|
||||
return baseData
|
||||
end
|
||||
|
||||
---@param stageName string
|
||||
---@return string?
|
||||
function Database:getStageBriefingForStage(stageName)
|
||||
local stageData = self._tables.StageZones[stageName]
|
||||
|
||||
Reference in New Issue
Block a user