Ejemplo n.º 1
0
        public static void PauseNode()
        {
            var a = new PauseNode(new NumberLiteral(2));
            var b = SerializationUtil.Reserialize(a);

            Assert.AreEqual(a, b);
        }
Ejemplo n.º 2
0
    public async Task ParseAsync(XmlReader reader, IParsingContext parsingContext, IParentParsingContext parentParsingContext)
    {
        var myContext = new TextParentParsingContext();
        await elementParser.ParseAsync(reader, parsingContext, myContext, Settings);

        var parsedText = myContext.ParsedText;

        parsingContext.SceneContext.Reset();

        if (string.IsNullOrWhiteSpace(parsedText))
        {
            var node = new PauseNode(myContext.When);
            parentParsingContext.AddNode(node);
            return;
        }

        var value = int.Parse(parsedText);

        if (value <= 0)
        {
            parsingContext.LogError(reader, "O tempo de espera precisa ser maior que zero.");
            return;
        }

        if (value > 5000)
        {
            parsingContext.LogError(reader, "O tempo de espera não pode ser maior que 5000.");
            return;
        }

        var timedPauseNode = new TimedPauseNode(TimeSpan.FromMilliseconds(value), myContext.When);

        parentParsingContext.AddNode(timedPauseNode);
    }