Dispatcher documentation.

This commit is contained in:
FlightControl 2018-09-22 09:45:57 +02:00
parent 6b2e9fcb5f
commit 6e67da1672
4 changed files with 49 additions and 61 deletions

View File

@ -568,7 +568,7 @@ AI_CARGO_DISPATCHER.PickupCargo = {}
-- local SetDeployZones = SET_ZONE:New():FilterPrefixes( "Deploy" ):FilterStart() -- local SetDeployZones = SET_ZONE:New():FilterPrefixes( "Deploy" ):FilterStart()
-- --
-- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones ) -- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
-- AICargoDispatcherHelicopter:SetHomeZone( ZONE:FindByName( "Home" ) ) -- AICargoDispatcherHelicopter:Start()
-- --
-- @usage -- @usage
-- --
@ -597,7 +597,7 @@ AI_CARGO_DISPATCHER.PickupCargo = {}
-- DeployZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Vaziani ) ) -- DeployZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Vaziani ) )
-- --
-- AICargoDispatcherAirplanes = AI_CARGO_DISPATCHER_AIRPLANE:New( AirplanesSet, CargoInfantrySet, PickupZoneSet, DeployZoneSet ) -- AICargoDispatcherAirplanes = AI_CARGO_DISPATCHER_AIRPLANE:New( AirplanesSet, CargoInfantrySet, PickupZoneSet, DeployZoneSet )
-- AICargoDispatcherAirplanes:SetHomeZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Kobuleti ) ) -- AICargoDispatcherAirplanes:Start()
-- --
function AI_CARGO_DISPATCHER:New( SetCarrier, SetCargo ) function AI_CARGO_DISPATCHER:New( SetCarrier, SetCargo )
@ -648,32 +648,6 @@ function AI_CARGO_DISPATCHER:New( SetCarrier, SetCargo )
end end
--- Creates a new AI_CARGO_DISPATCHER object.
-- @param #AI_CARGO_DISPATCHER self
-- @param Core.Set#SET_GROUP SetCarrier
-- @param Core.Set#SET_CARGO SetCargo
-- @param Core.Set#SET_ZONE PickupZoneSet
-- @param Core.Set#SET_ZONE DeployZoneSet
-- @return #AI_CARGO_DISPATCHER
-- @usage
--
-- -- Create a new cargo dispatcher
-- SetCarriers = SET_GROUP:New():FilterPrefixes( "APC" ):FilterStart()
-- SetCargos = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart()
-- DeployZoneSet = SET_ZONE:New():FilterPrefixes( "Deploy" ):FilterStart()
-- AICargoDispatcher = AI_CARGO_DISPATCHER:New( SetCarrier, SetCargo, SetDeployZone )
--
function AI_CARGO_DISPATCHER:NewWithZones( SetCarrier, SetCargo, PickupZoneSet, DeployZoneSet )
local self = AI_CARGO_DISPATCHER:New( SetCarrier, SetCargo ) -- #AI_CARGO_DISPATCHER
self.PickupZoneSet = PickupZoneSet
self.DeployZoneSet = DeployZoneSet
return self
end
--- Set the monitor time interval. --- Set the monitor time interval.
-- @param #AI_CARGO_DISPATCHER self -- @param #AI_CARGO_DISPATCHER self
-- @param #number MonitorTimeInterval -- @param #number MonitorTimeInterval
@ -695,11 +669,11 @@ end
-- @usage -- @usage
-- --
-- -- Create a new cargo dispatcher -- -- Create a new cargo dispatcher
-- AICargoDispatcher = AI_CARGO_DISPATCHER:New( SetCarrier, SetCargo, SetDeployZone ) -- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
-- --
-- -- Set the home coordinate -- -- Set the home coordinate
-- local HomeZone = ZONE:New( "Home" ) -- local HomeZone = ZONE:New( "Home" )
-- AICargoDispatcher:SetHomeZone( HomeZone ) -- AICargoDispatcherHelicopter:SetHomeZone( HomeZone )
-- --
function AI_CARGO_DISPATCHER:SetHomeZone( HomeZone ) function AI_CARGO_DISPATCHER:SetHomeZone( HomeZone )
@ -728,10 +702,10 @@ end
-- @usage -- @usage
-- --
-- -- Create a new cargo dispatcher -- -- Create a new cargo dispatcher
-- AICargoDispatcher = AI_CARGO_DISPATCHER:New( SetCarrier, SetCargo, SetDeployZone ) -- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
-- --
-- -- Set the carrier to land within a band around the cargo coordinate between 500 and 300 meters! -- -- Set the carrier to land within a band around the cargo coordinate between 500 and 300 meters!
-- AICargoDispatcher:SetPickupRadius( 500, 300 ) -- AICargoDispatcherHelicopter:SetPickupRadius( 500, 300 )
-- --
function AI_CARGO_DISPATCHER:SetPickupRadius( OuterRadius, InnerRadius ) function AI_CARGO_DISPATCHER:SetPickupRadius( OuterRadius, InnerRadius )
@ -753,10 +727,10 @@ end
-- @usage -- @usage
-- --
-- -- Create a new cargo dispatcher -- -- Create a new cargo dispatcher
-- AICargoDispatcher = AI_CARGO_DISPATCHER:New( SetCarrier, SetCargo, SetDeployZone ) -- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
-- --
-- -- Set the minimum pickup speed to be 100 km/h and the maximum speed to be 200 km/h. -- -- Set the minimum pickup speed to be 100 km/h and the maximum speed to be 200 km/h.
-- AICargoDispatcher:SetPickupSpeed( 200, 100 ) -- AICargoDispatcherHelicopter:SetPickupSpeed( 200, 100 )
-- --
function AI_CARGO_DISPATCHER:SetPickupSpeed( MaxSpeed, MinSpeed ) function AI_CARGO_DISPATCHER:SetPickupSpeed( MaxSpeed, MinSpeed )
@ -786,10 +760,10 @@ end
-- @usage -- @usage
-- --
-- -- Create a new cargo dispatcher -- -- Create a new cargo dispatcher
-- AICargoDispatcher = AI_CARGO_DISPATCHER:New( SetCarrier, SetCargo, SetDeployZone ) -- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
-- --
-- -- Set the carrier to land within a band around the cargo coordinate between 500 and 300 meters! -- -- Set the carrier to land within a band around the cargo coordinate between 500 and 300 meters!
-- AICargoDispatcher:SetDeployRadius( 500, 300 ) -- AICargoDispatcherHelicopter:SetDeployRadius( 500, 300 )
-- --
function AI_CARGO_DISPATCHER:SetDeployRadius( OuterRadius, InnerRadius ) function AI_CARGO_DISPATCHER:SetDeployRadius( OuterRadius, InnerRadius )
@ -811,10 +785,10 @@ end
-- @usage -- @usage
-- --
-- -- Create a new cargo dispatcher -- -- Create a new cargo dispatcher
-- AICargoDispatcher = AI_CARGO_DISPATCHER:New( SetCarrier, SetCargo, SetDeployZone ) -- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
-- --
-- -- Set the minimum deploy speed to be 100 km/h and the maximum speed to be 200 km/h. -- -- Set the minimum deploy speed to be 100 km/h and the maximum speed to be 200 km/h.
-- AICargoDispatcher:SetDeploySpeed( 200, 100 ) -- AICargoDispatcherHelicopter:SetDeploySpeed( 200, 100 )
-- --
function AI_CARGO_DISPATCHER:SetDeploySpeed( MaxSpeed, MinSpeed ) function AI_CARGO_DISPATCHER:SetDeploySpeed( MaxSpeed, MinSpeed )
@ -836,7 +810,7 @@ end
-- @usage -- @usage
-- --
-- -- Create a new cargo dispatcher -- -- Create a new cargo dispatcher
-- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetCarrier, SetCargo, SetDeployZone ) -- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
-- --
-- -- Set the minimum pickup fly height to be 50 meters and the maximum height to be 200 meters. -- -- Set the minimum pickup fly height to be 50 meters and the maximum height to be 200 meters.
-- AICargoDispatcherHelicopter:SetPickupHeight( 200, 50 ) -- AICargoDispatcherHelicopter:SetPickupHeight( 200, 50 )
@ -861,7 +835,7 @@ end
-- @usage -- @usage
-- --
-- -- Create a new cargo dispatcher -- -- Create a new cargo dispatcher
-- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetCarrier, SetCargo, SetDeployZone ) -- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
-- --
-- -- Set the minimum deploy fly height to be 50 meters and the maximum height to be 200 meters. -- -- Set the minimum deploy fly height to be 50 meters and the maximum height to be 200 meters.
-- AICargoDispatcherHelicopter:SetDeployHeight( 200, 50 ) -- AICargoDispatcherHelicopter:SetDeployHeight( 200, 50 )

