Esempio n. 1
0
        public bool Remove(DataObject item)
        {
            if (item is DataObject)
              {
            Remove((object)item);
            return true;
              }

              return false;
        }
Esempio n. 2
0
        public void AddScriptBrick(DataObject scriptBrick, int firstViewIndex, int lastViewIndex)
        {
            //if (this.Count == lastViewIndex + 1 && GetAtIndex(lastViewIndex) is Script && )
              //{
              //  lastViewIndex++;
              //}

              if (scriptBrick is Brick) // Add brick at last visible end of a script
              {
            Brick brick = scriptBrick as Brick;

            int scriptEndIndex = -1;
            int scriptBeginIndex = 0;
            Script lastFullScript = null;
            foreach (Script script in scripts)
            {
              scriptBeginIndex = scriptEndIndex + 1;
              scriptEndIndex += script.Bricks.Bricks.Count + 1;

              if (scriptEndIndex > lastViewIndex && scriptBeginIndex >= firstViewIndex)
            break;

              lastFullScript = script;
            }

            if (lastFullScript == null)
            {
              StartScript startScript = new StartScript(selectedSprite);
              scripts.Add(startScript);
              lastFullScript = startScript;

              OnScriptAdded(startScript, IndexOf(startScript));
            }

            lastFullScript.Bricks.Bricks.Add(brick);

            //OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); // TODO: make faster and use method below instead
            OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, scriptBrick, IndexOf(scriptBrick)));
              }
              else if (scriptBrick is Script) // Add script at end of all
              {
            Script script = scriptBrick as Script;
            scripts.Add(script);

            //OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); // TODO: make faster and use method below instead
            OnScriptAdded((Script)scriptBrick, IndexOf(scriptBrick));
              }

              //
        }
Esempio n. 3
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;
        }
Esempio n. 4
0
 private void DeleteScriptBrickAction(DataObject scriptBrick)
 {
     if (scriptBrick != null)
     ScriptBricks.Remove(scriptBrick);
 }
Esempio n. 5
0
        private void CopyScriptBrickAction(DataObject scriptBrick)
        {
            if (scriptBrick != null)
              {
            if (scriptBrick is Script)
            {
              DataObject copy = (scriptBrick as Script).Copy((scriptBrick as Script).Sprite);
              ScriptBricks.Insert(ScriptBricks.ScriptIndexOf((Script)scriptBrick), copy);
            }

            if (scriptBrick is Brick)
            {
              DataObject copy = (scriptBrick as Brick).Copy((scriptBrick as Brick).Sprite);
              ScriptBricks.Insert(ScriptBricks.IndexOf(scriptBrick), copy);
            }
              }
        }
Esempio n. 6
0
        private void AddBroadcastMessageAction(DataObject broadcastObject)
        {
            // TODO: change this
              this.broadcastObject = broadcastObject;

              if (OnAddedBroadcastMessage != null)
            OnAddedBroadcastMessage.Invoke();
        }