Example #1
0
        public EditorViewModel()
        {
            this.DeleteScriptBrickCommand = new RelayCommand<DataObject>(this.DeleteScriptBrickAction);
              this.CopyScriptBrickCommand = new RelayCommand<DataObject>(this.CopyScriptBrickAction);
              this.StartAddBroadcastMessageCommand = new RelayCommand<DataObject>(this.AddBroadcastMessageAction);

              this.DeleteSoundCommand = new RelayCommand<Sound>(this.DeleteSoundAction);
              this.DeleteSpriteCommand = new RelayCommand<Sprite>(this.DeleteSpriteAction);
              this.DeleteCostumeCommand = new RelayCommand<Costume>(this.DeleteCostumeAction);
              this.CopyCostumeCommand = new RelayCommand<Costume>(this.CopyCostumeAction);
              this.UndoCommand = new RelayCommand(this.UndoAction);
              this.RedoCommand = new RelayCommand(this.RedoAction);

              this.NothingItemHackCommand = new RelayCommand<object>(NothingItemHackAction);

              if (IsInDesignMode)
              {
            catrobatContext = new CatrobatContextDesign();
            selectedSprite = catrobatContext.CurrentProject.SpriteList.Sprites[0];
              }
              else
              {
            catrobatContext = CatrobatContext.Instance;
              }

              scriptBricks = new ScriptBrickCollection();
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            Sprite sprite = new Sprite(CatrobatContext.Instance.CurrentProject);
              sprite.Name = txtName.Text;
              CatrobatContext.Instance.CurrentProject.SpriteList.Sprites.Add(sprite);

              NavigationService.GoBack();
        }
Example #3
0
        public override DataObject Copy(Sprite parent)
        {
            var newStartScript = new StartScript(parent);
            if (bricks != null)
                newStartScript.bricks = bricks.Copy(parent) as BrickList;

            return newStartScript;
        }
Example #4
0
        public DataObject Copy(Sprite parent)
        {
            var newScriptList = new ScriptList(parent);
            foreach (Script script in Scripts)
                newScriptList.Scripts.Add(script.Copy(parent) as Script);

            return newScriptList;
        }
Example #5
0
        public DataObject Copy(Sprite parent)
        {
            var newSpriteRef = new SpriteReference(parent);
            newSpriteRef.reference = reference;
            newSpriteRef.sprite = XPathHelper.getElement(reference, parent) as Sprite;

            return newSpriteRef;
        }
Example #6
0
        public Script(XElement xElement, Sprite parent)
        {
            Bricks = new BrickList(parent);
            sprite = parent;

            LoadFromCommonXML(xElement);
            LoadFromXML(xElement);
        }
Example #7
0
        public override DataObject Copy(Sprite parent)
        {
            var newWhenScript = new WhenScript(parent);
            newWhenScript.action = action;
            if (bricks != null)
                newWhenScript.bricks = bricks.Copy(parent) as BrickList;

            return newWhenScript;
        }
Example #8
0
 public void CopyReference(Sprite copiedFrom, Sprite parent)
 {
     int pos = 0;
     foreach (Script script in Scripts)
     {
         script.CopyReference(copiedFrom.Scripts.Scripts[pos], parent);
         pos++;
     }
 }
Example #9
0
        public override DataObject Copy(Sprite parent)
        {
            var newBroadcastScript = new BroadcastScript(parent);
            newBroadcastScript.receivedMessage = receivedMessage;
            if (bricks != null)
                newBroadcastScript.bricks = bricks.Copy(parent) as BrickList;

            return newBroadcastScript;
        }
        private Sprite selectedSprite; // TODO (Memory): remove this and use Messageing instead

        #endregion Fields

        #region Constructors

        public ProjectSettingsViewModel()
        {
            if (IsInDesignMode)
            catrobatContext = new CatrobatContextDesign();
              else
            catrobatContext = CatrobatContext.Instance;

              if(catrobatContext.CurrentProject.SpriteList.Sprites.Count > 0)
            selectedSprite = catrobatContext.CurrentProject.SpriteList.Sprites[0];
        }
Example #11
0
        public static DataObject getElement(string reference, Sprite sprite)
        {
            reference = reference.ToLower();

            if (reference.Contains("costume"))
                return getCostume(reference, sprite);
            else if (reference.Contains("sound"))
                return getSoundInfo(reference, sprite);
            else if (reference.Contains("forever") || reference.Contains("repeat"))
                return getLoopBeginBrick(reference);
            else if (reference.Contains("loopend"))
                return getLoopEndBrick(reference);
            else
                return getSprite(reference, sprite);
        }
