public void AssociateWith(EnterTrigger triggerInfo)
 {
     if (triggerInfo.Action == EnterTrigger.Change.Grow)
     {
         growTriggers.Add(triggerInfo);
     }
     else
     {
         shrinkTriggers.Add(triggerInfo);
     }
 }
    public void OnTrigger(EnterTrigger triggerInfo)
    {
        // Turn off the ceiling
        ceiling.enabled = false;

        // Check the action
        if (triggerInfo.Action == EnterTrigger.Change.Grow)
        {
            // Update stack
            ResizeParent.Instance.TierHistory.Add(ParentTier);
            ParentTier.ApplyTheme();

            // Run event
            ResizeParent.Instance.Grow(growPoint);

            // Bind to growing events
            Singleton.Instance.OnUpdate      += CheckIfPlayerIsBelowCeiling;
            Singleton.Instance.OnFixedUpdate += MovePlayerTowardsCenter;

            // Check if we should play the credits...
            if (lastHouse == true)
            {
                Singleton.Get <SceneTransitionManager>().LoadNextLevel();
            }
        }
        else
        {
            // Run event
            Vector3 shrinkOrigin = triggerInfo.transform.position;
            shrinkOrigin += Quaternion.Euler(0f, Random.Range(0f, 360f), 0f) * offsetOnShrinkVector;
            ResizeParent.Instance.Shrink(shrinkOrigin);

            // Update stack
            if (ResizeParent.Instance.LatestTier == ParentTier)
            {
                ResizeParent.Instance.TierHistory.RemoveAt(ResizeParent.Instance.TierHistory.Count - 1);
                if (ResizeParent.Instance.LatestTier != null)
                {
                    ResizeParent.Instance.LatestTier.ApplyTheme();
                }
            }
        }
    }
 private void OnTriggerEnter2D(Collider2D other)
 {
     EnterTrigger?.Invoke(other);
 }