Ejemplo n.º 1
0
    Podium UpdateParentItem(ResizeParent obj, ResizingTier parentItem, Vector3 finalScale)
    {
        // Grab the parent podium
        Podium parentPodium = ResizeParent.Instance.PathToPodiumMap[new ResizeParent.TierPath(parentItem, ParentTier)];

        // Reset the size of the parent item
        parentItem.transform.SetParent(null, true);
        parentItem.transform.localScale = Vector3.one;

        // Setup the resize helper to the proportions of the podium
        ResizeParent.Instance.ResizeHelper.transform.SetParent(parentPodium.itemPlacement, false);
        ResizeParent.Instance.ResizeHelper.transform.localPosition = Vector3.zero;
        ResizeParent.Instance.ResizeHelper.transform.localScale    = Vector3.one;
        ResizeParent.Instance.ResizeHelper.transform.localRotation = Quaternion.identity;

        // Parent the parentTier to the resize helper
        ResizeParent.Instance.ResizeHelper.transform.SetParent(null, true);
        parentItem.transform.SetParent(ResizeParent.Instance.ResizeHelper.transform, true);

        // Position and resize the resize helper
        ResizeParent.Instance.ResizeHelper.transform.localScale = finalScale;
        ResizeParent.Instance.ResizeHelper.transform.position   = ParentTier.transform.position;

        // Update the tier of this object
        parentItem.CurrentTier = ThisTier - 1;

        // De-parent
        parentItem.transform.SetParent(null, true);
        return(parentPodium);
    }
 private void Instance_OnBeforeResize(ResizeParent obj)
 {
     if (IsActive(obj) == true)
     {
         // Parent this to the resize parent
         gameObject.SetActive(true);
         transform.SetParent(obj.transform, true);
     }
     else if ((obj.currentDirection == ResizeParent.ResizeDirection.Shrinking) && ((obj.CurrentTier + 2) == CurrentTier))
     {
         // Leave this object visible
         gameObject.SetActive(true);
         transform.SetParent(obj.transform, true);
     }
     else if ((obj.currentDirection == ResizeParent.ResizeDirection.Growing) && ((obj.CurrentTier - 2) == CurrentTier))
     {
         // Leave this object visible
         gameObject.SetActive(true);
         transform.SetParent(obj.transform, true);
     }
     else
     {
         gameObject.SetActive(false);
     }
 }
Ejemplo n.º 3
0
    static ResizingTier SetupParent(ResizeParent obj, Podium parentPodium, int stackIndexFromTop)
    {
        // Check if there is at least one more parent above this
        ResizingTier parentItem = null;

        if (ResizeParent.Instance.TierHistory.Count >= stackIndexFromTop)
        {
            parentItem = ResizeParent.Instance.TierHistory[ResizeParent.Instance.TierHistory.Count - stackIndexFromTop];
        }
        if ((parentItem != null) && (parentPodium.parentItems.Contains(parentItem) == true) && (parentPodium.ThisTier > 0))
        {
            // Setup this new parent as well
            parentPodium.UpdateParentItem(obj, parentItem, ResizeParent.Instance.GrowScaleVector);

            // Update the parent podum's embedded elements
            foreach (Podium podium in ResizeParent.Instance.AllPodiumsPerTier[parentPodium.ParentTier])
            {
                if (podium != parentPodium)
                {
                    podium.UpdateEmbedItem(obj);
                }
            }
        }
        return(parentItem);
    }
Ejemplo n.º 4
0
 protected virtual void OnAfterResize(ResizeParent obj)
 {
     if ((trigger != null) && (gameObject.activeInHierarchy == true))
     {
         trigger.IsEnabled = (obj.CurrentTier == ThisTier);
     }
     UpdateAnimation();
 }
 private void Instance_OnAfterResize(ResizeParent obj)
 {
     if ((trigger != null) && (gameObject.activeInHierarchy == true))
     {
         trigger.IsEnabled = (obj.CurrentTier == InteractiveTier);
     }
     UpdateParticles();
 }
