예제 #1
0
        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);
        }
예제 #2
0
 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;
 }
예제 #3
0
        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);
        }