If a saved ItemComponent doesn't define required items, the ones defined by the item prefab are used instead

This commit is contained in:
juanjp600
2017-12-15 16:15:31 -03:00
parent b966b38485
commit 9ad9a65f1e
@@ -506,13 +506,16 @@ namespace Barotrauma.Items.Components
} }
List<RelatedItem> prevRequiredItems = new List<RelatedItem>(requiredItems); List<RelatedItem> prevRequiredItems = new List<RelatedItem>(requiredItems);
requiredItems.Clear(); bool overrideRequiredItems = false;
foreach (XElement subElement in componentElement.Elements()) foreach (XElement subElement in componentElement.Elements())
{ {
switch (subElement.Name.ToString().ToLowerInvariant()) switch (subElement.Name.ToString().ToLowerInvariant())
{ {
case "requireditem": case "requireditem":
if (!overrideRequiredItems) requiredItems.Clear();
overrideRequiredItems = true;
RelatedItem newRequiredItem = RelatedItem.Load(subElement); RelatedItem newRequiredItem = RelatedItem.Load(subElement);
if (newRequiredItem == null) continue; if (newRequiredItem == null) continue;