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