(f2e516dfe) v0.9.3.2
This commit is contained in:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user