public static PowerDetails operator+(PowerDetails a, PowerDetails b) { var result = new PowerDetails(); result.CurrentPowerOutput = a.CurrentPowerOutput + b.CurrentPowerOutput; result.MaxPowerOutput = a.MaxPowerOutput + b.MaxPowerOutput; return(result); }
public void SetSelectedPower(string shortName) { if (powerList?.Any() == false) { GetPowerList(); } SelectedPower = powerList.Find(x => x.ShortName.Equals(shortName)); }
public PowerDetails GetPowerDetails <T>(List <T> producers) where T : IMyTerminalBlock { var result = new PowerDetails(); result.CurrentPowerOutput = 0.0f; result.MaxPowerOutput = 0.0f; for (var e = producers.GetEnumerator(); e.MoveNext();) { var producer = e.Current as IMyPowerProducer; if (e.Current.IsFunctional && e.Current.IsWorking && producer != null) { result.CurrentPowerOutput += producer.CurrentPowerOutput; result.MaxPowerOutput += producer.MaxPowerOutput; } } return(result); }
private void DisableOneBattery(List <IMyBatteryBlock> batteries, PowerDetails totalDetails) { for (var e = batteries.GetEnumerator(); e.MoveNext();) { var battery = e.Current; if (battery.Enabled && battery.ProductionEnabled) { // But only if we can actually spare it var wouldBeOutput = totalDetails.CurrentPowerOutput - battery.CurrentPowerOutput; var wouldBeLoad = wouldBeOutput / (totalDetails.MaxPowerOutput - battery.MaxPowerOutput); if (wouldBeLoad <= POWER_MANAGER_HIGH_LOAD_THRESHOLD) { battery.GetActionWithName("OnOff_Off").Apply(battery); ZACommons.SetBatteryRecharge(battery, true); } return; } } }
private void CreateSensorPowerInfo(XmlWriter writer, PowerDetails power) { writer.WriteStartElement("p"); //start paragraph #region table writer.WriteStartElement("table"); //start table writer.WriteAttributeString("style", "color:black; border-collapse: collapse; border: 1px solid black; width: 25%;"); writer.WriteStartElement("tr"); //start row writer.WriteStartElement("th"); //start header writer.WriteAttributeString("style", "text-align: left;"); writer.WriteAttributeString("colspan", "2"); writer.WriteValue("Power Details"); writer.WriteEndElement(); //end header writer.WriteEndElement(); //end row #region row if (power.ShouldSerializeBatteryLevel()) { writer.WriteStartElement("tr"); //start row writer.WriteAttributeString("style", "color:black; border-collapse: collapse; border: 1px solid black;"); writer.WriteStartElement("td"); //start cell writer.WriteAttributeString("style", "color:black; border-collapse: collapse; border: 1px solid black; width: 50%;"); writer.WriteValue("Battery Level:"); writer.WriteEndElement(); //end cell writer.WriteStartElement("td"); //start cell writer.WriteAttributeString("style", "color:black; border-collapse: collapse; border: 1px solid black;"); float temp = (float)power.BatteryLevel / 10; writer.WriteValue(temp.ToString("####0.0") + " %"); //writer.WriteValue(power.BatteryLevel.ToString()); writer.WriteEndElement(); //end cell writer.WriteEndElement(); //end row } #endregion row writer.WriteEndElement(); //end table #endregion table writer.WriteEndElement(); //end paragraph }