public void AddFacet(IGameFacet facet, FacetTransition transition) { if (transition != null && facets.Count > 0) { if (!transition.IsSetup) transition.Setup(facets.Peek(), facet); activeTransition = transition; } facets.Push(facet); facet.Initialize(); }
public void ReplaceMeWith(IGameFacet facet, FacetTransition transition) { IGameFacet top = facets.Pop(); facets.Push(facet); if (activeTransition == null && transition != null) { activeTransition = transition; if (!activeTransition.IsSetup && facets.Count > 0) { activeTransition.Setup(top, facet); } activeTransition.OnCleanup += (iasr => { top.Cleanup(); }); } facet.Initialize(); }