public void ToggleItemViewMat(InventoryItemView iiv) { if (iiv.ItemCache != null) { Material material = this._defaultMaterial; for (int i = 0; i < this._bonuses.Length; i++) { if (iiv.ActiveBonus == this._bonuses[i]._bonusToActivate) { material = this._bonuses[i]._material; break; } } if (iiv._renderers[0]._defaultMaterial != material) { iiv._renderers[0]._defaultMaterial = material; iiv.Highlight(false); } return; } }
public void SpawnAnyMultiview(InventoryItemView source, Transform parent, bool randomRotation, ItemProperties properties) { Vector3 euler = new Vector3(0f, (float)UnityEngine.Random.Range(-50, 50), 0f); bool flag = source.Equals(this); Collider component = source.GetComponent <Collider>(); Vector3 size; if (component is BoxCollider) { size = ((BoxCollider)component).size; } else if (component is CapsuleCollider) { CapsuleCollider capsuleCollider = (CapsuleCollider)component; int direction = capsuleCollider.direction; if (direction != 0) { if (direction != 1) { size = new Vector3(capsuleCollider.radius * 2f, capsuleCollider.radius * 2f, capsuleCollider.height); } else { size = new Vector3(capsuleCollider.radius * 2f, capsuleCollider.height, capsuleCollider.radius * 2f); } } else { size = new Vector3(capsuleCollider.height, capsuleCollider.radius * 2f, capsuleCollider.radius * 2f); } } else { size = component.bounds.size; } Vector3 vector = UnityEngine.Random.insideUnitSphere; if (!flag) { vector *= 3f; } if (size.x * 2f < size.z) { vector /= 15f; vector *= size.x * 0.75f; vector.x /= 2f; } else if (size.z * 2f < size.x) { vector /= 15f; vector *= size.z * 0.75f; vector.z /= 2f; } else { vector /= 8f; bool flag2 = size.z * 2f > size.y; bool flag3 = size.x * 2f > size.y; if (flag2 && !flag3) { euler.z = (float)UnityEngine.Random.Range(-45, 45); } if (flag3 && !flag2) { euler.x = (float)UnityEngine.Random.Range(-45, 45); } } vector.y = 0f; InventoryItemView inventoryItemView = UnityEngine.Object.Instantiate <InventoryItemView>(source, base.transform.position + vector, (!randomRotation) ? source.transform.rotation : (source.transform.rotation * Quaternion.Euler(euler))); inventoryItemView.transform.parent = parent; inventoryItemView.transform.localScale = source.transform.localScale; inventoryItemView._isCraft = true; inventoryItemView.MultiViewOwner = this; inventoryItemView.enabled = true; inventoryItemView.gameObject.SetActive(true); inventoryItemView.Init(); inventoryItemView.Highlight(false); inventoryItemView.OnMultiviewSpawned(); if (properties != ItemProperties.Any) { inventoryItemView.Properties.Copy(properties); } if (this._bonusListener) { this._bonusListener.ToggleItemViewMat(inventoryItemView); } this._multiViews.Add(inventoryItemView); }