public virtual IPara GetTargetPara(IEventArgs args, IPara source) { IPara replace = ExpSetParser.GetReplaceValue(unitPara.GetPara(), args); if (replace != null) { return(replace); } IParable p1 = args.GetUnit(unitPara.GetUnit()); if (p1 != null) { IPara p = unitPara.GetPara(args); if (p == null) { p = source.Initial(op, unitPara.GetPara()); } return(p); } else { if (!StringUtil.IsNullOrEmpty(unitPara.GetUnit())) { return(source.Initial(op, unitPara.GetUnit() + "." + unitPara.GetPara())); } else { return(source.Initial(op, unitPara.GetPara())); } } }
public override void DoAction(IEventArgs args) { UnitPara up = UnitPara.Parse(FreeUtil.ReplaceVar(this.para, args))[0]; IPara para = up.GetPara(args); if (para != null) { double d = FreeUtil.ReplaceDouble(formula, args); if (para is IntPara) { para.SetValue("=", new IntPara(string.Empty, (int)d)); } if (para is FloatPara) { para.SetValue("=", new FloatPara(string.Empty, (float)d)); } if (para is DoublePara) { para.SetValue("=", new DoublePara(string.Empty, d)); } else { IPara v = new DoublePara("v", d); para.SetValue("=", v); } } }
public static void Stop(long s, IGameAction action, IEventArgs args) { if (enable) { foreach (ParaExp pe in paras) { IPara p = GetPara(args, pe); if (p != null) { FreeLog.LogKey key = new FreeLog.LogKey(s, pe.ToString(), action.ToString()); if (value.ContainsKey(key)) { if (!value[key].GetFrom().Meet("==", p)) { // 去除外层的改变action FreeLog.LogKey v = value[key]; if (v.seq > lastSeq) { v.to = (IPara)p.Copy(); logs.Add(v); lastSeq = v.seq; } value[key].to = (IPara)p.Copy(); } } } } index--; } }
public void TempUsePara(IPara para) { if (map.ContainsKey(DEFAULT)) { map[DEFAULT].GetParameters().TempUse(para); } }
public void Trigger(int eventId, IPara para) { triggerArgs.Reset(); triggerArgs.AddPara(para); triggerArgs.Trigger(this, _triggers, eventId); }
public override void DoAction(IEventArgs args) { if (StringUtil.IsNullOrEmpty(key)) { key = BaseEventArgs.DEFAULT; } IParable unit = args.GetUnit(key); if (unit != null) { IPara sort = unit.GetParameters().Get(sorter); if (sort != null && sort is ParaListSet) { ParaListSet pls = (ParaListSet)sort; IParable pa = Get(); if (action != null) { args.TempUse(TEMP_SORT, pa); args.TempUse("element", pa); action.Act(args); args.Resume("element"); args.Resume(TEMP_SORT); } pls.AddParaList(pa.GetParameters()); } } }
public virtual bool Meet(IEventArgs args) { if (value.IsNull()) { if (con.Equals("==")) { return(!para.IsNotNull(args)); } else { if (con.Equals("<>")) { return(para.IsNotNull(args)); } } } IPara source = para.GetSourcePara(args); if (source != null) { IPara target = value.GetTargetPara(args, source); try { bool r = source.Meet(con, target); target.Recycle(); return(r); } catch (Exception e) { throw new GameConfigExpception(para.ToString() + con + value.ToString() + " is not valid.\n" + ExceptionUtil.GetExceptionContent(e)); } } return(false); }
public override void DoAction(IEventArgs args) { if (StringUtil.IsNullOrEmpty(key)) { key = BaseEventArgs.DEFAULT; } IParable unit = args.GetUnit(key); if (unit != null) { IPara sort = unit.GetParameters().Get(sorter); if (sort != null) { ParaListSet pls = (ParaListSet)sort; IList <ParaList> removes = new List <ParaList>(); foreach (ParaList pl in pls) { if (StringUtil.IsNullOrEmpty(exp) || pl.Meet(exp)) { removes.Add(pl); } } foreach (ParaList pl_1 in removes) { pls.RemoveParaList(pl_1); } } } }
public override void DoAction(IEventArgs args) { if (StringUtil.IsNullOrEmpty(key)) { key = BaseEventArgs.DEFAULT; } IParable unit = args.GetUnit(key); if (unit != null) { IPara sort = unit.GetParameters().Get(sorter); if (sort != null) { ParaListSet pls = (ParaListSet)sort; if (action != null) { ParaListSet temp = pls.Sort(FreeUtil.ReplaceVar(exp, args)); temp.SetName(pls.GetName()); unit.GetParameters().TempUse(temp); action.Act(args); unit.GetParameters().Resume(temp.GetName()); } if (!keep) { pls.ReOrder(); } } } }
private void AddTo(string[] fields, IParable target, ParaList to) { foreach (string field in fields) { FieldPair fp = FieldPair.Parse(field)[0]; ParaList tp = target.GetParameters(); if (tp.HasPara(fp.GetFrom())) { IPara para = tp.Get(fp.GetFrom()); if (para != null) { IPara clone = (IPara)para.Copy(); clone.SetName(fp.GetTo()); if (@override || !to.HasPara(fp.GetTo())) { to.AddPara(clone); } else { to.AddPara(clone); } } } } }
public override void DoAction(IEventArgs args) { IParable p = null; if (StringUtil.IsNullOrEmpty(key)) { p = args.GetDefault(); } else { p = args.GetUnit(key); } if (p != null && paras != null) { foreach (IPara para in paras) { if (!p.GetParameters().HasPara(para) || @override) { IPara clone = (IPara)para.Copy(); clone.SetName(FreeUtil.ReplaceVar(clone.GetName(), args)); p.GetParameters().AddPara(clone); } } } }
public void TempUsePara(IPara para) { if (null == defaultParas) { return; } defaultParas.GetParameters().TempUse(para); }
public void TempUsePara(IPara para) { //if (map.ContainsKey(DEFAULT)) //{ // map[DEFAULT].GetParameters().TempUse(para); //} useArgs.TempUsePara(para); }
public static void Register(IPara para) { ICollection <string> ops = new HashSet <string>(); Sharpen.Collections.AddAll(ops, Arrays.AsList(OPS)); Sharpen.Collections.AddAll(ops, Arrays.AsList(para.GetConditions())); OPS = Sharpen.Collections.ToArray(ops, new string[0]); }
/// <summary> /// Adds the given element to the collection /// </summary> /// <param name="item">The item to add</param> public override void Add(IModelElement item) { IPara parasCasted = item.As <IPara>(); if ((parasCasted != null)) { this._parent.Paras.Add(parasCasted); } }
/// <summary> /// Removes the given item from the collection /// </summary> /// <returns>True, if the item was removed, otherwise False</returns> /// <param name="item">The item that should be removed</param> public override bool Remove(IModelElement item) { IPara paraItem = item.As <IPara>(); if (((paraItem != null) && this._parent.Paras.Remove(paraItem))) { return(true); } return(false); }
private void btnTempTest_Click(object sender, System.EventArgs e) { //frmMain.msg.clear(); frmMain.labStatus.Text = ""; if (lstTemp.CheckedItems.Count < 1) { frmMain.labStatus.Text = "no template be selected in list."; return; } XmlDocument xmldoc2 = getXMLTemplate(); if (xmldoc2 == null) { frmMain.labStatus.Text = "XML file is not valid."; return; } XmlNodeList nodeList = xmldoc2.SelectNodes("config/template"); //create new IPara IPara ipara = frmMain.CreateIPara(); //set filed value ipara = frmMain.CreateSampleFiled(ipara); //テンプレートごとに出力処理 txtTempTest.Text = ""; for (int loopj = 0; loopj < nodeList.Count; loopj++) { ipara.TemplateNode = nodeList[loopj]; string stitle = ""; if (nodeList[loopj].Attributes["title"] != null) { stitle = nodeList[loopj].Attributes["title"].InnerText; if (nodeList[loopj].Attributes["language"] != null) { stitle = "[" + nodeList[loopj].Attributes["language"].InnerText + "] " + nodeList[loopj].Attributes["title"].InnerText; } } txtTempTest.AppendText("##################################################\r\n"); txtTempTest.AppendText("# " + stitle + "\r\n"); txtTempTest.AppendText("##################################################\r\n"); string sFileTxt = ClassExt.CreateClsFromTempString(ipara); if (sFileTxt != null) { txtTempTest.AppendText(sFileTxt); } else { txtTempTest.AppendText(" this file is Canceled by ipara\r\n"); } } frmMain.labStatus.Text = "only the selected template is created."; }
private static IPara GetPara(IEventArgs args, ParaExp pe) { if (pe.GetUnit().Equals("robot")) { foreach (string key in args.GetUnitKeys()) { if (key.Equals("robot")) { IParable parable = args.GetUnit(key); if (parable != null && parable.GetType().Name.Equals("FreeData")) { IPara para = parable.GetParameters().Get(pe.GetPara()); if (para != null) { return(para); } } } } } else { if (pe.GetUnit().Equals("player")) { foreach (string key in args.GetUnitKeys()) { if (!key.Equals("robot")) { IParable parable = args.GetUnit(key); if (parable != null && parable.GetType().Name.Equals("FreeData")) { IPara para = parable.GetParameters().Get(pe.GetPara()); if (para != null) { return(para); } } } } } else { IParable parable = args.GetUnit(pe.GetUnit()); if (parable != null) { return(pe.GetSourcePara(args)); } } } return(null); }
private void SetArg(FuncArg arg, IList <ArgValue> funcArgs, IEventArgs args) { ArgValue fa = GetArgValue(arg, funcArgs, args); if (fa != null) { IPara para = ParaUtil.GetPara(arg.GetType()); if (para != null) { try { IPara old = new ParaExp(fa.GetValue()).GetSourcePara(args); if (old != null) { if (old.GetValue() != null) { para = para.Initial("=", old.GetValue().ToString()); } else { para = para.Initial("=", string.Empty); } } else { para = para.Initial("=", FreeUtil.ReplaceNumber(fa.GetValue(), args)); } } catch (Exception) { para = para.Initial("=", FreeUtil.ReplaceNumber(fa.GetValue(), args)); } para.SetName("arg_" + arg.GetName()); args.GetDefault().GetParameters().TempUse(para); IPara p = (IPara)para.Borrow(); p.SetName(arg.GetName()); if (para.GetValue() != null) { p.SetValue("=", para); } args.GetDefault().GetParameters().TempUse(p); FreeLog.FuncArg(p.ToString()); } else { // 非简单变量 ((BaseEventArgs)args).TempUse(arg.GetName(), args.GetUnit(fa.GetValue())); } } }
public override void DoAction(IEventArgs args) { if (StringUtil.IsNullOrEmpty(key)) { key = BaseEventArgs.DEFAULT; } IParable unit = args.GetUnit(key); if (unit != null) { IPara sort = unit.GetParameters().Get(sorter); if (sort != null) { ParaListSet pls = (ParaListSet)sort; if (action != null) { Iterator <ParaList> it = pls.Iterator(); int i = 1; while (it.HasNext()) { ParaList pl = it.Next(); args.TempUse("element", new SimpleParable(pl)); args.GetDefault().GetParameters().TempUse(new IntPara("index", i++)); if (condition == null || condition.Meet(args)) { if (action != null) { action.Act(args); } if (FreeUtil.ReplaceBool(remove, args)) { it.Remove(); } } args.GetDefault().GetParameters().Resume("index"); args.Resume("element"); } if (i == 1) { if (noneAction != null) { noneAction.Act(args); } } } } } }
public override TestValue GetCaseValue(IEventArgs args) { TestValue tv = new TestValue(); FreeData fd = (FreeData)args.GetUnit(UnitTestConstant.Tester); if (fd != null) { IPara para = fd.GetParameters().Get(field); if (para != null) { tv.AddField(field, para.GetValue().ToString()); } } return(tv); }
public override void DoAction(IEventArgs args) { if (this.args != null) { foreach (ArgValue av in this.args) { ParaValue pv = new ParaValue(); pv.SetName(av.GetName()); pv.SetValue(av.GetValue()); IPara para = args.GetDefault().GetParameters().Get(av.GetName()); if (para != null) { if (para is IntPara) { pv.SetType("int"); } if (para is StringPara) { pv.SetType("string"); } if (para is BoolPara) { pv.SetType("bool"); } if (para is FloatPara) { pv.SetType("float"); } if (para is DoublePara) { pv.SetType("double"); } } // 如果为空,则说明在父规则中定义了当前规则的组件,所以忽略当前设置,直接使用父规则中的设置 // 如 bioPushcar引用了 bioComponent, reliveComponent, // bioComponent中也引用了reliveComponent,当bioComponent设置组件值时,reliveComponent还未初始化 // 则bioPushcar中的reliveComponent将在最后赋值,也是最终的值 IPara paraValue = pv.GetPara(args); if (paraValue != null) { args.GetDefault().GetParameters().AddPara(paraValue); } } } }
private void RemoveArg(FuncArg fa, IEventArgs args) { if (fa != null) { string t = fa.GetType(); if ("string".Equals(t) || "int".Equals(t) || "bool".Equals(t) || "float".Equals(t) || "long".Equals(t) || "double".Equals(t)) { IPara p = args.GetDefault().GetParameters().Get("arg_" + fa.GetName()); p.Recycle(); p = args.GetDefault().GetParameters().Get(fa.GetName()); p.Recycle(); args.GetDefault().GetParameters().Resume("arg_" + fa.GetName()); args.GetDefault().GetParameters().Resume(fa.GetName()); } else { ((BaseEventArgs)args).Resume(fa.GetName()); } } }
public virtual void Op(IEventArgs args) { IPara s = source.GetSourcePara(args); IPara tt1 = t1.GetTargetPara(args, s); if (t2 == null) { s.SetValue("=", tt1); } else { IPara tt2 = t2.GetTargetPara(args, s); IPara temp = (IPara)s.Borrow(); temp.SetValue("=", tt1); temp.SetValue(op, tt2); s.SetValue("=", temp); temp.Recycle(); tt2.Recycle(); } tt1.Recycle(); }
public static void Message(string msg, IEventArgs args) { if (enable) { IList <string> list = new List <string>(); foreach (ParaExp pe in paras) { IPara pa = GetPara(args, pe); if (pa != null) { list.Add(pa.GetName() + "=" + pa.GetValue()); } } messageCount++; messages.Add(messageCount + " " + DateTime.Now.ToString("u") + " " + msg + "\n 观察值:" + StringUtil.GetStringFromStrings(list, ", ")); if (messages.Count > 1000) { messages.Remove(0); } } }
public static long Start(IGameAction action, IEventArgs args) { if (enable) { long s = Runtime.NanoTime(); foreach (ParaExp pe in paras) { IPara p = GetPara(args, pe); if (p != null) { FreeLog.LogKey key = new FreeLog.LogKey(s, pe.ToString(), action.ToString()); key.index = index; key.seq = value.Count + 1; key.from = (IPara)p.Copy(); value[key] = key; } } index++; return(s); } return(0L); }
public cc.Table UserTypeContrast() { //add user defined typies IPara ipara = new IPara(); cc.Table tblUserType = ipara.tblUserType; for (int i = 0; i < lstType.Items.Count; i++) { Hashtable htbl = UserTypeContrastSplite(lstType.Items[i].ToString()); if (htbl != null) { DataRow dr = tblUserType.NewRow(); dr["usertype"] = htbl["usertype"]; dr["language"] = htbl["language"].ToString().ToLower(); dr["totype"] = htbl["totype"]; dr["maxvalue"] = htbl["maxvalue"]; dr["defaultvalue"] = htbl["defaultvalue"]; dr["defaultlength"] = htbl["defaultlength"]; tblUserType.Rows.Add(dr); } } return(tblUserType); }
public override object GetValue(IEventArgs args) { if (!StringUtil.IsNullOrEmpty(autoCondition)) { select = new SelectMethod(FreeUtil.ReplaceVar(autoCondition, args)); } IList <ParaList> list = new List <ParaList>(); ParaListSet pls = null; foreach (UnitPara sort in UnitPara.Parse(sorts)) { IParable pa = args.GetUnit(sort.GetUnit()); if (pa == null) { continue; } IPara para = pa.GetParameters().Get(sort.GetPara()); if (para == null) { continue; } if (para != null && para is ParaListSet) { ParaListSet ps = (ParaListSet)para; pls = ps; foreach (ParaList pl in ps) { list.Add(pl); } } } IList <SimpleProto> results = new List <SimpleProto>(); if (pls != null && list.Count > 0) { IList <ParaList> r = pls.Select(list, FreeUtil.ReplaceVar(order, args), capacity); int min = 0; int max = 0; if (!StringUtil.IsNullOrEmpty(range)) { string[] vs = StringUtil.Split(FreeUtil.ReplaceVar(range, args), "-"); if (vs.Length == 2) { min = int.Parse(vs[0]); max = int.Parse(vs[1]); } } foreach (ParaList pl in r) { if (min != max) { int paraOrder = (int)pl.GetFeatureValue(ParaListSet.PARA_ORDER); if (paraOrder < min || paraOrder > max) { continue; } } SimpleProto b = FreePool.Allocate(); b.Ks.Add(0); b.Key = 0; b.Ss.Add("0"); string[] fs = StringUtil.Split(fields, ","); for (int i = 0; i < fs.Length; i++) { b.Ks.Add(i + 1); b.Ss.Add(pl.GetFeatureValue(fs[i]).ToString()); if (select != null) { pl.TempUse(new IntPara("seq", i + 1)); if (select.Meet(pl)) { b.Ins.Add(2 * 100); } else { b.Ins.Add(0); } pl.Resume("seq"); } else { b.Ins.Add(0); } } results.Add(b); } } return(results.ToArray()); }
private void JSTestRun_main() { //Start do something if (MessageBox.Show("Start RunJscript?", "Msg...", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) != DialogResult.Yes) { return; } //create new IPara IPara ipara = frmMain.CreateIPara(); //set filed value ipara = frmMain.CreateSampleFiled(ipara); ipara = ClassExt.TreateFieldANDJScript(ipara); System.Text.StringBuilder sbJSTxt = (System.Text.StringBuilder)ipara.SystemVarious["StringBuilderJScriptTxt"]; string sJSTxtHead = (string)ipara.SystemVarious["JScriptTxtHEAD"]; string sJSTxtEnd = (string)ipara.SystemVarious["JScriptTxtEND"]; jspage = (PageJSDebugPage)tabControl1.SelectedTab.Controls[0]; frmMain.msg.clear(); frmMain.msg.Focus(); frmMain.labStatus.Text = "RunJscript."; MainTime = System.DateTime.Now; frmMain.msg.println("Start:" + MainTime); string ErrorString = ""; for (int i = 0; i < jspage.numRunCnt.Value; i++) { if ((int)(i / 100) == i / 100) { frmMain.labStatus.Text = "RunCount:" + i; } string sJS; //not check for include define JS() if (jspage.chkAddJS.Checked) { sJS = sbJSTxt.ToString() + "\r\n" + sJSTxtHead + "\r\n" + jspage.txtJS.Text + "\r\n" + sJSTxtEnd; } else { sJS = jspage.txtJS.Text; } bool isReset = jspage.chkReset.Checked; object obj = cc.Eval.JSEvaluateToObject(sJS, isReset, out ErrorString); Application.DoEvents(); if (btnCancel.Text.Equals("Cancel...")) { frmMain.msg.println("User Cancel."); return; } if (i == 0) { if (ErrorString != null) { frmMain.msg.println(ErrorString, Color.Red); break; } if (obj == null) { frmMain.msg.println("Run JScript error, no value return."); break; } frmMain.msg.println("Return Type:" + obj.GetType()); if (!obj.GetType().FullName.Equals("Microsoft.JScript.JSObject")) { frmMain.msg.println("Return Value:" + obj); } else { GetScriptObjectValue((Microsoft.JScript.ScriptObject)obj, ""); } } } frmMain.labStatus.Text = "RunCount:" + jspage.numRunCnt.Value; frmMain.msg.println("End:" + System.DateTime.Now + "(elapsed:" + (int)((System.DateTime.Now - MainTime).TotalMilliseconds / 1000) + " Seconds)"); }
public virtual void AddPara(IPara para) { this.paras.Add(para); }