mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-07-23 21:16:28 +00:00
Merge remote-tracking branch 'origin/master-ng' into branch
This commit is contained in:
@@ -139,8 +139,6 @@ function DATABASE:New()
|
||||
self:HandleEvent( EVENTS.RemoveUnit, self._EventOnDeadOrCrash )
|
||||
self:HandleEvent( EVENTS.UnitLost, self._EventOnDeadOrCrash ) -- DCS 2.7.1 for Aerial units no dead event ATM
|
||||
self:HandleEvent( EVENTS.Hit, self.AccountHits )
|
||||
self:HandleEvent( EVENTS.NewCargo )
|
||||
self:HandleEvent( EVENTS.DeleteCargo )
|
||||
self:HandleEvent( EVENTS.NewZone )
|
||||
self:HandleEvent( EVENTS.DeleteZone )
|
||||
--self:HandleEvent( EVENTS.PlayerEnterUnit, self._EventOnPlayerEnterUnit ) -- This is not working anymore!, handling this through the birth event.
|
||||
|
||||
@@ -40,6 +40,7 @@ do
|
||||
-- @field #string ClassName Class name.
|
||||
-- @field #number ID ID of this cargo.
|
||||
-- @field #string Name Name for menu.
|
||||
-- @field #string DisplayName Display name for menu/messages.
|
||||
-- @field #table Templates Table of #POSITIONABLE objects.
|
||||
-- @field #string CargoType Enumerator of Type.
|
||||
-- @field #boolean HasBeenMoved Flag for moving.
|
||||
@@ -66,6 +67,7 @@ CTLD_CARGO = {
|
||||
ClassName = "CTLD_CARGO",
|
||||
ID = 0,
|
||||
Name = "none",
|
||||
DisplayName = "none",
|
||||
Templates = {},
|
||||
CargoType = "none",
|
||||
HasBeenMoved = false,
|
||||
@@ -125,6 +127,7 @@ CTLD_CARGO = {
|
||||
self:T({ID, Name, Templates, Sorte, HasBeenMoved, LoadDirectly, CratesNeeded, Positionable, Dropped})
|
||||
self.ID = ID or math.random(100000,1000000)
|
||||
self.Name = Name or "none" -- #string
|
||||
self.DisplayName = Name or "none" -- #string
|
||||
self.Templates = Templates or {} -- #table
|
||||
self.CargoType = Sorte or "type" -- #CTLD_CARGO.Enum
|
||||
self.HasBeenMoved = HasBeenMoved or false -- #boolean
|
||||
@@ -253,6 +256,26 @@ CTLD_CARGO = {
|
||||
function CTLD_CARGO:GetName()
|
||||
return self.Name
|
||||
end
|
||||
|
||||
--- Set display name.
|
||||
-- @param #CTLD_CARGO self
|
||||
-- @param #string DisplayName Display label used in menus/messages (optional).
|
||||
-- @return #CTLD_CARGO self
|
||||
function CTLD_CARGO:SetDisplayName(DisplayName)
|
||||
if type(DisplayName) == "string" and DisplayName ~= "" then
|
||||
self.DisplayName = DisplayName
|
||||
else
|
||||
self.DisplayName = self.Name
|
||||
end
|
||||
return self
|
||||
end
|
||||
|
||||
--- Query display name.
|
||||
-- @param #CTLD_CARGO self
|
||||
-- @return #string Display name, or Name if not set
|
||||
function CTLD_CARGO:GetDisplayName()
|
||||
return self.DisplayName or self.Name
|
||||
end
|
||||
|
||||
--- Query Templates.
|
||||
-- @param #CTLD_CARGO self
|
||||
@@ -2137,6 +2160,35 @@ function CTLD:_GetUnitCapabilities(Unit)
|
||||
return capabilities
|
||||
end
|
||||
|
||||
--- (Internal) Resolve cargo label for menus/messages.
|
||||
-- @param #CTLD self
|
||||
-- @param #CTLD_CARGO Cargo Cargo object or cargo name.
|
||||
-- @return #string Cargo label
|
||||
function CTLD:_GetCargoDisplayName(Cargo)
|
||||
if type(Cargo) == "table" then
|
||||
if Cargo.GetDisplayName then
|
||||
local dname = Cargo:GetDisplayName()
|
||||
if type(dname) == "string" and dname ~= "" then
|
||||
return dname
|
||||
end
|
||||
end
|
||||
if Cargo.GetName then
|
||||
local name = Cargo:GetName()
|
||||
if type(name) == "string" and name ~= "" then
|
||||
return name
|
||||
end
|
||||
end
|
||||
if type(Cargo.Name) == "string" and Cargo.Name ~= "" then
|
||||
return Cargo.Name
|
||||
end
|
||||
return "Unknown"
|
||||
end
|
||||
if type(Cargo) == "string" and Cargo ~= "" then
|
||||
return Cargo
|
||||
end
|
||||
return "Unknown"
|
||||
end
|
||||
|
||||
--- (User) Function to allow transport via Combined Arms Trucks.
|
||||
-- @param #CTLD self
|
||||
-- @param #boolean OnOff Switch on (true) or off (false).
|
||||
@@ -3335,7 +3387,7 @@ function CTLD:_GetCrates(Group, Unit, Cargo, number, drop, pack, quiet, suppress
|
||||
local requestedSets = math.floor((requestNumber + perSet - 1) / perSet)
|
||||
if requestedSets < 1 then requestedSets = 1 end
|
||||
if not drop and not pack then
|
||||
local cgoname = Cargo:GetName()
|
||||
local cgoname = self:_GetCargoDisplayName(Cargo)
|
||||
local instock = Cargo:GetStock()
|
||||
if type(instock) == "number" and tonumber(instock) <= 0 and tonumber(instock) ~= -1 then
|
||||
-- nothing left over
|
||||
@@ -3396,7 +3448,7 @@ function CTLD:_GetCrates(Group, Unit, Cargo, number, drop, pack, quiet, suppress
|
||||
return false
|
||||
end
|
||||
|
||||
if not self:CanGetCrates(Group, Unit, Cargo, requestNumber, drop, pack, quiet, suppressGetEvent) then
|
||||
if not drop and not self:CanGetCrates(Group, Unit, Cargo, requestNumber, drop, pack, quiet, suppressGetEvent) then
|
||||
return false
|
||||
end
|
||||
-- spawn crates in front of helicopter
|
||||
@@ -3407,6 +3459,7 @@ function CTLD:_GetCrates(Group, Unit, Cargo, number, drop, pack, quiet, suppress
|
||||
local number = requestNumber --#number
|
||||
local cratesneeded = cargotype:GetCratesNeeded() --#number
|
||||
local cratename = cargotype:GetName()
|
||||
local cratedisplayname = self:_GetCargoDisplayName(cargotype)
|
||||
local cratetemplate = "Container"-- #string
|
||||
local cgotype = cargotype:GetType()
|
||||
local cgomass = cargotype:GetMass()
|
||||
@@ -3521,6 +3574,7 @@ function CTLD:_GetCrates(Group, Unit, Cargo, number, drop, pack, quiet, suppress
|
||||
if drop then
|
||||
--CTLD_CARGO:New(ID, Name, Templates, Sorte, HasBeenMoved, LoadDirectly, CratesNeeded, Positionable, Dropped, PerCrateMass, Stock, Subcategory)
|
||||
realcargo = CTLD_CARGO:New(self.CargoCounter,cratename,templ,sorte,true,false,cratesneeded,self.Spawned_Crates[self.CrateCounter],true,cargotype.PerCrateMass,nil,subcat) -- #CTLD_CARGO
|
||||
realcargo:SetDisplayName(cargotype:GetDisplayName())
|
||||
local map=cargotype:GetStaticResourceMap()
|
||||
realcargo:SetStaticResourceMap(map)
|
||||
local CCat3, CType3, CShape3 = cargotype:GetStaticTypeAndShape()
|
||||
@@ -3531,6 +3585,7 @@ function CTLD:_GetCrates(Group, Unit, Cargo, number, drop, pack, quiet, suppress
|
||||
table.insert(droppedcargo,realcargo)
|
||||
else
|
||||
realcargo = CTLD_CARGO:New(self.CargoCounter,cratename,templ,sorte,false,false,cratesneeded,self.Spawned_Crates[self.CrateCounter],false,cargotype.PerCrateMass,nil,subcat)
|
||||
realcargo:SetDisplayName(cargotype:GetDisplayName())
|
||||
local map=cargotype:GetStaticResourceMap()
|
||||
realcargo:SetStaticResourceMap(map)
|
||||
if cargotype.TypeNames then
|
||||
@@ -3552,9 +3607,9 @@ function CTLD:_GetCrates(Group, Unit, Cargo, number, drop, pack, quiet, suppress
|
||||
Cargo:RemoveStock(requestedSets)
|
||||
self:_RefreshCrateQuantityMenus(Group, Unit, Cargo)
|
||||
end
|
||||
local text = string.format("%d crates for %s have been positioned near you!",number,cratename)
|
||||
local text = string.format("%d crates for %s have been positioned near you!",number,cratedisplayname)
|
||||
if drop then
|
||||
text = string.format("%d crates for %s have been dropped!",number,cratename)
|
||||
text = string.format("%d crates for %s have been dropped!",number,cratedisplayname)
|
||||
self:__CratesDropped(1, Group, Unit, droppedcargo)
|
||||
else
|
||||
if not quiet then
|
||||
@@ -5592,7 +5647,7 @@ function CTLD:_RefreshF10Menus()
|
||||
end
|
||||
for _, cargoObj in pairs(self.Cargo_Troops) do
|
||||
if not cargoObj.DontShowInMenu then
|
||||
local menutext = cargoObj.Name
|
||||
local menutext = self:_GetCargoDisplayName(cargoObj)
|
||||
local parent = troopsmenu
|
||||
if useTroopSubcats and cargoObj.Subcategory and subcatmenus[cargoObj.Subcategory] then
|
||||
parent = subcatmenus[cargoObj.Subcategory]
|
||||
@@ -5605,7 +5660,7 @@ function CTLD:_RefreshF10Menus()
|
||||
else
|
||||
for _, cargoObj in pairs(self.Cargo_Troops) do
|
||||
if not cargoObj.DontShowInMenu then
|
||||
local menutext = cargoObj.Name
|
||||
local menutext = self:_GetCargoDisplayName(cargoObj)
|
||||
local mSet = MENU_GROUP:New(_group, menutext, troopsmenu)
|
||||
_group.CTLD_TroopMenus[cargoObj.Name] = mSet
|
||||
self:_AddTroopQuantityMenus(_group,_unit,mSet,cargoObj)
|
||||
@@ -5620,7 +5675,7 @@ function CTLD:_RefreshF10Menus()
|
||||
if loadedData and loadedData.Cargo then
|
||||
for i,cargoObj in ipairs(loadedData.Cargo) do
|
||||
if cargoObj and (cargoObj:GetType()==CTLD_CARGO.Enum.TROOPS or cargoObj:GetType()==CTLD_CARGO.Enum.ENGINEERS) and not cargoObj:WasDropped() then
|
||||
local name=cargoObj:GetName() or "Unknown"
|
||||
local name=self:_GetCargoDisplayName(cargoObj)
|
||||
local needed=cargoObj:GetCratesNeeded() or 1
|
||||
local cID=cargoObj:GetID()
|
||||
local line=string.format("Drop: %s",name,needed,cID)
|
||||
@@ -5673,10 +5728,11 @@ function CTLD:_RefreshF10Menus()
|
||||
local needed = cargoObj:GetCratesNeeded() or 1
|
||||
|
||||
local txt
|
||||
local cargoLabel = self:_GetCargoDisplayName(cargoObj)
|
||||
if needed > 1 then
|
||||
txt = string.format("%d crate%s %s (%dkg)",needed,needed==1 and "" or "s",cargoObj.Name,cargoObj.PerCrateMass or 0)
|
||||
txt = string.format("%d crate%s %s (%dkg)",needed,needed==1 and "" or "s",cargoLabel,cargoObj.PerCrateMass or 0)
|
||||
else
|
||||
txt = string.format("%s (%dkg)",cargoObj.Name,cargoObj.PerCrateMass or 0)
|
||||
txt = string.format("%s (%dkg)",cargoLabel,cargoObj.PerCrateMass or 0)
|
||||
end
|
||||
if cargoObj.Location then txt = txt.."[R]" end
|
||||
if self.showstockinmenuitems then
|
||||
@@ -5721,10 +5777,11 @@ function CTLD:_RefreshF10Menus()
|
||||
if not cargoObj.DontShowInMenu then
|
||||
local needed = cargoObj:GetCratesNeeded() or 1
|
||||
local txt
|
||||
local cargoLabel = self:_GetCargoDisplayName(cargoObj)
|
||||
if needed > 1 then
|
||||
txt = string.format("%d crate%s %s (%dkg)",needed,needed==1 and "" or "s",cargoObj.Name,cargoObj.PerCrateMass or 0)
|
||||
txt = string.format("%d crate%s %s (%dkg)",needed,needed==1 and "" or "s",cargoLabel,cargoObj.PerCrateMass or 0)
|
||||
else
|
||||
txt = string.format("%s (%dkg)",cargoObj.Name,cargoObj.PerCrateMass or 0)
|
||||
txt = string.format("%s (%dkg)",cargoLabel,cargoObj.PerCrateMass or 0)
|
||||
end
|
||||
if cargoObj.Location then txt = txt.."[R]" end
|
||||
local stock = cargoObj:GetStock()
|
||||
@@ -5736,10 +5793,11 @@ function CTLD:_RefreshF10Menus()
|
||||
if (not cargoObj.DontShowInMenu) and (not cargoObj.UnitCanCarry or cargoObj:UnitCanCarry(_unit)) then
|
||||
local needed = cargoObj:GetCratesNeeded() or 1
|
||||
local txt
|
||||
local cargoLabel = self:_GetCargoDisplayName(cargoObj)
|
||||
if needed > 1 then
|
||||
txt = string.format("%d crate%s %s (%dkg)",needed,needed==1 and "" or "s",cargoObj.Name,cargoObj.PerCrateMass or 0)
|
||||
txt = string.format("%d crate%s %s (%dkg)",needed,needed==1 and "" or "s",cargoLabel,cargoObj.PerCrateMass or 0)
|
||||
else
|
||||
txt = string.format("%s (%dkg)",cargoObj.Name,cargoObj.PerCrateMass or 0)
|
||||
txt = string.format("%s (%dkg)",cargoLabel,cargoObj.PerCrateMass or 0)
|
||||
end
|
||||
if cargoObj.Location then txt = txt.."[R]" end
|
||||
local stock = cargoObj:GetStock()
|
||||
@@ -5752,10 +5810,11 @@ function CTLD:_RefreshF10Menus()
|
||||
if not cargoObj.DontShowInMenu then
|
||||
local needed = cargoObj:GetCratesNeeded() or 1
|
||||
local txt
|
||||
local cargoLabel = self:_GetCargoDisplayName(cargoObj)
|
||||
if needed > 1 then
|
||||
txt = string.format("%d crate%s %s (%dkg)",needed,needed==1 and "" or "s",cargoObj.Name,cargoObj.PerCrateMass or 0)
|
||||
txt = string.format("%d crate%s %s (%dkg)",needed,needed==1 and "" or "s",cargoLabel,cargoObj.PerCrateMass or 0)
|
||||
else
|
||||
txt = string.format("%s (%dkg)",cargoObj.Name,cargoObj.PerCrateMass or 0)
|
||||
txt = string.format("%s (%dkg)",cargoLabel,cargoObj.PerCrateMass or 0)
|
||||
end
|
||||
if cargoObj.Location then txt = txt.."[R]" end
|
||||
local stock = cargoObj:GetStock()
|
||||
@@ -5767,10 +5826,11 @@ function CTLD:_RefreshF10Menus()
|
||||
if (not cargoObj.DontShowInMenu) and (not cargoObj.UnitCanCarry or cargoObj:UnitCanCarry(_unit)) then
|
||||
local needed = cargoObj:GetCratesNeeded() or 1
|
||||
local txt
|
||||
local cargoLabel = self:_GetCargoDisplayName(cargoObj)
|
||||
if needed > 1 then
|
||||
txt = string.format("%d crate%s %s (%dkg)",needed,needed==1 and "" or "s",cargoObj.Name,cargoObj.PerCrateMass or 0)
|
||||
txt = string.format("%d crate%s %s (%dkg)",needed,needed==1 and "" or "s",cargoLabel,cargoObj.PerCrateMass or 0)
|
||||
else
|
||||
txt = string.format("%s (%dkg)",cargoObj.Name,cargoObj.PerCrateMass or 0)
|
||||
txt = string.format("%s (%dkg)",cargoLabel,cargoObj.PerCrateMass or 0)
|
||||
end
|
||||
if cargoObj.Location then txt = txt.."[R]" end
|
||||
local stock = cargoObj:GetStock()
|
||||
@@ -5816,12 +5876,13 @@ function CTLD:_RefreshF10Menus()
|
||||
if cgo and (not cgo:WasDropped()) then
|
||||
local cname = cgo:GetName()
|
||||
local cneeded = cgo:GetCratesNeeded()
|
||||
cargoByName[cname] = cargoByName[cname] or { count=0, needed=cneeded }
|
||||
local cdisplay = self:_GetCargoDisplayName(cgo)
|
||||
cargoByName[cname] = cargoByName[cname] or { count=0, needed=cneeded, display=cdisplay }
|
||||
cargoByName[cname].count = cargoByName[cname].count + 1
|
||||
end
|
||||
end
|
||||
for name, info in pairs(cargoByName) do
|
||||
local line = string.format("Drop %s (%d/%d)", name, info.count, info.needed)
|
||||
local line = string.format("Drop %s (%d/%d)", info.display or name, info.count, info.needed)
|
||||
MENU_GROUP_COMMAND:New(_group, line, dropCratesMenu, self._UnloadSingleCrateSet, self, _group, _unit, name)
|
||||
end
|
||||
end
|
||||
@@ -5857,7 +5918,7 @@ function CTLD:_RefreshF10Menus()
|
||||
end
|
||||
parent = sub
|
||||
end
|
||||
local menutext = cargoObj.Name
|
||||
local menutext = self:_GetCargoDisplayName(cargoObj)
|
||||
if type(cargoObj.Stock) == "number" and cargoObj.Stock >= 0 and self.showstockinmenuitems then
|
||||
menutext = menutext.."["..cargoObj.Stock.."]"
|
||||
end
|
||||
@@ -6915,8 +6976,10 @@ end
|
||||
-- @param #string SubCategory Name of sub-category (optional).
|
||||
-- @param #boolean DontShowInMenu (optional) If set to "true" this won't show up in the menu.
|
||||
-- @param Core.Zone#ZONE Location (optional) If set, the cargo item is **only** available here. Can be a #ZONE object or the name of a zone as #string.
|
||||
-- @param #string UnitTypes Unit type names (optional). If set, only these unit types can pick up the cargo, e.g. "UH-1H" or {"UH-1H","OH58D"}.
|
||||
-- @param #string DisplayName Display name shown in menus/messages (optional). Falls back to `Name`.
|
||||
-- @return #CTLD_CARGO CargoObject
|
||||
function CTLD:AddStaticsCargo(Name,Mass,Stock,SubCategory,DontShowInMenu,Location,UnitTypes)
|
||||
function CTLD:AddStaticsCargo(Name,Mass,Stock,SubCategory,DontShowInMenu,Location,UnitTypes,DisplayName)
|
||||
self:T(self.lid .. " AddStaticsCargo")
|
||||
self.CargoCounter = self.CargoCounter + 1
|
||||
local type = CTLD_CARGO.Enum.STATIC
|
||||
@@ -6931,6 +6994,43 @@ function CTLD:AddStaticsCargo(Name,Mass,Stock,SubCategory,DontShowInMenu,Locatio
|
||||
if UnitTypes then
|
||||
cargo:AddUnitTypeName(UnitTypes)
|
||||
end
|
||||
cargo:SetDisplayName(DisplayName or Name)
|
||||
cargo:SetStaticResourceMap(ResourceMap)
|
||||
table.insert(self.Cargo_Statics,cargo)
|
||||
if SubCategory and self.usesubcats ~= true then self.usesubcats=true end
|
||||
return cargo
|
||||
end
|
||||
|
||||
--- User function - Add *generic* static-type loadable as cargo from a static **type name**.
|
||||
-- This variant does **not** require a matching mission-editor static template.
|
||||
-- @param #CTLD self
|
||||
-- @param #string Name Unique cargo identifier for this type.
|
||||
-- @param #string TypeName Static type name to spawn, e.g. "ammo_cargo", "iso_container_small".
|
||||
-- @param #number Mass Mass in kg of each static in kg, e.g. 100.
|
||||
-- @param #number Stock Number of groups in stock. Nil for unlimited.
|
||||
-- @param #string SubCategory Name of sub-category (optional).
|
||||
-- @param #boolean DontShowInMenu (optional) If set to "true" this won't show up in the menu.
|
||||
-- @param Core.Zone#ZONE Location (optional) If set, the cargo item is **only** available here. Can be a #ZONE object or the name of a zone as #string.
|
||||
-- @param #string UnitTypes Unit type names (optional). If set, only these unit types can pick up the cargo, e.g. "UH-1H" or {"UH-1H","OH58D"}.
|
||||
-- @param #string Category Static category name (optional). Default is "Cargos".
|
||||
-- @param #string ShapeName Static shape name (optional). If set, force a specific shape, e.g. "iso_container_small_cargo".
|
||||
-- @param #table ResourceMap Resource map payload (optional) for static cargo.
|
||||
-- @param #string DisplayName Display name shown in menus/messages (optional). Falls back to `Name`.
|
||||
-- @return #CTLD_CARGO CargoObject
|
||||
function CTLD:AddStaticsCargoFromType(Name,TypeName,Mass,Stock,SubCategory,DontShowInMenu,Location,UnitTypes,Category,ShapeName,ResourceMap,DisplayName)
|
||||
self:T(self.lid .. " AddStaticsCargoFromType")
|
||||
self.CargoCounter = self.CargoCounter + 1
|
||||
local type = CTLD_CARGO.Enum.STATIC
|
||||
local template = TypeName or self.basetype or "container_cargo"
|
||||
local cargo = CTLD_CARGO:New(self.CargoCounter,Name,template,type,false,false,1,nil,nil,Mass,Stock,SubCategory,DontShowInMenu,Location)
|
||||
if UnitTypes then
|
||||
cargo:AddUnitTypeName(UnitTypes)
|
||||
end
|
||||
cargo:SetStaticTypeAndShape(Category or "Cargos", template, ShapeName)
|
||||
cargo:SetDisplayName(DisplayName or Name)
|
||||
if ResourceMap then
|
||||
ResourceMap = UTILS.DeepCopy(ResourceMap)
|
||||
end
|
||||
cargo:SetStaticResourceMap(ResourceMap)
|
||||
table.insert(self.Cargo_Statics,cargo)
|
||||
if SubCategory and self.usesubcats ~= true then self.usesubcats=true end
|
||||
@@ -6941,8 +7041,9 @@ end
|
||||
-- @param #CTLD self
|
||||
-- @param #string Name Unique Unit(!) name of this type of cargo as set in the mission editor (not: GROUP name!), e.g. "Ammunition-1".
|
||||
-- @param #number Mass Mass in kg of each static in kg, e.g. 100.
|
||||
-- @param #string DisplayName Display name shown in menus/messages (optional). Falls back to `Name`.
|
||||
-- @return #CTLD_CARGO Cargo object
|
||||
function CTLD:GetStaticsCargoFromTemplate(Name,Mass)
|
||||
function CTLD:GetStaticsCargoFromTemplate(Name,Mass,DisplayName)
|
||||
self:T(self.lid .. " GetStaticsCargoFromTemplate")
|
||||
self.CargoCounter = self.CargoCounter + 1
|
||||
local type = CTLD_CARGO.Enum.STATIC
|
||||
@@ -6954,11 +7055,37 @@ function CTLD:GetStaticsCargoFromTemplate(Name,Mass)
|
||||
end
|
||||
-- Crates are not directly loadable
|
||||
local cargo = CTLD_CARGO:New(self.CargoCounter,Name,template,type,false,false,1,nil,nil,Mass,1)
|
||||
cargo:SetDisplayName(DisplayName or Name)
|
||||
cargo:SetStaticResourceMap(ResourceMap)
|
||||
--table.insert(self.Cargo_Statics,cargo)
|
||||
return cargo
|
||||
end
|
||||
|
||||
--- User function - Get a *generic* static-type loadable cargo from a static **type name**.
|
||||
-- @param #CTLD self
|
||||
-- @param #string Name Unique name of this type of cargo.
|
||||
-- @param #string TypeName Static type name, e.g. "ammo_cargo", "iso_container_small".
|
||||
-- @param #number Mass Mass in kg of each static in kg, e.g. 100.
|
||||
-- @param #string Category Static category name (optional). Default is "Cargos".
|
||||
-- @param #string ShapeName Static shape name (optional).
|
||||
-- @param #table ResourceMap Resource map payload (optional) for static cargo.
|
||||
-- @param #string DisplayName Display name shown in menus/messages (optional). Falls back to `Name`.
|
||||
-- @return #CTLD_CARGO Cargo object
|
||||
function CTLD:GetStaticsCargoFromType(Name,TypeName,Mass,Category,ShapeName,ResourceMap,DisplayName)
|
||||
self:T(self.lid .. " GetStaticsCargoFromType")
|
||||
self.CargoCounter = self.CargoCounter + 1
|
||||
local type = CTLD_CARGO.Enum.STATIC
|
||||
local template = TypeName or self.basetype or "container_cargo"
|
||||
local cargo = CTLD_CARGO:New(self.CargoCounter,Name,template,type,false,false,1,nil,nil,Mass,1)
|
||||
cargo:SetStaticTypeAndShape(Category or "Cargos", template, ShapeName)
|
||||
cargo:SetDisplayName(DisplayName or Name)
|
||||
if ResourceMap then
|
||||
ResourceMap = UTILS.DeepCopy(ResourceMap)
|
||||
end
|
||||
cargo:SetStaticResourceMap(ResourceMap)
|
||||
return cargo
|
||||
end
|
||||
|
||||
--- User function - Add *generic* repair crates loadable as cargo. This type will create crates that need to be loaded, moved, dropped and built.
|
||||
-- @param #CTLD self
|
||||
-- @param #string Name Unique name of this type of cargo. E.g. "Humvee".
|
||||
|
||||
@@ -1801,6 +1801,274 @@ ENUMS.Storage.weapons.shells.M882_9x19 = 'weapons.shells.9x19_m882'
|
||||
ENUMS.Storage.weapons.droptanks.fuel_tank_370gal = "weapons.droptanks.fuel_tank_370gal"
|
||||
ENUMS.Storage.weapons.droptanks.fuel_tank_300gal = "weapons.droptanks.fuel_tank_300gal"
|
||||
|
||||
-- NEW
|
||||
ENUMS.Storage.weapons.adapters.HB_F_4E_ORD_LAU_77 = 'weapons.adapters.HB_F-4E_ORD_LAU_77'
|
||||
ENUMS.Storage.weapons.adapters.hb_a_6e_lau7_adu299 = 'weapons.adapters.hb_a-6e_lau7_adu299'
|
||||
|
||||
ENUMS.Storage.weapons.bombs.AH6_SMOKE_BLUE = 'weapons.bombs.AH6_SMOKE_BLUE'
|
||||
ENUMS.Storage.weapons.bombs.AH6_SMOKE_GREEN = 'weapons.bombs.AH6_SMOKE_GREEN'
|
||||
ENUMS.Storage.weapons.bombs.AH6_SMOKE_RED = 'weapons.bombs.AH6_SMOKE_RED'
|
||||
ENUMS.Storage.weapons.bombs.AH6_SMOKE_YELLOW = 'weapons.bombs.AH6_SMOKE_YELLOW'
|
||||
|
||||
ENUMS.Storage.weapons.missiles.HB_AGM_78 = 'weapons.missiles.HB_AGM_78'
|
||||
ENUMS.Storage.weapons.missiles.V_1 = 'weapons.missiles.V-1'
|
||||
|
||||
ENUMS.Storage.weapons.shells.Oerlikon_20mm_HE = 'weapons.shells.Oerlikon_20mm_HE'
|
||||
ENUMS.Storage.weapons.shells.RM_15cm_HE = 'weapons.shells.RM_15cm_HE'
|
||||
ENUMS.Storage.weapons.shells.HE_T_MkII_40mm = 'weapons.shells.HE_T_MkII_40mm'
|
||||
ENUMS.Storage.weapons.shells.APCBC = 'weapons.shells.APCBC'
|
||||
ENUMS.Storage.weapons.shells.Sprgr_43_L71 = 'weapons.shells.Sprgr_43_L71'
|
||||
ENUMS.Storage.weapons.shells.Mk_20_HE_shell = 'weapons.shells.Mk_20_HE_shell'
|
||||
ENUMS.Storage.weapons.shells.Pzgr_39_42 = 'weapons.shells.Pzgr_39/42'
|
||||
ENUMS.Storage.weapons.shells.M1_37mm_37AP_T = 'weapons.shells.M1_37mm_37AP-T'
|
||||
ENUMS.Storage.weapons.shells.Sprgr_38 = 'weapons.shells.Sprgr_38'
|
||||
ENUMS.Storage.weapons.shells.Sprgr_39 = 'weapons.shells.Sprgr_39'
|
||||
ENUMS.Storage.weapons.shells.Pzgr_39_43 = 'weapons.shells.Pzgr_39/43'
|
||||
ENUMS.Storage.weapons.shells.Pzgr_39_5cm = 'weapons.shells.Pzgr_39_5cm'
|
||||
ENUMS.Storage.weapons.shells.AP_2A20_115mm = 'weapons.shells.2A20_115mm_AP'
|
||||
ENUMS.Storage.weapons.shells.AP_T_MkI_40mm = 'weapons.shells.AP_T_MkI_40mm'
|
||||
ENUMS.Storage.weapons.shells.AP_37x263 = 'weapons.shells.37x263_AP'
|
||||
ENUMS.Storage.weapons.shells.AP_20x138B = 'weapons.shells.20x138B_AP'
|
||||
ENUMS.Storage.weapons.shells.Besa7_92x57T = 'weapons.shells.Besa7_92x57T'
|
||||
ENUMS.Storage.weapons.shells.Sprgr_34_L70 = 'weapons.shells.Sprgr_34_L70'
|
||||
ENUMS.Storage.weapons.shells.QF94_AA_HE = 'weapons.shells.QF94_AA_HE'
|
||||
ENUMS.Storage.weapons.shells.AH_6762x51mm_M62 = 'weapons.shells.AH-6 7.62x51mm M62'
|
||||
ENUMS.Storage.weapons.shells.AH_6762x51mm_M80 = 'weapons.shells.AH-6 7.62x51mm M80'
|
||||
ENUMS.Storage.weapons.shells.AH_6_762x51mm_M61 = 'weapons.shells.AH-6 7.62x51mm M61'
|
||||
ENUMS.Storage.weapons.shells.leFH18_105HE = 'weapons.shells.leFH18_105HE'
|
||||
ENUMS.Storage.weapons.shells.M63_37HE = 'weapons.shells.M63_37HE'
|
||||
ENUMS.Storage.weapons.shells.QF95_206R_fixed = 'weapons.shells.QF95_206R_fixed'
|
||||
ENUMS.Storage.weapons.shells.UBR_365_85AP = 'weapons.shells.UBR_365_85AP'
|
||||
ENUMS.Storage.weapons.shells.M101 = 'weapons.shells.M101'
|
||||
ENUMS.Storage.weapons.shells.HE_M1_Shell = 'weapons.shells.HE_M1_Shell'
|
||||
ENUMS.Storage.weapons.shells.UO_365K_85HE = 'weapons.shells.UO_365K_85HE'
|
||||
ENUMS.Storage.weapons.shells.Flak41_Sprgr_39 = 'weapons.shells.Flak41_Sprgr_39'
|
||||
ENUMS.Storage.weapons.shells.M1_37mm_HE_T = 'weapons.shells.M1_37mm_HE-T'
|
||||
ENUMS.Storage.weapons.shells.QF17_HE = 'weapons.shells.QF17_HE'
|
||||
ENUMS.Storage.weapons.shells.Pzgr_39 = 'weapons.shells.Pzgr_39'
|
||||
ENUMS.Storage.weapons.shells.Besa7_92x57 = 'weapons.shells.Besa7_92x57'
|
||||
ENUMS.Storage.weapons.shells.I_Gr_33 = 'weapons.shells.I_Gr_33'
|
||||
ENUMS.Storage.weapons.shells.M62_APC = 'weapons.shells.M62_APC'
|
||||
ENUMS.Storage.weapons.shells.Mk_12_HE_shell = 'weapons.shells.Mk_12_HE_shell'
|
||||
ENUMS.Storage.weapons.shells.M51_37AP = 'weapons.shells.M51_37AP'
|
||||
ENUMS.Storage.weapons.shells.M42A1_HE = 'weapons.shells.M42A1_HE'
|
||||
ENUMS.Storage.weapons.shells.HE_20x138B = 'weapons.shells.20x138B_HE'
|
||||
ENUMS.Storage.weapons.shells.HE_37x263 = 'weapons.shells.37x263_HE'
|
||||
ENUMS.Storage.weapons.shells.HE_2A20_115mm = 'weapons.shells.2A20_115mm_HE'
|
||||
|
||||
ENUMS.Storage.weapons.gunmounts.B17_TailTurret_M2_L = 'weapons.gunmounts.B17_TailTurret_M2_L'
|
||||
ENUMS.Storage.weapons.gunmounts.AH6_M134L = 'weapons.gunmounts.{AH6_M134L}'
|
||||
ENUMS.Storage.weapons.gunmounts.B17_Left_Nose_M2 = 'weapons.gunmounts.B17_Left_Nose_M2'
|
||||
ENUMS.Storage.weapons.gunmounts.Ju88_Turret_Top_Right_MG_81 = 'weapons.gunmounts.Ju88_Turret_Top_Right_MG_81'
|
||||
ENUMS.Storage.weapons.gunmounts.Ju88_Turret_Bottom_MG_81_L = 'weapons.gunmounts.Ju88_Turret_Bottom_MG_81_L'
|
||||
ENUMS.Storage.weapons.gunmounts.B17_ChinTurret_M2_R = 'weapons.gunmounts.B17_ChinTurret_M2_R'
|
||||
ENUMS.Storage.weapons.gunmounts.B17_Waist_Right_M2 = 'weapons.gunmounts.B17_Waist_Right_M2'
|
||||
ENUMS.Storage.weapons.gunmounts.AH_6_Door_Gun = 'weapons.gunmounts.AH-6_Door_Gun'
|
||||
ENUMS.Storage.weapons.gunmounts.B17_BallTurret_M2_L = 'weapons.gunmounts.B17_BallTurret_M2_L'
|
||||
ENUMS.Storage.weapons.gunmounts.B17_BallTurret_M2_R = 'weapons.gunmounts.B17_BallTurret_M2_R'
|
||||
ENUMS.Storage.weapons.gunmounts.B17_TopTurret_M2_R = 'weapons.gunmounts.B17_TopTurret_M2_R'
|
||||
ENUMS.Storage.weapons.gunmounts.B17_Right_Nose_M2 = 'weapons.gunmounts.B17_Right_Nose_M2'
|
||||
ENUMS.Storage.weapons.gunmounts.Ju88_Turret_Bottom_MG_81_R = 'weapons.gunmounts.Ju88_Turret_Bottom_MG_81_R'
|
||||
ENUMS.Storage.weapons.gunmounts.B17_TopTurret_M2_L = 'weapons.gunmounts.B17_TopTurret_M2_L'
|
||||
ENUMS.Storage.weapons.gunmounts.B17_Waist_Left_M2 = 'weapons.gunmounts.B17_Waist_Left_M2'
|
||||
ENUMS.Storage.weapons.gunmounts.Ju88_Turret_ahead_MG_81 = 'weapons.gunmounts.Ju88_Turret_ahead_MG_81'
|
||||
ENUMS.Storage.weapons.gunmounts.AH6_M134R = 'weapons.gunmounts.{AH6_M134R}'
|
||||
ENUMS.Storage.weapons.gunmounts.Ju88_Turret_Top_Left_MG_81 = 'weapons.gunmounts.Ju88_Turret_Top_Left_MG_81'
|
||||
ENUMS.Storage.weapons.gunmounts.B17_TailTurret_M2_R = 'weapons.gunmounts.B17_TailTurret_M2_R'
|
||||
ENUMS.Storage.weapons.gunmounts.AKAN_NO_TRC = 'weapons.gunmounts.AKAN_NO_TRC'
|
||||
ENUMS.Storage.weapons.gunmounts.AKAN = 'weapons.gunmounts.AKAN'
|
||||
ENUMS.Storage.weapons.gunmounts.B17_ChinTurret_M2_L = 'weapons.gunmounts.B17_ChinTurret_M2_L'
|
||||
ENUMS.Storage.weapons.gunmounts.AKAN = 'weapons.gunmounts.AKAN'
|
||||
ENUMS.Storage.weapons.gunmounts.AKAN_NO_TRC = 'weapons.gunmounts.AKAN_NO_TRC'
|
||||
ENUMS.Storage.weapons.gunmounts.AH_6_Door = 'weapons.gunmounts.{AH-6_Door}'
|
||||
ENUMS.Storage.weapons.gunmounts.AH_6_FN_HMP400 = 'weapons.gunmounts.{AH-6_FN_HMP400}'
|
||||
ENUMS.Storage.weapons.gunmounts.AH_6_M134L = 'weapons.gunmounts.AH-6_M134L'
|
||||
ENUMS.Storage.weapons.gunmounts.AH_6_M134R = 'weapons.gunmounts.AH-6_M134R'
|
||||
ENUMS.Storage.weapons.gunmounts.AH_6_HMP400 = 'weapons.gunmounts.AH-6_HMP400'
|
||||
|
||||
ENUMS.Storage.weapons.droptanks.PTB_800 = 'weapons.droptanks.PTB-800'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_275 = 'weapons.droptanks.PTB-275'
|
||||
ENUMS.Storage.weapons.droptanks.HB_A6E_AERO1D_EMPTY = 'weapons.droptanks.HB_A6E_AERO1D_EMPTY'
|
||||
ENUMS.Storage.weapons.droptanks.Drop_tank_75gal = 'weapons.droptanks.Drop tank 75gal'
|
||||
ENUMS.Storage.weapons.droptanks.S_3_PTB = 'weapons.droptanks.S-3-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_3000 = 'weapons.droptanks.PTB-3000'
|
||||
ENUMS.Storage.weapons.droptanks.HB_A6E_D704 = 'weapons.droptanks.HB_A6E_D704'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_1150_29 = 'weapons.droptanks.PTB-1150-29'
|
||||
ENUMS.Storage.weapons.droptanks.f_18c_ptb = 'weapons.droptanks.f-18c-ptb'
|
||||
ENUMS.Storage.weapons.droptanks.F4_BAK_L = 'weapons.droptanks.F4-BAK-L'
|
||||
ENUMS.Storage.weapons.droptanks.HB_A6E_AERO1D = 'weapons.droptanks.HB_A6E_AERO1D'
|
||||
ENUMS.Storage.weapons.droptanks.IAFS_ComboPak_100 = 'weapons.droptanks.{IAFS_ComboPak_100}'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_2000 = 'weapons.droptanks.PTB-2000'
|
||||
ENUMS.Storage.weapons.droptanks.M2000_PTB = 'weapons.droptanks.M2000-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_150 = 'weapons.droptanks.PTB-150'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_1150 = 'weapons.droptanks.PTB-1150'
|
||||
ENUMS.Storage.weapons.droptanks.fuel_tank_300gal = 'weapons.droptanks.fuel_tank_300gal'
|
||||
ENUMS.Storage.weapons.droptanks.MIG_25_PTB = 'weapons.droptanks.MIG-25-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_1500 = 'weapons.droptanks.PTB-1500'
|
||||
ENUMS.Storage.weapons.droptanks.MIG_23_PTB = 'weapons.droptanks.MIG-23-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.FT600 = 'weapons.droptanks.FT600'
|
||||
ENUMS.Storage.weapons.droptanks.F15_PTB = 'weapons.droptanks.F15-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.ah6_auxtank = 'weapons.droptanks.ah6_auxtank'
|
||||
ENUMS.Storage.weapons.droptanks.T_PTB = 'weapons.droptanks.T-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.fuel_tank_370gal = 'weapons.droptanks.fuel_tank_370gal'
|
||||
ENUMS.Storage.weapons.droptanks.F4_BAK_C = 'weapons.droptanks.F4-BAK-C'
|
||||
ENUMS.Storage.weapons.droptanks.F16_PTB_N2 = 'weapons.droptanks.F-16-PTB-N2'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_800 = 'weapons.droptanks.PTB-800'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_275 = 'weapons.droptanks.PTB-275'
|
||||
ENUMS.Storage.weapons.droptanks.T_PTB = 'weapons.droptanks.T-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.F16_PTB_N2 = 'weapons.droptanks.F-16-PTB-N2'
|
||||
ENUMS.Storage.weapons.droptanks.F4_BAK_C = 'weapons.droptanks.F4-BAK-C'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_1150_29 = 'weapons.droptanks.PTB-1150-29'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_1150 = 'weapons.droptanks.PTB-1150'
|
||||
ENUMS.Storage.weapons.droptanks.fuel_tank_300gal = 'weapons.droptanks.fuel_tank_300gal'
|
||||
ENUMS.Storage.weapons.droptanks.MIG_25_PTB = 'weapons.droptanks.MIG-25-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_1500 = 'weapons.droptanks.PTB-1500'
|
||||
ENUMS.Storage.weapons.droptanks.FT600 = 'weapons.droptanks.FT600'
|
||||
ENUMS.Storage.weapons.droptanks.Drop_tank_75gal = 'weapons.droptanks.Drop tank 75gal'
|
||||
ENUMS.Storage.weapons.droptanks.F15_PTB = 'weapons.droptanks.F15-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.M2000_PTB = 'weapons.droptanks.M2000-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_150 = 'weapons.droptanks.PTB-150'
|
||||
ENUMS.Storage.weapons.droptanks.F4_BAK_L = 'weapons.droptanks.F4-BAK-L'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_3000 = 'weapons.droptanks.PTB-3000'
|
||||
ENUMS.Storage.weapons.droptanks.PTB_2000 = 'weapons.droptanks.PTB-2000'
|
||||
ENUMS.Storage.weapons.droptanks.S_3_PTB = 'weapons.droptanks.S-3-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.fuel_tank_370gal = 'weapons.droptanks.fuel_tank_370gal'
|
||||
ENUMS.Storage.weapons.droptanks.MIG_23_PTB = 'weapons.droptanks.MIG-23-PTB'
|
||||
ENUMS.Storage.weapons.droptanks.f_18c_ptb = 'weapons.droptanks.f-18c-ptb'
|
||||
|
||||
ENUMS.Storage.weapons.containers.FN_HMP400_100 = 'weapons.containers.{FN_HMP400_100}'
|
||||
ENUMS.Storage.weapons.containers.AN_M3 = 'weapons.containers.{AN-M3}'
|
||||
ENUMS.Storage.weapons.containers.OH58D_M3P_L500 = 'weapons.containers.OH58D_M3P_L500'
|
||||
ENUMS.Storage.weapons.containers.GIAT_M621_HE = 'weapons.containers.{GIAT_M621_HE}'
|
||||
ENUMS.Storage.weapons.containers.KORD_12_7_MI24_L = 'weapons.containers.KORD_12_7_MI24_L'
|
||||
ENUMS.Storage.weapons.containers.CH47_STBD_M240H = 'weapons.containers.{CH47_STBD_M240H}'
|
||||
ENUMS.Storage.weapons.containers.CH47_AFT_M60D = 'weapons.containers.{CH47_AFT_M60D}'
|
||||
ENUMS.Storage.weapons.containers.UPK_23_250_MiG_21 = 'weapons.containers.{UPK-23-250 MiG-21}'
|
||||
ENUMS.Storage.weapons.containers.CH47_STBD_M134D = 'weapons.containers.{CH47_STBD_M134D}'
|
||||
ENUMS.Storage.weapons.containers.GAU_12_Equalizer = 'weapons.containers.{GAU_12_Equalizer}'
|
||||
ENUMS.Storage.weapons.containers.PKT_7_62 = 'weapons.containers.PKT_7_62'
|
||||
ENUMS.Storage.weapons.containers.CH47_AFT_M240H = 'weapons.containers.{CH47_AFT_M240H}'
|
||||
ENUMS.Storage.weapons.containers.GIAT_M621_SAPHEI = 'weapons.containers.{GIAT_M621_SAPHEI}'
|
||||
ENUMS.Storage.weapons.containers.ADEN_GUNPOD = 'weapons.containers.{ADEN_GUNPOD}'
|
||||
ENUMS.Storage.weapons.containers.GAU_12_Equalizer_HE = 'weapons.containers.{GAU_12_Equalizer_HE}'
|
||||
ENUMS.Storage.weapons.containers.M60_SIDE_L = 'weapons.containers.M60_SIDE_L'
|
||||
ENUMS.Storage.weapons.containers.KORD_12_7_MI24_R = 'weapons.containers.KORD_12_7_MI24_R'
|
||||
ENUMS.Storage.weapons.containers.GIAT_M621_APHE = 'weapons.containers.{GIAT_M621_APHE}'
|
||||
ENUMS.Storage.weapons.containers.MB339_ANM3_L = 'weapons.containers.{MB339_ANM3_L}'
|
||||
ENUMS.Storage.weapons.containers.FN_HMP400 = 'weapons.containers.{FN_HMP400}'
|
||||
ENUMS.Storage.weapons.containers.AH_6_Door = 'weapons.containers.{AH-6_Door}'
|
||||
ENUMS.Storage.weapons.containers.MB339_DEFA553_L = 'weapons.containers.{MB339_DEFA553_L}'
|
||||
ENUMS.Storage.weapons.containers.MB339_ANM3_R = 'weapons.containers.{MB339_ANM3_R}'
|
||||
ENUMS.Storage.weapons.containers.PK_3 = 'weapons.containers.{PK-3}'
|
||||
ENUMS.Storage.weapons.containers.GUV_VOG = 'weapons.containers.GUV_VOG'
|
||||
ENUMS.Storage.weapons.containers.SA342_M134_SIDE_R = 'weapons.containers.{SA342_M134_SIDE_R}'
|
||||
ENUMS.Storage.weapons.containers.OH58D_M3P_L100 = 'weapons.containers.OH58D_M3P_L100'
|
||||
ENUMS.Storage.weapons.containers.MXU_648 = 'weapons.containers.MXU-648'
|
||||
ENUMS.Storage.weapons.containers.OH58D_M3P_L400 = 'weapons.containers.OH58D_M3P_L400'
|
||||
ENUMS.Storage.weapons.containers.FN_HMP400_200 = 'weapons.containers.{FN_HMP400_200}'
|
||||
ENUMS.Storage.weapons.containers.GIAT_M621_HE = 'weapons.containers.{GIAT_M621_HE}'
|
||||
ENUMS.Storage.weapons.containers.M134_L = 'weapons.containers.M134_L'
|
||||
ENUMS.Storage.weapons.containers.OH58D_M3P_L200 = 'weapons.containers.OH58D_M3P_L200'
|
||||
ENUMS.Storage.weapons.containers.GIAT_M621_AP = 'weapons.containers.{GIAT_M621_AP}'
|
||||
ENUMS.Storage.weapons.containers.CH47_STBD_M134D = 'weapons.containers.{CH47_STBD_M134D}'
|
||||
ENUMS.Storage.weapons.containers.PKT_7_62 = 'weapons.containers.PKT_7_62'
|
||||
ENUMS.Storage.weapons.containers.OH58D_M3P_L300 = 'weapons.containers.OH58D_M3P_L300'
|
||||
ENUMS.Storage.weapons.containers.GIAT_M621_SAPHEI = 'weapons.containers.{GIAT_M621_SAPHEI}'
|
||||
ENUMS.Storage.weapons.containers.M60_SIDE_L = 'weapons.containers.M60_SIDE_L'
|
||||
ENUMS.Storage.weapons.containers.CH47_PORT_M134D = 'weapons.containers.{CH47_PORT_M134D}'
|
||||
ENUMS.Storage.weapons.containers.CH47_PORT_M60D = 'weapons.containers.{CH47_PORT_M60D}'
|
||||
ENUMS.Storage.weapons.containers.ADEN_GUNPOD = 'weapons.containers.{ADEN_GUNPOD}'
|
||||
ENUMS.Storage.weapons.containers.C_101_DEFA553 = 'weapons.containers.{C-101-DEFA553}'
|
||||
ENUMS.Storage.weapons.containers.MB339_ANM3_R = 'weapons.containers.{MB339_ANM3_R}'
|
||||
ENUMS.Storage.weapons.containers.CH47_AFT_M60D = 'weapons.containers.{CH47_AFT_M60D}'
|
||||
ENUMS.Storage.weapons.containers.KORD_12_7 = 'weapons.containers.KORD_12_7'
|
||||
ENUMS.Storage.weapons.containers.GIAT_M621_HEAP = 'weapons.containers.{GIAT_M621_HEAP}'
|
||||
ENUMS.Storage.weapons.containers.CH47_AFT_M3M = 'weapons.containers.{CH47_AFT_M3M}'
|
||||
ENUMS.Storage.weapons.containers.GUV_YakB_GSHP = 'weapons.containers.GUV_YakB_GSHP'
|
||||
ENUMS.Storage.weapons.containers.R_73U = 'weapons.containers.R-73U'
|
||||
ENUMS.Storage.weapons.containers.GUV_VOG = 'weapons.containers.GUV_VOG'
|
||||
ENUMS.Storage.weapons.containers.KORD_12_7_MI24_L = 'weapons.containers.KORD_12_7_MI24_L'
|
||||
ENUMS.Storage.weapons.containers.OH58D_M3P_L100 = 'weapons.containers.OH58D_M3P_L100'
|
||||
ENUMS.Storage.weapons.containers.OH58D_M3P_L400 = 'weapons.containers.OH58D_M3P_L400'
|
||||
ENUMS.Storage.weapons.containers.CH47_STBD_M240H = 'weapons.containers.{CH47_STBD_M240H}'
|
||||
ENUMS.Storage.weapons.containers.CH47_PORT_M240H = 'weapons.containers.{CH47_PORT_M240H}'
|
||||
ENUMS.Storage.weapons.containers.CC420_GUN_POD = 'weapons.containers.{CC420_GUN_POD}'
|
||||
ENUMS.Storage.weapons.containers.FN_HMP400_100 = 'weapons.containers.{FN_HMP400_100}'
|
||||
ENUMS.Storage.weapons.containers.MB339_ANM3_L = 'weapons.containers.{MB339_ANM3_L}'
|
||||
ENUMS.Storage.weapons.containers.MB339_DEFA553_R = 'weapons.containers.{MB339_DEFA553_R}'
|
||||
ENUMS.Storage.weapons.containers.GAU_12_Equalizer_HE = 'weapons.containers.{GAU_12_Equalizer_HE}'
|
||||
ENUMS.Storage.weapons.containers.OH58D_M3P_L500 = 'weapons.containers.OH58D_M3P_L500'
|
||||
ENUMS.Storage.weapons.containers.SUU_23_POD = 'weapons.containers.{SUU_23_POD}'
|
||||
ENUMS.Storage.weapons.containers.PK_3 = 'weapons.containers.{PK-3}'
|
||||
ENUMS.Storage.weapons.containers.AKAN = 'weapons.containers.{AKAN}'
|
||||
ENUMS.Storage.weapons.containers.CH47_STBD_M60D = 'weapons.containers.{CH47_STBD_M60D}'
|
||||
ENUMS.Storage.weapons.containers.SA342_M134_SIDE_R = 'weapons.containers.{SA342_M134_SIDE_R}'
|
||||
ENUMS.Storage.weapons.containers.M60_SIDE_R = 'weapons.containers.M60_SIDE_R'
|
||||
ENUMS.Storage.weapons.containers.GAU_12_Equalizer_AP = 'weapons.containers.{GAU_12_Equalizer_AP}'
|
||||
ENUMS.Storage.weapons.containers.GAU_12_Equalizer = 'weapons.containers.{GAU_12_Equalizer}'
|
||||
ENUMS.Storage.weapons.containers.KORD_12_7_MI24_R = 'weapons.containers.KORD_12_7_MI24_R'
|
||||
ENUMS.Storage.weapons.containers.M134_SIDE_R = 'weapons.containers.M134_SIDE_R'
|
||||
ENUMS.Storage.weapons.containers.AKAN_NO_TRC = 'weapons.containers.{AKAN_NO_TRC}'
|
||||
ENUMS.Storage.weapons.containers.oh_58_brauning = 'weapons.containers.oh-58-brauning'
|
||||
ENUMS.Storage.weapons.containers.MXU_648 = 'weapons.containers.MXU-648'
|
||||
ENUMS.Storage.weapons.containers.M134_R = 'weapons.containers.M134_R'
|
||||
ENUMS.Storage.weapons.containers.AN_M3 = 'weapons.containers.{AN-M3}'
|
||||
ENUMS.Storage.weapons.containers.GIAT_M621_APHE = 'weapons.containers.{GIAT_M621_APHE}'
|
||||
ENUMS.Storage.weapons.containers.AIM_9S = 'weapons.containers.AIM-9S'
|
||||
ENUMS.Storage.weapons.containers.CH47_AFT_M240H = 'weapons.containers.{CH47_AFT_M240H}'
|
||||
ENUMS.Storage.weapons.containers.FN_HMP400 = 'weapons.containers.{FN_HMP400}'
|
||||
ENUMS.Storage.weapons.containers.M134_SIDE_L = 'weapons.containers.M134_SIDE_L'
|
||||
ENUMS.Storage.weapons.containers.MB339_DEFA553_L = 'weapons.containers.{MB339_DEFA553_L}'
|
||||
ENUMS.Storage.weapons.containers.MISC_1 = 'weapons.containers.{05544F1A-C39C-466b-BC37-5BD1D52E57BB}'
|
||||
ENUMS.Storage.weapons.containers.MISC_2 = 'weapons.containers.{E92CBFE5-C153-11d8-9897-000476191836}'
|
||||
ENUMS.Storage.weapons.containers.hvar_SmokeGenerator = 'weapons.containers.hvar_SmokeGenerator'
|
||||
ENUMS.Storage.weapons.containers.INV_SMOKE_RED = 'weapons.containers.{INV-SMOKE-RED}'
|
||||
ENUMS.Storage.weapons.containers.INV_SMOKE_YELLOW = 'weapons.containers.{INV-SMOKE-YELLOW}'
|
||||
ENUMS.Storage.weapons.containers.INV_SMOKE_BLUE = 'weapons.containers.{INV-SMOKE-BLUE}'
|
||||
ENUMS.Storage.weapons.containers.INV_SMOKE_GREEN = 'weapons.containers.{INV-SMOKE-GREEN}'
|
||||
ENUMS.Storage.weapons.containers.INV_SMOKE_WHITE = 'weapons.containers.{INV-SMOKE-WHITE}'
|
||||
ENUMS.Storage.weapons.containers.INV_SMOKE_ORANGE = 'weapons.containers.{INV-SMOKE-ORANGE}'
|
||||
ENUMS.Storage.weapons.containers.GAU_12_Equalizer_AP = 'weapons.containers.{GAU_12_Equalizer_AP}'
|
||||
ENUMS.Storage.weapons.containers.AH_6_Gunners = 'weapons.containers.{AH-6_Gunners}'
|
||||
ENUMS.Storage.weapons.containers.AH_6_FN_HMP400 = 'weapons.containers.{AH-6_FN_HMP400}'
|
||||
ENUMS.Storage.weapons.containers.R_73U = 'weapons.containers.R-73U'
|
||||
ENUMS.Storage.weapons.containers.M60_SIDE_R = 'weapons.containers.M60_SIDE_R'
|
||||
ENUMS.Storage.weapons.containers.CH47_AFT_M3M = 'weapons.containers.{CH47_AFT_M3M}'
|
||||
ENUMS.Storage.weapons.containers.GUV_YakB_GSHP = 'weapons.containers.GUV_YakB_GSHP'
|
||||
ENUMS.Storage.weapons.containers.RKL609_L = 'weapons.containers.{RKL609_L}'
|
||||
ENUMS.Storage.weapons.containers.CH47_PORT_M134D = 'weapons.containers.{CH47_PORT_M134D}'
|
||||
ENUMS.Storage.weapons.containers.CH47_PORT_M60D = 'weapons.containers.{CH47_PORT_M60D}'
|
||||
ENUMS.Storage.weapons.containers.RKL609_R = 'weapons.containers.{RKL609_R}'
|
||||
ENUMS.Storage.weapons.containers.C_101_DEFA553 = 'weapons.containers.{C-101-DEFA553}'
|
||||
ENUMS.Storage.weapons.containers.AH6_M134L = 'weapons.containers.{AH6_M134L}'
|
||||
ENUMS.Storage.weapons.containers.KORD_12_7 = 'weapons.containers.KORD_12_7'
|
||||
ENUMS.Storage.weapons.containers.C130_M18_Sidearm = 'weapons.containers.{C130-M18-Sidearm}'
|
||||
ENUMS.Storage.weapons.containers.GIAT_M621_HEAP = 'weapons.containers.{GIAT_M621_HEAP}'
|
||||
ENUMS.Storage.weapons.containers.BRU_42_LS = 'weapons.containers.BRU-42_LS'
|
||||
ENUMS.Storage.weapons.containers.CH47_STBD_M60D = 'weapons.containers.{CH47_STBD_M60D}'
|
||||
ENUMS.Storage.weapons.containers.SUU_23_POD = 'weapons.containers.{SUU_23_POD}'
|
||||
ENUMS.Storage.weapons.containers.M134_SIDE_R = 'weapons.containers.M134_SIDE_R'
|
||||
ENUMS.Storage.weapons.containers.AKAN_NO_TRC = 'weapons.containers.{AKAN_NO_TRC}'
|
||||
ENUMS.Storage.weapons.containers.oh_58_brauning = 'weapons.containers.oh-58-brauning'
|
||||
ENUMS.Storage.weapons.containers.AH_6_DOORS = 'weapons.containers.{AH-6_DOORS}'
|
||||
ENUMS.Storage.weapons.containers.CC420_GUN_POD = 'weapons.containers.{CC420_GUN_POD}'
|
||||
ENUMS.Storage.weapons.containers.CH47_PORT_M240H = 'weapons.containers.{CH47_PORT_M240H}'
|
||||
ENUMS.Storage.weapons.containers.MB339_DEFA553_R = 'weapons.containers.{MB339_DEFA553_R}'
|
||||
ENUMS.Storage.weapons.containers.AIM_9S = 'weapons.containers.AIM-9S'
|
||||
ENUMS.Storage.weapons.containers.hvar_SmokeGenerator = 'weapons.containers.hvar_SmokeGenerator'
|
||||
ENUMS.Storage.weapons.containers.M134_L = 'weapons.containers.M134_L'
|
||||
ENUMS.Storage.weapons.containers.AKAN = 'weapons.containers.{AKAN}'
|
||||
ENUMS.Storage.weapons.containers.C130_Cargo_Bay_M4 = 'weapons.containers.{C130-Cargo-Bay-M4}'
|
||||
ENUMS.Storage.weapons.containers.M134_SIDE_L = 'weapons.containers.M134_SIDE_L'
|
||||
ENUMS.Storage.weapons.containers.FN_HMP400_200 = 'weapons.containers.{FN_HMP400_200}'
|
||||
ENUMS.Storage.weapons.containers.OH58D_M3P_L200 = 'weapons.containers.OH58D_M3P_L200'
|
||||
ENUMS.Storage.weapons.containers.GIAT_M621_AP = 'weapons.containers.{GIAT_M621_AP}'
|
||||
ENUMS.Storage.weapons.containers.M134_R = 'weapons.containers.M134_R'
|
||||
ENUMS.Storage.weapons.containers.OH58D_M3P_L300 = 'weapons.containers.OH58D_M3P_L300'
|
||||
ENUMS.Storage.weapons.containers.AH6_M134R = 'weapons.containers.{AH6_M134R}'
|
||||
|
||||
ENUMS.Storage.weapons.torpedoes.G7A_T1 = 'weapons.torpedoes.G7A_T1'
|
||||
|
||||
-- UH-60L Mod
|
||||
ENUMS.Storage.weapons.gunmounts.UH60LGAU19 = 'weapons.gunmounts.UH-60L GAU-19'
|
||||
ENUMS.Storage.weapons.gunmounts.UH60L_M134 = 'weapons.gunmounts.UH60L_M134'
|
||||
@@ -1816,6 +2084,15 @@ ENUMS.Storage.weapons.gunmounts.UH60L_M60_GUNNER = 'weapons.gunmounts.{UH60L_M60
|
||||
ENUMS.Storage.weapons.gunmounts.UH60L_M2_GUNNER = 'weapons.gunmounts.{UH60L_M2_GUNNER}'
|
||||
ENUMS.Storage.weapons.gunmounts.UH60_M230_LEFT = 'weapons.gunmounts.{UH60_M230_LEFT}'
|
||||
ENUMS.Storage.weapons.gunmounts.UH60_M230_RIGHT = 'weapons.gunmounts.{UH60_M230_RIGHT}'
|
||||
ENUMS.Storage.weapons.containers.UH60_M134_RIGHT = 'weapons.containers.{UH60_M134_RIGHT}'
|
||||
ENUMS.Storage.weapons.containers.UH60_M134_LEFT = 'weapons.containers.{UH60_M134_LEFT}'
|
||||
ENUMS.Storage.weapons.containers.UH60_M230_LEFT = 'weapons.containers.{UH60_M230_LEFT}'
|
||||
ENUMS.Storage.weapons.containers.UH60L_M134_GUNNER = 'weapons.containers.{UH60L_M134_GUNNER}'
|
||||
ENUMS.Storage.weapons.containers.UH60_GAU19_LEFT = 'weapons.containers.{UH60_GAU19_LEFT}'
|
||||
ENUMS.Storage.weapons.containers.UH60L_M60_GUNNER = 'weapons.containers.{UH60L_M60_GUNNER}'
|
||||
ENUMS.Storage.weapons.containers.UH60_GAU19_RIGHT = 'weapons.containers.{UH60_GAU19_RIGHT}'
|
||||
ENUMS.Storage.weapons.containers.UH60_M230_RIGHT = 'weapons.containers.{UH60_M230_RIGHT}'
|
||||
ENUMS.Storage.weapons.containers.UH60L_M2_GUNNER = 'weapons.containers.{UH60L_M2_GUNNER}'
|
||||
|
||||
---
|
||||
-- @type ENUMS.FARPType
|
||||
|
||||
@@ -5521,7 +5521,7 @@ end
|
||||
function UTILS.CalculateInterceptBearing(A1, V1, A2, V2_speed)
|
||||
|
||||
local function berechne_bearing(richtung)
|
||||
local bearing = math.deg(math.atan2(richtung.x, richtung.y))
|
||||
local bearing = math.deg(math.atan2(richtung.x, richtung.z))
|
||||
if bearing < 0 then
|
||||
bearing = bearing + 360
|
||||
end
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[](https://github.com/FlightControl-Master/MOOSE/actions/workflows/build-includes.yml)
|
||||
[](https://github.com/FlightControl-Master/MOOSE/actions/workflows/build-includes.yml)
|
||||
|
||||
<img src="https://github.com/FlightControl-Master/MOOSE/blob/master/docs/images/classes/overview.jpg" alt="MOOSE" style="width:600px;"/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user