v0.19.8.0

This commit is contained in:
Juan Pablo Arce
2022-09-28 21:30:52 -03:00
parent fec8131243
commit 3ca584f2fc
152 changed files with 1931 additions and 1071 deletions
@@ -278,7 +278,8 @@ namespace Barotrauma.Items.Components
public override float GetConnectionPowerOut(Connection conn, float power, PowerRange minMaxPower, float load)
{
return conn == powerOut ? PowerConsumption + ExtraLoad : 0;
//not used in the vanilla game (junction boxes or relays don't output power)
return conn == powerOut ? MathHelper.Max(-(PowerConsumption + ExtraLoad), 0) : 0;
}
public override bool Pick(Character picker)
@@ -690,43 +690,21 @@ namespace Barotrauma.Items.Components
}
/// <summary>
/// Efficient method to retrieve the batteries connected to the device
/// Returns a list of batteries directly connected to the item
/// </summary>
/// <returns>All connected PowerContainers</returns>
protected List<PowerContainer> GetConnectedBatteries(bool outputOnly = true)
protected List<PowerContainer> GetDirectlyConnectedBatteries()
{
List<PowerContainer> batteries = new List<PowerContainer>();
GridInfo supplyingGrid = null;
//Determine supplying grid, prefer PowerIn connection
if (powerIn != null)
if (item.Connections == null || powerIn == null) { return batteries; }
foreach (Connection recipient in powerIn.Recipients)
{
if (powerIn.Grid != null)
if (!recipient.IsPower || !recipient.IsOutput) { continue; }
var battery = recipient.Item?.GetComponent<PowerContainer>();
if (battery != null)
{
supplyingGrid = powerIn.Grid;
batteries.Add(battery);
}
}
else if (powerOut != null)
{
if (powerOut.Grid != null)
{
supplyingGrid = powerOut.Grid;
}
}
if (supplyingGrid != null)
{
//Iterate through all connections to fine powerContainers
foreach (Connection c in supplyingGrid.Connections)
{
PowerContainer pc = c.Item.GetComponent<PowerContainer>();
if (pc != null && (!outputOnly || pc.powerOut == c))
{
batteries.Add(pc);
}
}
}
return batteries;
}