Example #1
0
        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);
            }
        }
Example #2
0
        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;
                }
            }
        }