Ejemplo n.º 6
0
 private void Instance_OnAfterResize(ResizeParent obj)
 {
     if (embedItem != null)
     {
         // Un-embed
         embedItem.transform.SetParent(null, true);
     }
 }
Ejemplo n.º 7
0
 protected virtual void OnBeforeResize(ResizeParent obj)
 {
     if ((trigger != null) && (gameObject.activeInHierarchy == true))
     {
         trigger.IsEnabled = false;
         OnGazeExit(null);
     }
     UpdateAnimation();
 }
Ejemplo n.º 8
0
    protected override void Instance_OnAfterResize(ResizeParent obj)
    {
        base.Instance_OnAfterResize(obj);

        if (trigger != null)
        {
            trigger.IsEnabled = (obj.CurrentTier == ThisTier);
        }
    }
 private void Instance_OnBeforeResize(ResizeParent obj)
 {
     if ((trigger != null) && (gameObject.activeInHierarchy == true))
     {
         trigger.IsEnabled = false;
         OnGazeExit(null);
     }
     UpdateParticles();
 }
Ejemplo n.º 10
0
    protected override void Instance_OnBeforeResize(ResizeParent obj)
    {
        base.Instance_OnBeforeResize(obj);

        if (trigger != null)
        {
            trigger.IsEnabled = false;
            OnGazeExit(null);
        }
    }
Ejemplo n.º 11
0
    protected override void Instance_OnBeforeResize(ResizeParent obj)
    {
        base.Instance_OnBeforeResize(obj);

        if (readyTrigger != null)
        {
            readyTrigger.IsEnabled = false;
            ResetGaze();
        }
    }
Ejemplo n.º 12
0
 private void OnAfterResize(ResizeParent obj)
 {
     // Enable body
     body.isKinematic = false;
     //if ((obj.CurrentTier - ThisTier) <= MaxTierDistance)
     //{
     //    randomVelocity.y = Random.Range(0, startingForce);
     //    body.AddForce(randomVelocity, ForceMode.VelocityChange);
     //    body.AddRelativeTorque(Random.insideUnitSphere * startingTorque, ForceMode.VelocityChange);
     //}
 }
Ejemplo n.º 13
0
    private void OnBeforeResize(ResizeParent obj)
    {
        // Disable body movement
        body.isKinematic = true;

        // Check if this object should now be out of view
        if ((obj.CurrentTier - ThisTier) > MaxTierDistance)
        {
            body.velocity           = Vector3.zero;
            transform.localPosition = originalLocalPosition;
            transform.localRotation = originalLocalRotation;
        }
    }
 public void ExtraSetup(ResizeParent obj)
 {
     if (IsActive(obj) == true)
     {
         // Un-embed
         gameObject.SetActive(true);
         transform.SetParent(null, true);
     }
     else
     {
         gameObject.SetActive(false);
     }
 }
Ejemplo n.º 15
0
    void UpdateEmbedItem(ResizeParent obj)
    {
        // If so, embed this tier to itemPlacement first
        embedItem.transform.SetParent(itemPlacement, false);
        embedItem.transform.localPosition = Vector3.zero;
        embedItem.transform.localScale    = Vector3.one;
        embedItem.transform.localRotation = Quaternion.identity;

        // Update the tier of this object
        embedItem.CurrentTier = ThisTier + 1;

        // Parent this to the resize parent
        embedItem.transform.SetParent(obj.transform, true);
    }
    private bool IsLabelVisible(ResizeParent obj)
    {
        bool returnFlag = false;

        switch (giveLabelsClarityOn)
        {
        case TierComparison.ParentTier:
            returnFlag = (obj.CurrentTier > ThisTier + 1);
            break;

        default:
            returnFlag = (obj.CurrentTier > ThisTier);
            break;
        }
        return(returnFlag);
    }
Ejemplo n.º 17
0
    private void Instance_OnBeforeResize(ResizeParent obj)
    {
        foreach (EnterTrigger trigger in growTriggers)
        {
            trigger.IsEnabled = false;
        }
        foreach (EnterTrigger trigger in shrinkTriggers)
        {
            trigger.IsEnabled = false;
        }

        // Turn on the ceiling
        if ((ThisTier == obj.CurrentTier) && (obj.currentDirection == ResizeParent.ResizeDirection.Shrinking))
        {
            ceiling.enabled = true;
        }
    }
