Split facing into its own interface; fix husks
This commit is contained in:
@@ -30,8 +30,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
|
||||
public IActivity Tick( Actor self )
|
||||
{
|
||||
var move = self.traits.Get<IMove>();
|
||||
|
||||
var facing = self.traits.Get<IFacing>();
|
||||
if (!Target.IsValid)
|
||||
return NextActivity;
|
||||
|
||||
@@ -45,7 +44,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
var numDirs = (renderUnit != null)
|
||||
? renderUnit.anim.CurrentSequence.Facings : 8;
|
||||
|
||||
if (Util.QuantizeFacing(move.Facing, numDirs)
|
||||
if (Util.QuantizeFacing(facing.Facing, numDirs)
|
||||
!= Util.QuantizeFacing(desiredFacing, numDirs))
|
||||
{
|
||||
return new Turn( desiredFacing ) { NextActivity = this };
|
||||
|
||||
@@ -58,9 +58,9 @@ namespace OpenRA.Mods.RA.Activities
|
||||
if (oldHealth != null && newHealth != null)
|
||||
newHealth.HPFraction = oldHealth.HPFraction;
|
||||
|
||||
var move = a.traits.GetOrDefault<IMove>();
|
||||
if (move != null)
|
||||
move.Facing = facing;
|
||||
var ifacing = a.traits.GetOrDefault<IFacing>();
|
||||
if (ifacing != null)
|
||||
ifacing.Facing = facing;
|
||||
|
||||
if (selected)
|
||||
w.Selection.Add(w, a);
|
||||
|
||||
@@ -44,9 +44,9 @@ namespace OpenRA.Mods.RA.Activities
|
||||
|
||||
// if we're a thing that can turn, turn to the
|
||||
// right facing for the unload animation
|
||||
var move = self.traits.GetOrDefault<IMove>();
|
||||
var facing = self.traits.GetOrDefault<IFacing>();
|
||||
var unloadFacing = self.Info.Traits.Get<CargoInfo>().UnloadFacing;
|
||||
if (move != null && move.Facing != unloadFacing)
|
||||
if (facing != null && facing.Facing != unloadFacing)
|
||||
return new Turn(unloadFacing) { NextActivity = this };
|
||||
|
||||
// todo: handle the BS of open/close sequences, which are inconsistent,
|
||||
|
||||
Reference in New Issue
Block a user