Example #12
0
        private void initCurrentProject()
        {
            var project = new Project
                {
                    ApplicationVersionCode = 1,
                    ApplicationVersionName = "Version 1",
                    DeviceName = "Device1",
                    ProjectName = "Project1",
                    ScreenHeight = 800,
                    ScreenWidth = 480,
                    PlatformVersion = "7.1.1",
                    Platform = "Windows Phone 7.5"
                };

            // TODO: implement other design data here

            var sprites = new SpriteList(project);
            var sprite = new Sprite(project);
            sprite.Name = "Object 1";

            sprite.Costumes = new CostumeList(sprite);
            var costume = new Costume("Cat", sprite);
            var image = new byte[0]; //new BitmapImage(new Uri(costume.FileName, UriKind.Relative)); // TODO: fix me
            //costume.Image = image;
            sprite.Costumes.Costumes.Add(costume);

            sprite.Sounds = new SoundList(sprite);
            var sound = new Sound("Miau_Sound", sprite);
            sprite.Sounds.Sounds.Add(sound);

            sprite.Scripts = new ScriptList(sprite);
            Script startScript = new StartScript(sprite);

            startScript.Bricks = new BrickList(sprite);
            var setCostumeBrick = new SetCostumeBrick(sprite);
            var costumeRef = new CostumeReference(sprite);
            costumeRef.Costume = costume;
            //setCostumeBrick.Costume = costumeRef;

            //TODO: Add more Bricks if you need them

            sprites.Sprites.Add(sprite);

            currentProject = project;
        }
Example #13
0
        //private ExtendedImage image;
        //private Sprite costumeSprite;
        //private bool loadedSuccess = false;
        public void StartCreateCostumeAsync(Sprite sprite, Stream imageStream)
        {
            //loadedSuccess = false;
              //costumeSprite = sprite;

              //if (ImageTools.IO.Decoders.GetAvailableDecoders().Count <= 0)
              //{
              //  ImageTools.IO.Decoders.AddDecoder<JpegDecoder>();
              //  ImageTools.IO.Decoders.AddDecoder<GifDecoder>();
              //  ImageTools.IO.Decoders.AddDecoder<BmpDecoder>();
              //  ImageTools.IO.Decoders.AddDecoder<PngDecoder>();
              //}

              //image = new ExtendedImage();
              //image.LoadingFailed -= image_LoadingFailed;
              //image.LoadingFailed += image_LoadingFailed;
              //image.LoadingCompleted -= image_LoadingCompleted;
              //image.LoadingCompleted += image_LoadingCompleted;
              //image.SetSource(imageStream);

              throw new NotImplementedException();
        }
Example #14
0
 public ScriptList(Sprite parent)
 {
     Scripts = new ObservableCollection<Script>();
     parentSprite = parent;
 }
Example #15
0
 public ScriptList(XElement xElement, Sprite parent)
 {
     parentSprite = parent;
     LoadFromXML(xElement);
 }
Example #16
0
 public StartScript(XElement xElement, Sprite parent)
     : base(xElement, parent)
 {
 }
 public void CleanUpSpriteReferences(Sprite deletedSprite)
 {
     foreach (Sprite sprite in currentProject.SpriteList.Sprites)
     foreach (Script script in sprite.Scripts.Scripts)
       foreach (Brick brick in script.Bricks.Bricks)
     if (brick is PointToBrick)
       (brick as PointToBrick).UpdateReference();
 }
Example #18
0
 internal override void LoadFromXML(XElement xRoot)
 {
     reference = xRoot.Attribute("reference").Value;
     sprite = XPathHelper.getElement(reference, parentSprite) as Sprite;
 }
Example #19
0
 public StartScript(Sprite parent)
     : base(parent)
 {
 }
Example #20
0
 public SpriteReference(XElement xElement, Sprite parent)
 {
     parentSprite = parent;
     LoadFromXML(xElement);
 }
Example #21
0
        private static Sprite getSprite(string xPath, Sprite sprite)
        {
            int pos = 0;

            if (xPath.Contains("["))
            {
                xPath = xPath.Split('[')[1];
                xPath = xPath.Split(']')[0];
                pos = Int32.Parse(xPath) - 1;
            }

            return sprite.Project.SpriteList.Sprites[pos];
        }
 public void CleanUpSoundReferences(Sound deletedSound, Sprite selectedSprite)
 {
     foreach (Script script in selectedSprite.Scripts.Scripts)
     foreach (Brick brick in script.Bricks.Bricks)
       if (brick is PlaySoundBrick)
     (brick as PlaySoundBrick).UpdateReference();
 }