Ejemplo n.º 18
0
    public void ExtraSetup(ResizeParent obj)
    {
        // Do embedded setup
        Instance_OnBeforeResize(obj);
        Instance_OnAfterResize(obj);

        // Update parents
        if ((embedItem != null) && (obj.AllPodiumsPerTier.ContainsKey(embedItem) == true))
        {
            // Go through all the podiums in the embedded tier
            foreach (Podium childPodium in obj.AllPodiumsPerTier[embedItem])
            {
                // Set their parent to this tier
                childPodium.parentItems.Add(ParentTier);
            }
        }
    }
    protected override void Instance_OnBeforeResize(ResizeParent obj)
    {
        // Call base function
        base.Instance_OnBeforeResize(obj);

        if ((interactiveIndicator != null) && (HeldIn != null))
        {
            if ((obj.CurrentTier == HeldIn.InteractiveTier) && (HeldIn.ThisType != ItemHolder.Type.Player))
            {
                interactiveIndicator.Play();
            }
            else
            {
                interactiveIndicator.Stop();
            }
        }
    }
 protected virtual void Instance_OnBeforeResize(ResizeParent obj)
 {
     // Check if this code is super large
     if (ThisTier >= 0)
     {
         foreach (RectTransform canvas in canvases)
         {
             if (IsLabelVisible(obj) == true)
             {
                 MakeLabelClear(canvas);
             }
             else
             {
                 MakeLabelFuzzy(canvas);
             }
         }
     }
 }
Ejemplo n.º 21
0
    private void Instance_OnBeforeResize(ResizeParent obj)
    {
        if (ResizeParent.Instance.LatestTier == ParentTier)
        {
            if (obj.currentDirection == ResizeParent.ResizeDirection.Shrinking)
            {
                if ((ThisTier - 1) == obj.CurrentTier)
                {
                    // Setup one parent up
                    ResizingTier parentItemLevel0 = SetupParent(obj, this, 2);
                    ResizingTier parentItemLevel1 = null;
                    if (parentItemLevel0 != null)
                    {
                        // Grab the next parent up
                        Podium parentPodium = UpdateParentItem(obj, parentItemLevel0, ResizeParent.Instance.ShrinkScaleVector);

                        // Setup the 2nd level parent
                        parentItemLevel1 = SetupParent(obj, parentPodium, 3);
                    }

                    // Parent this to the resize parent
                    if (parentItemLevel0 != null)
                    {
                        parentItemLevel0.transform.SetParent(obj.transform, true);
                    }
                    if (parentItemLevel1 != null)
                    {
                        parentItemLevel1.transform.SetParent(obj.transform, true);
                    }
                }
            }
            else
            {
                if ((embedItem != null) && (ThisTier == obj.CurrentTier))
                {
                    // Check if this object is only one step smaller than the current tier
                    UpdateEmbedItem(obj);
                }
            }
        }
    }
Ejemplo n.º 22
0
    private void Instance_OnAfterResize(ResizeParent obj)
    {
        if (obj.CurrentTier == ThisTier)
        {
            foreach (EnterTrigger trigger in shrinkTriggers)
            {
                trigger.IsEnabled = true;
            }
        }
        else if ((obj.CurrentTier + 1) == ThisTier)
        {
            foreach (EnterTrigger trigger in growTriggers)
            {
                trigger.IsEnabled = true;
            }
        }

        foreach (EnterTrigger trigger in shrinkTriggers)
        {
            trigger.gameObject.SetActive((ThisTier > 0) && (enabledSpring == true));
        }
    }
 bool IsActive(ResizeParent obj)
 {
     return(Mathf.Abs(obj.CurrentTier - CurrentTier) <= 1);
 }
Ejemplo n.º 24
0
 protected virtual void Instance_OnAfterResize(ResizeParent obj)
 {
     UpdateAnimation();
 }