Preliminary

This commit is contained in:
FlightControl_Master 2018-03-10 06:58:12 +01:00
parent 370278e643
commit 34592a53be
2 changed files with 57 additions and 4 deletions

View File

@ -226,6 +226,45 @@ function TASKINFO:AddWindAtCoordinate( Coordinate, Order, Detail, Keep )
return self return self
end end
--- Add Cargo.
-- @param #TASKINFO self
-- @param Core.Cargo#CARGO Cargo
-- @param #number Order The display order, which is a number from 0 to 100.
-- @param #TASKINFO.Detail Detail The detail Level.
-- @param #boolean Keep (optional) If true, this would indicate that the planned taskinfo would be persistent when the task is completed, so that the original planned task info is used at the completed reports.
-- @return #TASKINFO self
function TASKINFO:AddCargo( Cargo, Order, Detail, Keep )
self:AddInfo( "Cargo", Cargo, Order, Detail, Keep )
return self
end
--- Add Cargo set.
-- @param #TASKINFO self
-- @param Core.Set#SET_CARGO SetCargo
-- @param #number Order The display order, which is a number from 0 to 100.
-- @param #TASKINFO.Detail Detail The detail Level.
-- @param #boolean Keep (optional) If true, this would indicate that the planned taskinfo would be persistent when the task is completed, so that the original planned task info is used at the completed reports.
-- @return #TASKINFO self
function TASKINFO:AddCargoSet( SetCargo, Order, Detail, Keep )
local CargoReport = REPORT:New()
SetCargo:ForEachCargo(
--- @param Core.Cargo#CARGO Cargo
function( Cargo )
local CargoType = Cargo:GetType()
local CargoName = Cargo:GetName()
local CargoCoordinate = Cargo:GetCoordinate()
CargoReport:Add( string.format( '- "%s" (%s) at %s', CargoName, CargoType, CargoCoordinate:ToStringMGRS() ) )
end
)
self:AddInfo( "CargoSet", CargoReport:Text(), Order, Detail, Keep )
return self
end
--- Create the taskinfo Report --- Create the taskinfo Report
-- @param #TASKINFO self -- @param #TASKINFO self
@ -280,6 +319,10 @@ function TASKINFO:Report( Report, Detail, ReportGroup )
local Coordinate = Data.Data -- Core.Point#COORDINATE local Coordinate = Data.Data -- Core.Point#COORDINATE
Text = Coordinate:ToStringWind( ReportGroup:GetUnit(1), nil, self ) Text = Coordinate:ToStringWind( ReportGroup:GetUnit(1), nil, self )
end end
if Key == "CargoSet" then
local DataText = Data.Data -- #string
Text = DataText
end
if Line < math.floor( Data.Order / 10 ) then if Line < math.floor( Data.Order / 10 ) then
if Line == 0 then if Line == 0 then

View File

@ -162,7 +162,7 @@ do -- TASK_CARGO
self.SmokeColor = SMOKECOLOR.Red self.SmokeColor = SMOKECOLOR.Red
self.CargoItemCount = {} -- Map of Carriers having a cargo item count to check the cargo loading limits. self.CargoItemCount = {} -- Map of Carriers having a cargo item count to check the cargo loading limits.
self.CargoLimit = 2 self.CargoLimit = 6
self.DeployZones = {} -- setmetatable( {}, { __mode = "v" } ) -- weak table on value self.DeployZones = {} -- setmetatable( {}, { __mode = "v" } ) -- weak table on value
@ -228,6 +228,7 @@ do -- TASK_CARGO
if Cargo:IsAlive() then if Cargo:IsAlive() then
self:E( "Cargo is alive" )
-- if Task:is( "RoutingToPickup" ) then -- if Task:is( "RoutingToPickup" ) then
-- MENU_GROUP_COMMAND:New( -- MENU_GROUP_COMMAND:New(
-- TaskUnit:GetGroup(), -- TaskUnit:GetGroup(),
@ -239,10 +240,10 @@ do -- TASK_CARGO
-- ):SetTime(MenuTime) -- ):SetTime(MenuTime)
-- end -- end
self:E( { CargoUnloaded = Cargo:IsUnLoaded(), CargoLoaded = Cargo:IsLoaded(), CargoItemCount = CargoItemCount } )
if Cargo:IsUnLoaded() then if Cargo:IsUnLoaded() then
if CargoItemCount < Task.CargoLimit then if CargoItemCount <= Task.CargoLimit then
if Cargo:IsInRadius( TaskUnit:GetPointVec2() ) then if Cargo:IsInRadius( TaskUnit:GetPointVec2() ) then
local NotInDeployZones = true local NotInDeployZones = true
for DeployZoneName, DeployZone in pairs( Task.DeployZones ) do for DeployZoneName, DeployZone in pairs( Task.DeployZones ) do
@ -250,12 +251,14 @@ do -- TASK_CARGO
NotInDeployZones = false NotInDeployZones = false
end end
end end
self:E( { NotInDeployZones = NotInDeployZones } )
if NotInDeployZones then if NotInDeployZones then
if not TaskUnit:InAir() then if not TaskUnit:InAir() then
MENU_GROUP_COMMAND:New( TaskUnit:GetGroup(), "Board cargo " .. Cargo.Name, TaskUnit.Menu, self.MenuBoardCargo, self, Cargo ):SetTime(MenuTime) MENU_GROUP_COMMAND:New( TaskUnit:GetGroup(), "Board cargo " .. Cargo.Name, TaskUnit.Menu, self.MenuBoardCargo, self, Cargo ):SetTime(MenuTime)
end end
end end
else else
self:E( { "Route" } )
MENU_GROUP_COMMAND:New( TaskUnit:GetGroup(), "Route to Pickup cargo " .. Cargo.Name, TaskUnit.Menu, self.MenuRouteToPickup, self, Cargo ):SetTime(MenuTime) MENU_GROUP_COMMAND:New( TaskUnit:GetGroup(), "Route to Pickup cargo " .. Cargo.Name, TaskUnit.Menu, self.MenuRouteToPickup, self, Cargo ):SetTime(MenuTime)
end end
end end
@ -277,7 +280,7 @@ do -- TASK_CARGO
end end
) )
TaskUnit.Menu:Remove( MenuTime ) --TaskUnit.Menu:Remove( MenuTime )
self:__SelectAction( -15 ) self:__SelectAction( -15 )
@ -800,6 +803,13 @@ do -- TASK_CARGO
return self.GoalTotal return self.GoalTotal
end end
function TASK_CARGO:UpdateTaskInfo()
if self:IsStatePlanned() or self:IsStateAssigned() then
self.TaskInfo:AddTaskName( 0, "MSOD" )
self.TaskInfo:AddCargoSet( self.SetCargo, 10, "SOD" )
end
end
end end