예제 #1
0
    private void OnTriggerExit(Collider other)
    {
        FluwidContainerEntry fluwidContainerEntry = other.GetComponent <FluwidContainerEntry>();

        if (fluwidContainerEntry)
        {
            m_containedFluwidManagers.Remove(fluwidContainerEntry.fluwidManager);
        }
    }
예제 #2
0
    private IEnumerator OnTriggerAtHeightCoroutine(FluwidContainerEntry fluwidContainerEntry)
    {
        while (transform.position.y > (fluwidContainerEntry.fluwidManager.fluidHeight + fluwidContainerEntry.fluwidManager.transform.position.y))
        {
            yield return(null);
        }

        fluwidContainerEntry.fluwidManager.AddCompound(m_containedCompound);
        Destroy(gameObject);
    }
예제 #3
0
    private void OnTriggerExit(Collider other)
    {
        FluwidContainerEntry fluwidContainerEntry = other.GetComponent <FluwidContainerEntry>();

        if (!fluwidContainerEntry)
        {
            return;
        }
        if (fluwidContainerEntry.fluwidManager == m_creator)
        {
            return;
        }


        StopCoroutine(OnTriggerAtHeightCoroutine(fluwidContainerEntry));
    }
예제 #4
0
    private void OnTriggerEnter(Collider other)
    {
        FluwidContainerEntry fluwidContainerEntry = other.GetComponent <FluwidContainerEntry>();

        if (fluwidContainerEntry)
        {
            if (fluwidContainerEntry.hasCork)
            {
                Waste();
            }
            else if (fluwidContainerEntry.fluwidManager != m_creator)
            {
                OnTriggerAtHeight(fluwidContainerEntry);
            }
        }
        else if (other.gameObject.isStatic)
        {
            Waste();
        }
    }
예제 #5
0
    protected override void OnActionDown()
    {
        if (!picked)
        {
            VivePickable itemToGrip = this;

            if (m_itemType == XperItem.Erlenmeyer)
            {
                SmartFluwid          smartFluwid          = GetComponentInChildren <SmartFluwid>();
                FluwidContainerEntry fluwidContainerEntry = smartFluwid.GetComponentInChildren <FluwidContainerEntry>();

                if (fluwidContainerEntry.hasCork && fluwidContainerEntry.viveCork.picked)
                {
                    itemToGrip = fluwidContainerEntry.viveCork;
                }
            }

            itemToGrip.Grip(m_interactionWand);
            ReportInteraction();
        }
    }
예제 #6
0
 private void OnTriggerAtHeight(FluwidContainerEntry fluwidContainerEntry)
 {
     StartCoroutine(OnTriggerAtHeightCoroutine(fluwidContainerEntry));
 }