MegaMan.Engine.StateComponent.LoadInfo C# (CSharp) Method

LoadInfo() private method

private LoadInfo ( StateComponentInfo componentInfo ) : void
componentInfo StateComponentInfo
return void
        internal void LoadInfo(StateComponentInfo componentInfo)
        {
            foreach (var stateInfo in componentInfo.States)
            {
                var state = new State() { Name = stateInfo.Name };
                foreach (var trigger in stateInfo.Triggers)
                {
                    state.AddTrigger(ParseTrigger(trigger));
                }

                state.SetInitial(EffectParser.LoadTriggerEffect(stateInfo.Initializer));
                state.SetLogic(EffectParser.LoadTriggerEffect(stateInfo.Logic));

                states[state.Name] = state;
            }

            foreach (var triggerInfo in componentInfo.Triggers)
            {
                var trigger = ParseTrigger(triggerInfo.Trigger);

                if (triggerInfo.States != null)
                {
                    foreach (var stateName in triggerInfo.States)
                    {
                        if (!states.ContainsKey(stateName))
                        {
                            State state = new State {Name = stateName};
                            states.Add(stateName, state);
                        }
                        states[stateName].AddTrigger(trigger);
                    }
                }
                else
                {
                    foreach (var state in states.Values)
                    {
                        state.AddTrigger(trigger);
                    }
                }
            }
        }