Exemple #1
0
        private void InvokeChildren(StateChildMethods method)
        {
            foreach (var state in Substates)
            {
                IStateBehavior behavior = state.Value;

                switch (method)
                {
                case StateChildMethods.Enter:
                    behavior.OnStateEnter();
                    break;

                case StateChildMethods.Update:
                    behavior.OnStateUpdate();
                    break;

                case StateChildMethods.Render:
                    behavior.OnStateRender();
                    break;

                case StateChildMethods.Exit:
                    behavior.OnStateExit();
                    break;

                default:
                    Debug.WriteLine("Cannot invoke this method as sync.");
                    break;
                }
            }
        }
Exemple #2
0
        private async Task InvokeChildrenAsync(StateChildMethods method)
        {
            foreach (var state in Substates)
            {
                IStateBehavior behavior = state.Value;

                switch (method)
                {
                case StateChildMethods.UpdateAsync:
                    await behavior.OnStateUpdateAsync();

                    break;

                case StateChildMethods.RenderAsync:
                    await behavior.OnStateRenderAsync();

                    break;

                default:
                    Debug.WriteLine("Cannot invoke this method as async.");
                    break;
                }
            }
        }