diff --git a/Moose Development/Moose/Core/Database.lua b/Moose Development/Moose/Core/Database.lua index 040969abb..7ee178f08 100644 --- a/Moose Development/Moose/Core/Database.lua +++ b/Moose Development/Moose/Core/Database.lua @@ -54,7 +54,6 @@ -- * AIRBASES -- * PLAYERSJOINED -- * PLAYERS --- * CARGOS -- * STORAGES (DCS warehouses) -- * DYNAMICCARGO -- @@ -81,7 +80,6 @@ DATABASE = { PLAYERSJOINED = {}, PLAYERUNITS = {}, CLIENTS = {}, - CARGOS = {}, AIRBASES = {}, COUNTRY_ID = {}, COUNTRY_NAME = {}, @@ -746,102 +744,6 @@ do -- OpsZone end -- OpsZone -do -- cargo - - --- Adds a Cargo based on the Cargo Name in the DATABASE. - -- @param #DATABASE self - -- @param #string CargoName The name of the airbase - function DATABASE:AddCargo( Cargo ) - - if not self.CARGOS[Cargo.Name] then - self.CARGOS[Cargo.Name] = Cargo - end - end - - - --- Deletes a Cargo from the DATABASE based on the Cargo Name. - -- @param #DATABASE self - -- @param #string CargoName The name of the airbase - function DATABASE:DeleteCargo( CargoName ) - - self.CARGOS[CargoName] = nil - end - - --- Finds an CARGO based on the CargoName. - -- @param #DATABASE self - -- @param #string CargoName - -- @return Cargo.Cargo#CARGO The found CARGO. - function DATABASE:FindCargo( CargoName ) - - local CargoFound = self.CARGOS[CargoName] - return CargoFound - end - - --- Checks if the Template name has a #CARGO tag. - -- If yes, the group is a cargo. - -- @param #DATABASE self - -- @param #string TemplateName - -- @return #boolean - function DATABASE:IsCargo( TemplateName ) - - TemplateName = env.getValueDictByKey( TemplateName ) - - local Cargo = TemplateName:match( "#(CARGO)" ) - - return Cargo and Cargo == "CARGO" - end - - --- Private method that registers new Static Templates within the DATABASE Object. - -- @param #DATABASE self - -- @return #DATABASE self - function DATABASE:_RegisterCargos() - - local Groups = UTILS.DeepCopy( self.GROUPS ) -- This is a very important statement. CARGO_GROUP:New creates a new _DATABASE.GROUP entry, which will confuse the loop. I searched 4 hours on this to find the bug! - - for CargoGroupName, CargoGroup in pairs( Groups ) do - if self:IsCargo( CargoGroupName ) then - local CargoInfo = CargoGroupName:match("#CARGO(.*)") - local CargoParam = CargoInfo and CargoInfo:match( "%((.*)%)") - local CargoName1 = CargoGroupName:match("(.*)#CARGO%(.*%)") - local CargoName2 = CargoGroupName:match(".*#CARGO%(.*%)(.*)") - local CargoName = CargoName1 .. ( CargoName2 or "" ) - local Type = CargoParam and CargoParam:match( "T=([%a%d ]+),?") - local Name = CargoParam and CargoParam:match( "N=([%a%d]+),?") or CargoName - local LoadRadius = CargoParam and tonumber( CargoParam:match( "RR=([%a%d]+),?") ) - local NearRadius = CargoParam and tonumber( CargoParam:match( "NR=([%a%d]+),?") ) - - self:I({"Register CargoGroup:",Type=Type,Name=Name,LoadRadius=LoadRadius,NearRadius=NearRadius}) - CARGO_GROUP:New( CargoGroup, Type, Name, LoadRadius, NearRadius ) - end - end - - for CargoStaticName, CargoStatic in pairs( self.STATICS ) do - if self:IsCargo( CargoStaticName ) then - local CargoInfo = CargoStaticName:match("#CARGO(.*)") - local CargoParam = CargoInfo and CargoInfo:match( "%((.*)%)") - local CargoName = CargoStaticName:match("(.*)#CARGO") - local Type = CargoParam and CargoParam:match( "T=([%a%d ]+),?") - local Category = CargoParam and CargoParam:match( "C=([%a%d ]+),?") - local Name = CargoParam and CargoParam:match( "N=([%a%d]+),?") or CargoName - local LoadRadius = CargoParam and tonumber( CargoParam:match( "RR=([%a%d]+),?") ) - local NearRadius = CargoParam and tonumber( CargoParam:match( "NR=([%a%d]+),?") ) - - if Category == "SLING" then - self:I({"Register CargoSlingload:",Type=Type,Name=Name,LoadRadius=LoadRadius,NearRadius=NearRadius}) - CARGO_SLINGLOAD:New( CargoStatic, Type, Name, LoadRadius, NearRadius ) - else - if Category == "CRATE" then - self:I({"Register CargoCrate:",Type=Type,Name=Name,LoadRadius=LoadRadius,NearRadius=NearRadius}) - CARGO_CRATE:New( CargoStatic, Type, Name, LoadRadius, NearRadius ) - end - end - end - end - - end - -end -- cargo - --- Finds a CLIENT based on the ClientName. -- @param #DATABASE self -- @param #string ClientName - Note this is the UNIT name of the client! @@ -2050,19 +1952,6 @@ function DATABASE:ForEachClient( IteratorFunction, FinalizeFunction, ... ) return self end ---- Iterate the DATABASE and call an iterator function for each CARGO, providing the CARGO object to the function and optional parameters. --- @param #DATABASE self --- @param #function IteratorFunction The function that will be called for each object in the database. The function needs to accept a CLIENT parameter. --- @return #DATABASE self -function DATABASE:ForEachCargo( IteratorFunction, FinalizeFunction, ... ) - self:F2( arg ) - - self:ForEach( IteratorFunction, FinalizeFunction, arg, self.CARGOS ) - - return self -end - - --- Handles the OnEventNewCargo event. -- @param #DATABASE self -- @param Core.Event#EVENTDATA EventData diff --git a/Moose Development/Moose/Core/Event.lua b/Moose Development/Moose/Core/Event.lua index 7a9e22e46..e97b78d37 100644 --- a/Moose Development/Moose/Core/Event.lua +++ b/Moose Development/Moose/Core/Event.lua @@ -187,19 +187,17 @@ EVENT = { CreateMarkCoordinateOnEvent = false, } -world.event.S_EVENT_NEW_CARGO = world.event.S_EVENT_MAX + 1000 -world.event.S_EVENT_DELETE_CARGO = world.event.S_EVENT_MAX + 1001 -world.event.S_EVENT_NEW_ZONE = world.event.S_EVENT_MAX + 1002 -world.event.S_EVENT_DELETE_ZONE = world.event.S_EVENT_MAX + 1003 -world.event.S_EVENT_NEW_ZONE_GOAL = world.event.S_EVENT_MAX + 1004 -world.event.S_EVENT_DELETE_ZONE_GOAL = world.event.S_EVENT_MAX + 1005 -world.event.S_EVENT_REMOVE_UNIT = world.event.S_EVENT_MAX + 1006 -world.event.S_EVENT_PLAYER_ENTER_AIRCRAFT = world.event.S_EVENT_MAX + 1007 +world.event.S_EVENT_NEW_ZONE = world.event.S_EVENT_MAX + 1000 +world.event.S_EVENT_DELETE_ZONE = world.event.S_EVENT_MAX + 1001 +world.event.S_EVENT_NEW_ZONE_GOAL = world.event.S_EVENT_MAX + 1002 +world.event.S_EVENT_DELETE_ZONE_GOAL = world.event.S_EVENT_MAX + 1003 +world.event.S_EVENT_REMOVE_UNIT = world.event.S_EVENT_MAX + 1004 +world.event.S_EVENT_PLAYER_ENTER_AIRCRAFT = world.event.S_EVENT_MAX + 1005 -- dynamic cargo -world.event.S_EVENT_NEW_DYNAMIC_CARGO = world.event.S_EVENT_MAX + 1008 -world.event.S_EVENT_DYNAMIC_CARGO_LOADED = world.event.S_EVENT_MAX + 1009 -world.event.S_EVENT_DYNAMIC_CARGO_UNLOADED = world.event.S_EVENT_MAX + 1010 -world.event.S_EVENT_DYNAMIC_CARGO_REMOVED = world.event.S_EVENT_MAX + 1011 +world.event.S_EVENT_NEW_DYNAMIC_CARGO = world.event.S_EVENT_MAX + 1006 +world.event.S_EVENT_DYNAMIC_CARGO_LOADED = world.event.S_EVENT_MAX + 1007 +world.event.S_EVENT_DYNAMIC_CARGO_UNLOADED = world.event.S_EVENT_MAX + 1008 +world.event.S_EVENT_DYNAMIC_CARGO_REMOVED = world.event.S_EVENT_MAX + 1009 --- The different types of events supported by MOOSE. @@ -234,8 +232,6 @@ EVENTS = { MarkChange = world.event.S_EVENT_MARK_CHANGE, MarkRemoved = world.event.S_EVENT_MARK_REMOVED, -- Moose Events - NewCargo = world.event.S_EVENT_NEW_CARGO, - DeleteCargo = world.event.S_EVENT_DELETE_CARGO, NewZone = world.event.S_EVENT_NEW_ZONE, DeleteZone = world.event.S_EVENT_DELETE_ZONE, NewZoneGoal = world.event.S_EVENT_NEW_ZONE_GOAL, @@ -512,16 +508,6 @@ local _EVENTMETA = { Event = "OnEventMarkRemoved", Text = "S_EVENT_MARK_REMOVED" }, - [EVENTS.NewCargo] = { - Order = 1, - Event = "OnEventNewCargo", - Text = "S_EVENT_NEW_CARGO" - }, - [EVENTS.DeleteCargo] = { - Order = 1, - Event = "OnEventDeleteCargo", - Text = "S_EVENT_DELETE_CARGO" - }, [EVENTS.NewZone] = { Order = 1, Event = "OnEventNewZone", @@ -1068,38 +1054,6 @@ end do -- Event Creation - -- TODO Remove old Cargo event - --- Creation of a New Cargo Event. - -- @param #EVENT self - -- @param AI.AI_Cargo#AI_CARGO Cargo The Cargo created. - function EVENT:CreateEventNewCargo( Cargo ) - self:F( { Cargo } ) - - local Event = { - id = EVENTS.NewCargo, - time = timer.getTime(), - cargo = Cargo, - } - - world.onEvent( Event ) - end - - -- TODO Remove old Cargo event - --- Creation of a Cargo Deletion Event. - -- @param #EVENT self - -- @param AI.AI_Cargo#AI_CARGO Cargo The Cargo created. - function EVENT:CreateEventDeleteCargo( Cargo ) - self:F( { Cargo } ) - - local Event = { - id = EVENTS.DeleteCargo, - time = timer.getTime(), - cargo = Cargo, - } - - world.onEvent( Event ) - end - --- Creation of a New Zone Event. -- @param #EVENT self -- @param Core.Zone#ZONE_BASE Zone The Zone created. @@ -1368,7 +1322,6 @@ function EVENT:onEvent( Event ) Event.IniDynamicCargoName = Event.IniUnitName Event.IniPlayerName = string.match(Event.IniUnitName,"^(.+)|%d%d:%d%d|PKG%d+") else - --Event.IniUnit = CARGO:FindByName( Event.IniDCSUnitName ) Event.IniUnit = STATIC:FindByName( Event.IniDCSUnitName, false ) end Event.IniCoalition = Event.IniDCSUnit:getCoalition() @@ -1540,12 +1493,6 @@ function EVENT:onEvent( Event ) Event.MarkGroupID = Event.groupID end - -- Cargo object. - if Event.cargo then - Event.Cargo = Event.cargo - Event.CargoName = Event.cargo.Name - end - -- Dynamic cargo Object if Event.dynamiccargo then Event.IniDynamicCargo = Event.dynamiccargo @@ -1707,15 +1654,6 @@ function EVENT:onEvent( Event ) end end - -- When cargo was deleted, it may probably be because of an S_EVENT_DEAD. - -- However, in the loading logic, an S_EVENT_DEAD is also generated after a Destroy() call. - -- And this is a problem because it will remove all entries from the SET_CARGOs. - -- To prevent this from happening, the Cargo object has a flag NoDestroy. - -- When true, the SET_CARGO won't Remove the Cargo object from the set. - -- But we need to switch that flag off after the event handlers have been called. - if Event.id == EVENTS.DeleteCargo then - Event.Cargo.NoDestroy = nil - end else self:T( { EventMeta.Text, Event } ) end diff --git a/Moose Development/Moose/Core/Set.lua b/Moose Development/Moose/Core/Set.lua index 3ab128080..6b48a4302 100644 --- a/Moose Development/Moose/Core/Set.lua +++ b/Moose Development/Moose/Core/Set.lua @@ -24,7 +24,6 @@ -- * @{#SET_STATIC}: Defines a collection of @{Wrapper.Static}s filtered by filter criteria. -- * @{#SET_CLIENT}: Defines a collection of @{Wrapper.Client}s filtered by filter criteria. -- * @{#SET_AIRBASE}: Defines a collection of @{Wrapper.Airbase}s filtered by filter criteria. --- * @{#SET_CARGO}: Defines a collection of @{Cargo.Cargo}s filtered by filter criteria. -- * @{#SET_ZONE}: Defines a collection of @{Core.Zone}s filtered by filter criteria. -- * @{#SET_SCENERY}: Defines a collection of @{Wrapper.Scenery}s added via a filtered @{#SET_ZONE}. -- * @{#SET_DYNAMICCARGO}: Defines a collection of @{Wrapper.DynamicCargo}s filtered by filter criteria. @@ -6077,14 +6076,6 @@ do -- SET_ZONE if EventData.Zone then local Zone = _DATABASE:FindZone(EventData.Zone.ZoneName) if Zone and Zone.ZoneName then - - -- When cargo was deleted, it may probably be because of an S_EVENT_DEAD. - -- However, in the loading logic, an S_EVENT_DEAD is also generated after a Destroy() call. - -- And this is a problem because it will remove all entries from the SET_ZONEs. - -- To prevent this from happening, the Zone object has a flag NoDestroy. - -- When true, the SET_ZONE won't Remove the Zone object from the set. - -- This flag is switched off after the event handlers have been called in the EVENT class. - --self:F({ ZoneNoDestroy = Zone.NoDestroy }) if Zone.NoDestroy then else self:Remove(Zone.ZoneName) @@ -6599,14 +6590,6 @@ do -- SET_ZONE_GOAL if EventData.ZoneGoal then local Zone = _DATABASE:FindZone(EventData.ZoneGoal.ZoneName) if Zone and Zone.ZoneName then - - -- When cargo was deleted, it may probably be because of an S_EVENT_DEAD. - -- However, in the loading logic, an S_EVENT_DEAD is also generated after a Destroy() call. - -- And this is a problem because it will remove all entries from the SET_ZONE_GOALs. - -- To prevent this from happening, the Zone object has a flag NoDestroy. - -- When true, the SET_ZONE_GOAL won't Remove the Zone object from the set. - -- This flag is switched off after the event handlers have been called in the EVENT class. - --self:F({ ZoneNoDestroy = Zone.NoDestroy }) if Zone.NoDestroy then else self:Remove(Zone.ZoneName) @@ -6995,14 +6978,6 @@ do -- SET_OPSZONE if EventData.ZoneGoal then local Zone = _DATABASE:FindZone(EventData.ZoneGoal.ZoneName) if Zone and Zone.ZoneName then - - -- When cargo was deleted, it may probably be because of an S_EVENT_DEAD. - -- However, in the loading logic, an S_EVENT_DEAD is also generated after a Destroy() call. - -- And this is a problem because it will remove all entries from the SET_OPSZONEs. - -- To prevent this from happening, the Zone object has a flag NoDestroy. - -- When true, the SET_OPSZONE won't Remove the Zone object from the set. - -- This flag is switched off after the event handlers have been called in the EVENT class. - --self:F({ ZoneNoDestroy = Zone.NoDestroy }) if Zone.NoDestroy then else self:Remove(Zone.ZoneName) diff --git a/Moose Development/Moose/Functional/Artillery.lua b/Moose Development/Moose/Functional/Artillery.lua index 5a3642bc3..04f2202b1 100644 --- a/Moose Development/Moose/Functional/Artillery.lua +++ b/Moose Development/Moose/Functional/Artillery.lua @@ -503,6 +503,7 @@ -- -- Start ARTY process. -- normandy:Start() -- +-- -- @field #ARTY ARTY={ ClassName="ARTY", @@ -1203,37 +1204,6 @@ function ARTY:New(group, alias) return self end ---- Creates a new ARTY object from a MOOSE CARGO_GROUP object. --- @param #ARTY self --- @param Cargo.CargoGroup#CARGO_GROUP cargogroup The CARGO GROUP object for which artillery tasks should be assigned. --- @param alias (Optional) Alias name the group will be calling itself when sending messages. Default is the group name. --- @return #ARTY ARTY object or nil if group does not exist or is not a ground or naval group. -function ARTY:NewFromCargoGroup(cargogroup, alias) - - if cargogroup then - BASE:T(string.format("ARTY script version %s. Added CARGO group %s.", ARTY.version, cargogroup:GetName())) - else - BASE:E("ERROR: Requested ARTY CARGO GROUP does not exist! (Has to be a MOOSE CARGO(!) group.)") - return nil - end - - -- Get group belonging to the cargo group. - local group=cargogroup:GetObject() - - -- Create ARTY object. - local arty=ARTY:New(group,alias) - - -- Set iscargo flag. - arty.iscargo=true - - -- Set cargo group object. - arty.cargogroup=cargogroup - - return arty -end - - - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- User Functions ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/Moose Development/Moose/Functional/ZoneGoalCargo.lua b/Moose Development/Moose/Functional/ZoneGoalCargo.lua deleted file mode 100644 index 367202261..000000000 --- a/Moose Development/Moose/Functional/ZoneGoalCargo.lua +++ /dev/null @@ -1,458 +0,0 @@ ---- **Functional** - Base class that models processes to achieve goals involving a Zone and Cargo. --- --- === --- --- ZONE_GOAL_CARGO models processes that have a Goal with a defined achievement involving a Zone and Cargo. --- Derived classes implement the ways how the achievements can be realized. --- --- # Developer Note --- --- ![Banner Image](..\Images\deprecated.png) --- --- Note while this class still works, it is no longer supported as the original author stopped active development of MOOSE --- Therefore, this class is considered to be deprecated --- --- === --- --- ### Author: **FlightControl** --- --- === --- --- @module Functional.ZoneGoalCargo --- @image MOOSE.JPG - -do -- ZoneGoal - - --- @type ZONE_GOAL_CARGO - -- @extends Functional.ZoneGoal#ZONE_GOAL - - - --- Models processes that have a Goal with a defined achievement involving a Zone and Cargo. - -- Derived classes implement the ways how the achievements can be realized. - -- - -- ## 1. ZONE_GOAL_CARGO constructor - -- - -- * @{#ZONE_GOAL_CARGO.New}(): Creates a new ZONE_GOAL_CARGO object. - -- - -- ## 2. ZONE_GOAL_CARGO is a finite state machine (FSM). - -- - -- ### 2.1 ZONE_GOAL_CARGO States - -- - -- * **Deployed**: The Zone has been captured by an other coalition. - -- * **Airborne**: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone. - -- * **Loaded**: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone. - -- * **Empty**: The Zone is empty. There is not valid unit in the Zone. - -- - -- ### 2.2 ZONE_GOAL_CARGO Events - -- - -- * **Capture**: The Zone has been captured by an other coalition. - -- * **Attack**: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone. - -- * **Guard**: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone. - -- * **Empty**: The Zone is empty. There is not valid unit in the Zone. - -- - -- ### 2.3 ZONE_GOAL_CARGO State Machine - -- - -- @field #ZONE_GOAL_CARGO - ZONE_GOAL_CARGO = { - ClassName = "ZONE_GOAL_CARGO", - } - - -- @field #table ZONE_GOAL_CARGO.States - ZONE_GOAL_CARGO.States = {} - - --- ZONE_GOAL_CARGO Constructor. - -- @param #ZONE_GOAL_CARGO self - -- @param Core.Zone#ZONE Zone A @{Core.Zone} object with the goal to be achieved. - -- @param #number Coalition The initial coalition owning the zone. - -- @return #ZONE_GOAL_CARGO - function ZONE_GOAL_CARGO:New( Zone, Coalition ) - - local self = BASE:Inherit( self, ZONE_GOAL:New( Zone ) ) -- #ZONE_GOAL_CARGO - self:F( { Zone = Zone, Coalition = Coalition } ) - - self:SetCoalition( Coalition ) - - do - - --- Captured State Handler OnLeave for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnLeaveCaptured - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - -- @return #boolean - - --- Captured State Handler OnEnter for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnEnterCaptured - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - - end - - - do - - --- Attacked State Handler OnLeave for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnLeaveAttacked - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - -- @return #boolean - - --- Attacked State Handler OnEnter for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnEnterAttacked - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - - end - - do - - --- Guarded State Handler OnLeave for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnLeaveGuarded - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - -- @return #boolean - - --- Guarded State Handler OnEnter for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnEnterGuarded - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - - end - - - do - - --- Empty State Handler OnLeave for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnLeaveEmpty - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - -- @return #boolean - - --- Empty State Handler OnEnter for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnEnterEmpty - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - - end - - self:AddTransition( "*", "Guard", "Guarded" ) - - --- Guard Handler OnBefore for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnBeforeGuard - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - -- @return #boolean - - --- Guard Handler OnAfter for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnAfterGuard - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - - --- Guard Trigger for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] Guard - -- @param #ZONE_GOAL_CARGO self - - --- Guard Asynchronous Trigger for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] __Guard - -- @param #ZONE_GOAL_CARGO self - -- @param #number Delay - - self:AddTransition( "*", "Empty", "Empty" ) - - --- Empty Handler OnBefore for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnBeforeEmpty - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - -- @return #boolean - - --- Empty Handler OnAfter for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnAfterEmpty - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - - --- Empty Trigger for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] Empty - -- @param #ZONE_GOAL_CARGO self - - --- Empty Asynchronous Trigger for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] __Empty - -- @param #ZONE_GOAL_CARGO self - -- @param #number Delay - - - self:AddTransition( { "Guarded", "Empty" }, "Attack", "Attacked" ) - - --- Attack Handler OnBefore for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnBeforeAttack - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - -- @return #boolean - - --- Attack Handler OnAfter for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnAfterAttack - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - - --- Attack Trigger for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] Attack - -- @param #ZONE_GOAL_CARGO self - - --- Attack Asynchronous Trigger for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] __Attack - -- @param #ZONE_GOAL_CARGO self - -- @param #number Delay - - self:AddTransition( { "Guarded", "Attacked", "Empty" }, "Capture", "Captured" ) - - --- Capture Handler OnBefore for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnBeforeCapture - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - -- @return #boolean - - --- Capture Handler OnAfter for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] OnAfterCapture - -- @param #ZONE_GOAL_CARGO self - -- @param #string From - -- @param #string Event - -- @param #string To - - --- Capture Trigger for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] Capture - -- @param #ZONE_GOAL_CARGO self - - --- Capture Asynchronous Trigger for ZONE_GOAL_CARGO - -- @function [parent=#ZONE_GOAL_CARGO] __Capture - -- @param #ZONE_GOAL_CARGO self - -- @param #number Delay - - return self - end - - - --- Set the owning coalition of the zone. - -- @param #ZONE_GOAL_CARGO self - -- @param #number Coalition - function ZONE_GOAL_CARGO:SetCoalition( Coalition ) - self.Coalition = Coalition - end - - - --- Get the owning coalition of the zone. - -- @param #ZONE_GOAL_CARGO self - -- @return #number Coalition. - function ZONE_GOAL_CARGO:GetCoalition() - return self.Coalition - end - - - --- Get the owning coalition name of the zone. - -- @param #ZONE_GOAL_CARGO self - -- @return #string Coalition name. - function ZONE_GOAL_CARGO:GetCoalitionName() - - if self.Coalition == coalition.side.BLUE then - return "Blue" - end - - if self.Coalition == coalition.side.RED then - return "Red" - end - - if self.Coalition == coalition.side.NEUTRAL then - return "Neutral" - end - - return "" - end - - - function ZONE_GOAL_CARGO:IsGuarded() - - local IsGuarded = self.Zone:IsAllInZoneOfCoalition( self.Coalition ) - self:F( { IsGuarded = IsGuarded } ) - return IsGuarded - end - - - function ZONE_GOAL_CARGO:IsEmpty() - - local IsEmpty = self.Zone:IsNoneInZone() - self:F( { IsEmpty = IsEmpty } ) - return IsEmpty - end - - - function ZONE_GOAL_CARGO:IsCaptured() - - local IsCaptured = self.Zone:IsAllInZoneOfOtherCoalition( self.Coalition ) - self:F( { IsCaptured = IsCaptured } ) - return IsCaptured - end - - - function ZONE_GOAL_CARGO:IsAttacked() - - local IsAttacked = self.Zone:IsSomeInZoneOfCoalition( self.Coalition ) - self:F( { IsAttacked = IsAttacked } ) - return IsAttacked - end - - - - --- Mark. - -- @param #ZONE_GOAL_CARGO self - function ZONE_GOAL_CARGO:Mark() - - local Coord = self.Zone:GetCoordinate() - local ZoneName = self:GetZoneName() - local State = self:GetState() - - if self.MarkRed and self.MarkBlue then - self:F( { MarkRed = self.MarkRed, MarkBlue = self.MarkBlue } ) - Coord:RemoveMark( self.MarkRed ) - Coord:RemoveMark( self.MarkBlue ) - end - - if self.Coalition == coalition.side.BLUE then - self.MarkBlue = Coord:MarkToCoalitionBlue( "Guard Zone: " .. ZoneName .. "\nStatus: " .. State ) - self.MarkRed = Coord:MarkToCoalitionRed( "Capture Zone: " .. ZoneName .. "\nStatus: " .. State ) - else - self.MarkRed = Coord:MarkToCoalitionRed( "Guard Zone: " .. ZoneName .. "\nStatus: " .. State ) - self.MarkBlue = Coord:MarkToCoalitionBlue( "Capture Zone: " .. ZoneName .. "\nStatus: " .. State ) - end - end - - --- Bound. - -- @param #ZONE_GOAL_CARGO self - function ZONE_GOAL_CARGO:onenterGuarded() - - --self:GetParent( self ):onenterGuarded() - - if self.Coalition == coalition.side.BLUE then - --elf.ProtectZone:BoundZone( 12, country.id.USA ) - else - --self.ProtectZone:BoundZone( 12, country.id.RUSSIA ) - end - - self:Mark() - - end - - function ZONE_GOAL_CARGO:onenterCaptured() - - --self:GetParent( self ):onenterCaptured() - - local NewCoalition = self.Zone:GetCoalition() - self:F( { NewCoalition = NewCoalition } ) - self:SetCoalition( NewCoalition ) - - self:Mark() - end - - - function ZONE_GOAL_CARGO:onenterEmpty() - - --self:GetParent( self ):onenterEmpty() - - self:Mark() - end - - - function ZONE_GOAL_CARGO:onenterAttacked() - - --self:GetParent( self ):onenterAttacked() - - self:Mark() - end - - - --- When started, check the Coalition status. - -- @param #ZONE_GOAL_CARGO self - function ZONE_GOAL_CARGO:onafterGuard() - - --self:F({BASE:GetParent( self )}) - --BASE:GetParent( self ).onafterGuard( self ) - - if not self.SmokeScheduler then - self.SmokeScheduler = self:ScheduleRepeat( 1, 1, 0.1, nil, self.StatusSmoke, self ) - end - if not self.ScheduleStatusZone then - self.ScheduleStatusZone = self:ScheduleRepeat( 15, 15, 0.1, nil, self.StatusZone, self ) - end - end - - - function ZONE_GOAL_CARGO:IsCaptured() - - local IsCaptured = self.Zone:IsAllInZoneOfOtherCoalition( self.Coalition ) - self:F( { IsCaptured = IsCaptured } ) - return IsCaptured - end - - - function ZONE_GOAL_CARGO:IsAttacked() - - local IsAttacked = self.Zone:IsSomeInZoneOfCoalition( self.Coalition ) - self:F( { IsAttacked = IsAttacked } ) - return IsAttacked - end - - --- Check status Coalition ownership. - -- @param #ZONE_GOAL_CARGO self - function ZONE_GOAL_CARGO:StatusZone() - - local State = self:GetState() - self:F( { State = self:GetState() } ) - - self.Zone:Scan() - - if State ~= "Guarded" and self:IsGuarded() then - self:Guard() - end - - if State ~= "Empty" and self:IsEmpty() then - self:Empty() - end - - if State ~= "Attacked" and self:IsAttacked() then - self:Attack() - end - - if State ~= "Captured" and self:IsCaptured() then - self:Capture() - end - - end - -end - diff --git a/Moose Development/Moose/Globals.lua b/Moose Development/Moose/Globals.lua index 5108254d1..d5f7ef941 100644 --- a/Moose Development/Moose/Globals.lua +++ b/Moose Development/Moose/Globals.lua @@ -13,9 +13,6 @@ _DATABASE = DATABASE:New() -- Core.Database#DATABASE _SETTINGS = SETTINGS:Set() -- Core.Settings#SETTINGS _SETTINGS:SetPlayerMenuOn() ---- Register cargos. -_DATABASE:_RegisterCargos() - --- Register zones. _DATABASE:_RegisterZones() _DATABASE:_RegisterAirbases() diff --git a/Moose Development/Moose/Modules.lua b/Moose Development/Moose/Modules.lua new file mode 100644 index 000000000..489d0421a --- /dev/null +++ b/Moose Development/Moose/Modules.lua @@ -0,0 +1,136 @@ +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Utilities/Enums.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Utilities/Utils.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Utilities/Profiler.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Utilities/FiFo.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Utilities/Socket.lua' ) + +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Base.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Astar.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Beacon.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Condition.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/UserFlag.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Report.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Scheduler.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/ScheduleDispatcher.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Event.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Settings.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Menu.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Zone.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Zone_Detection.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Database.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Set.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Point.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Velocity.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Message.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Fsm.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Spawn.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/SpawnStatic.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Timer.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Goal.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Spot.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/MarkerOps_Base.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/TextAndSound.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Pathline.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/ClientMenu.lua') +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Core/Vector.lua') + +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Object.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Identifiable.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Positionable.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Controllable.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Group.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Unit.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Client.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Static.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Airbase.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Scenery.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Marker.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Weapon.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Net.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/Storage.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Wrapper/DynamicCargo.lua' ) + + +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Scoring.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/CleanUp.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Movement.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Sead.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Escort.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/ATC_Ground.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Detection.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/DetectionZones.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Designate.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/RAT.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Range.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/ZoneGoal.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/ZoneGoalCoalition.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/ZoneCaptureCoalition.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Artillery.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Suppression.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/PseudoATC.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Warehouse.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Fox.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Mantis.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Shorad.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/AICSAR.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/AmmoTruck.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Autolase.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Tiresias.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Stratego.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/ClientWatch.lua') +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Functional/Formation.lua') + +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Airboss.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/RecoveryTanker.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/RescueHelo.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/ATIS.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/CTLD.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/CSAR.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/AirWing.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/ArmyGroup.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Auftrag.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Awacs.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Brigade.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Chief.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Cohort.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Commander.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Fleet.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/FlightControl.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/FlightGroup.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Flotilla.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Intelligence.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Legion.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/NavyGroup.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Operation.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/OpsGroup.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/OpsTransport.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/OpsZone.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Platoon.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/PlayerTask.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/PlayerRecce.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Squadron.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/Target.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/EasyGCICAP.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Ops/EasyA2G.lua' ) + +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Shapes/ShapeBase.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Shapes/Circle.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Shapes/Cube.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Shapes/Line.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Shapes/Oval.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Shapes/Polygon.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Shapes/Triangle.lua' ) + +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Sound/UserSound.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Sound/SoundOutput.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Sound/Radio.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Sound/RadioQueue.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Sound/RadioSpeech.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Sound/SRS.lua' ) + +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Navigation/Point.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Navigation/Beacons.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Navigation/Radios.lua' ) +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Navigation/Towns.lua' ) + +__Moose.Include( MOOSE_DEVELOPMENT_FOLDER..'/Moose/Globals.lua' ) diff --git a/Moose Development/Moose/Utilities/Enums.lua b/Moose Development/Moose/Utilities/Enums.lua index 8a8c4c142..e943762a4 100644 --- a/Moose Development/Moose/Utilities/Enums.lua +++ b/Moose Development/Moose/Utilities/Enums.lua @@ -1798,6 +1798,8 @@ ENUMS.Storage.weapons.missiles.Igla_S = 'weapons.missiles.Igla_S' ENUMS.Storage.weapons.gunmounts.AKAN_NO_TRC = 'weapons.gunmounts.{AKAN_NO_TRC}' ENUMS.Storage.weapons.gunmounts.AKAN = 'weapons.gunmounts.{AKAN}' 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" -- UH-60L Mod ENUMS.Storage.weapons.gunmounts.UH60LGAU19 = 'weapons.gunmounts.UH-60L GAU-19' diff --git a/Moose Development/Moose/Wrapper/Client.lua b/Moose Development/Moose/Wrapper/Client.lua index 3fb04ab4a..cb1a18225 100644 --- a/Moose Development/Moose/Wrapper/Client.lua +++ b/Moose Development/Moose/Wrapper/Client.lua @@ -148,7 +148,7 @@ function CLIENT:FindByName( ClientName, ClientBriefing, Error ) end end ---- Transport defines that the Client is a Transport. Transports show cargo. +--- Register a client. -- @param #CLIENT self -- @param #string ClientName Name of the client unit. -- @return #CLIENT self @@ -507,15 +507,6 @@ function CLIENT:GetClientGroupDCSUnit() end end - ---- Evaluates if the CLIENT is a transport. --- @param #CLIENT self --- @return #boolean true is a transport. -function CLIENT:IsTransport() - self:F() - return self.ClientTransport -end - --- The main message driver for the CLIENT. -- This function displays various messages to the Player logged into the CLIENT through the DCS World Messaging system. -- @param #CLIENT self diff --git a/Moose Development/Moose/Wrapper/Controllable.lua b/Moose Development/Moose/Wrapper/Controllable.lua index d575a8c3f..2ea2be027 100644 --- a/Moose Development/Moose/Wrapper/Controllable.lua +++ b/Moose Development/Moose/Wrapper/Controllable.lua @@ -2185,7 +2185,7 @@ function CONTROLLABLE:TaskFunction( FunctionString, ... ) self:SetState( self, ArgumentKey, arg ) DCSScript[#DCSScript + 1] = "local Arguments = MissionControllable:GetState( MissionControllable, '" .. ArgumentKey .. "' ) " DCSScript[#DCSScript + 1] = FunctionString .. "( MissionControllable, unpack( Arguments ) )" - --DCSScript[#DCSScript + 1] = FunctionString .. "( MissionControllable, ((type(Arguments)=='table') and unpack(Arguments) or nil))" + --DCSScript[#DCSScript + 1] = FunctionString .. "( MissionControllable, ((type(Arguments)=='table') and unpack(Arguments) or nil))" -- this doesn't work else DCSScript[#DCSScript + 1] = FunctionString .. "( MissionControllable )" end diff --git a/docs/index.md b/docs/index.md index 81afb8cf2..c12c043c3 100644 --- a/docs/index.md +++ b/docs/index.md @@ -28,14 +28,11 @@ It is the ambition to grow this framework as a de-facto standard for mission des ## Two branches - Choose wisely -In [DCS World] there is a `Stable` version and an `OpenBeta`. New features are released to the `OpenBeta` first and applied to `Stable` later. -People who choose to use `OpenBeta` can use the newest featuest and module, but accept the risk of bugs and unstable updates. -In MOOSE there is a `master` branch, which is comparable to the `Stable` version. -And there is the `development` branch, which is more like the `OpenBeta`. -New modules (called classes in [Lua], like [OPS.Auftrag]) will only available in the `development` branch. +In MOOSE there is a `master-ng` branch, which is the current `stable` version, and the `develop` branch. +New modules (called classes in [Lua], like [OPS.Auftrag]) will first only be available in the `development` branch. Releases are the most stable approach to use MOOSE. -From time to time the current state of the `master` branch is used to create release. +From time to time the current state of the `master-ng` branch is used to create release. A release gets a spefific version number and will not be changed later on. ## Documentation