Simplify ScreenMap bounds checking.

This commit is contained in:
Paul Chote
2017-12-03 15:17:07 +00:00
committed by reaperrr
parent cdc426d162
commit 9e18ec7314
4 changed files with 13 additions and 23 deletions

View File

@@ -78,12 +78,16 @@ namespace OpenRA.Traits
public void Add(Actor a) public void Add(Actor a)
{ {
partitionedActors.Add(a, ActorBounds(a)); var bounds = ActorBounds(a);
if (!bounds.Size.IsEmpty)
partitionedActors.Add(a, ActorBounds(a));
} }
public void Update(Actor a) public void Update(Actor a)
{ {
partitionedActors.Update(a, ActorBounds(a)); var bounds = ActorBounds(a);
if (!bounds.Size.IsEmpty)
partitionedActors.Update(a, ActorBounds(a));
} }
public void Remove(Actor a) public void Remove(Actor a)

View File

@@ -191,9 +191,7 @@ namespace OpenRA
{ {
ActorMap.AddInfluence(self, ios); ActorMap.AddInfluence(self, ios);
ActorMap.AddPosition(self, ios); ActorMap.AddPosition(self, ios);
ScreenMap.Add(self);
if (!self.RenderBounds.Size.IsEmpty)
ScreenMap.Add(self);
} }
public void UpdateMaps(Actor self, IOccupySpace ios) public void UpdateMaps(Actor self, IOccupySpace ios)
@@ -201,9 +199,7 @@ namespace OpenRA
if (!self.IsInWorld) if (!self.IsInWorld)
return; return;
if (!self.RenderBounds.Size.IsEmpty) ScreenMap.Update(self);
ScreenMap.Update(self);
ActorMap.UpdatePosition(self, ios); ActorMap.UpdatePosition(self, ios);
} }
@@ -211,9 +207,7 @@ namespace OpenRA
{ {
ActorMap.RemoveInfluence(self, ios); ActorMap.RemoveInfluence(self, ios);
ActorMap.RemovePosition(self, ios); ActorMap.RemovePosition(self, ios);
ScreenMap.Remove(self);
if (!self.RenderBounds.Size.IsEmpty)
ScreenMap.Remove(self);
} }
public void LoadComplete(WorldRenderer wr) public void LoadComplete(WorldRenderer wr)

View File

@@ -313,9 +313,7 @@ namespace OpenRA.Mods.Common.Traits
self.World.ActorMap.AddInfluence(self, this); self.World.ActorMap.AddInfluence(self, this);
self.World.ActorMap.AddPosition(self, this); self.World.ActorMap.AddPosition(self, this);
self.World.ScreenMap.Add(self);
if (!self.RenderBounds.Size.IsEmpty)
self.World.ScreenMap.Add(self);
influence.AddInfluence(self, Info.Tiles(self.Location)); influence.AddInfluence(self, Info.Tiles(self.Location));
} }
@@ -324,9 +322,7 @@ namespace OpenRA.Mods.Common.Traits
{ {
self.World.ActorMap.RemoveInfluence(self, this); self.World.ActorMap.RemoveInfluence(self, this);
self.World.ActorMap.RemovePosition(self, this); self.World.ActorMap.RemovePosition(self, this);
self.World.ScreenMap.Remove(self);
if (!self.RenderBounds.Size.IsEmpty)
self.World.ScreenMap.Remove(self);
influence.RemoveInfluence(self, Info.Tiles(self.Location)); influence.RemoveInfluence(self, Info.Tiles(self.Location));
} }

View File

@@ -56,18 +56,14 @@ namespace OpenRA.Mods.Common.Traits
{ {
self.World.ActorMap.AddInfluence(self, this); self.World.ActorMap.AddInfluence(self, this);
self.World.ActorMap.AddPosition(self, this); self.World.ActorMap.AddPosition(self, this);
self.World.ScreenMap.Add(self);
if (!self.RenderBounds.Size.IsEmpty)
self.World.ScreenMap.Add(self);
} }
void INotifyRemovedFromWorld.RemovedFromWorld(Actor self) void INotifyRemovedFromWorld.RemovedFromWorld(Actor self)
{ {
self.World.ActorMap.RemoveInfluence(self, this); self.World.ActorMap.RemoveInfluence(self, this);
self.World.ActorMap.RemovePosition(self, this); self.World.ActorMap.RemovePosition(self, this);
self.World.ScreenMap.Remove(self);
if (!self.RenderBounds.Size.IsEmpty)
self.World.ScreenMap.Remove(self);
} }
} }
} }