public bool Equip(BodyItem.Type type, bool mounted, bool forceUpdate = false) { if (type == equipedItem.type && !forceUpdate) { return(true); } if (type != BodyItem.Type.None) { BodyItem newItem = Arsenal.Instance.Get(type, mounted); if (newItem) { SkinnedMeshRenderer smr = newItem.GetComponent <SkinnedMeshRenderer>(); if (smr) { CopySkinnedMesh(smr, equipedMesh); BodyItem.Copy(newItem, equipedItem); return(true); } } } equipedItem.Clear(); equipedMesh.sharedMesh = null; return(false); }
public GameObject GetPickable(BodyItem.Type type, bool showName = false, bool destroyOnPick = true) { BodyItem item = Get(type, false); if (!item) { return(null); } GameObject go = Instantiate(pickablePrefab.gameObject); go.name = type.ToString(); go.transform.parent = null; go.transform.position = Vector3.zero; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.AddComponent <InteractionType>().type = InteractionType.Type.pickableBody; BodyItem.Copy(item, go.AddComponent <BodyItem>()); go.SetActive(true); SkinnedMeshRenderer skin = item.gameObject.GetComponent <SkinnedMeshRenderer>(); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } pickable.itemMesh.gameObject.SetActive(false); pickable.horse.gameObject.SetActive(false); pickable.body.gameObject.SetActive(true); if (skin) { BodySlot.CopySkinnedMesh(skin, pickable.body); } else { pickable.body.gameObject.SetActive(false); } pickable.textmesh.gameObject.SetActive(showName); go.GetComponent <Item>().destroyOnPick = destroyOnPick; return(go); }
public BodyItem Get(BodyItem.Type type, bool mounted, bool verbose = true) { if (mounted) { if (mountedBodyDictionary.ContainsKey(type)) { return(mountedBodyDictionary[type]); } } else { if (bodyDictionary.ContainsKey(type)) { return(bodyDictionary[type]); } } if (verbose) { Debug.LogError("Arsenal : body dictionary doesn't contain item " + type.ToString()); } return(null); }