void FindWielder() { if (wielder == null && transform.parent != null) { Transform t = transform.parent; while (t != null && wielder == null) { wielder = t.GetComponent <Character>(); if (wielder == null) { t = t.parent; } } InstantiatedItem iit = GetComponent <InstantiatedItem>(); baseItem = iit != null ? iit.item : null; if (wielder == null) { Debug.LogError("No wielder"); } if (equippedSlots == null || equippedSlots.Length == 0) { wielder.Equip(this); } } }
public InstantiatedItem Instantiate(Vector3 where, Quaternion rot) { Transform t = Instantiate(prefab, where, rot) as Transform; InstantiatedItem iit = t.GetComponent <InstantiatedItem>() ?? t.gameObject.AddComponent <InstantiatedItem>(); iit.item = this; return(iit); }
public bool InsertInstantiatedItem(InstantiatedItem iit, int stack = -1) { Item it = iit.item; if (InsertItem(it, stack, 1) == 1) { Destroy(iit.gameObject); return(true); } return(false); }
public InstantiatedItem InstantiateItem( int idx, Vector3?where = null, Quaternion?rot = null ) { if (idx < 0 || counts[idx] <= 0) { return(null); } if (items[idx].prefab == null) { return(null); } InstantiatedItem iit = items[idx].Instantiate( (where != null ? where.Value : Vector3.zero), (rot != null ? rot.Value : Quaternion.identity) ); RemoveItem(idx, 1); return(iit); }
public bool InsertInstantiatedItem(InstantiatedItem iit, int stack=-1) { Item it = iit.item; if(InsertItem(it, stack, 1) == 1) { Destroy(iit.gameObject); return true; } return false; }