private void TryToAttach(BalanceAttachmentSpawner bs, BalanceSystemObject bso) { string empty = string.Empty; BSItemData objectToAttach = this.GetObjectToAttach(ref empty, bs.m_ItemIDNamesList); if (objectToAttach != null) { int childNum = -1; GameObject gameObject = bs.TryToAttach(objectToAttach.m_ItemID, out childNum); if (gameObject != null) { objectToAttach.m_LastSpawnTime = Time.time; BalanceSystemObject balanceSystemObject = (bso != null) ? bso : new BalanceSystemObject(); balanceSystemObject.m_Group = empty; balanceSystemObject.m_ChildNum = childNum; balanceSystemObject.m_ItemID = objectToAttach.m_ItemID; balanceSystemObject.m_BalanceSpawner = bs.gameObject; balanceSystemObject.m_GameObject = gameObject; balanceSystemObject.m_Position = bs.transform.position; this.m_ObjectsInArea[empty].Add(balanceSystemObject); this.m_QuadTree.InsertObject(balanceSystemObject); if (empty == "Sanity") { CJObject[] componentsInChildren = gameObject.GetComponentsInChildren <CJObject>(); for (int i = 0; i < componentsInChildren.Length; i++) { componentsInChildren[i].m_Hallucination = true; } } else { balanceSystemObject.m_LastSpawnObjectTime = Time.time; } } } }
private void TryToAttach(BalanceAttachmentSpawner bs, BalanceSystemObject bso) { if (this.IsDeserializingNetworkData() && bso != null) { Item item = bs.Attach(bso.m_ItemID, bso.m_ChildNum, bso.m_ActiveChildrenMask); if (item) { bso.m_GameObject = item.gameObject; return; } } else { string empty = string.Empty; BSItemData bsitemData = (bso != null) ? this.GetObjectToAttach(ref empty, new List <string> { EnumUtils <ItemID> .GetName(bso.m_ItemID) }) : this.GetObjectToAttach(ref empty, bs.m_ItemIDNamesList); if (bsitemData != null) { int childNum = -1; GameObject gameObject = bs.TryToAttach(bsitemData.m_ItemID, out childNum); if (gameObject != null) { this.OnObjectSpawned(bsitemData, bs); bsitemData.m_LastSpawnTime = Time.time; BalanceSystemObject balanceSystemObject = bso ?? new BalanceSystemObject(); balanceSystemObject.m_Group = this.m_Groups[empty]; balanceSystemObject.m_ChildNum = childNum; balanceSystemObject.m_ItemID = bsitemData.m_ItemID; balanceSystemObject.m_BalanceSpawner = bs.gameObject; balanceSystemObject.m_GameObject = gameObject; balanceSystemObject.m_Position = bs.transform.position; balanceSystemObject.m_AllChildrenDestroyed = false; this.m_ObjectsInArea[empty].Add(balanceSystemObject); this.m_QuadTree.InsertObject(balanceSystemObject); if (bso == null) { this.DetachActiveRigidbodies(gameObject); this.SetupActiveChildrenMask(gameObject, ref balanceSystemObject.m_ActiveChildrenMask); } else { this.ApplyActiveChildrenMask(balanceSystemObject); } if (empty == "Sanity") { CJObject[] componentsInChildren = gameObject.GetComponentsInChildren <CJObject>(); for (int i = 0; i < componentsInChildren.Length; i++) { componentsInChildren[i].m_Hallucination = true; } } else { balanceSystemObject.m_LastSpawnObjectTime = Time.time; } if (!this.IsDeserializingNetworkData()) { ReplicatedBalanceObjects.OnObjectChanged(balanceSystemObject); return; } } } else { bs.m_LastNoSpawnObjectTime = Time.time; } } }