// Token: 0x06000422 RID: 1058 RVA: 0x00021830 File Offset: 0x0001FA30 public GameObject[] Create(Vector3 pos, Quaternion rot, Transform parent = null, float scale = 1f) { List <GameObject> list = new List <GameObject>(); for (int i = 0; i < this.m_effectPrefabs.Length; i++) { EffectList.EffectData effectData = this.m_effectPrefabs[i]; if (effectData.m_enabled) { if (parent && this.m_effectPrefabs[i].m_inheritParentRotation) { rot = parent.rotation; } if (effectData.m_randomRotation) { rot = UnityEngine.Random.rotation; } GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(effectData.m_prefab, pos, rot); if (effectData.m_scale) { if (parent && this.m_effectPrefabs[i].m_inheritParentScale) { Vector3 localScale = parent.localScale * scale; gameObject.transform.localScale = localScale; } else { gameObject.transform.localScale = new Vector3(scale, scale, scale); } } else if (parent && this.m_effectPrefabs[i].m_inheritParentScale) { gameObject.transform.localScale = parent.localScale; } if (effectData.m_attach && parent != null) { gameObject.transform.SetParent(parent); } list.Add(gameObject); } } return(list.ToArray()); }
public void CompileAndAddPiece() { Piece myPieceData = myPiece.GetComponent <Piece>(); if (myPieceData != null) { myPieceData.m_craftingStation = MyReferences.listOfCraftingStations[craftingStationName.GetStableHashCode()]; //Compile Place Effects if (placeEffectNames != null && placeEffectNames.Count > 0) { EffectList newList = new EffectList(); List <EffectList.EffectData> newEffectData = new List <EffectList.EffectData>(); foreach (string effectName in placeEffectNames) { EffectList.EffectData compiledEffectData = new EffectList.EffectData(); compiledEffectData.m_prefab = MyReferences.listOfEffects[effectName.GetStableHashCode()]; newEffectData.Add(compiledEffectData); } newList.m_effectPrefabs = newEffectData.ToArray(); myPieceData.m_placeEffect = newList; } } WearNTear myWearNTear = myPiece.GetComponent <WearNTear>(); if (myWearNTear != null) { //Compile Destroyed, Hit, and Switch Effects if (destoryedEffectNames != null && destoryedEffectNames.Count > 0) { EffectList newList = new EffectList(); List <EffectList.EffectData> newEffectData = new List <EffectList.EffectData>(); foreach (string effectName in destoryedEffectNames) { EffectList.EffectData compiledEffectData = new EffectList.EffectData(); compiledEffectData.m_prefab = MyReferences.listOfEffects[effectName.GetStableHashCode()]; newEffectData.Add(compiledEffectData); } newList.m_effectPrefabs = newEffectData.ToArray(); myWearNTear.m_destroyedEffect = newList; } if (hitEffectNames != null && hitEffectNames.Count > 0) { EffectList newList = new EffectList(); List <EffectList.EffectData> newEffectData = new List <EffectList.EffectData>(); foreach (string effectName in hitEffectNames) { EffectList.EffectData compiledEffectData = new EffectList.EffectData(); compiledEffectData.m_prefab = MyReferences.listOfEffects[effectName.GetStableHashCode()]; newEffectData.Add(compiledEffectData); } newList.m_effectPrefabs = newEffectData.ToArray(); myWearNTear.m_hitEffect = newList; } if (switchEffectNames != null && switchEffectNames.Count > 0) { EffectList newList = new EffectList(); List <EffectList.EffectData> newEffectData = new List <EffectList.EffectData>(); foreach (string effectName in switchEffectNames) { EffectList.EffectData compiledEffectData = new EffectList.EffectData(); compiledEffectData.m_prefab = MyReferences.listOfEffects[effectName.GetStableHashCode()]; newEffectData.Add(compiledEffectData); } newList.m_effectPrefabs = newEffectData.ToArray(); myWearNTear.m_switchEffect = newList; } } UpdateRequirements(); AddPiece(); }