IEnumerator RestartFactoryObjectLifeCycle(GameObject fObj, EFactoryType fType) { float targetTime = Time.time + m_disableObjectTimer.Value; while (Time.time < targetTime) { yield return(null); } // RESET ALL PARAMETERS // Here we remove Interaction Item so that gravity won't affect the object. // We also tell it that it can't move and place it back in it's starting location offscreen fObj.GetComponent <Rigidbody>().velocity = Vector3.zero; fObj.GetComponent <Rigidbody>().useGravity = false; fObj.GetComponent <Hi5_Glove_Interaction_Item>().enabled = false; if (fType == EFactoryType.FactoryObject) { Debug.LogWarning("Initializing Factory Object"); fObj.GetComponent <FactoryObject>().CanMove = false; fObj.transform.position = fObj.GetComponent <FactoryObject>().m_spawnPos; fObj.GetComponent <FactoryObject>().Initialize(); } else if (fType == EFactoryType.FactoryContainer) { fObj.GetComponent <FactoryContainer>().CanMove = false; fObj.transform.position = fObj.GetComponent <FactoryContainer>().SpawnPos; fObj.GetComponent <FactoryContainer>().IsInUse = false; fObj.GetComponent <FactoryContainer>().Initialize(); } }
E_ScanStatus ScanItem(GameObject Obj, EFactoryType objType) { FactoryContainer fObj = null; switch (objType) { // Automatic Scan fail for scanning a FactoryObject by itselt case EFactoryType.FactoryObject: StartCoroutine(RestartFactoryObjectLifeCycle(Obj, EFactoryType.FactoryObject)); ScanFailed.Raise(); return(E_ScanStatus.Fail); case EFactoryType.FactoryContainer: fObj = Obj.GetComponent <FactoryContainer>(); if (fObj != null) { Debug.LogWarning("FACTORY CONTAINER COMPONENT FOUND"); // that need to be checked to see if passes inspection for (int i = 0; i < fObj.CheckList.Length; i++) { if (fObj.CheckList[i]) { continue; } else { StartCoroutine(RestartFactoryObjectLifeCycle(fObj.gameObject, EFactoryType.FactoryContainer)); ScanFailed.Raise(); return(E_ScanStatus.Fail); } } //print("Success"); // If all items of the checklist pass then the scan is successful StartCoroutine(RestartFactoryObjectLifeCycle(fObj.gameObject, EFactoryType.FactoryContainer)); ScanPassed.Raise(); return(E_ScanStatus.Pass); } else { Debug.LogWarning("NO FACTORY CONTAINER FOUND"); } fObj.CanMove = false; return(E_ScanStatus.Fail); default: // If there is no FactoryObject Component attached then send an error Debug.LogWarning("No FactoryObject Component found in ScanItem"); fObj.CanMove = false; return(E_ScanStatus.Fail); } }
public void OrganizeFactoryComponent(List <GameObject> listToOrganize, EFactoryType type, EAxis axis) { int index = 0; if (type == EFactoryType.FactoryObject) { index = m_fObjStartIndex; } else if (type == EFactoryType.FactoryContainer) { Debug.LogWarning("Start Index: " + index); index = m_fConStartIndex; } foreach (GameObject go in listToOrganize) { go.GetComponent <Hi5_Glove_Interaction_Item>().idObject = index; go.GetComponent <Hi5_Glove_Interaction_Item>().enabled = false; index++; switch (type) { case EFactoryType.FactoryObject: go.name = "FactoryObject"; go.transform.position = factoryObjSpawnLoc; switch (axis) { case EAxis.X: factoryObjSpawnLoc.x += spawnPosInterval; break; case EAxis.Y: factoryObjSpawnLoc.y += spawnPosInterval; break; case EAxis.Z: factoryObjSpawnLoc.z += spawnPosInterval; break; default: break; } break; case EFactoryType.FactoryContainer: go.name = "FactoryContainer"; go.transform.position = containerObjSpawnLoc; switch (axis) { case EAxis.X: containerObjSpawnLoc.x += spawnPosInterval; break; case EAxis.Y: containerObjSpawnLoc.y += spawnPosInterval; break; case EAxis.Z: containerObjSpawnLoc.z += spawnPosInterval; break; default: break; } break; default: break; } // if (type == EFactoryType.FactoryObject) // { // go.name = "FactoryObject"; // go.transform.position = factoryObjSpawnLoc; // switch (axis) // { // case EAxis.X: // factoryObjSpawnLoc.x += spawnPosInterval; // break; // case EAxis.Y: // factoryObjSpawnLoc.y += spawnPosInterval; // break; // case EAxis.Z: // factoryObjSpawnLoc.z += spawnPosInterval; // break; // default: // break; // } // } // else if (type == EFactoryType.FactoryContainer) // { // go.name = "FactoryContainer"; // go.transform.position = containerObjSpawnLoc; // switch (axis) // { // case EAxis.X: // containerObjSpawnLoc.x += spawnPosInterval; // break; // case EAxis.Y: // containerObjSpawnLoc.y += spawnPosInterval; // break; // case EAxis.Z: // containerObjSpawnLoc.z += spawnPosInterval; // break; // default: // break; // } // } } }