void TweenPositionPushOutFinished()
{
mTransitionPushOutCount--;
if(mTransitionPushOutCount > 0 || mPaneStack.Count == 0)
return;
mPaneStack.Add(mNextPanelSet);
foreach(GameObject pPane in mNextPanelSet)
{
pPane.SendMessage("TansitionInStarted", SendMessageOptions.DontRequireReceiver);
TweenPosition pTweenPosition = pPane.GetComponent<TweenPosition>();
if(pTweenPosition != null)
{
pTweenPosition.Play(true);
pTweenPosition.eventReceiver = gameObject;
pTweenPosition.callWhenFinished = "TweenPositionPopInFinished";
mTransitionPopInCount++;
}
}
mNextPanelSet = null;
}
void TweenPositionPopInFinished()
{
mTransitionPopInCount--;
if(mTransitionPopInCount > 0)
return;
List<GameObject> pLastSet = mPaneStack[mPaneStack.Count - 1];
foreach(GameObject pPane in pLastSet)
{
pPane.SendMessage("TansitionInFinished", SendMessageOptions.DontRequireReceiver);
}
}
void TweenPositionPopOutFinished()
{
mTransitionPopOutCount--;
if(mTransitionPopOutCount > 0 || mPaneStack.Count == 0)
return;
List<GameObject> pLastSet = mPaneStack[mPaneStack.Count - 1];
foreach(GameObject pPane in pLastSet)
{
TweenPosition pTweenPosition = pPane.GetComponent<TweenPosition>();
if(pTweenPosition != null)
{
pTweenPosition.Play(true);
pTweenPosition.eventReceiver = gameObject;
pTweenPosition.callWhenFinished = "TweenPositionPushInFinished";
mTransitionPushInCount++;
}
}
}
void TweenPositionPushInFinished()
{
mTransitionPushInCount--;
if(mTransitionPushInCount > 0)
return;
}
// gets the current level for future re-wind call
public int getLevelCount()
{
return mPaneStack.Count;
}
public void pushPanes(List<GameObject> pListSet, string callWhenFinished, GameObject pEventReceiver)
{
if(mPaneStack.Count == 0)
{
mPaneStack.Add(pListSet);
return;
}
mLastSet = mPaneStack[mPaneStack.Count - 1];
mNextPanelSet = pListSet;
foreach(GameObject pPane in mLastSet)
{
if(mNextPanelSet.Contains(pPane))
continue;
TweenPosition pTweenPosition = pPane.GetComponent<TweenPosition>();
if(pTweenPosition != null)
{
pTweenPosition.Play(false);
pTweenPosition.eventReceiver = gameObject;
pTweenPosition.callWhenFinished = "TweenPositionPushOutFinished";
mTransitionPushOutCount++;
}
}
}
public List<GameObject> popPanes()
{
if(mPaneStack.Count < 2)
return null;
List<GameObject> p2ndToLastSet = mPaneStack[mPaneStack.Count - 2];
List<GameObject> pLastSet = mPaneStack[mPaneStack.Count - 1];
foreach(GameObject pPane in pLastSet)
{
if(p2ndToLastSet.Contains(pPane))
continue;
TweenPosition pTweenPosition = pPane.GetComponent<TweenPosition>();
if(pTweenPosition != null)
{
pTweenPosition.Play(false);
pTweenPosition.eventReceiver = gameObject;
pTweenPosition.callWhenFinished = "TweenPositionPopOutFinished";
mTransitionPopOutCount++;
}
}
mPaneStack.Remove(pLastSet);
return pLastSet;
}