private void SpawnView(ItemStorage.InventoryItemX iix) { InventoryItemView inventoryItemView = LocalPlayer.Inventory.InventoryItemViewsCache[iix._itemId][0]; Renderer component = inventoryItemView.GetComponent <Renderer>(); Vector3 vector; Quaternion localRotation; if (component) { if (inventoryItemView._modelOffsetTr) { vector = inventoryItemView._modelOffsetTr.localPosition; localRotation = inventoryItemView._modelOffsetTr.localRotation; } else { vector = component.bounds.center; vector.y = component.bounds.min.y; vector = inventoryItemView.transform.position - vector; localRotation = inventoryItemView.transform.localRotation; } } else { vector = Vector3.zero; vector.y = 0.02f; localRotation = inventoryItemView.transform.localRotation; } Vector3 vector2 = Vector3.zero; vector2 += vector; InventoryItemView inventoryItemView2 = UnityEngine.Object.Instantiate <InventoryItemView>(inventoryItemView); GameObject gameObject = inventoryItemView2.gameObject; gameObject.SetActive(true); gameObject.transform.localScale = inventoryItemView.transform.lossyScale; gameObject.transform.parent = this._contentRoot.transform; gameObject.transform.localRotation = localRotation; gameObject.transform.localPosition = vector2; gameObject.layer = this.GetLayerNum(); Debug.DrawLine(gameObject.transform.position, gameObject.transform.position - gameObject.transform.TransformDirection(vector), Color.red, 20f); if (this._interactiveViews) { inventoryItemView2.Init(); inventoryItemView2._isCraft = true; inventoryItemView2._canEquipFromCraft = false; inventoryItemView2.Properties.Copy(iix._properties); } else { UnityEngine.Object.Destroy(inventoryItemView2); UnityEngine.Object.Destroy(gameObject.GetComponent <Collider>()); } }
private void SpawnView(int itemId) { InventoryItemView inventoryItemView = LocalPlayer.Inventory.InventoryItemViewsCache[itemId][0]; Renderer component = inventoryItemView.GetComponent <Renderer>(); Vector3 vector; if (component) { vector = component.bounds.center; vector.y = component.bounds.min.y; vector = inventoryItemView.transform.position - vector; } else { vector = Vector3.zero; vector.y = 0.02f; } Vector3 vector2 = new Vector3(UnityEngine.Random.Range(this._xRange.x, this._xRange.y), UnityEngine.Random.Range(this._yRange.x, this._yRange.y), UnityEngine.Random.Range(this._zRange.x, this._zRange.y)); vector2 = Vector3.zero; vector2 += vector; InventoryItemView inventoryItemView2 = UnityEngine.Object.Instantiate <InventoryItemView>(inventoryItemView); GameObject gameObject = inventoryItemView2.gameObject; gameObject.SetActive(true); gameObject.transform.localScale = inventoryItemView.transform.lossyScale; gameObject.transform.parent = this._contentRoot.transform; gameObject.transform.localRotation = inventoryItemView.transform.localRotation; gameObject.transform.localPosition = vector2; gameObject.layer = this.GetLayerNum(); gameObject.AddComponent <AmplifyMotionObject>(); Debug.DrawLine(gameObject.transform.position, gameObject.transform.position - gameObject.transform.TransformDirection(vector), Color.red, 20f); if (this._interactiveViews) { inventoryItemView2._isCraft = true; inventoryItemView2.Init(); } else { UnityEngine.Object.Destroy(inventoryItemView2); UnityEngine.Object.Destroy(gameObject.GetComponent <Collider>()); } }
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); }