Example #23
0
        private static Sound getSoundInfo(string xPath, Sprite sprite)
        {
            int pos = 0;

            if (xPath.Contains("["))
            {
                xPath = xPath.Split('[')[1];
                xPath = xPath.Split(']')[0];
                pos = Int32.Parse(xPath) - 1;
            }

            return sprite.Sounds.Sounds[pos];
        }
Example #24
0
 public void CopyReference(Script copiedFrom, Sprite parent)
 {
     if (copiedFrom.Bricks != null)
         bricks.CopyReference(copiedFrom.Bricks, parent);
 }
Example #25
0
 public abstract DataObject Copy(Sprite parent);
Example #26
0
        public static string getReference(DataObject dataObject, Sprite spriteContainingDataObject)
        {
            string reference = "";
            int pos = 0;
            bool found = false;

            if (dataObject is Sound)
            {
                reference = "../../../../../soundList/Sound";
                foreach (Sound Sound in spriteContainingDataObject.Sounds.Sounds)
                {
                    pos++;
                    if (Sound == dataObject)
                    {
                        found = true;
                        break;
                    }
                }
                if (pos > 1)
                    reference += "[" + pos + "]";
            }
            else if (dataObject is Costume)
            {
                reference = "../../../../../costumeDataList/costumeData";
                foreach (Costume costume in spriteContainingDataObject.Costumes.Costumes)
                {
                    pos++;
                    if (costume == dataObject)
                    {
                        found = true;
                        break;
                    }
                }
                if (pos > 1)
                    reference += "[" + pos + "]";
            }
            else if (dataObject is Sprite)
            {
                reference = "../../../../../../sprite";
                foreach (Sprite pointedSprite in spriteContainingDataObject.Project.SpriteList.Sprites)
                {
                    pos++;
                    if (pointedSprite == dataObject)
                    {
                        found = true;
                        break;
                    }
                }
                if (pos > 1)
                    reference += "[" + pos + "]";
            }
            else if (dataObject is ForeverBrick)
            {
                reference = "../../foreverBrick";
                foreach (Script script in spriteContainingDataObject.Scripts.Scripts)
                {
                    pos = 0;
                    foreach (DataObject brick in script.Bricks.Bricks)
                    {
                        if (brick is ForeverBrick)
                        {
                            pos++;
                            if (brick == dataObject)
                            {
                                found = true;
                                break;
                            }
                        }
                    }
                    if (found)
                        break;
                }
                if (pos > 1)
                    reference += "[" + pos + "]";
            }
            else if (dataObject is RepeatBrick)
            {
                reference = "../../repeatBrick";
                foreach (Script script in spriteContainingDataObject.Scripts.Scripts)
                {
                    pos = 0;
                    foreach (DataObject brick in script.Bricks.Bricks)
                    {
                        if (brick is RepeatBrick)
                        {
                            pos++;
                            if (brick == dataObject)
                            {
                                found = true;
                                break;
                            }
                        }
                    }
                    if (found)
                        break;
                }
                if (pos > 1)
                    reference += "[" + pos + "]";
            }
            else if (dataObject is LoopEndBrick)
            {
                reference = "../../loopEndBrick";
                foreach (Script script in spriteContainingDataObject.Scripts.Scripts)
                {
                    pos = 0;
                    foreach (DataObject brick in script.Bricks.Bricks)
                    {
                        if (brick is LoopEndBrick)
                        {
                            pos++;
                            if (brick == dataObject)
                            {
                                found = true;
                                break;
                            }
                        }
                    }
                    if (found)
                        break;
                }
                if (pos > 1)
                    reference += "[" + pos + "]";
            }

            if (!found)
                return "";

            return reference;
        }
Example #27
0
 public Script(Sprite parent)
 {
     Bricks = new BrickList(parent);
     sprite = parent;
 }
Example #28
0
 public void Update(Sprite selectedSprite)
 {
     this.selectedSprite = selectedSprite;
       OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
 }
Example #29
0
 public SpriteReference(Sprite parent)
 {
     parentSprite = parent;
 }
Example #30
0
        private static Costume getCostume(string xPath, Sprite sprite)
        {
            int pos = 0;

            if (xPath.Contains("["))
            {
                xPath = xPath.Split('[')[1];
                xPath = xPath.Split(']')[0];
                pos = Int32.Parse(xPath) - 1;
            }

            return sprite.Costumes.Costumes[pos];
        }