Simplify ScreenMap bounds checking.
This commit is contained in:
@@ -78,12 +78,16 @@ namespace OpenRA.Traits
|
||||
|
||||
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)
|
||||
{
|
||||
partitionedActors.Update(a, ActorBounds(a));
|
||||
var bounds = ActorBounds(a);
|
||||
if (!bounds.Size.IsEmpty)
|
||||
partitionedActors.Update(a, ActorBounds(a));
|
||||
}
|
||||
|
||||
public void Remove(Actor a)
|
||||
|
||||
@@ -191,9 +191,7 @@ namespace OpenRA
|
||||
{
|
||||
ActorMap.AddInfluence(self, ios);
|
||||
ActorMap.AddPosition(self, ios);
|
||||
|
||||
if (!self.RenderBounds.Size.IsEmpty)
|
||||
ScreenMap.Add(self);
|
||||
ScreenMap.Add(self);
|
||||
}
|
||||
|
||||
public void UpdateMaps(Actor self, IOccupySpace ios)
|
||||
@@ -201,9 +199,7 @@ namespace OpenRA
|
||||
if (!self.IsInWorld)
|
||||
return;
|
||||
|
||||
if (!self.RenderBounds.Size.IsEmpty)
|
||||
ScreenMap.Update(self);
|
||||
|
||||
ScreenMap.Update(self);
|
||||
ActorMap.UpdatePosition(self, ios);
|
||||
}
|
||||
|
||||
@@ -211,9 +207,7 @@ namespace OpenRA
|
||||
{
|
||||
ActorMap.RemoveInfluence(self, ios);
|
||||
ActorMap.RemovePosition(self, ios);
|
||||
|
||||
if (!self.RenderBounds.Size.IsEmpty)
|
||||
ScreenMap.Remove(self);
|
||||
ScreenMap.Remove(self);
|
||||
}
|
||||
|
||||
public void LoadComplete(WorldRenderer wr)
|
||||
|
||||
@@ -313,9 +313,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
self.World.ActorMap.AddInfluence(self, this);
|
||||
self.World.ActorMap.AddPosition(self, this);
|
||||
|
||||
if (!self.RenderBounds.Size.IsEmpty)
|
||||
self.World.ScreenMap.Add(self);
|
||||
self.World.ScreenMap.Add(self);
|
||||
|
||||
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.RemovePosition(self, this);
|
||||
|
||||
if (!self.RenderBounds.Size.IsEmpty)
|
||||
self.World.ScreenMap.Remove(self);
|
||||
self.World.ScreenMap.Remove(self);
|
||||
|
||||
influence.RemoveInfluence(self, Info.Tiles(self.Location));
|
||||
}
|
||||
|
||||
@@ -56,18 +56,14 @@ namespace OpenRA.Mods.Common.Traits
|
||||
{
|
||||
self.World.ActorMap.AddInfluence(self, this);
|
||||
self.World.ActorMap.AddPosition(self, this);
|
||||
|
||||
if (!self.RenderBounds.Size.IsEmpty)
|
||||
self.World.ScreenMap.Add(self);
|
||||
self.World.ScreenMap.Add(self);
|
||||
}
|
||||
|
||||
void INotifyRemovedFromWorld.RemovedFromWorld(Actor self)
|
||||
{
|
||||
self.World.ActorMap.RemoveInfluence(self, this);
|
||||
self.World.ActorMap.RemovePosition(self, this);
|
||||
|
||||
if (!self.RenderBounds.Size.IsEmpty)
|
||||
self.World.ScreenMap.Remove(self);
|
||||
self.World.ScreenMap.Remove(self);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user