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 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); }
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; }