コード例 #1
0
 public void ClearRigidBodies()
 {
     if (this.displayModels == null)
     {
         return;
     }
     VisualStorageContainer.DisplayModel[] displayModelArray = this.displayModels;
     for (int i = 0; i < (int)displayModelArray.Length; i++)
     {
         VisualStorageContainer.DisplayModel displayModel = displayModelArray[i];
         if (displayModel != null)
         {
             UnityEngine.Object.Destroy(displayModel.displayModel.GetComponentInChildren <Rigidbody>());
         }
     }
 }
コード例 #2
0
 public void UpdateVisibleItems(ItemContainer msg)
 {
     for (int index = 0; index < this.displayModels.Length; ++index)
     {
         VisualStorageContainer.DisplayModel displayModel = this.displayModels[index];
         if (displayModel != null)
         {
             Object.Destroy((Object)displayModel.displayModel);
             this.displayModels[index] = (VisualStorageContainer.DisplayModel)null;
         }
     }
     if (msg == null)
     {
         return;
     }
     using (List <Item> .Enumerator enumerator = ((List <Item>)msg.contents).GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             Item           current        = enumerator.Current;
             ItemDefinition itemDefinition = ItemManager.FindItemDefinition((int)current.itemid);
             GameObject     gameObject     = itemDefinition.worldModelPrefab == null || !itemDefinition.worldModelPrefab.isValid ? (GameObject)Object.Instantiate <GameObject>((M0)this.defaultDisplayModel) : itemDefinition.worldModelPrefab.Instantiate((Transform)null);
             if (Object.op_Implicit((Object)gameObject))
             {
                 gameObject.get_transform().set_position(Vector3.op_Addition(((Component)this.displayNodes[current.slot]).get_transform().get_position(), new Vector3(0.0f, 0.25f, 0.0f)));
                 gameObject.get_transform().set_rotation(((Component)this.displayNodes[current.slot]).get_transform().get_rotation());
                 M0 m0 = gameObject.AddComponent <Rigidbody>();
                 ((Rigidbody)m0).set_mass(1f);
                 ((Rigidbody)m0).set_drag(0.1f);
                 ((Rigidbody)m0).set_angularDrag(0.1f);
                 ((Rigidbody)m0).set_interpolation((RigidbodyInterpolation)1);
                 ((Rigidbody)m0).set_constraints((RigidbodyConstraints)10);
                 this.displayModels[current.slot].displayModel = gameObject;
                 this.displayModels[current.slot].slot         = (int)current.slot;
                 this.displayModels[current.slot].def          = itemDefinition;
                 gameObject.SetActive(true);
             }
         }
     }
     this.SetItemsVisible(false);
     this.CancelInvoke(new Action(this.ItemUpdateComplete));
     this.Invoke(new Action(this.ItemUpdateComplete), 1f);
 }
コード例 #3
0
 public void UpdateVisibleItems(ProtoBuf.ItemContainer msg)
 {
     for (int i = 0; i < (int)this.displayModels.Length; i++)
     {
         VisualStorageContainer.DisplayModel displayModel = this.displayModels[i];
         if (displayModel != null)
         {
             UnityEngine.Object.Destroy(displayModel.displayModel);
             this.displayModels[i] = null;
         }
     }
     if (msg == null)
     {
         return;
     }
     foreach (ProtoBuf.Item content in msg.contents)
     {
         ItemDefinition itemDefinition = ItemManager.FindItemDefinition(content.itemid);
         GameObject     vector3        = null;
         vector3 = (itemDefinition.worldModelPrefab == null || !itemDefinition.worldModelPrefab.isValid ? UnityEngine.Object.Instantiate <GameObject>(this.defaultDisplayModel) : itemDefinition.worldModelPrefab.Instantiate(null));
         if (!vector3)
         {
             continue;
         }
         vector3.transform.position = this.displayNodes[content.slot].transform.position + new Vector3(0f, 0.25f, 0f);
         vector3.transform.rotation = this.displayNodes[content.slot].transform.rotation;
         Rigidbody rigidbody = vector3.AddComponent <Rigidbody>();
         rigidbody.mass          = 1f;
         rigidbody.drag          = 0.1f;
         rigidbody.angularDrag   = 0.1f;
         rigidbody.interpolation = RigidbodyInterpolation.Interpolate;
         rigidbody.constraints   = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionZ;
         this.displayModels[content.slot].displayModel = vector3;
         this.displayModels[content.slot].slot         = content.slot;
         this.displayModels[content.slot].def          = itemDefinition;
         vector3.SetActive(true);
     }
     this.SetItemsVisible(false);
     base.CancelInvoke(new Action(this.ItemUpdateComplete));
     base.Invoke(new Action(this.ItemUpdateComplete), 1f);
 }
コード例 #4
0
 public void SetItemsVisible(bool vis)
 {
     if (this.displayModels == null)
     {
         return;
     }
     VisualStorageContainer.DisplayModel[] displayModelArray = this.displayModels;
     for (int i = 0; i < (int)displayModelArray.Length; i++)
     {
         VisualStorageContainer.DisplayModel displayModel = displayModelArray[i];
         if (displayModel != null)
         {
             LODGroup componentInChildren = displayModel.displayModel.GetComponentInChildren <LODGroup>();
             if (!componentInChildren)
             {
                 Debug.Log(string.Concat("VisualStorageContainer item missing LODGroup", displayModel.displayModel.gameObject.name));
             }
             else
             {
                 componentInChildren.localReferencePoint = (vis ? Vector3.zero : new Vector3(10000f, 10000f, 10000f));
             }
         }
     }
 }