From 9f419fca3424eae703f6ff7dc801ab6604fff573 Mon Sep 17 00:00:00 2001 From: tovl Date: Sat, 12 Jan 2019 21:29:54 +0100 Subject: [PATCH] make cargo unload deploy action queueable fix line spacing remove unnecessary null check --- OpenRA.Mods.Common/Activities/UnloadCargo.cs | 6 ++++++ OpenRA.Mods.Common/Traits/Cargo.cs | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.Common/Activities/UnloadCargo.cs b/OpenRA.Mods.Common/Activities/UnloadCargo.cs index 45c24f4324..f3f6e929a0 100644 --- a/OpenRA.Mods.Common/Activities/UnloadCargo.cs +++ b/OpenRA.Mods.Common/Activities/UnloadCargo.cs @@ -59,6 +59,12 @@ namespace OpenRA.Mods.Common.Activities if (IsCanceling || cargo.IsEmpty(self)) return NextActivity; + if (!cargo.CanUnload()) + { + Cancel(self, true); + return NextActivity; + } + foreach (var inu in notifiers) inu.Unloading(self); diff --git a/OpenRA.Mods.Common/Traits/Cargo.cs b/OpenRA.Mods.Common/Traits/Cargo.cs index 21bb702167..783bd0893b 100644 --- a/OpenRA.Mods.Common/Traits/Cargo.cs +++ b/OpenRA.Mods.Common/Traits/Cargo.cs @@ -185,11 +185,13 @@ namespace OpenRA.Mods.Common.Traits { if (order.OrderString == "Unload") { - if (!CanUnload()) + if (!order.Queued && !CanUnload()) return; + if (!order.Queued) + self.CancelActivity(); + Unloading = true; - self.CancelActivity(); if (aircraft != null) self.QueueActivity(new HeliLand(self, true)); self.QueueActivity(new UnloadCargo(self, true)); @@ -201,7 +203,7 @@ namespace OpenRA.Mods.Common.Traits return Util.AdjacentCells(self.World, Target.FromActor(self)).Where(c => self.Location != c); } - bool CanUnload() + public bool CanUnload() { if (checkTerrainType) {