public void Unplug()
 {
     Debug.Assert(m_pluggedInConsumer != null, "Consumer not plugged in.");
     if (m_powerDistributor != null)
         m_powerDistributor.RemoveConsumer(m_pluggedInConsumer);
     m_pluggedInConsumer = null;
 }
Example #2
0
 public void Unplug()
 {
     Debug.Assert(m_pluggedInConsumer != null, "Consumer not plugged in.");
     if (m_powerDistributor != null)
     {
         m_powerDistributor.RemoveConsumer(m_pluggedInConsumer);
     }
     m_pluggedInConsumer = null;
 }
 public void PlugIn(IMyPowerConsumer consumer)
 {
     if (m_pluggedInConsumer == consumer)
         return;
     Debug.Assert(m_pluggedInConsumer == null, "Consumer already plugged in.");
     m_pluggedInConsumer = consumer;
     if (m_powerDistributor != null)
         m_powerDistributor.AddConsumer(consumer);
 }
 /// <summary>
 /// Mostly debug method to verify that all members of the group have
 /// same ability to adapt as given consumer.
 /// </summary>
 private bool MatchesPowerAdaptability(HashSet <IMyPowerConsumer> group, IMyPowerConsumer consumer)
 {
     foreach (var member in group)
     {
         if (member.PowerReceiver.IsAdaptible != consumer.PowerReceiver.IsAdaptible)
         {
             return(false);
         }
     }
     return(true);
 }
Example #5
0
 public void PlugIn(IMyPowerConsumer consumer)
 {
     if (m_pluggedInConsumer == consumer)
     {
         return;
     }
     Debug.Assert(m_pluggedInConsumer == null, "Consumer already plugged in.");
     m_pluggedInConsumer = consumer;
     if (m_powerDistributor != null)
     {
         m_powerDistributor.AddConsumer(consumer);
     }
 }
        public void AddConsumer(IMyPowerConsumer consumer)
        {
            Debug.Assert(consumer != null);
            Debug.Assert(consumer.PowerReceiver != null);
            Debug.Assert(MatchesPowerAdaptability(GetConsumers(consumer.PowerReceiver.Group), consumer),
                         "All consumers in the same group must have same power-adaptability.");
            Debug.Assert(!GetConsumers(consumer.PowerReceiver.Group).Contains(consumer));
            if (GetConsumers(consumer.PowerReceiver.Group).Contains(consumer))
            {
                return;
            }

            m_consumersByPriority[(int)consumer.PowerReceiver.Group].Add(consumer);
            m_needsRecompute         = true;
            m_remainingFuelTimeDirty = true;
            consumer.PowerReceiver.RequiredInputChanged += Receiver_RequiredInputChanged;
        }
        public void RemoveConsumer(IMyPowerConsumer consumer, bool resetConsumerInput = true, bool markedForClose = false)
        {
            if (markedForClose)
            {
                return;
            }
            Debug.Assert(consumer != null);
            Debug.Assert(m_consumersByPriority[(int)consumer.PowerReceiver.Group].Contains(consumer));

            m_consumersByPriority[(int)consumer.PowerReceiver.Group].Remove(consumer);
            m_needsRecompute         = true;
            m_remainingFuelTimeDirty = true;
            consumer.PowerReceiver.RequiredInputChanged -= Receiver_RequiredInputChanged;
            if (resetConsumerInput)
            {
                consumer.PowerReceiver.SetInputFromDistributor(0.0f);
            }
        }
 /// <summary>
 /// Mostly debug method to verify that all members of the group have 
 /// same ability to adapt as given consumer.
 /// </summary>
 private bool MatchesPowerAdaptability(HashSet<IMyPowerConsumer> group, IMyPowerConsumer consumer)
 {
     foreach (var member in group)
     {
         if (member.PowerReceiver.IsAdaptible != consumer.PowerReceiver.IsAdaptible)
             return false;
     }
     return true;
 }
        public void RemoveConsumer(IMyPowerConsumer consumer, bool resetConsumerInput = true, bool markedForClose = false)
        {
            if (markedForClose)
                return;
            Debug.Assert(consumer != null);
            Debug.Assert(m_consumersByPriority[(int)consumer.PowerReceiver.Group].Contains(consumer));

            m_consumersByPriority[(int)consumer.PowerReceiver.Group].Remove(consumer);
            m_needsRecompute = true;
            m_remainingFuelTimeDirty = true;
            consumer.PowerReceiver.RequiredInputChanged -= Receiver_RequiredInputChanged;
            if (resetConsumerInput)
                consumer.PowerReceiver.SetInputFromDistributor(0.0f);
        }
        public void AddConsumer(IMyPowerConsumer consumer)
        {
            Debug.Assert(consumer != null);
            Debug.Assert(consumer.PowerReceiver != null);
            Debug.Assert(MatchesPowerAdaptability(GetConsumers(consumer.PowerReceiver.Group), consumer),
                         "All consumers in the same group must have same power-adaptability.");
            Debug.Assert(!GetConsumers(consumer.PowerReceiver.Group).Contains(consumer));
            if (GetConsumers(consumer.PowerReceiver.Group).Contains(consumer))
                return;

            m_consumersByPriority[(int)consumer.PowerReceiver.Group].Add(consumer);
            m_needsRecompute = true;
            m_remainingFuelTimeDirty = true;
            consumer.PowerReceiver.RequiredInputChanged += Receiver_RequiredInputChanged;
        }