public override StopNxtMotorBrick Convert1(XmlNxtMotorStopBrick o, XmlModelConvertContext c)
 {
     return(new StopNxtMotorBrick
     {
         Motor = o.Motor
     });
 }
Exemplo n.º 2
0
 public override SpeakBrick Convert1(XmlSpeakBrick o, XmlModelConvertContext c)
 {
     return(new SpeakBrick
     {
         Value = o.Text
     });
 }
Exemplo n.º 3
0
        public override ChangeVariableBrick Convert1(XmlChangeVariableBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            Variable variable = null;

            //TODO: part of dirty hack:
            if (o.UserVariable != null)
            {
                foreach (var entry in c.variables)
                {
                    if (entry.Key.Name == o.UserVariable.Name)
                    {
                        variable = entry.Value;
                        break;
                    }
                }
            }
            //maybe its necessary to override .Equals() for the class as it got more properties now

            //old undirty version //if (o.UserVariable != null) c.Variables.TryGetValue(o.UserVariable, out variable);

            return(new ChangeVariableBrick
            {
                Variable = variable,
                RelativeValue = o.VariableFormula == null ? null : formulaConverter.Convert(o.VariableFormula, c)
            });
        }
        public override TVariable Convert(XmlUserVariable o, XmlModelConvertContext c)
        {
            var variable = (TVariable)Activator.CreateInstance(typeof(TVariable));

            variable.Name = o.Name;
            return(variable);
        }
 public override CommentBrick Convert1(XmlNoteBrick o, XmlModelConvertContext c)
 {
     return(new CommentBrick
     {
         Value = o.Note
     });
 }
 public override Look Convert(XmlLook o, XmlModelConvertContext c)
 {
     return(new Look
     {
         Name = o.Name,
         FileName = o.FileName
     });
 }
Exemplo n.º 7
0
 public override Sound Convert(XmlSound o, XmlModelConvertContext c)
 {
     return(new Sound
     {
         Name = o.Name,
         FileName = o.FileName
     });
 }
Exemplo n.º 8
0
        public override Program Convert(XmlProgram o, XmlModelConvertContext c)
        {
            var spriteConverter         = new SpriteConverter();
            var lookConverter           = new LookConverter();
            var soundConverter          = new SoundConverter();
            var localVariableConverter  = new VariableConverter <LocalVariable>();
            var globalVariableConverter = new VariableConverter <GlobalVariable>();
            var uploadHeaderConverter   = new UploadHeaderConverter();

            var localVariables = o.VariableList.ObjectVariableList.ObjectVariableEntries.ToReadOnlyDictionary(
                keySelector: entry => entry.Sprite,
                elementSelector: entry => entry.VariableList.UserVariables.ToReadOnlyDictionary(
                    keySelector: variable => variable,
                    elementSelector: variable => (LocalVariable)localVariableConverter.Convert(variable, c)));

            List <XmlUserVariable> globalVariablesBuffer = new List <XmlUserVariable>();

            foreach (var variableReference in o.VariableList.ProgramVariableList.UserVariableReferences)
            {
                globalVariablesBuffer.Add(variableReference.UserVariable);
            }
            var globalVariables = globalVariablesBuffer.ToReadOnlyDictionary(
                keySelector: variable => variable,
                elementSelector: variable => (GlobalVariable)globalVariableConverter.Convert(variable, c));
            var contextBase = new XmlModelConvertContextBase(o, globalVariables);
            var sprites     = o.SpriteList.Sprites.ToReadOnlyDictionary(
                keySelector: sprite => sprite,
                elementSelector: sprite =>
            {
                ReadOnlyDictionary <XmlUserVariable, LocalVariable> localVariables2;
                if (!localVariables.TryGetValue(sprite, out localVariables2))
                {
                    localVariables2 = new ReadOnlyDictionary <XmlUserVariable, LocalVariable>(new Dictionary <XmlUserVariable, LocalVariable>());
                }
                return((Sprite)spriteConverter.Convert(sprite, new XmlModelConvertContext(contextBase, sprite,
                                                                                          sprite.Looks == null || sprite.Looks.Looks == null
                            ? null
                            : sprite.Looks.Looks.ToReadOnlyDictionary(
                                                                                              keySelector: look => look,
                                                                                              elementSelector: look => (Look)lookConverter.Convert(look, c)),
                                                                                          sprite.Sounds == null || sprite.Sounds.Sounds == null
                            ? null
                            : sprite.Sounds.Sounds.ToReadOnlyDictionary(
                                                                                              keySelector: sound => sound,
                                                                                              elementSelector: sound => (Sound)soundConverter.Convert(sound, c)),
                                                                                          localVariables2)));
            });

            return(new Program
            {
                Name = o.ProgramHeader.ProgramName,
                Description = o.ProgramHeader.Description,
                UploadHeader = (UploadHeader)uploadHeaderConverter.Convert(o.ProgramHeader, c),
                GlobalVariables = globalVariablesBuffer.Select(variable => globalVariables[variable]).ToObservableCollection(),
                BroadcastMessages = contextBase.BroadcastMessages.Values.ToObservableCollection(),
                Sprites = o.SpriteList.Sprites.Select(sprite => sprites[sprite]).ToObservableCollection()
            });
        }
