public IStoryValue <object> CalcValue(ScriptableData.ISyntaxComponent param) { if (param.IsValid() && param.GetId().Length == 0) { //处理括弧 ScriptableData.CallData callData = param as ScriptableData.CallData; if (null != callData && callData.GetParamNum() > 0) { int ct = callData.GetParamNum(); return(CalcValue(callData.GetParam(ct - 1))); } else { //不支持的语法 return(null); } } else { IStoryValue <object> ret = null; string id = param.GetId(); if (m_dicValueHandlers.ContainsKey(id)) { ret = m_dicValueHandlers[id].Build(param); } return(ret); } }
protected override void Load(FunctionData funcData) { ScriptableData.CallData callData = funcData.Call; if (null != callData) { Load(callData); foreach (ScriptableData.ISyntaxComponent statement in funcData.Statements) { ScriptableData.CallData stCall = statement as ScriptableData.CallData; string id = stCall.GetId(); string param = stCall.GetParamId(0); if (id == "direction") { if (stCall.GetParamNum() >= 1) { m_DirectionType = (DirectionType)int.Parse(stCall.GetParamId(0)); } if (stCall.GetParamNum() >= 2) { m_AlwaysUpdateDirection = bool.Parse(stCall.GetParamId(1)); } } } } }
protected override void Load(ScriptableData.CallData callData) { if (callData.GetParamNum() > 0) { // m_IsLockRotate = bool.Parse(callData.GetParamId(0)); } m_SectionList.Clear(); int section_num = 0; while (callData.GetParamNum() >= 7 * (section_num + 1) + 1) { MoveSectionInfo section = new MoveSectionInfo(); section.moveTime = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 1)); section.speedVect.x = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 2)); section.speedVect.y = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 3)); section.speedVect.z = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 4)); section.accelVect.x = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 5)); section.accelVect.y = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 6)); section.accelVect.z = (float)System.Convert.ToDouble(callData.GetParamId((section_num * 7) + 7)); m_SectionList.Add(section); section_num++; } if (m_SectionList.Count == 0) { return; } m_IsCurveMoving = true; }
protected override void Load(ScriptableData.FunctionData funcData) { ScriptableData.CallData callData = funcData.Call; if (null != callData) { Load(callData); foreach (ScriptableData.ISyntaxComponent statement in funcData.Statements) { ScriptableData.CallData stCall = statement as ScriptableData.CallData; if (null != stCall && stCall.GetParamNum() > 0) { string id = stCall.GetId(); string param = stCall.GetParamId(0); if (id == "speed") { m_Speed = float.Parse(param); if (stCall.GetParamNum() >= 2) { m_IsEffectSkillTime = bool.Parse(stCall.GetParamId(1)); } } else if (id == "weight") { m_Weight = float.Parse(param); } else if (id == "layer") { m_Layer = int.Parse(param); } else if (id == "playmode") { m_PlayMode = int.Parse(param); if (stCall.GetParamNum() >= 2) { m_CrossFadeTime = long.Parse(stCall.GetParamId(1)); } } else if (id == "blendmode") { m_BlendMode = int.Parse(param); } else if (id == "mixingnode") { m_MixingNode = param; } else if (id == "wrapmode") { m_WrapMode = int.Parse(param); } } } } }
protected override void Load(ScriptableData.CallData callData) { if (callData.GetParamNum() > 0) { m_ChildName = callData.GetParamId(0); } if (callData.GetParamNum() > 1) { m_NodeName = callData.GetParamId(1); } }
protected override void Load(FunctionData funcData) { ScriptableData.CallData callData = funcData.Call; if (null == callData) { return; } Load(callData); for (int i = 0; i < funcData.Statements.Count; ++i) { ScriptableData.CallData stCall = funcData.Statements[i] as ScriptableData.CallData; if (null == stCall) { continue; } if (stCall.GetId() == "mainplayer") { m_MainPlayer = true; } if (stCall.GetId() == "skill") { if (stCall.GetParamNum() >= 1) { m_SkillId = int.Parse(stCall.GetParamId(0)); } } } }
protected override void Load(ScriptableData.CallData callData) { int num = callData.GetParamNum(); if (num > 0) { m_AnimName = callData.GetParamId(0); } }
protected override void Load(ScriptableData.CallData callData) { int num = callData.GetParamNum(); if (num >= 2) { m_AnimName = callData.GetParamId(0); m_Speed = float.Parse(callData.GetParamId(1)); } }
/// <summary> /// 加载命令,存到loaded的链表中 /// </summary> /// <param name="messageHandlerData"></param> public void Load(ScriptableData.FunctionData messageHandlerData) { ScriptableData.CallData callData = messageHandlerData.Call; if (callData != null && callData.HaveParam()) { int argsNum = callData.GetParamNum(); string[] args = new string[argsNum]; for (int i = 0; i < argsNum; i++) { args[i] = callData.GetParamId(i); } m_sMessageId = string.Join(":", args); } RefreshCommand(messageHandlerData); }
protected override void Load(ScriptableData.CallData callData) { int num = callData.GetParamNum(); if (num > 0) { m_EffectPath = callData.GetParamId(0); } if (num > 1) { m_DeleteTime = float.Parse(callData.GetParamId(1)) / 1000.0f; } if (num > 2) { m_AttachPath = callData.GetParamId(2); } if (num > 3) { m_IsAttach = bool.Parse(callData.GetParamId(3)); } }
public static string getCallString(CallData data) { #if FULL_VERSION string lineNo = "";//formatString("/* %d */",data.GetLine()); string line = ""; if (data.IsHighOrder) { line = getCallString(data.Call); } else if (data.HaveId()) { line = quoteString(data.GetId(), data.GetIdType()); } if (data.HaveParam()) { int paramClass = data.GetParamClass(); if ((int)CallData.ParamClassEnum.PARAM_CLASS_OPERATOR == paramClass) { switch (data.GetParamNum()) { case 1: return(string.Format("{0} {1}", line, data.GetParam(0).ToScriptString())); case 2: return(string.Format("{0} {1} {2}", data.GetParam(0).ToScriptString(), line, data.GetParam(1).ToScriptString())); default: return(line); } } else { string lbracket = ""; string rbracket = ""; switch (paramClass) { case (int)CallData.ParamClassEnum.PARAM_CLASS_PARENTHESIS: lbracket = "("; rbracket = ")"; break; case (int)CallData.ParamClassEnum.PARAM_CLASS_BRACKET: lbracket = "["; rbracket = "]"; break; case (int)CallData.ParamClassEnum.PARAM_CLASS_PERIOD: lbracket = "."; rbracket = ""; break; case (int)CallData.ParamClassEnum.PARAM_CLASS_PERIOD_PARENTHESIS: lbracket = ".("; rbracket = ")"; break; case (int)CallData.ParamClassEnum.PARAM_CLASS_PERIOD_BRACKET: lbracket = ".["; rbracket = "]"; break; case (int)CallData.ParamClassEnum.PARAM_CLASS_PERIOD_BRACE: lbracket = ".{"; rbracket = "}"; break; } StringBuilder stream = new StringBuilder(); stream.Append(lbracket); int ct = data.GetParamNum(); for (int i = 0; i < ct; ++i) { if (i > 0) { stream.Append(","); } ISyntaxComponent param = data.GetParam(i); if ((int)CallData.ParamClassEnum.PARAM_CLASS_PERIOD == paramClass) { stream.Append(unquoteString(param.ToScriptString())); } else { stream.Append(param.ToScriptString()); } } stream.Append(rbracket); return(string.Format("{0}{1}{2}", lineNo, line, stream.ToString())); } } else { return(string.Format("{0}{1}", lineNo, line)); } #else return(""); #endif }