Track actor positions in ActorMap.
This commit is contained in:
@@ -103,9 +103,7 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public void SetPosition(Actor self, CPos cell)
|
||||
{
|
||||
if (self.IsInWorld)
|
||||
self.World.ActorMap.RemoveInfluence(self, this);
|
||||
|
||||
self.World.ActorMap.RemoveInfluence(self, this);
|
||||
Location = cell;
|
||||
CenterPosition = cell.CenterPosition;
|
||||
|
||||
@@ -117,6 +115,7 @@ namespace OpenRA.Mods.RA
|
||||
if (self.IsInWorld)
|
||||
{
|
||||
self.World.ActorMap.AddInfluence(self, this);
|
||||
self.World.ActorMap.UpdatePosition(self, this);
|
||||
self.World.ScreenMap.Update(self);
|
||||
}
|
||||
}
|
||||
@@ -129,12 +128,14 @@ namespace OpenRA.Mods.RA
|
||||
public void AddedToWorld(Actor self)
|
||||
{
|
||||
self.World.ActorMap.AddInfluence(self, this);
|
||||
self.World.ActorMap.AddPosition(self, this);
|
||||
self.World.ScreenMap.Add(self);
|
||||
}
|
||||
|
||||
public void RemovedFromWorld(Actor self)
|
||||
{
|
||||
self.World.ActorMap.RemoveInfluence(self, this);
|
||||
self.World.ActorMap.RemovePosition(self, this);
|
||||
self.World.ScreenMap.Remove(self);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user