Minelayer: extract creating BeginMinefield order so it can be triggered from outside

This commit is contained in:
michaeldgg2
2023-07-08 20:15:34 +02:00
committed by Matthias Mailänder
parent ce6e73dc92
commit 8aa548f70c

View File

@@ -109,6 +109,16 @@ namespace OpenRA.Mods.Common.Traits
switch (order.OrderID)
{
case "BeginMinefield":
return BeginMinefield(self, target, queued);
case "PlaceMine":
return new Order("PlaceMine", self, Target.FromCell(self.World, self.Location), queued);
default:
return null;
}
}
public static Order BeginMinefield(Actor self, Target target, bool queued)
{
var start = self.World.Map.CellContaining(target.CenterPosition);
if (self.World.OrderGenerator is MinefieldOrderGenerator generator)
generator.AddMinelayer(self);
@@ -116,11 +126,6 @@ namespace OpenRA.Mods.Common.Traits
self.World.OrderGenerator = new MinefieldOrderGenerator(self, start, queued);
return new Order("BeginMinefield", self, Target.FromCell(self.World, start), queued);
case "PlaceMine":
return new Order("PlaceMine", self, Target.FromCell(self.World, self.Location), queued);
default:
return null;
}
}
Order IIssueDeployOrder.IssueDeployOrder(Actor self, bool queued)