public void QueueGenerator() { foreach (int slot in GeneratorProfilesActive) { bool slotInUse = false; foreach (var obj in GeneratorRegistry) { if (obj.Value.Slot == slot) { slotInUse = true; break; } } foreach (var obj in GeneratorQueue) { if (obj.Slot == slot) { slotInUse = true; break; } } if (slotInUse) { continue; } var queue = new GeneratorQueueNode(); queue.Slot = (uint)slot; //double when = Common.Time.GetFutureTimestamp((RegenerationInterval ?? 0) + (GeneratorProfiles[slot].Delay ?? 0)); double when = Time.GetFutureTimestamp(Physics.Common.Random.RollDice(0, (float)(RegenerationInterval ?? 0)) + (GeneratorProfiles[0].Delay ?? 0)); //Console.WriteLine(Name + " RegenerationInterval: " + RegenerationInterval + ", Delay: " + GeneratorProfiles[slot].Delay); if (GeneratorRegistry.Count < InitGeneratedObjects) { if (CurrentlyPoweringUp ?? false) { when = Time.GetFutureTimestamp((GeneratorInitialDelay ?? 0)); } } queue.When = when; // System.Diagnostics.Debug.WriteLine($"Adding {queue.Slot} @ {queue.When} to GeneratorQueue for {Guid.Full}"); GeneratorQueue.Add(queue); } }
public void QueueGenerator() { foreach (int slot in GeneratorProfilesActive) { bool slotInUse = false; foreach (var obj in GeneratorRegistry) { if (obj.Value.Slot == slot) { slotInUse = true; break; } } foreach (var obj in GeneratorQueue) { if (obj.Slot == slot) { slotInUse = true; break; } } if (slotInUse) { continue; } var queue = new GeneratorQueueNode(); queue.Slot = (uint)slot; double when = Common.Time.GetFutureTimestamp((RegenerationInterval ?? 0) + (GeneratorProfiles[slot].Delay ?? 0)); if (GeneratorRegistry.Count < InitGeneratedObjects && !(GeneratorEnteredWorld ?? false)) { when = Common.Time.GetTimestamp(); } queue.When = when; // System.Diagnostics.Debug.WriteLine($"Adding {queue.Slot} @ {queue.When} to GeneratorQueue for {Guid.Full}"); GeneratorQueue.Add(queue); if (GeneratorQueue.Count >= InitGeneratedObjects) { GeneratorEnteredWorld = true; } } }