public override void DoWork(float dt) { // Remove Last Added Elements while (lastAdded > 0) { queue.Dequeue(); lastAdded--; } lastAdded = 0; for (int xi = xs; xi < xe; xi++) { for (int y = 0; y < cg.numCells.Y; y++) { var ae = cg.EDynamic[xi, y]; SeenEntity se = new SeenEntity(); se.GridPos.X = xi; se.GridPos.Y = y; se.IsBuilding = false; se.TeamIndex = -1; bool use = false; // Check For Units if (ae != null) { for (int i = 0; i < ae.Count; i++) { se.TeamIndex = ae[i].Team.Index; use = true; // Enemy Trumps Friendly Visuals if (ae[i].Team != team) { break; } } } // Building Overrides Units if (cg.EStatic[xi, y] != null) { se.TeamIndex = cg.EStatic[xi, y].Team.Index; se.IsBuilding = true; use = true; } // Add The Seen Entity if (use) { queue.Enqueue(se); lastAdded++; } } } }
public override void DoWork(float dt) { // Remove Last Added Elements while(lastAdded > 0) { queue.Dequeue(); lastAdded--; } lastAdded = 0; for(int xi = xs; xi < xe; xi++) { for(int y = 0; y < cg.numCells.Y; y++) { var ae = cg.EDynamic[xi, y]; SeenEntity se = new SeenEntity(); se.GridPos.X = xi; se.GridPos.Y = y; se.IsBuilding = false; se.TeamIndex = -1; bool use = false; // Check For Units if(ae != null) { for(int i = 0; i < ae.Count; i++) { se.TeamIndex = ae[i].Team.Index; use = true; // Enemy Trumps Friendly Visuals if(ae[i].Team != team) break; } } // Building Overrides Units if(cg.EStatic[xi, y] != null) { se.TeamIndex = cg.EStatic[xi, y].Team.Index; se.IsBuilding = true; use = true; } // Add The Seen Entity if(use) { queue.Enqueue(se); lastAdded++; } } } }