public void Run() { System.Threading.Thread.CurrentThread.Name = "Producer"; int max = 10; for (int i = 0; i < max; i++) { System.Threading.Thread.Sleep(Random.Next(100, 150)); ProduceEvent?.Invoke(i, (i == (max - 1))); Console.WriteLine("Data {0} produced successfully.", i); } }
protected virtual void CreateHeadQuaters(IEnumerable<IArtificialIntelligence> artificialIntelligences) { var startOffset = 30; var aiList = artificialIntelligences.ToList(); foreach (var artificialIntelligence in aiList) { Vector2 position = Vector2.Zero; var hq = new HeadQuater(); var indexOf = aiList.IndexOf(artificialIntelligence); if(indexOf == 0) position = new Vector2(startOffset, startOffset); if (indexOf == 1) position = new Vector2(GameBoard.GetBoundings().X - hq.Size.X - startOffset , startOffset); if (indexOf == 2) position = new Vector2(GameBoard.GetBoundings().X - hq.Size.X - startOffset, GameBoard.GetBoundings().Y - hq.Size.Y - startOffset); if (indexOf == 3) position = new Vector2(startOffset, GameBoard.GetBoundings().Y - hq.Size.Y - startOffset); var headQuaterEvent = new ProduceEvent<HeadQuater>(artificialIntelligence.Id, artificialIntelligence.Id, position.X,position.Y); Agent.Enqueue(headQuaterEvent); } }