private void CreateStates() { states.Clear(); m_passiveHash.Clear(); m_coolGroups.Clear(); var ss = info.states; foreach (var s in ss) { CreateState(s, info); } StateMachineInfoPassive psm = null; foreach (var sub in subStateMachines) { if (psm == null && sub is StateMachineInfoPassive) { psm = sub as StateMachineInfoPassive; } foreach (var s in sub.states) { CreateState(s, sub); } } m_laydown = GetState(StateMachineState.STATE_LAYDOWN); if (!m_laydown) { var p = psm ?? info; CreateState(StateMachineInfo.GetDefaultLaydownState(p.GetType().GetHashCode(), p.ID), p); } if (states.Count < 1) { states.Add(StateMachineState.Create(this, info, StateMachineInfo.emptyState, SkilLEntry.empty)); } }