diff --git a/Moose Development/Moose/Core/Cargo.lua b/Moose Development/Moose/Core/Cargo.lua index f5b47b085..65414e1f8 100644 --- a/Moose Development/Moose/Core/Cargo.lua +++ b/Moose Development/Moose/Core/Cargo.lua @@ -234,7 +234,7 @@ do -- CARGO function CARGO:New( Type, Name, Weight ) --R2.1 local self = BASE:Inherit( self, FSM:New() ) -- #CARGO - self:E( { Type, Name, Weight } ) + self:F( { Type, Name, Weight } ) self:SetStartState( "UnLoaded" ) self:AddTransition( { "UnLoaded", "Boarding" }, "Board", "Boarding" ) @@ -299,7 +299,7 @@ end -- @param #CARGO self -- @return #CARGO function CARGO:Spawn( PointVec2 ) - self:E() + self:F() end @@ -310,7 +310,7 @@ end -- @param Core.Zone#ZONE_BASE Zone -- @return #boolean **true** if cargo is in the Zone, **false** if cargo is not in the Zone. function CARGO:IsInZone( Zone ) - self:E( { Zone } ) + self:F( { Zone } ) if self:IsLoaded() then return Zone:IsPointVec2InZone( self.CargoCarrier:GetPointVec2() ) @@ -329,7 +329,7 @@ end -- @param #number NearRadius The radius when the cargo will board the Carrier (to avoid collision). -- @return #boolean function CARGO:IsNear( PointVec2, NearRadius ) - self:E( { PointVec2 } ) + self:F( { PointVec2, NearRadius } ) local Distance = PointVec2:DistanceFromPointVec2( self.CargoObject:GetPointVec2() ) self:T( Distance ) @@ -382,7 +382,7 @@ do -- CARGO_REPRESENTABLE -- @return #CARGO_REPRESENTABLE function CARGO_REPRESENTABLE:New( CargoObject, Type, Name, Weight, ReportRadius, NearRadius ) local self = BASE:Inherit( self, CARGO:New( Type, Name, Weight, ReportRadius, NearRadius ) ) -- #CARGO_REPRESENTABLE - self:E( { Type, Name, Weight, ReportRadius, NearRadius } ) + self:F( { Type, Name, Weight, ReportRadius, NearRadius } ) return self end @@ -393,7 +393,7 @@ do -- CARGO_REPRESENTABLE -- @param #number Speed -- @return #CARGO_REPRESENTABLE function CARGO_REPRESENTABLE:RouteTo( ToPointVec2, Speed ) - self:E2( ToPointVec2 ) + self:F2( ToPointVec2 ) local Points = {} @@ -429,7 +429,7 @@ end -- CARGO_REPRESENTABLE -- @return #CARGO_REPORTABLE function CARGO_REPORTABLE:New( CargoObject, Type, Name, Weight, ReportRadius ) local self = BASE:Inherit( self, CARGO:New( Type, Name, Weight ) ) -- #CARGO_REPORTABLE - self:E( { Type, Name, Weight, ReportRadius } ) + self:F( { Type, Name, Weight, ReportRadius } ) self.ReportRadius = ReportRadius or 1000 self.CargoObject = CargoObject @@ -442,7 +442,7 @@ end -- CARGO_REPRESENTABLE -- @param Core.Point#POINT_VEC2 PointVec2 -- @return #boolean function CARGO_REPORTABLE:IsInRadius( PointVec2 ) - self:E( { PointVec2 } ) + self:F( { PointVec2 } ) local Distance = 0 if self:IsLoaded() then @@ -513,7 +513,7 @@ do -- CARGO_UNIT -- @return #CARGO_UNIT function CARGO_UNIT:New( CargoUnit, Type, Name, Weight, NearRadius ) local self = BASE:Inherit( self, CARGO_REPRESENTABLE:New( CargoUnit, Type, Name, Weight, NearRadius ) ) -- #CARGO_UNIT - self:E( { Type, Name, Weight, NearRadius } ) + self:F( { Type, Name, Weight, NearRadius } ) self:T( CargoUnit ) self.CargoObject = CargoUnit @@ -542,7 +542,7 @@ end -- @param #string To -- @param Core.Point#POINT_VEC2 ToPointVec2 function CARGO_UNIT:onenterUnBoarding( From, Event, To, ToPointVec2, NearRadius ) - self:E() + self:F( { From, Event, To, ToPointVec2, NearRadius } ) NearRadius = NearRadius or 25 @@ -575,7 +575,7 @@ function CARGO_UNIT:onenterUnBoarding( From, Event, To, ToPointVec2, NearRadius -- Respawn the group... if self.CargoObject then self.CargoObject:ReSpawn( CargoDeployPointVec2:GetVec3(), CargoDeployHeading ) - self:E( { "CargoUnits:", self.CargoObject:GetGroup():GetName() } ) + self:F( { "CargoUnits:", self.CargoObject:GetGroup():GetName() } ) self.CargoCarrier = nil local Points = {} @@ -586,7 +586,8 @@ function CARGO_UNIT:onenterUnBoarding( From, Event, To, ToPointVec2, NearRadius local TaskRoute = self.CargoObject:TaskRoute( Points ) self.CargoObject:SetTask( TaskRoute, 1 ) - self:__UnBoarding( -1, ToPointVec2, NearRadius ) + + self:__UnBoarding( 1, ToPointVec2, NearRadius ) end end @@ -599,9 +600,9 @@ end -- @param #string To -- @param Core.Point#POINT_VEC2 ToPointVec2 function CARGO_UNIT:onleaveUnBoarding( From, Event, To, ToPointVec2, NearRadius ) - self:E( { From, Event, To, ToPointVec2, NearRadius } ) + self:F( { From, Event, To, ToPointVec2, NearRadius } ) - local NearRadius = NearRadius or 25 + NearRadius = NearRadius or 25 local Angle = 180 local Speed = 10 @@ -611,6 +612,7 @@ function CARGO_UNIT:onleaveUnBoarding( From, Event, To, ToPointVec2, NearRadius if self:IsNear( ToPointVec2, NearRadius ) then return true else + self:__UnBoarding( 1, ToPointVec2, NearRadius ) end return false @@ -625,9 +627,9 @@ end -- @param #string To -- @param Core.Point#POINT_VEC2 ToPointVec2 function CARGO_UNIT:onafterUnBoarding( From, Event, To, ToPointVec2, NearRadius ) - self:E( { ToPointVec2, From, Event, To } ) + self:F( { From, Event, To, ToPointVec2, NearRadius } ) - local NearRadius = NearRadius or 25 + NearRadius = NearRadius or 25 self.CargoInAir = self.CargoObject:InAir() @@ -639,7 +641,7 @@ function CARGO_UNIT:onafterUnBoarding( From, Event, To, ToPointVec2, NearRadius end - self:__UnLoad( 1, ToPointVec2 ) + self:__UnLoad( 1, ToPointVec2, NearRadius ) end @@ -652,7 +654,7 @@ end -- @param #string To -- @param Core.Point#POINT_VEC2 function CARGO_UNIT:onenterUnLoaded( From, Event, To, ToPointVec2 ) - self:E( { ToPointVec2, From, Event, To } ) + self:F( { ToPointVec2, From, Event, To } ) local Angle = 180 local Speed = 10 @@ -687,7 +689,7 @@ end -- @param #string From -- @param #string To function CARGO_UNIT:onafterBoard( From, Event, To, CargoCarrier, NearRadius, ... ) - self:E() + self:F( { From, Event, To, CargoCarrier, NearRadius } ) local NearRadius = NearRadius or 25 @@ -735,7 +737,7 @@ end -- @param #string To -- @param Wrapper.Unit#UNIT CargoCarrier function CARGO_UNIT:onleaveBoarding( From, Event, To, CargoCarrier, NearRadius, ... ) - self:E( { From, Event, To, CargoCarrier.UnitName, NearRadius } ) + self:F( { From, Event, To, CargoCarrier.UnitName, NearRadius } ) local NearRadius = NearRadius or 25 @@ -756,7 +758,7 @@ end -- @param Wrapper.Unit#UNIT CargoCarrier -- @param #number NearRadius function CARGO_UNIT:onafterBoarding( From, Event, To, CargoCarrier, NearRadius, ... ) - self:E( { From, Event, To, CargoCarrier.UnitName, NearRadius } ) + self:F( { From, Event, To, CargoCarrier.UnitName, NearRadius } ) self:__Boarding( -1, CargoCarrier, NearRadius, ... ) @@ -772,7 +774,7 @@ end -- @param #string To -- @param Wrapper.Unit#UNIT CargoCarrier function CARGO_UNIT:onenterBoarding( From, Event, To, CargoCarrier, NearRadius, ... ) - self:E( { From, Event, To, CargoCarrier.UnitName, NearRadius } ) + self:F( { From, Event, To, CargoCarrier.UnitName, NearRadius } ) local Speed = 90 local Angle = 180 @@ -793,7 +795,7 @@ end -- @param #string To -- @param Wrapper.Unit#UNIT CargoCarrier function CARGO_UNIT:onenterLoaded( From, Event, To, CargoCarrier ) - self:E( { From, Event, To, CargoCarrier } ) + self:F( { From, Event, To, CargoCarrier } ) self.CargoCarrier = CargoCarrier @@ -827,7 +829,7 @@ do -- CARGO_PACKAGE -- @return #CARGO_PACKAGE function CARGO_PACKAGE:New( CargoCarrier, Type, Name, Weight, ReportRadius, NearRadius ) local self = BASE:Inherit( self, CARGO_REPRESENTABLE:New( CargoCarrier, Type, Name, Weight, ReportRadius, NearRadius ) ) -- #CARGO_PACKAGE - self:E( { Type, Name, Weight, ReportRadius, NearRadius } ) + self:F( { Type, Name, Weight, ReportRadius, NearRadius } ) self:T( CargoCarrier ) self.CargoCarrier = CargoCarrier @@ -845,7 +847,7 @@ end -- @param #number BoardDistance -- @param #number Angle function CARGO_PACKAGE:onafterOnBoard( From, Event, To, CargoCarrier, Speed, BoardDistance, LoadDistance, Angle ) - self:E() + self:F() self.CargoInAir = self.CargoCarrier:InAir() @@ -878,7 +880,7 @@ end -- @param Wrapper.Unit#UNIT CargoCarrier -- @return #boolean function CARGO_PACKAGE:IsNear( CargoCarrier ) - self:E() + self:F() local CargoCarrierPoint = CargoCarrier:GetPointVec2() @@ -899,7 +901,7 @@ end -- @param #string To -- @param Wrapper.Unit#UNIT CargoCarrier function CARGO_PACKAGE:onafterOnBoarded( From, Event, To, CargoCarrier, Speed, BoardDistance, LoadDistance, Angle ) - self:E() + self:F() if self:IsNear( CargoCarrier ) then self:__Load( 1, CargoCarrier, Speed, LoadDistance, Angle ) @@ -919,7 +921,7 @@ end -- @param #number Radius -- @param #number Angle function CARGO_PACKAGE:onafterUnBoard( From, Event, To, CargoCarrier, Speed, UnLoadDistance, UnBoardDistance, Radius, Angle ) - self:E() + self:F() self.CargoInAir = self.CargoCarrier:InAir() @@ -957,7 +959,7 @@ end -- @param #string To -- @param Wrapper.Unit#UNIT CargoCarrier function CARGO_PACKAGE:onafterUnBoarded( From, Event, To, CargoCarrier, Speed ) - self:E() + self:F() if self:IsNear( CargoCarrier ) then self:__UnLoad( 1, CargoCarrier, Speed ) @@ -976,7 +978,7 @@ end -- @param #number LoadDistance -- @param #number Angle function CARGO_PACKAGE:onafterLoad( From, Event, To, CargoCarrier, Speed, LoadDistance, Angle ) - self:E() + self:F() self.CargoCarrier = CargoCarrier @@ -1002,7 +1004,7 @@ end -- @param #number Distance -- @param #number Angle function CARGO_PACKAGE:onafterUnLoad( From, Event, To, CargoCarrier, Speed, Distance, Angle ) - self:E() + self:F() local StartPointVec2 = self.CargoCarrier:GetPointVec2() local CargoCarrierHeading = self.CargoCarrier:GetHeading() -- Get Heading of object in degrees. @@ -1049,7 +1051,7 @@ do -- CARGO_GROUP -- @return #CARGO_GROUP function CARGO_GROUP:New( CargoGroup, Type, Name, ReportRadius ) local self = BASE:Inherit( self, CARGO_REPORTABLE:New( CargoGroup, Type, Name, 0, ReportRadius ) ) -- #CARGO_GROUP - self:E( { Type, Name, ReportRadius } ) + self:F( { Type, Name, ReportRadius } ) self.CargoSet = SET_CARGO:New() @@ -1082,7 +1084,7 @@ end -- @param #string From -- @param #string To function CARGO_GROUP:onenterBoarding( From, Event, To, CargoCarrier, NearRadius, ... ) - self:E( { CargoCarrier.UnitName, From, Event, To } ) + self:F( { CargoCarrier.UnitName, From, Event, To } ) local NearRadius = NearRadius or 25 @@ -1107,7 +1109,7 @@ end -- @param #string From -- @param #string To function CARGO_GROUP:onenterLoaded( From, Event, To, CargoCarrier, ... ) - self:E( { CargoCarrier.UnitName, From, Event, To } ) + self:F( { CargoCarrier.UnitName, From, Event, To } ) if From == "UnLoaded" then -- For each Cargo object within the CARGO_GROUP, load each cargo to the CargoCarrier. @@ -1128,7 +1130,7 @@ end -- @param #string From -- @param #string To function CARGO_GROUP:onleaveBoarding( From, Event, To, CargoCarrier, NearRadius, ... ) - self:E( { CargoCarrier.UnitName, From, Event, To } ) + self:F( { CargoCarrier.UnitName, From, Event, To } ) local NearRadius = NearRadius or 25 @@ -1159,9 +1161,9 @@ end -- @param #string From -- @param #string To function CARGO_GROUP:onenterUnBoarding( From, Event, To, ToPointVec2, NearRadius, ... ) - self:E( {From, Event, To, ToPointVec2, NearRadius } ) + self:F( {From, Event, To, ToPointVec2, NearRadius } ) - local NearRadius = NearRadius or 25 + NearRadius = NearRadius or 25 local Timer = 1 @@ -1169,12 +1171,14 @@ function CARGO_GROUP:onenterUnBoarding( From, Event, To, ToPointVec2, NearRadius -- For each Cargo object within the CARGO_GROUP, route each object to the CargoLoadPointVec2 self.CargoSet:ForEach( - function( Cargo ) + function( Cargo, NearRadius ) + Cargo:__UnBoard( Timer, ToPointVec2, NearRadius ) Timer = Timer + 10 - end + end, { NearRadius } ) + self:__UnBoarding( 1, ToPointVec2, NearRadius, ... ) end @@ -1187,9 +1191,9 @@ end -- @param #string From -- @param #string To function CARGO_GROUP:onleaveUnBoarding( From, Event, To, ToPointVec2, NearRadius, ... ) - self:E( { From, Event, To, ToPointVec2, NearRadius } ) + self:F( { From, Event, To, ToPointVec2, NearRadius } ) - local NearRadius = NearRadius or 25 + --local NearRadius = NearRadius or 25 local Angle = 180 local Speed = 10 @@ -1224,9 +1228,9 @@ end -- @param #string From -- @param #string To function CARGO_GROUP:onafterUnBoarding( From, Event, To, ToPointVec2, NearRadius, ... ) - self:E( { From, Event, To, ToPointVec2, NearRadius } ) + self:F( { From, Event, To, ToPointVec2, NearRadius } ) - local NearRadius = NearRadius or 25 + --local NearRadius = NearRadius or 25 self:__UnLoad( 1, ToPointVec2, ... ) end @@ -1240,7 +1244,7 @@ end -- @param #string From -- @param #string To function CARGO_GROUP:onenterUnLoaded( From, Event, To, ToPointVec2, ... ) - self:E( { From, Event, To, ToPointVec2 } ) + self:F( { From, Event, To, ToPointVec2 } ) if From == "Loaded" then