Exemplo n.º 9
0
        public override DelayBrick Convert1(XmlWaitBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new DelayBrick
            {
                Duration = o.TimeToWaitInSeconds == null ? null : formulaConverter.Convert(o.TimeToWaitInSeconds, c)
            });
        }
        public override EndRepeatBrick Convert1(XmlRepeatLoopEndBrick o, XmlModelConvertContext c)
        {
            var repeatBrickConverter = new RepeatBrickConverter();

            var result = new EndRepeatBrick();

            c.Bricks[o] = result;
            return(result);
        }
Exemplo n.º 11
0
        public override ChangePositionYBrick Convert1(XmlChangeYByBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new ChangePositionYBrick
            {
                RelativeValue = o.YMovement == null ? null : formulaConverter.Convert(o.YMovement, c)
            });
        }
Exemplo n.º 12
0
        public override LookAtBrick Convert1(XmlPointToBrick o, XmlModelConvertContext c)
        {
            var spriteConverter = new SpriteConverter();

            return(new LookAtBrick
            {
                Target = o.PointedSprite == null ? null : (Sprite)spriteConverter.Convert(o.PointedSprite, c, pointerOnly: true)
            });
        }
        public override SetPositionXBrick Convert1(XmlSetXBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new SetPositionXBrick
            {
                Value = o.XPosition == null ? null : formulaConverter.Convert(o.XPosition, c)
            });
        }
        public override MoveBrick Convert1(XmlMoveNStepsBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new MoveBrick
            {
                Steps = o.Steps == null ? null : formulaConverter.Convert(o.Steps, c)
            });
        }
Exemplo n.º 15
0
        public override SetRotationBrick Convert1(XmlPointInDirectionBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new SetRotationBrick
            {
                Value = o.Degrees == null ? null : formulaConverter.Convert(o.Degrees, c)
            });
        }
        public override SetBrightnessBrick Convert1(XmlSetBrightnessBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new SetBrightnessBrick
            {
                Percentage = o.Brightness == null ? null : formulaConverter.Convert(o.Brightness, c)
            });
        }
Exemplo n.º 17
0
        public override ChangeBrightnessBrick Convert1(XmlChangeBrightnessBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new ChangeBrightnessBrick
            {
                RelativePercentage = o.ChangeBrightness == null ? null : formulaConverter.Convert(o.ChangeBrightness, c)
            });
        }
Exemplo n.º 18
0
        public override SetVolumeBrick Convert1(XmlSetVolumeToBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new SetVolumeBrick
            {
                Percentage = o.Volume == null ? null : formulaConverter.Convert(o.Volume, c)
            });
        }
Exemplo n.º 19
0
        public override DecreaseZOrderBrick Convert1(XmlGoNStepsBackBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new DecreaseZOrderBrick
            {
                RelativeValue = o.Steps == null ? null : formulaConverter.Convert(o.Steps, c)
            });
        }
