Example #1
0
    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));
        }
    }