/// <summary> /// 把IL文件的一行解析为SceneActionPackage /// </summary> /// <param name="oneline">IL文件的行</param> /// <returns>动作序列包</returns> private SceneActionPackage ParseSceneActionPackage(string oneline) { SceneActionPackage sa = null; string[] lineitem = oneline.Split('^'); if (lineitem.Length == this.IL_LINEITEM_NUM) { sa = new SceneActionPackage(); sa.saNodeName = lineitem[0]; sa.aType = (SActionType)Enum.Parse(typeof(SActionType), lineitem[0].Split('@')[1], false); sa.argsDict = this.DispatchArgs(lineitem[1]); sa.condPolish = this.DecodeString(lineitem[2]); sa.next = lineitem[3]; sa.trueRouting = this.DispatchRouting(lineitem[4]); sa.falseRouting = this.DispatchRouting(lineitem[5]); sa.isBelongFunc = lineitem[6] == "1"; sa.funcName = lineitem[7]; sa.aTag = this.DecodeString(lineitem[8]); } else { throw new Exception("IL损坏"); } return sa; }
/// <summary> /// 带SAP项的构造函数 /// </summary> /// <param name="sap">SceneActionPackage项目</param> public SceneAction(SceneActionPackage sap) { this.saNodeName = sap.saNodeName; this.aType = (SActionType)Enum.Parse(typeof(SActionType), sap.saNodeName.Split('@')[1]); this.argsDict = new Dictionary<string, string>(sap.argsDict); this.condPolish = sap.condPolish; this.isBelongFunc = sap.isBelongFunc; this.funcName = sap.funcName; this.aTag = sap.aTag; }