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); }
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); }
protected override void OnThisTierChanged(ResizingTier obj) { if (labelCache == null) { labelCache = GetComponent <CodeLabel>(); } labelCache.OnTierChanged(); }
protected override void OnThisTierChanged(ResizingTier obj) { base.OnThisTierChanged(obj); if (trigger != null) { trigger.IsEnabled = (obj.CurrentTier == ThisTier); } }
protected override void OnThisTierChanged(ResizingTier obj) { if ((trigger != null) && (gameObject.activeInHierarchy == true)) { trigger.IsEnabled = false; OnGazeExit(null); } //AssociatedCode.OnTierChanged(); UpdateAnimation(); }
protected override void OnThisTierChanged(ResizingTier obj) { // If holding an item, change this item's tier value // (or do it automatically from the item's perspective) if (HoldingItem != null) { HoldingItem.OnTierChanged(); } UpdateParticles(); Instance_OnAfterResize(ResizeParent.Instance); }
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); } } } }
protected override void OnThisTierChanged(ResizingTier obj) { Instance_OnAfterResize(ResizeParent.Instance); }
protected abstract void OnThisTierChanged(ResizingTier obj);
public TierPath(ResizingTier start, ResizingTier end) { this.start = start; this.end = end; }
protected override void OnThisTierChanged(ResizingTier obj) { // Do nothing }
protected override void OnThisTierChanged(ResizingTier obj) { // Do nothing //throw new NotImplementedException(); }
protected override void OnThisTierChanged(ResizingTier obj) { UpdateAnimation(); }