View File

@ -146,15 +146,18 @@ AI_CARGO_DISPATCHER_APC = {
-- @return #AI_CARGO_DISPATCHER_APC -- @return #AI_CARGO_DISPATCHER_APC
-- @usage -- @usage
-- --
-- -- Create a new cargo dispatcher for the set of APCs, with a combatradius of 500. -- -- An AI dispatcher object for a vehicle squadron, moving infantry from pickup zones to deploy zones.
-- APCSet = SET_GROUP:New():FilterPrefixes( "APC" ):FilterStart() --
-- CargoSet = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart() -- local SetCargoInfantry = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart()
-- DeployZoneSet = SET_ZONE:New():FilterPrefixes( "Deploy" ):FilterStart() -- local SetAPC = SET_GROUP:New():FilterPrefixes( "APC" ):FilterStart()
-- AICargoDispatcher = AI_CARGO_DISPATCHER_APC:New( APCSet, CargoSet, nil, DeployZoneSet, 500 ) -- local SetDeployZones = SET_ZONE:New():FilterPrefixes( "Deploy" ):FilterStart()
--
-- AICargoDispatcherAPC = AI_CARGO_DISPATCHER_APC:New( SetAPC, SetCargoInfantry, nil, SetDeployZones )
-- AICargoDispatcherAPC:Start()
-- --
function AI_CARGO_DISPATCHER_APC:New( APCSet, CargoSet, PickupZoneSet, DeployZoneSet, CombatRadius ) function AI_CARGO_DISPATCHER_APC:New( APCSet, CargoSet, PickupZoneSet, DeployZoneSet, CombatRadius )
local self = BASE:Inherit( self, AI_CARGO_DISPATCHER:NewWithZones( APCSet, CargoSet, PickupZoneSet, DeployZoneSet ) ) -- #AI_CARGO_DISPATCHER_APC local self = BASE:Inherit( self, AI_CARGO_DISPATCHER:New( APCSet, CargoSet, PickupZoneSet, DeployZoneSet ) ) -- #AI_CARGO_DISPATCHER_APC
self:SetDeploySpeed( 120, 70 ) self:SetDeploySpeed( 120, 70 )
self:SetPickupSpeed( 120, 70 ) self:SetPickupSpeed( 120, 70 )

View File

@ -115,18 +115,25 @@ AI_CARGO_DISPATCHER_AIRPLANE = {
-- @return #AI_CARGO_DISPATCHER_AIRPLANE self -- @return #AI_CARGO_DISPATCHER_AIRPLANE self
-- @usage -- @usage
-- --
-- -- Create a new cargo dispatcher -- -- An AI dispatcher object for an airplane squadron, moving infantry and vehicles from pickup airbases to deploy airbases.
-- AirplaneSet = SET_GROUP:New():FilterPrefixes( "Airplane" ):FilterStart() --
-- CargoSet = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart() -- local CargoInfantrySet = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart()
-- PickupZoneSet = SET_AIRBASE:New() -- local AirplanesSet = SET_GROUP:New():FilterPrefixes( "Airplane" ):FilterStart()
-- DeployZoneSet = SET_AIRBASE:New() -- local PickupZoneSet = SET_ZONE:New()
-- PickupZoneSet:AddZone( ZONE_AIRBASE:New( "Gudauta", AIRBASE:FindByName( AIRBASE.Caucasus.Gudauta ), 3000 ) ) -- local DeployZoneSet = SET_ZONE:New()
-- DeployZoneSet:AddZone( ZONE_AIRBASE:New( "Sochi", AIRBASE:FindByName( AIRBASE.Caucasus.Sochi_Adler ), 3000 ) ) --
-- AICargoDispatcher = AI_CARGO_DISPATCHER_AIRPLANE:New( AirplaneSet, CargoSet, PickupZoneSet, DeployZoneSet ) -- PickupZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Gudauta ) )
-- DeployZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Sochi_Adler ) )
-- DeployZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Maykop_Khanskaya ) )
-- DeployZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Mineralnye_Vody ) )
-- DeployZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Vaziani ) )
--
-- AICargoDispatcherAirplanes = AI_CARGO_DISPATCHER_AIRPLANE:New( AirplanesSet, CargoInfantrySet, PickupZoneSet, DeployZoneSet )
-- AICargoDispatcherAirplanes:Start()
-- --
function AI_CARGO_DISPATCHER_AIRPLANE:New( AirplaneSet, CargoSet, PickupZoneSet, DeployZoneSet ) function AI_CARGO_DISPATCHER_AIRPLANE:New( AirplaneSet, CargoSet, PickupZoneSet, DeployZoneSet )
local self = BASE:Inherit( self, AI_CARGO_DISPATCHER:NewWithZones( AirplaneSet, CargoSet, PickupZoneSet, DeployZoneSet ) ) -- #AI_CARGO_DISPATCHER_AIRPLANE local self = BASE:Inherit( self, AI_CARGO_DISPATCHER:New( AirplaneSet, CargoSet, PickupZoneSet, DeployZoneSet ) ) -- #AI_CARGO_DISPATCHER_AIRPLANE
self:SetPickupSpeed( 1200, 600 ) self:SetPickupSpeed( 1200, 600 )
self:SetDeploySpeed( 1200, 600 ) self:SetDeploySpeed( 1200, 600 )

