split ITeleportable off as a base interface from IMove; Crate no longer pretends to be moveable.

This commit is contained in:
Chris Forbes
2010-07-29 18:15:40 +12:00
parent 2be6cf35ac
commit e325b5954c
5 changed files with 20 additions and 22 deletions

View File

@@ -121,7 +121,7 @@ namespace OpenRA.Traits
{
if (order.OrderString == "Move")
{
if (self.traits.GetOrDefault<IMove>().CanEnterCell(order.TargetLocation))
if (CanEnterCell(order.TargetLocation))
{
if (self.Owner == self.World.LocalPlayer)
self.World.AddFrameEndTask(w =>

View File

@@ -99,13 +99,18 @@ namespace OpenRA.Traits
public interface IPaletteModifier { void AdjustPalette(Bitmap b); }
public interface IPips { IEnumerable<PipType> GetPips(Actor self); }
public interface ITags { IEnumerable<TagType> GetTags(); }
public interface IMove
public interface ITeleportable /* crap name! */
{
bool CanEnterCell(int2 location);
void SetPosition(Actor self, int2 cell);
}
public interface IMove : ITeleportable
{
float MovementCostForCell(Actor self, int2 cell);
float MovementSpeedForCell(Actor self, int2 cell);
IEnumerable<float2> GetCurrentPath(Actor self);
void SetPosition(Actor self, int2 cell);
}
public interface IOffsetCenterLocation { float2 CenterOffset { get; } }