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(); }
public override DataObject Copy(Sprite parent) { var newStartScript = new StartScript(parent); if (bricks != null) newStartScript.bricks = bricks.Copy(parent) as BrickList; return newStartScript; }
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; }
public DataObject Copy(Sprite parent) { var newSpriteRef = new SpriteReference(parent); newSpriteRef.reference = reference; newSpriteRef.sprite = XPathHelper.getElement(reference, parent) as Sprite; return newSpriteRef; }
public Script(XElement xElement, Sprite parent) { Bricks = new BrickList(parent); sprite = parent; LoadFromCommonXML(xElement); LoadFromXML(xElement); }
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; }
public void CopyReference(Sprite copiedFrom, Sprite parent) { int pos = 0; foreach (Script script in Scripts) { script.CopyReference(copiedFrom.Scripts.Scripts[pos], parent); pos++; } }
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]; }
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); }
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; }
//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(); }
public ScriptList(Sprite parent) { Scripts = new ObservableCollection<Script>(); parentSprite = parent; }
public ScriptList(XElement xElement, Sprite parent) { parentSprite = parent; LoadFromXML(xElement); }
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(); }
internal override void LoadFromXML(XElement xRoot) { reference = xRoot.Attribute("reference").Value; sprite = XPathHelper.getElement(reference, parentSprite) as Sprite; }
public StartScript(Sprite parent) : base(parent) { }
public SpriteReference(XElement xElement, Sprite parent) { parentSprite = parent; LoadFromXML(xElement); }
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(); }
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]; }
public void CopyReference(Script copiedFrom, Sprite parent) { if (copiedFrom.Bricks != null) bricks.CopyReference(copiedFrom.Bricks, parent); }
public abstract DataObject Copy(Sprite parent);
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; }
public Script(Sprite parent) { Bricks = new BrickList(parent); sprite = parent; }
public void Update(Sprite selectedSprite) { this.selectedSprite = selectedSprite; OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); }
public SpriteReference(Sprite parent) { parentSprite = parent; }
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]; }