Item connections are cached in the Item constructor instead of OnMapLoaded (-> buttons created mid-round work now)

This commit is contained in:
Regalis
2017-05-26 20:03:38 +03:00
parent 09785184b3
commit b7518fa812

View File

@@ -408,15 +408,27 @@ namespace Barotrauma
break;
}
}
//cache connections into a dictionary for faster lookups
var connectionPanel = GetComponent<ConnectionPanel>();
if (connectionPanel != null)
{
connections = new Dictionary<string, Connection>();
foreach (Connection c in connectionPanel.Connections)
{
if (!connections.ContainsKey(c.Name))
connections.Add(c.Name, c);
}
}
//containers need to handle collision events to notify items inside them about the impact
if (ImpactTolerance > 0.0f || GetComponent<ItemContainer>() != null)
var itemContainer = GetComponent<ItemContainer>();
if (ImpactTolerance > 0.0f || itemContainer != null)
{
if (body != null) body.FarseerBody.OnCollision += OnCollision;
}
var itemContainer = GetComponent<ItemContainer>();
if (itemContainer!=null)
if (itemContainer != null)
{
ownInventory = itemContainer.Inventory;
}
@@ -2244,17 +2256,6 @@ namespace Barotrauma
{
ic.OnMapLoaded();
}
//cache connections into a dictionary for faster lookups
var connectionPanel = GetComponent<ConnectionPanel>();
connections = new Dictionary<string, Connection>();
if (connectionPanel == null) return;
foreach (Connection c in connectionPanel.Connections)
{
if (!connections.ContainsKey(c.Name))
connections.Add(c.Name, c);
}
}