Example #1
0
        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>());
            }
        }
Example #2
0
        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>());
            }
        }
Example #3
0
        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);
        }