Esempio n. 1
0
 /// <summary>
 /// 初始化剧情命令
 /// </summary>
 /// <param name="config"></param>
 public void Init(ScriptableData.ISyntaxComponent config)
 {
     ScriptableData.CallData callData = config as ScriptableData.CallData;
     if (callData != null)
     {
         Load(callData);
     }
     else
     {
         ScriptableData.FunctionData funcData = config as ScriptableData.FunctionData;
         if (funcData != null)
         {
             Load(funcData);
         }
         else
         {
             ScriptableData.StatementData stateData = config as ScriptableData.StatementData;
             if (stateData != null)
             {
                 Load(stateData);
             }
             else
             {
                 Debug.LogError("剧情命令不能解析");
             }
         }
     }
 }
Esempio n. 2
0
 public void AddStatement(StatementData statement)
 {
     m_Statements.Add(statement);
     if ((int)ExtentClassEnum.EXTENT_CLASS_STATEMENT != m_ExtentClass)
     {
         m_ExtentClass = (int)ExtentClassEnum.EXTENT_CLASS_STATEMENT;
     }
 }
Esempio n. 3
0
 public void AddParams(StatementData param)
 {
     m_Params.Add(param);
     if ((int)ParamClassEnum.PARAM_CLASS_NOTHING == m_ParamClass)
     {
         m_ParamClass = (int)ParamClassEnum.PARAM_CLASS_PARENTHESIS;
     }
 }
Esempio n. 4
0
        public static void writeSyntaxComponent(StringBuilder stream, ISyntaxComponent data, int indent, bool isLastOfStatement)
        {
#if FULL_VERSION
            ValueData val = data as ValueData;
            if (null != val)
            {
                if (isLastOfStatement)
                {
                    writeLine(stream, val.ToScriptString() + ";", indent);
                }
                else
                {
                    writeLine(stream, val.ToScriptString(), indent);
                }
            }
            else
            {
                CallData call = data as CallData;
                if (null != call)
                {
                    if (isLastOfStatement)
                    {
                        writeLine(stream, call.ToScriptString() + ";", indent);
                    }
                    else
                    {
                        writeLine(stream, call.ToScriptString(), indent);
                    }
                }
                else
                {
                    FunctionData function = data as FunctionData;
                    if (null != function)
                    {
                        writeFunctionData(stream, function, indent, isLastOfStatement);
                    }
                    else
                    {
                        StatementData statement = data as StatementData;
                        writeStatementData(stream, statement, indent);
                    }
                }
            }
#endif
        }
Esempio n. 5
0
        public static void writeStatementData(StringBuilder stream, StatementData data, int indent)
        {
#if FULL_VERSION
            FunctionData tempData = data.First;
            CallData     callData = tempData.Call;
            if (null != callData && callData.GetParamClass() == (int)CallData.ParamClassEnum.PARAM_CLASS_TERNARY_OPERATOR)
            {
                if (callData.HaveId() && callData.HaveParam() && tempData.HaveStatement())
                {
                    string line = string.Format("{0} {1} {2}", callData.GetParam(0).ToScriptString(), callData.GetId(), tempData.GetStatement(0).ToScriptString());
                    if (data.Functions.Count == 2)
                    {
                        FunctionData funcData = data.Functions[1];
                        if (funcData.HaveId() && funcData.HaveStatement())
                        {
                            line = string.Format("{0} {1} {2}", line, funcData.GetId(), funcData.GetStatement(0).ToScriptString());
                        }
                    }
                    writeLine(stream, line + ";", indent);
                }
            }
            else
            {
                int  ct = data.Functions.Count;
                bool isLastOfStatement = false;
                if (ct == 0)
                {
                    isLastOfStatement = true;
                }
                for (int i = 0; i < ct; ++i)
                {
                    if (i == ct - 1)
                    {
                        isLastOfStatement = true;
                    }
                    FunctionData func = data.Functions[i];
                    writeFunctionData(stream, func, indent, isLastOfStatement);
                }
            }
#endif
        }
Esempio n. 6
0
 public void CopyFrom(StatementData other)
 {
     m_Functions = other.m_Functions;
 }
Esempio n. 7
0
 protected virtual void Load(ScriptableData.StatementData stateData)
 {
 }