Merge remote-tracking branch 'origin/master' into develop

This commit is contained in:
Applevangelist 2023-12-25 11:07:59 +01:00
commit e9d9578eee
6 changed files with 1078 additions and 981 deletions

View File

@ -2456,15 +2456,18 @@ do -- COORDINATE
-- Write command as string and execute that. Idea by Grimes https://forum.dcs.world/topic/324201-mark-to-all-function/#comment-5273793 -- Write command as string and execute that. Idea by Grimes https://forum.dcs.world/topic/324201-mark-to-all-function/#comment-5273793
local s=string.format("trigger.action.markupToAll(7, %d, %d,", Coalition, MarkID) local s=string.format("trigger.action.markupToAll(7, %d, %d,", Coalition, MarkID)
for _,vec in pairs(vecs) do for _,vec in pairs(vecs) do
s=s..string.format("%s,", UTILS._OneLineSerialize(vec)) --s=s..string.format("%s,", UTILS._OneLineSerialize(vec))
s=s..string.format("{x=%.1f, y=%.1f, z=%.1f},", vec.x, vec.y, vec.z)
end end
s=s..string.format("%s, %s, %s, %s", UTILS._OneLineSerialize(Color), UTILS._OneLineSerialize(FillColor), tostring(LineType), tostring(ReadOnly)) s=s..string.format("{%.3f, %.3f, %.3f, %.3f},", Color[1], Color[2], Color[3], Color[4])
if Text and Text~="" then s=s..string.format("{%.3f, %.3f, %.3f, %.3f},", FillColor[1], FillColor[2], FillColor[3], FillColor[4])
s=s..string.format(", \"%s\"", Text) s=s..string.format("%d,", LineType or 1)
s=s..string.format("%s", tostring(ReadOnly))
if Text and type(Text)=="string" and string.len(Text)>0 then
s=s..string.format(", \"%s\"", tostring(Text))
end end
s=s..")" s=s..")"
-- Execute string command -- Execute string command
local success=UTILS.DoString(s) local success=UTILS.DoString(s)

View File

