public override bool Equals(object other) { ItemScriptable otherHolder = other as ItemScriptable; return(otherHolder != null ? Item.ID == otherHolder.Item.ID : this == null); }
void ISerializationCallbackReceiver.OnAfterDeserialize() { (itemHolder as ISerializationCallbackReceiver)?.OnAfterDeserialize(); Slot = new ItemSlot(type, itemHolder?.Item) { OnItemChanged = () => { itemHolder = Slot.HasItem() ? itemDatabase.GetItemHolder(Slot.StoredItem.ID) : null; RefreshUI(); } }; }
public ItemScriptable GetItemHolder(Predicate <ItemScriptable> match) { foreach (var kvp in itemDatabaseMap) { ItemScriptable holder = kvp.Value; if (match(holder)) { return(holder); } } return(null); }