Exemplo n.º 20
0
        public override SetTransparencyBrick Convert1(XmlSetGhostEffectBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new SetTransparencyBrick
            {
                Percentage = o.Transparency == null ? null : formulaConverter.Convert(o.Transparency, c)
            });
        }
Exemplo n.º 21
0
        public override TurnLeftBrick Convert1(XmlTurnLeftBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new TurnLeftBrick
            {
                RelativeValue = o.Degrees == null ? null : formulaConverter.Convert(o.Degrees, c)
            });
        }
        public override ForeverBrick Convert1(XmlForeverBrick o, XmlModelConvertContext c)
        {
            var loopEndBrickConverter = new ForeverEndBrickConverter();

            var result = new ForeverBrick();

            c.Bricks[o] = result;
            return(result);
        }
        public override PlayNxtToneBrick Convert1(XmlNxtPlayToneBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new PlayNxtToneBrick
            {
                Frequency = o.Frequency == null ? null : formulaConverter.Convert(o.Frequency, c),
                Duration = o.DurationInSeconds == null ? null : formulaConverter.Convert(o.DurationInSeconds, c)
            });
        }
Exemplo n.º 24
0
        public override SetPositionBrick Convert1(XmlPlaceAtBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new SetPositionBrick
            {
                ValueX = o.XPosition == null ? null : formulaConverter.Convert(o.XPosition, c),
                ValueY = o.YPosition == null ? null : formulaConverter.Convert(o.YPosition, c)
            });
        }
Exemplo n.º 25
0
        public override SetNxtMotorSpeedBrick Convert1(XmlNxtMotorActionBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new SetNxtMotorSpeedBrick
            {
                Motor = o.Motor,
                Percentage = o.Speed == null ? null : formulaConverter.Convert(o.Speed, c)
            });
        }
Exemplo n.º 26
0
        public override AnimatePositionBrick Convert1(XmlGlideToBrick o, XmlModelConvertContext c)
        {
            var formulaConverter = new FormulaConverter();

            return(new AnimatePositionBrick
            {
                Duration = o.DurationInSeconds == null ? null : formulaConverter.Convert(o.DurationInSeconds, c),
                ToX = o.XDestination == null ? null : formulaConverter.Convert(o.XDestination, c),
                ToY = o.YDestination == null ? null : formulaConverter.Convert(o.YDestination, c)
            });
        }
Exemplo n.º 27
0
        public override EndIfBrick Convert1(XmlIfLogicEndBrick o, XmlModelConvertContext c)
        {
            var ifBrickConverter   = new IfLogicBrickConverter();
            var elseBrickConverter = new IfLogicElseBrickConverter();

            var result = new EndIfBrick();

            c.Bricks[o]  = result;
            result.Begin = o.IfLogicBeginBrick == null ? null : (IfBrick)ifBrickConverter.Convert(o.IfLogicBeginBrick, c);
            result.Else  = o.IfLogicElseBrick == null ? null : (ElseBrick)elseBrickConverter.Convert(o.IfLogicElseBrick, c);
            return(result);
        }
Exemplo n.º 28
0
        public override TScript Convert(TXmlScript o, XmlModelConvertContext c)
        {
            var brickConverterCollection = new XmlModelConverterCollection <IBrickConverter>();

            var result = Convert1(o, c);

            result.Bricks = o.Bricks == null || o.Bricks.Bricks == null ? null
                : o.Bricks.Bricks.Select(brick =>
                                         (Brick)brickConverterCollection.Convert(brick, c))
                            .ToObservableCollection();
            return(result);
        }
Exemplo n.º 29
0
        public override PlaySoundBrick Convert1(XmlPlaySoundBrick o, XmlModelConvertContext c)
        {
            Sound sound = null;

            if (o.Sound != null)
            {
                c.Sounds.TryGetValue(o.Sound, out sound);
            }
            return(new PlaySoundBrick
            {
                Value = sound
            });
        }
Exemplo n.º 30
0
        public override SetLookBrick Convert1(XmlSetLookBrick o, XmlModelConvertContext c)
        {
            Look look = null;

            if (o.Look != null)
            {
                c.Looks.TryGetValue(o.Look, out look);
            }
            return(new SetLookBrick
            {
                Value = look
            });
        }