@ -2114,7 +2114,7 @@ end
function _ZONE_TRIANGLE:Fill(Coalition, FillColor, FillAlpha, ReadOnly) function _ZONE_TRIANGLE:Fill(Coalition, FillColor, FillAlpha, ReadOnly)
Coalition=Coalition or -1 Coalition=Coalition or -1
FillColor = FillColor FillColor = FillColor
FillAlpha = FillAlpha FillAlpha = FillAlpha
local newID = self.Coords[1]:MarkupToAllFreeForm({self.Coords[2],self.Coords[3]},Coalition,nil,nil,FillColor,FillAlpha,0,nil) local newID = self.Coords[1]:MarkupToAllFreeForm({self.Coords[2],self.Coords[3]},Coalition,nil,nil,FillColor,FillAlpha,0,nil)
self.DrawID[#self.DrawID+1] = newID self.DrawID[#self.DrawID+1] = newID
return self.DrawID return self.DrawID
@ -2194,7 +2194,7 @@ function ZONE_POLYGON_BASE:New( ZoneName, PointsArray )
self._Triangles = self:_Triangulate() self._Triangles = self:_Triangulate()
-- set the polygon's surface area -- set the polygon's surface area
self.SurfaceArea = self:_CalculateSurfaceArea() self.SurfaceArea = self:_CalculateSurfaceArea()
end end
return self return self
@ -2495,6 +2495,7 @@ end
-- @param #boolean ReadOnly (Optional) Mark is readonly and cannot be removed by users. Default false.s -- @param #boolean ReadOnly (Optional) Mark is readonly and cannot be removed by users. Default false.s
-- @return #ZONE_POLYGON_BASE self -- @return #ZONE_POLYGON_BASE self
function ZONE_POLYGON_BASE:DrawZone(Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly, IncludeTriangles) function ZONE_POLYGON_BASE:DrawZone(Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly, IncludeTriangles)
if self._.Polygon and #self._.Polygon >= 3 then if self._.Polygon and #self._.Polygon >= 3 then
Coalition = Coalition or self:GetDrawCoalition() Coalition = Coalition or self:GetDrawCoalition()
@ -2516,7 +2517,22 @@ function ZONE_POLYGON_BASE:DrawZone(Coalition, Color, Alpha, FillColor, FillAlph
self:ReDrawBorderline(Color,Alpha,LineType) self:ReDrawBorderline(Color,Alpha,LineType)
end end
end end
if false then
local coords = self:GetVerticiesCoordinates()
local coord=coords[1] --Core.Point#COORDINATE
table.remove(coords, 1)
coord:MarkupToAllFreeForm(coords, Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly, "Drew Polygon")
if true then
return
end
end
return self return self
end end
@ -3117,18 +3133,18 @@ function ZONE_POLYGON:Scan( ObjectCategories, UnitCategories )
self.ScanData.Scenery = {} self.ScanData.Scenery = {}
self.ScanData.SceneryTable = {} self.ScanData.SceneryTable = {}
self.ScanData.Units = {} self.ScanData.Units = {}
local vectors = self:GetBoundingSquare() local vectors = self:GetBoundingSquare()
local minVec3 = {x=vectors.x1, y=0, z=vectors.y1} local minVec3 = {x=vectors.x1, y=0, z=vectors.y1}
local maxVec3 = {x=vectors.x2, y=0, z=vectors.y2} local maxVec3 = {x=vectors.x2, y=0, z=vectors.y2}
local minmarkcoord = COORDINATE:NewFromVec3(minVec3) local minmarkcoord = COORDINATE:NewFromVec3(minVec3)
local maxmarkcoord = COORDINATE:NewFromVec3(maxVec3) local maxmarkcoord = COORDINATE:NewFromVec3(maxVec3)
local ZoneRadius = minmarkcoord:Get2DDistance(maxmarkcoord)/2 local ZoneRadius = minmarkcoord:Get2DDistance(maxmarkcoord)/2
-- self:I("Scan Radius:" ..ZoneRadius) -- self:I("Scan Radius:" ..ZoneRadius)
local CenterVec3 = self:GetCoordinate():GetVec3() local CenterVec3 = self:GetCoordinate():GetVec3()
--[[ this a bit shaky in functionality it seems --[[ this a bit shaky in functionality it seems
local VolumeBox = { local VolumeBox = {
id = world.VolumeType.BOX, id = world.VolumeType.BOX,
@ -3138,7 +3154,7 @@ function ZONE_POLYGON:Scan( ObjectCategories, UnitCategories )
} }
} }
--]] --]]
local SphereSearch = { local SphereSearch = {
id = world.VolumeType.SPHERE, id = world.VolumeType.SPHERE,
params = { params = {
@ -3146,13 +3162,13 @@ function ZONE_POLYGON:Scan( ObjectCategories, UnitCategories )
radius = ZoneRadius, radius = ZoneRadius,
} }
} }
local function EvaluateZone( ZoneObject ) local function EvaluateZone( ZoneObject )
if ZoneObject then if ZoneObject then
local ObjectCategory = Object.getCategory(ZoneObject) local ObjectCategory = Object.getCategory(ZoneObject)
if ( ObjectCategory == Object.Category.UNIT and ZoneObject:isExist() and ZoneObject:isActive() ) or (ObjectCategory == Object.Category.STATIC and ZoneObject:isExist()) then if ( ObjectCategory == Object.Category.UNIT and ZoneObject:isExist() and ZoneObject:isActive() ) or (ObjectCategory == Object.Category.STATIC and ZoneObject:isExist()) then
local CoalitionDCSUnit = ZoneObject:getCoalition() local CoalitionDCSUnit = ZoneObject:getCoalition()
@ -3186,7 +3202,7 @@ function ZONE_POLYGON:Scan( ObjectCategories, UnitCategories )
self:F2( { Name = ZoneObject:getName(), Coalition = CoalitionDCSUnit } ) self:F2( { Name = ZoneObject:getName(), Coalition = CoalitionDCSUnit } )
end end
end end
-- trying with box search -- trying with box search
if ObjectCategory == Object.Category.SCENERY and self:IsVec3InZone(ZoneObject:getPoint()) then if ObjectCategory == Object.Category.SCENERY and self:IsVec3InZone(ZoneObject:getPoint()) then
local SceneryType = ZoneObject:getTypeName() local SceneryType = ZoneObject:getTypeName()
@ -3205,7 +3221,7 @@ function ZONE_POLYGON:Scan( ObjectCategories, UnitCategories )
-- Search objects. -- Search objects.
local inzoneunits = SET_UNIT:New():FilterZones({self}):FilterOnce() local inzoneunits = SET_UNIT:New():FilterZones({self}):FilterOnce()
local inzonestatics = SET_STATIC:New():FilterZones({self}):FilterOnce() local inzonestatics = SET_STATIC:New():FilterZones({self}):FilterOnce()
inzoneunits:ForEach( inzoneunits:ForEach(
function(unit) function(unit)
local Unit = unit --Wrapper.Unit#UNIT local Unit = unit --Wrapper.Unit#UNIT
@ -3213,7 +3229,7 @@ function ZONE_POLYGON:Scan( ObjectCategories, UnitCategories )
EvaluateZone(DCS) EvaluateZone(DCS)
end end
) )
inzonestatics:ForEach( inzonestatics:ForEach(
function(static) function(static)
local Static = static --Wrapper.Static#STATIC local Static = static --Wrapper.Static#STATIC
@ -3221,19 +3237,19 @@ function ZONE_POLYGON:Scan( ObjectCategories, UnitCategories )
EvaluateZone(DCS) EvaluateZone(DCS)
end end
) )
local searchscenery = false local searchscenery = false
for _,_type in pairs(ObjectCategories) do for _,_type in pairs(ObjectCategories) do
if _type == Object.Category.SCENERY then if _type == Object.Category.SCENERY then
searchscenery = true searchscenery = true
end end
end end
if searchscenery then if searchscenery then
-- Search objects. -- Search objects.
world.searchObjects({Object.Category.SCENERY}, SphereSearch, EvaluateZone ) world.searchObjects({Object.Category.SCENERY}, SphereSearch, EvaluateZone )
end end
end end
--- Count the number of different coalitions inside the zone. --- Count the number of different coalitions inside the zone.
@ -3449,7 +3465,7 @@ end
end end
do -- ZONE_ELASTIC do -- ZONE_ELASTIC
--- ---
-- @type ZONE_ELASTIC -- @type ZONE_ELASTIC
-- @field #table points Points in 2D. -- @field #table points Points in 2D.
@ -3476,14 +3492,14 @@ do -- ZONE_ELASTIC
function ZONE_ELASTIC:New(ZoneName, Points) function ZONE_ELASTIC:New(ZoneName, Points)
local self=BASE:Inherit(self, ZONE_POLYGON_BASE:New(ZoneName, Points)) --#ZONE_ELASTIC local self=BASE:Inherit(self, ZONE_POLYGON_BASE:New(ZoneName, Points)) --#ZONE_ELASTIC
-- Zone objects are added to the _DATABASE and SET_ZONE objects. -- Zone objects are added to the _DATABASE and SET_ZONE objects.
_EVENTDISPATCHER:CreateEventNewZone( self ) _EVENTDISPATCHER:CreateEventNewZone( self )
if Points then if Points then
self.points=Points self.points=Points
end end
return self return self
end end
@ -3492,10 +3508,10 @@ do -- ZONE_ELASTIC
-- @param DCS#Vec2 Vec2 Point in 2D (with x and y coordinates). -- @param DCS#Vec2 Vec2 Point in 2D (with x and y coordinates).
-- @return #ZONE_ELASTIC self -- @return #ZONE_ELASTIC self
function ZONE_ELASTIC:AddVertex2D(Vec2) function ZONE_ELASTIC:AddVertex2D(Vec2)
-- Add vec2 to points. -- Add vec2 to points.
table.insert(self.points, Vec2) table.insert(self.points, Vec2)
return self return self
end end
@ -3505,10 +3521,10 @@ do -- ZONE_ELASTIC
-- @param DCS#Vec3 Vec3 Point in 3D (with x, y and z coordinates). Only the x and z coordinates are used. -- @param DCS#Vec3 Vec3 Point in 3D (with x, y and z coordinates). Only the x and z coordinates are used.
-- @return #ZONE_ELASTIC self -- @return #ZONE_ELASTIC self
function ZONE_ELASTIC:AddVertex3D(Vec3) function ZONE_ELASTIC:AddVertex3D(Vec3)
-- Add vec2 from vec3 to points. -- Add vec2 from vec3 to points.
table.insert(self.points, {x=Vec3.x, y=Vec3.z}) table.insert(self.points, {x=Vec3.x, y=Vec3.z})
return self return self
end end
@ -3518,10 +3534,10 @@ do -- ZONE_ELASTIC
-- @param Core.Set#SET_GROUP GroupSet Set of groups. -- @param Core.Set#SET_GROUP GroupSet Set of groups.
-- @return #ZONE_ELASTIC self -- @return #ZONE_ELASTIC self
function ZONE_ELASTIC:AddSetGroup(GroupSet) function ZONE_ELASTIC:AddSetGroup(GroupSet)
-- Add set to table. -- Add set to table.
table.insert(self.setGroups, GroupSet) table.insert(self.setGroups, GroupSet)
return self return self
end end
@ -3533,13 +3549,13 @@ do -- ZONE_ELASTIC
-- @param #boolean Draw Draw the zone. Default `nil`. -- @param #boolean Draw Draw the zone. Default `nil`.
-- @return #ZONE_ELASTIC self -- @return #ZONE_ELASTIC self
function ZONE_ELASTIC:Update(Delay, Draw) function ZONE_ELASTIC:Update(Delay, Draw)
-- Debug info. -- Debug info.
self:T(string.format("Updating ZONE_ELASTIC %s", tostring(self.ZoneName))) self:T(string.format("Updating ZONE_ELASTIC %s", tostring(self.ZoneName)))
-- Copy all points. -- Copy all points.
local points=UTILS.DeepCopy(self.points or {}) local points=UTILS.DeepCopy(self.points or {})
if self.setGroups then if self.setGroups then
for _,_setGroup in pairs(self.setGroups) do for _,_setGroup in pairs(self.setGroups) do
local setGroup=_setGroup --Core.Set#SET_GROUP local setGroup=_setGroup --Core.Set#SET_GROUP
@ -3554,7 +3570,7 @@ do -- ZONE_ELASTIC
-- Update polygon verticies from points. -- Update polygon verticies from points.
self._.Polygon=self:_ConvexHull(points) self._.Polygon=self:_ConvexHull(points)
if Draw~=false then if Draw~=false then
if self.DrawID or Draw==true then if self.DrawID or Draw==true then
self:UndrawZone() self:UndrawZone()
@ -3564,7 +3580,7 @@ do -- ZONE_ELASTIC
return self return self
end end
--- Start the updating scheduler. --- Start the updating scheduler.
-- @param #ZONE_ELASTIC self -- @param #ZONE_ELASTIC self
-- @param #number Tstart Time in seconds before the updating starts. -- @param #number Tstart Time in seconds before the updating starts.
@ -3573,9 +3589,9 @@ do -- ZONE_ELASTIC
-- @param #boolean Draw Draw the zone. Default `nil`. -- @param #boolean Draw Draw the zone. Default `nil`.
-- @return #ZONE_ELASTIC self -- @return #ZONE_ELASTIC self
function ZONE_ELASTIC:StartUpdate(Tstart, dT, Tstop, Draw) function ZONE_ELASTIC:StartUpdate(Tstart, dT, Tstop, Draw)
self.updateID=self:ScheduleRepeat(Tstart, dT, 0, Tstop, ZONE_ELASTIC.Update, self, 0, Draw) self.updateID=self:ScheduleRepeat(Tstart, dT, 0, Tstop, ZONE_ELASTIC.Update, self, 0, Draw)
return self return self
end end
@ -3584,46 +3600,46 @@ do -- ZONE_ELASTIC
-- @param #number Delay Delay in seconds before the scheduler will be stopped. Default 0. -- @param #number Delay Delay in seconds before the scheduler will be stopped. Default 0.
-- @return #ZONE_ELASTIC self -- @return #ZONE_ELASTIC self
function ZONE_ELASTIC:StopUpdate(Delay) function ZONE_ELASTIC:StopUpdate(Delay)
if Delay and Delay>0 then if Delay and Delay>0 then
self:ScheduleOnce(Delay, ZONE_ELASTIC.StopUpdate, self) self:ScheduleOnce(Delay, ZONE_ELASTIC.StopUpdate, self)
else else
if self.updateID then if self.updateID then
self:ScheduleStop(self.updateID) self:ScheduleStop(self.updateID)
self.updateID=nil self.updateID=nil
end end
end end
return self return self
end end
--- Create a convec hull. --- Create a convec hull.
-- @param #ZONE_ELASTIC self -- @param #ZONE_ELASTIC self
-- @param #table pl Points -- @param #table pl Points
-- @return #table Points -- @return #table Points
function ZONE_ELASTIC:_ConvexHull(pl) function ZONE_ELASTIC:_ConvexHull(pl)
if #pl == 0 then if #pl == 0 then
return {} return {}
end end
table.sort(pl, function(left,right) table.sort(pl, function(left,right)
return left.x < right.x return left.x < right.x
end) end)
local h = {} local h = {}
-- Function: ccw > 0 if three points make a counter-clockwise turn, clockwise if ccw < 0, and collinear if ccw = 0. -- Function: ccw > 0 if three points make a counter-clockwise turn, clockwise if ccw < 0, and collinear if ccw = 0.
local function ccw(a,b,c) local function ccw(a,b,c)
return (b.x - a.x) * (c.y - a.y) > (b.y - a.y) * (c.x - a.x) return (b.x - a.x) * (c.y - a.y) > (b.y - a.y) * (c.x - a.x)
end end
-- lower hull -- lower hull
for i,pt in pairs(pl) do for i,pt in pairs(pl) do
while #h >= 2 and not ccw(h[#h-1], h[#h], pt) do while #h >= 2 and not ccw(h[#h-1], h[#h], pt) do
@ -3631,7 +3647,7 @@ do -- ZONE_ELASTIC
end end
table.insert(h,pt) table.insert(h,pt)
end end
-- upper hull -- upper hull
local t = #h + 1 local t = #h + 1
for i=#pl, 1, -1 do for i=#pl, 1, -1 do
@ -3641,12 +3657,12 @@ do -- ZONE_ELASTIC
end end
table.insert(h, pt) table.insert(h, pt)
end end
table.remove(h, #h) table.remove(h, #h)
return h return h
end end
end end
@ -3673,13 +3689,17 @@ ZONE_OVAL = {
--- Creates a new ZONE_OVAL from a center point, major axis, minor axis, and angle. --- Creates a new ZONE_OVAL from a center point, major axis, minor axis, and angle.
--- ported from https://github.com/nielsvaes/CCMOOSE/blob/master/Moose%20Development/Moose/Shapes/Oval.lua --- ported from https://github.com/nielsvaes/CCMOOSE/blob/master/Moose%20Development/Moose/Shapes/Oval.lua
-- @param #ZONE_OVAL self
-- @param #string name Name of the zone.
-- @param #table vec2 The center point of the oval -- @param #table vec2 The center point of the oval
-- @param #number major_axis The major axis of the oval -- @param #number major_axis The major axis of the oval
-- @param #number minor_axis The minor axis of the oval -- @param #number minor_axis The minor axis of the oval
-- @param #number angle The angle of the oval -- @param #number angle The angle of the oval
-- @return #ZONE_OVAL The new oval -- @return #ZONE_OVAL The new oval
function ZONE_OVAL:New(name, vec2, major_axis, minor_axis, angle) function ZONE_OVAL:New(name, vec2, major_axis, minor_axis, angle)
self = BASE:Inherit(self, ZONE_BASE:New()) self = BASE:Inherit(self, ZONE_BASE:New())
self.ZoneName = name self.ZoneName = name
self.CenterVec2 = vec2 self.CenterVec2 = vec2
self.MajorAxis = major_axis self.MajorAxis = major_axis
@ -3717,7 +3737,7 @@ function ZONE_OVAL:NewFromDrawing(DrawingName)
return self return self
end end
--- Gets the major axis of the oval. --- Gets the major axis of the oval.
-- @param #ZONE_OVAL self -- @param #ZONE_OVAL self
-- @return #number The major axis of the oval -- @return #number The major axis of the oval
function ZONE_OVAL:GetMajorAxis() function ZONE_OVAL:GetMajorAxis()
@ -3913,7 +3933,7 @@ do -- ZONE_AIRBASE
self._.ZoneAirbase = Airbase self._.ZoneAirbase = Airbase
self._.ZoneVec2Cache = self._.ZoneAirbase:GetVec2() self._.ZoneVec2Cache = self._.ZoneAirbase:GetVec2()
if Airbase:IsShip() then if Airbase:IsShip() then
self.isShip=true self.isShip=true
self.isHelipad=false self.isHelipad=false
@ -3921,11 +3941,11 @@ do -- ZONE_AIRBASE
elseif Airbase:IsHelipad() then elseif Airbase:IsHelipad() then
self.isShip=false self.isShip=false
self.isHelipad=true self.isHelipad=true
self.isAirdrome=false self.isAirdrome=false
elseif Airbase:IsAirdrome() then elseif Airbase:IsAirdrome() then
self.isShip=false self.isShip=false
self.isHelipad=false self.isHelipad=false
self.isAirdrome=true self.isAirdrome=true
end end
-- Zone objects are added to the _DATABASE and SET_ZONE objects. -- Zone objects are added to the _DATABASE and SET_ZONE objects.

View File

@ -890,7 +890,7 @@ _ATIS = {}
--- ATIS class version. --- ATIS class version.
-- @field #string version -- @field #string version
ATIS.version = "0.10.4" ATIS.version = "1.0.0"
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- TODO list -- TODO list
@ -1528,12 +1528,12 @@ end
--- Use SRS Simple-Text-To-Speech for transmissions. No sound files necessary. --- Use SRS Simple-Text-To-Speech for transmissions. No sound files necessary.
-- @param #ATIS self -- @param #ATIS self
-- @param #string PathToSRS Path to SRS directory. -- @param #string PathToSRS Path to SRS directory (only necessary if SRS exe backend is used).
-- @param #string Gender Gender: "male" or "female" (default). -- @param #string Gender Gender: "male" or "female" (default).
-- @param #string Culture Culture, e.g. "en-GB" (default). -- @param #string Culture Culture, e.g. "en-GB" (default).
-- @param #string Voice Specific voice. Overrides `Gender` and `Culture`. -- @param #string Voice Specific voice. Overrides `Gender` and `Culture`.
-- @param #number Port SRS port. Default 5002. -- @param #number Port SRS port. Default 5002.
-- @param #string GoogleKey Path to Google JSON-Key. -- @param #string GoogleKey Path to Google JSON-Key (SRS exe backend) or Google API key (DCS-gRPC backend).
-- @return #ATIS self -- @return #ATIS self
function ATIS:SetSRS(PathToSRS, Gender, Culture, Voice, Port, GoogleKey) function ATIS:SetSRS(PathToSRS, Gender, Culture, Voice, Port, GoogleKey)
if PathToSRS or MSRS.path then if PathToSRS or MSRS.path then

File diff suppressed because it is too large Load Diff

View File

@ -9,14 +9,14 @@ nav_order: 04
1. Table of contents 1. Table of contents
{:toc} {:toc}
The best way to get compftable with a Moose class is to try the demo missions of The best way to get comfortable with a Moose class is to try the demo missions
the class you want to learn. The Moose team created a lot of demo missions for of the class you want to learn. The Moose team created a lot of demo missions
most of the classes. for most of the classes.
## Download demo missions ## Download demo missions
Go to the repository [MOOSE_MISSIONS]{:target="_blank"}, search the folder of Go to the repository [MOOSE_MISSIONS]{:target="_blank"}, search the folder of
the class, download the mission (`.miz`) and rum them. the class, download the mission (`.miz`) and run them.
## Read the mission script ## Read the mission script
@ -49,7 +49,7 @@ If you want to use more functions combine them all up.
## Next step ## Next step
If the mission shows not the expected behaviour take a look at section If the mission does not show the expected behaviour take a look at section
[problems]. [problems].
[MOOSE_MISSIONS]: https://github.com/FlightControl-Master/MOOSE_MISSIONS/tree/develop [MOOSE_MISSIONS]: https://github.com/FlightControl-Master/MOOSE_MISSIONS/tree/develop

View File

@ -26,14 +26,30 @@ You only need to load **one** of those files at the beginning of your mission.
This repository contains the generated documentation and pictures and other references. This repository contains the generated documentation and pictures and other references.
The generated documentation is reflected in html and is published at: The generated documentation is reflected in html and is published at:
- Stable `master` branch: <https://flightcontrol-master.github.io/MOOSE_DOCS/> - `master` branch: <https://flightcontrol-master.github.io/MOOSE_DOCS/>
- `develop` branch: <https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/> - `develop` branch: <https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/>
## [MOOSE_GUIDES](https://github.com/FlightControl-Master/MOOSE_GUIDES) - For external documentation and help
This repository will be removed in future.
## [MOOSE_PRESENTATIONS](https://github.com/FlightControl-Master/MOOSE_PRESENTATIONS)
A collection of presentations used in the videos on the youtube channel of FlightControl.
## [MOOSE_MISSIONS](https://github.com/FlightControl-Master/MOOSE_MISSIONS) - For users (provides demo missions) ## [MOOSE_MISSIONS](https://github.com/FlightControl-Master/MOOSE_MISSIONS) - For users (provides demo missions)
This repository contains all the demonstration missions in packed format (*.miz), This repository contains all the demonstration missions in packed format (*.miz),
and can be used without any further setup in DCS WORLD. and can be used without any further setup in DCS WORLD.
## [Moose_Community_Scripts](https://github.com/FlightControl-Master/Moose_Community_Scripts)
This repository is for Moose based helper scripts, snippets, functional demos.
## [MOOSE_SOUND](https://github.com/FlightControl-Master/MOOSE_SOUND)
Sound packs for different MOOSE framework classes.
## [MOOSE_MISSIONS_DYNAMIC](https://github.com/FlightControl-Master/MOOSE_MISSIONS_DYNAMIC) - Outdated ## [MOOSE_MISSIONS_DYNAMIC](https://github.com/FlightControl-Master/MOOSE_MISSIONS_DYNAMIC) - Outdated
This repository will be removed in future. This repository will be removed in future.
@ -41,3 +57,11 @@ This repository will be removed in future.
## [MOOSE_MISSIONS_UNPACKED](https://github.com/FlightControl-Master/MOOSE_MISSIONS_UNPACKED) - Outdated ## [MOOSE_MISSIONS_UNPACKED](https://github.com/FlightControl-Master/MOOSE_MISSIONS_UNPACKED) - Outdated
This repository will be removed in future. This repository will be removed in future.
## [MOOSE_COMMUNITY_MISSIONS](https://github.com/FlightControl-Master/MOOSE_COMMUNITY_MISSIONS) - Outdated
A database of missions created by the community, using MOOSE.
## [MOOSE_TOOLS](https://github.com/FlightControl-Master/MOOSE_TOOLS) - Outdated
A collection of the required tools to develop and contribute in the MOOSE framework for DCS World.