Ejemplo n.º 1
0
    private void HighlightObject(Interactable obj)
    {
        UnhighlightPrevious();

        if (container.Contains(obj))
        {
            PreviousHighlight = obj.Highlight;
            PreviousHighlight?.Highlight();
        }
    }
    private void ContaminateItem(GeneralItem item)
    {
        if (!safeZone.Contains(item) && contaminateZone.Contains(item))
        {
            StartCoroutine(Wait());
        }

        IEnumerator Wait()
        {
            yield return(new WaitForSeconds(ContaminateTime));

            if (safeZone.Contains(item) || !contaminateZone.Contains(item))
            {
                yield break;
            }

            if (item.IsClean || !contaminatedItems.Contains(item.GetInstanceID()))
            {
                contaminatedItems.Add(item.GetInstanceID());
                TaskBase.CreateGeneralMistake("Esine koski laminaarikaapin pintaa");
                item.Contamination = GeneralItem.ContaminateState.Contaminated;
            }
        }
    }
Ejemplo n.º 3
0
    private void SyringeCapBagEnteredLaminarCabinet(GeneralItem capBag)
    {
        if (hasCapBag)
        {
            return;
        }

        trueCapBag = capBag;
        hasCapBag  = true;
        StartCoroutine(EnableCapFactory());

        IEnumerator EnableCapFactory()
        {
            yield return(new WaitForSeconds(2));

            if (!itemContainer.Contains(trueCapBag))
            {
                yield break;
            }

            capBagMeshCopy = new GameObject();

            foreach (Transform child in trueCapBag.transform)
            {
                Vector3 lpos = child.localPosition;
                Vector3 lrot = child.localEulerAngles;

                Transform mesh = Instantiate(child.gameObject).transform;
                mesh.SetParent(capBagMeshCopy.transform);
                mesh.localPosition    = lpos;
                mesh.localEulerAngles = lrot;
            }

            capBagMeshCopy.transform.position = trueCapBag.transform.position;
            capBagMeshCopy.transform.rotation = trueCapBag.transform.rotation;

            Vector3    startPos = trueCapBag.transform.position;
            Quaternion startRot = trueCapBag.transform.rotation;

            Vector3    targetPos = syringeCapFactoryPos.transform.position;
            Quaternion targetRot = syringeCapFactoryPos.transform.rotation;

            float time        = 2.5f;
            float currentTime = 0;

            DestroyCapBagAndInitFactory();

            while (currentTime < time)
            {
                currentTime += Time.deltaTime;

                float progress = currentTime / time;

                capBagMeshCopy.transform.position = Vector3.Slerp(startPos, targetPos, progress);
                capBagMeshCopy.transform.rotation = Quaternion.Slerp(startRot, targetRot, progress);

                yield return(null);
            }

            capBagMeshCopy.transform.position = targetPos;
            capBagMeshCopy.transform.rotation = targetRot;

            syringeCapFactory.SetActive(true);
            capFactoryEnabled = true;
        }
    }