public void Update() { while (true) { if (transporterManager.CheckRepairQueue() && transporter == null) { transporter = transporterManager.GetToRepairWorker() as Transporter; if (transporter == null) { continue; } repairUpdateTime = DateTime.UtcNow.AddMilliseconds(RepairSpeed); Debug.WriteLine($"------------ Repairing BROKE repairName: {Name} transporter: {transporter.Name} Time: {DateTime.UtcNow}"); } if (transporter != null) { if (DateTime.UtcNow > repairUpdateTime) { transporter.Start(); var message = $"------------ Repairing START repairName: {Name} transporter: {transporter.Name} Time: {DateTime.UtcNow}"; Debug.WriteLine(message); transporter = null; repairUpdateTime = DateTime.MaxValue; } } Thread.Sleep(100); } }
public void InitTransporters(int count) { for (int i = 0; i < count; i++) { var pos = new Vector2(200 + 40 * i, 300); var transporter = new Transporter(this, pos, i.ToString()); Workers.Add(transporter); transporter.Start(); OnDraw(transporter); } }