Add ITargetableInfo interface for querying target types.

This commit is contained in:
Paul Chote
2013-08-08 18:46:36 +12:00
parent 6b1b8d9ed4
commit ff98fb0cdf
3 changed files with 9 additions and 2 deletions

View File

@@ -204,6 +204,11 @@ namespace OpenRA.Traits
} }
public interface IBodyOrientationInfo {} public interface IBodyOrientationInfo {}
public interface ITargetableInfo
{
string[] GetTargetTypes();
}
public interface ITargetable public interface ITargetable
{ {
string[] TargetTypes { get; } string[] TargetTypes { get; }

View File

@@ -15,10 +15,11 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA namespace OpenRA.Mods.RA
{ {
public class TargetableBuildingInfo : ITraitInfo, Requires<BuildingInfo> public class TargetableBuildingInfo : ITraitInfo, ITargetableInfo, Requires<BuildingInfo>
{ {
public readonly string[] TargetTypes = { }; public readonly string[] TargetTypes = { };
public string[] GetTargetTypes() { return TargetTypes; }
public object Create(ActorInitializer init) { return new TargetableBuilding(init.self, this); } public object Create(ActorInitializer init) { return new TargetableBuilding(init.self, this); }
} }

View File

@@ -14,10 +14,11 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA namespace OpenRA.Mods.RA
{ {
public class TargetableUnitInfo : ITraitInfo public class TargetableUnitInfo : ITraitInfo, ITargetableInfo
{ {
public readonly string[] TargetTypes = { }; public readonly string[] TargetTypes = { };
public string[] GetTargetTypes() { return TargetTypes; }
public virtual object Create(ActorInitializer init) { return new TargetableUnit(init.self, this); } public virtual object Create(ActorInitializer init) { return new TargetableUnit(init.self, this); }
} }