Add INotifyClientMoving interface

This commit is contained in:
Gustas
2023-01-24 19:33:42 +02:00
committed by Matthias Mailänder
parent d0974cfdd2
commit 82458b5f7e
6 changed files with 45 additions and 36 deletions

View File

@@ -27,7 +27,7 @@ namespace OpenRA.Mods.Common.Activities
readonly BodyOrientation body;
readonly IMove move;
readonly CPos targetCell;
readonly INotifyHarvesterAction[] notifyHarvesterActions;
readonly INotifyHarvestAction[] notifyHarvestActions;
public HarvestResource(Actor self, CPos targetCell)
{
@@ -39,7 +39,7 @@ namespace OpenRA.Mods.Common.Activities
claimLayer = self.World.WorldActor.Trait<ResourceClaimLayer>();
resourceLayer = self.World.WorldActor.Trait<IResourceLayer>();
this.targetCell = targetCell;
notifyHarvesterActions = self.TraitsImplementing<INotifyHarvesterAction>().ToArray();
notifyHarvestActions = self.TraitsImplementing<INotifyHarvestAction>().ToArray();
}
protected override void OnFirstRun(Actor self)
@@ -61,7 +61,7 @@ namespace OpenRA.Mods.Common.Activities
// Move towards the target cell
if (self.Location != targetCell)
{
foreach (var n in notifyHarvesterActions)
foreach (var n in notifyHarvestActions)
n.MovingToResources(self, targetCell);
QueueChild(move.MoveTo(targetCell, 0));
@@ -89,7 +89,7 @@ namespace OpenRA.Mods.Common.Activities
harv.AcceptResource(self, resource.Type);
foreach (var t in notifyHarvesterActions)
foreach (var t in notifyHarvestActions)
t.Harvested(self, resource.Type);
QueueChild(new Wait(harvInfo.BaleLoadDelay));
@@ -103,7 +103,7 @@ namespace OpenRA.Mods.Common.Activities
public override void Cancel(Actor self, bool keepQueue = false)
{
foreach (var n in notifyHarvesterActions)
foreach (var n in notifyHarvestActions)
n.MovementCancelled(self);
base.Cancel(self, keepQueue);

View File

@@ -22,14 +22,14 @@ namespace OpenRA.Mods.Common.Activities
readonly DockClientManager dockClient;
Actor dockHostActor;
IDockHost dockHost;
readonly INotifyHarvesterAction[] notifyHarvesterActions;
readonly INotifyDockClientMoving[] notifyDockClientMoving;
public MoveToDock(Actor self, Actor dockHostActor = null, IDockHost dockHost = null)
{
dockClient = self.Trait<DockClientManager>();
this.dockHostActor = dockHostActor;
this.dockHost = dockHost;
notifyHarvesterActions = self.TraitsImplementing<INotifyHarvesterAction>().ToArray();
notifyDockClientMoving = self.TraitsImplementing<INotifyDockClientMoving>().ToArray();
}
public override bool Tick(Actor self)
@@ -64,8 +64,8 @@ namespace OpenRA.Mods.Common.Activities
{
if (dockHost.QueueMoveActivity(this, dockHostActor, self, dockClient))
{
foreach (var n in notifyHarvesterActions)
n.MovingToRefinery(self, dockHostActor);
foreach (var ndcm in notifyDockClientMoving)
ndcm.MovingToDock(self, dockHostActor, dockHost);
return false;
}
@@ -84,8 +84,8 @@ namespace OpenRA.Mods.Common.Activities
public override void Cancel(Actor self, bool keepQueue = false)
{
dockClient.UnreserveHost();
foreach (var n in notifyHarvesterActions)
n.MovementCancelled(self);
foreach (var ndcm in notifyDockClientMoving)
ndcm.MovementCancelled(self);
base.Cancel(self, keepQueue);
}