put enter transport order targeters into respective files

This commit is contained in:
Matthias Mailänder
2016-01-18 21:53:57 +01:00
parent a04223fcd2
commit fc8d35c2d4
4 changed files with 102 additions and 62 deletions

View File

@@ -200,6 +200,8 @@
<Compile Include="Orders\BeaconOrderGenerator.cs" />
<Compile Include="Orders\DeployOrderTargeter.cs" />
<Compile Include="Orders\EnterAlliedActorTargeter.cs" />
<Compile Include="Orders\EnterTransportTargeter.cs" />
<Compile Include="Orders\EnterTransportsTargeter.cs" />
<Compile Include="Orders\RepairOrderGenerator.cs" />
<Compile Include="Orders\GlobalButtonOrderGenerator.cs" />
<Compile Include="Orders\PlaceBuildingOrderGenerator.cs" />

View File

@@ -0,0 +1,50 @@
#region Copyright & License Information
/*
* Copyright 2007-2015 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information,
* see COPYING.
*/
#endregion
using System;
using System.Collections.Generic;
using System.Drawing;
using OpenRA.Mods.Common.Activities;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Orders
{
public class EnterTransportTargeter : EnterAlliedActorTargeter<CargoInfo>
{
readonly AlternateTransportsMode mode;
public EnterTransportTargeter(string order, int priority,
Func<Actor, bool> canTarget, Func<Actor, bool> useEnterCursor,
AlternateTransportsMode mode)
: base(order, priority, canTarget, useEnterCursor) { this.mode = mode; }
public override bool CanTargetActor(Actor self, Actor target, TargetModifiers modifiers, ref string cursor)
{
switch (mode)
{
case AlternateTransportsMode.None:
break;
case AlternateTransportsMode.Force:
if (modifiers.HasModifier(TargetModifiers.ForceMove))
return false;
break;
case AlternateTransportsMode.Default:
if (!modifiers.HasModifier(TargetModifiers.ForceMove))
return false;
break;
case AlternateTransportsMode.Always:
return false;
}
return base.CanTargetActor(self, target, modifiers, ref cursor);
}
}
}

View File

@@ -0,0 +1,50 @@
#region Copyright & License Information
/*
* Copyright 2007-2015 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information,
* see COPYING.
*/
#endregion
using System;
using System.Collections.Generic;
using System.Drawing;
using OpenRA.Mods.Common.Activities;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Orders
{
public class EnterTransportsTargeter : EnterAlliedActorTargeter<CargoInfo>
{
readonly AlternateTransportsMode mode;
public EnterTransportsTargeter(string order, int priority,
Func<Actor, bool> canTarget, Func<Actor, bool> useEnterCursor,
AlternateTransportsMode mode)
: base(order, priority, canTarget, useEnterCursor) { this.mode = mode; }
public override bool CanTargetActor(Actor self, Actor target, TargetModifiers modifiers, ref string cursor)
{
switch (mode)
{
case AlternateTransportsMode.None:
return false;
case AlternateTransportsMode.Force:
if (!modifiers.HasModifier(TargetModifiers.ForceMove))
return false;
break;
case AlternateTransportsMode.Default:
if (modifiers.HasModifier(TargetModifiers.ForceMove))
return false;
break;
case AlternateTransportsMode.Always:
break;
}
return base.CanTargetActor(self, target, modifiers, ref cursor);
}
}
}

View File

@@ -19,68 +19,6 @@ namespace OpenRA.Mods.Common.Traits
{
public enum AlternateTransportsMode { None, Force, Default, Always }
public class EnterTransportTargeter : EnterAlliedActorTargeter<CargoInfo>
{
readonly AlternateTransportsMode mode;
public EnterTransportTargeter(string order, int priority,
Func<Actor, bool> canTarget, Func<Actor, bool> useEnterCursor,
AlternateTransportsMode mode)
: base(order, priority, canTarget, useEnterCursor) { this.mode = mode; }
public override bool CanTargetActor(Actor self, Actor target, TargetModifiers modifiers, ref string cursor)
{
switch (mode)
{
case AlternateTransportsMode.None:
break;
case AlternateTransportsMode.Force:
if (modifiers.HasModifier(TargetModifiers.ForceMove))
return false;
break;
case AlternateTransportsMode.Default:
if (!modifiers.HasModifier(TargetModifiers.ForceMove))
return false;
break;
case AlternateTransportsMode.Always:
return false;
}
return base.CanTargetActor(self, target, modifiers, ref cursor);
}
}
public class EnterTransportsTargeter : EnterAlliedActorTargeter<CargoInfo>
{
readonly AlternateTransportsMode mode;
public EnterTransportsTargeter(string order, int priority,
Func<Actor, bool> canTarget, Func<Actor, bool> useEnterCursor,
AlternateTransportsMode mode)
: base(order, priority, canTarget, useEnterCursor) { this.mode = mode; }
public override bool CanTargetActor(Actor self, Actor target, TargetModifiers modifiers, ref string cursor)
{
switch (mode)
{
case AlternateTransportsMode.None:
return false;
case AlternateTransportsMode.Force:
if (!modifiers.HasModifier(TargetModifiers.ForceMove))
return false;
break;
case AlternateTransportsMode.Default:
if (modifiers.HasModifier(TargetModifiers.ForceMove))
return false;
break;
case AlternateTransportsMode.Always:
break;
}
return base.CanTargetActor(self, target, modifiers, ref cursor);
}
}
[Desc("This actor can enter Cargo actors.")]
public class PassengerInfo : ITraitInfo
{