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; } } }
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; } }