/// <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("剧情命令不能解析"); } } } }
public void AddStatement(StatementData statement) { m_Statements.Add(statement); if ((int)ExtentClassEnum.EXTENT_CLASS_STATEMENT != m_ExtentClass) { m_ExtentClass = (int)ExtentClassEnum.EXTENT_CLASS_STATEMENT; } }
public void AddParams(StatementData param) { m_Params.Add(param); if ((int)ParamClassEnum.PARAM_CLASS_NOTHING == m_ParamClass) { m_ParamClass = (int)ParamClassEnum.PARAM_CLASS_PARENTHESIS; } }
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 }
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 }
public void CopyFrom(StatementData other) { m_Functions = other.m_Functions; }
protected virtual void Load(ScriptableData.StatementData stateData) { }