(f2e516dfe) v0.9.3.2

This commit is contained in:
Joonas Rikkonen
2019-09-20 20:11:18 +03:00
parent 80698b58b0
commit 9aa12bcac2
144 changed files with 1653 additions and 1559 deletions
@@ -336,30 +336,39 @@ namespace Barotrauma
}
}
public Item FindItemByTag(string tag)
public Item FindItem(Func<Item, bool> predicate, bool recursive)
{
if (tag == null) return null;
return Items.FirstOrDefault(i => i != null && i.HasTag(tag));
Item match = Items.FirstOrDefault(predicate);
if (match == null && recursive)
{
foreach (var item in Items)
{
if (item == null) { continue; }
if (item.OwnInventory != null)
{
match = item.OwnInventory.FindItem(predicate, true);
if (match != null)
{
return match;
}
}
}
}
return match;
}
public Item FindItemByIdentifier(string identifier)
public Item FindItemByTag(string tag, bool recursive = false)
{
if (tag == null) { return null; }
return FindItem(i => i != null && i.HasTag(tag), recursive);
}
public Item FindItemByIdentifier(string identifier, bool recursive = false)
{
if (identifier == null) return null;
return Items.FirstOrDefault(i => i != null && i.Prefab.Identifier == identifier);
return FindItem(i => i != null && i.Prefab.Identifier == identifier, recursive);
}
/*public Item FindItem(string[] itemNames)
{
if (itemNames == null) return null;
foreach (string itemName in itemNames)
{
var item = FindItem(itemName);
if (item != null) return item;
}
return null;
}*/
public virtual void RemoveItem(Item item)
{
if (item == null) return;
@@ -376,6 +385,7 @@ namespace Barotrauma
public void SharedWrite(IWriteMessage msg, object[] extraData = null)
{
msg.Write((byte)capacity);
for (int i = 0; i < capacity; i++)
{
msg.Write((ushort)(Items[i] == null ? 0 : Items[i].ID));