using StansAssets.Foundation.Patterns; using System; using System.Collections.Generic; namespace StansAssets.SceneManagement { public class StackChangeEvent : StackEvent where TEnum : Enum { static readonly DefaultPool> s_EventsPool = new DefaultPool>(); public StackAction Action { get; private set; } public static StackChangeEvent GetPooled(StackAction action, TEnum state) { var e = s_EventsPool.Get(); e.Action = action; e.State = state; return e; } public static void Release(StackChangeEvent stackChangeEvent) { s_EventsPool.Release(stackChangeEvent); } } }