Esempio n. 1
0
    public void LoadFSMVariables(Fsm fsm, string id)
    {
        if (subFsmVars == null)
        {
            subFsmVars = new Dictionary <string, Variables>();
        }
        bool      flag  = false;
        Variables value = fsmVars;

        if (value.FSMID == id)
        {
            flag = true;
        }
        else if (subFsmVars.ContainsKey(id))
        {
            value = subFsmVars[id];
            flag  = true;
        }
        if (!flag)
        {
            return;
        }
        FsmVariables variables = fsm.Variables;

        if (value.Floats != null)
        {
            for (int i = 0; i < value.Floats.Length; i++)
            {
                variables.GetFsmFloat(value.Floats[i].Name).Value = value.Floats[i].Value;
            }
        }
        if (value.Ints != null)
        {
            for (int i = 0; i < value.Ints.Length; i++)
            {
                variables.GetFsmInt(value.Ints[i].Name).Value = value.Ints[i].Value;
            }
        }
        if (value.Strings != null)
        {
            for (int i = 0; i < value.Strings.Length; i++)
            {
                variables.GetFsmString(value.Strings[i].Name).Value = value.Strings[i].Value;
            }
        }
        if (value.Bools != null)
        {
            for (int i = 0; i < value.Bools.Length; i++)
            {
                variables.GetFsmBool(value.Bools[i].Name).Value = value.Bools[i].Value;
            }
        }
        if (value.Vec2s != null)
        {
            for (int i = 0; i < value.Vec2s.Length; i++)
            {
                variables.GetFsmVector2(value.Vec2s[i].Name).Value = value.Vec2s[i].Value;
            }
        }
        if (value.Vec3s != null)
        {
            for (int i = 0; i < value.Vec3s.Length; i++)
            {
                variables.GetFsmVector3(value.Vec3s[i].Name).Value = value.Vec3s[i].Value;
            }
        }
        if (fsmVars.FSMID == id)
        {
            fsmVars = value;
        }
        else if (subFsmVars.ContainsKey(id))
        {
            subFsmVars[id] = value;
        }
    }