View File

@ -148,15 +148,19 @@ AI_CARGO_DISPATCHER_HELICOPTER = {
-- @return #AI_CARGO_DISPATCHER_HELICOPTER -- @return #AI_CARGO_DISPATCHER_HELICOPTER
-- @usage -- @usage
-- --
-- -- Create a new cargo dispatcher -- -- An AI dispatcher object for a helicopter squadron, moving infantry from pickup zones to deploy zones.
-- HelicopterSet = SET_GROUP:New():FilterPrefixes( "Helicopter" ):FilterStart() --
-- CargoSet = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart() -- local SetCargoInfantry = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart()
-- DeployZoneSet = SET_ZONE:New():FilterPrefixes( "Deploy" ):FilterStart() -- local SetHelicopter = SET_GROUP:New():FilterPrefixes( "Helicopter" ):FilterStart()
-- AICargoDispatcher = AI_CARGO_DISPATCHER_HELICOPTER:New( HelicopterSet, SetCargo, nil, DeployZoneSet ) -- local SetPickupZones = SET_ZONE:New():FilterPrefixes( "Pickup" ):FilterStart()
-- local SetDeployZones = SET_ZONE:New():FilterPrefixes( "Deploy" ):FilterStart()
--
-- AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
-- AICargoDispatcherHelicopter:Start()
-- --
function AI_CARGO_DISPATCHER_HELICOPTER:New( HelicopterSet, CargoSet, PickupZoneSet, DeployZoneSet ) function AI_CARGO_DISPATCHER_HELICOPTER:New( HelicopterSet, CargoSet, PickupZoneSet, DeployZoneSet )
local self = BASE:Inherit( self, AI_CARGO_DISPATCHER:NewWithZones( HelicopterSet, CargoSet, PickupZoneSet, DeployZoneSet ) ) -- #AI_CARGO_DISPATCHER_HELICOPTER local self = BASE:Inherit( self, AI_CARGO_DISPATCHER:New( HelicopterSet, CargoSet, PickupZoneSet, DeployZoneSet ) ) -- #AI_CARGO_DISPATCHER_HELICOPTER
self:SetPickupSpeed( 350, 150 ) self:SetPickupSpeed( 350, 150 )
self:SetDeploySpeed( 350, 150 ) self:SetDeploySpeed( 350, 150 )