public static RunnableConditionalActions Deserialize(XmlReader rdr) { while (!rdr.EOF && rdr.Name != "ConditionalActions" && !rdr.IsStartElement()) { rdr.Read(); } if (rdr.EOF) { throw new FormatException("Unexpected end of file trying to deserialize Runnable Conditional Actions!"); } RunnableConditionalActions conditionalActions = new RunnableConditionalActions(); rdr.Read(); bool flag; do { while (!rdr.EOF && (rdr.IsEmptyElement || string.IsNullOrWhiteSpace(rdr.Name))) { rdr.Read(); } if (rdr.EOF) { throw new FormatException("Unexpected end of file trying to deserialize Runnable Conditional Actions!"); } flag = !(rdr.Name == "ConditionalActions") || rdr.IsStartElement(); if (flag) { SerializableConditionalActionSet conditionalActionSet = SerializableConditionalActionSet.Deserialize(rdr); conditionalActions.Actions.Add(conditionalActionSet); rdr.Read(); } }while (flag); return(conditionalActions); }
public virtual void Update(float dt, object os) { this.IsUpdating = true; for (int index1 = 0; index1 < this.Actions.Count; ++index1) { if (this.Actions[index1].Condition.Check(os)) { SerializableConditionalActionSet action = this.Actions[index1]; this.Actions.RemoveAt(index1); --index1; for (int index2 = 0; index2 < action.Actions.Count; ++index2) { action.Actions[index2].Trigger(os); } } } this.IsUpdating = false; }
public static SerializableConditionalActionSet Deserialize(XmlReader rdr) { SerializableConditionalActionSet ret = new SerializableConditionalActionSet(); Action <XmlReader, string> bodyContentReadAction = (Action <XmlReader, string>)((xmlReader, EndKeyName) => { while (!rdr.EOF && (string.IsNullOrWhiteSpace(rdr.Name) || rdr.NodeType == XmlNodeType.Comment || rdr.NodeType == XmlNodeType.Whitespace)) { rdr.Read(); } for (bool flag = !xmlReader.EOF && (!(xmlReader.Name == EndKeyName) || xmlReader.IsStartElement()); flag; flag = !xmlReader.EOF && (!(xmlReader.Name == EndKeyName) || xmlReader.IsStartElement())) { ret.Actions.Add(SerializableAction.Deserialize(xmlReader)); do { xmlReader.Read(); }while (xmlReader.NodeType == XmlNodeType.Whitespace || xmlReader.NodeType == XmlNodeType.Comment); } }); ret.Condition = SerializableCondition.Deserialize(rdr, bodyContentReadAction); return(ret); }