Beispiel #1
0
 /// <summary>
 /// Adds a GameObject reference to the Objects dictionary
 /// If a CollidableObject is passed, it is also added to the CollidableObjects List
 /// </summary>
 /// <param name="name">GameObject name</param>
 /// <param name="g">GameObject reference</param>
 public static void Add(string name, GameObject g)
 {
     Objects.Add(name, g);
     if (g is CollidableObject)
     {
         CollidableObject c = (CollidableObject)g;
         CollidableObjects.Add(c);
         NonUIObjects.Add(g);
     }
     else if (g is Background)
     {
         Background b = (Background)g;
         Backgrounds.Add(b);
     }
     else if (g is UIObject)
     {
         UIObject ui = (UIObject)g;
         UIObjects.Add(ui);
     }
     else if (g is SFXWrapper)
     {
         SFXWrapper wrap = (SFXWrapper)g;
         SoundEffects.Add(wrap);
     }
     else
     {
         NonUIObjects.Add(g);
     }
 }
Beispiel #2
0
        /// <summary>
        /// Delete the object named key from existence.
        /// </summary>
        public static void DeleteObject(string key)
        {
            if (!Objects.ContainsKey(key))
            {
                return;
            }
            GameObject del = (CollidableObject)Objects[key];

            if (CollidableObjects.Contains(del))
            {
                CollidableObjects.Remove((CollidableObject)del);
            }
            if (UIObjects.Contains(del))
            {
                UIObjects.Remove((UIObject)del);
            }
            if (NonUIObjects.Contains(del))
            {
                NonUIObjects.Remove(del);
            }
            if (Backgrounds.Contains(del))
            {
                Backgrounds.Remove((Background)(del));
            }
            Objects.Remove(key);
        }
 public void RemoveObject(SceneObjectId id)
 {
     Objects.Remove(id);
     LoadableObjects.Remove(id);
     MovableObjects.Remove(id);
     CollidableObjects.Remove(id);
     UpdateableObjects.Remove(id);
     DrawableObjects.Remove(id);
 }
        public void AddObject(ICutlassSceneObject o)
        {
            SceneObjectId sceneObjectId;

            lock (_SceneObjectIdLock)
            {
                sceneObjectId = _NextSceneObjectId++;
            }

            Objects.Add(sceneObjectId, o);

            //Add object to necessary lists.
            ICutlassLoadable loadable = o as ICutlassLoadable;

            if (loadable != null)
            {
                LoadableObjects.Add(sceneObjectId, loadable);
            }

            ICutlassMovable movable = o as ICutlassMovable;

            if (movable != null)
            {
                MovableObjects.Add(sceneObjectId, movable);
            }

            ICutlassCollidable collidable = o as ICutlassCollidable;

            if (collidable != null)
            {
                CollidableObjects.Add(sceneObjectId, collidable);
            }

            ICutlassUpdateable updateable = o as ICutlassUpdateable;

            if (updateable != null)
            {
                UpdateableObjects.Add(sceneObjectId, updateable);
            }

            ICutlassDrawable drawable = o as ICutlassDrawable;

            if (drawable != null)
            {
                DrawableObjects.Add(sceneObjectId, drawable);
            }

            //If this scene has already been initialized, initialize this object now.
            if (_Initialized && loadable != null)
            {
                loadable.LoadContent();
            }
        }
Beispiel #5
0
        /// <summary>
        /// Removes all level-specific objects from the manager.
        /// UI objects are not deleted.
        /// </summary>
        public static void RemoveLevel()
        {
            IsLoading = true;

            //Wipe out the objects dictionary
            Objects.Clear();
            //Delete CollidableObjects, NonUIObjects
            CollidableObjects.Clear();
            NonUIObjects.Clear();
            //Add in UIObjects back to the dictionary
            foreach (UIObject ui in UIObjects)
            {
                Objects.Add(ui.Name, ui);
            }
            //Add in Soundeffects back to the dictionary
            foreach (SFXWrapper wrap in SoundEffects)
            {
                Objects.Add(wrap.Name, wrap);
            }
        }
Beispiel #6
0
 public MultiBallPowerup(Texture2D sprite, CollidableObjects.TriangleType triangleType, _2D.Point center, double width, double height)
     : base(sprite, triangleType, center, width, height)
 {
     _powerupColor = Microsoft.Xna.Framework.Color.Red;
 }
 /// <summary>
 /// Method to store entities in a list of entities which have collisions
 /// </summary>
 /// <param name="asset"></param>
 public void hasCollisions(IEntity asset)
 {
     CollidableObjects.Add(asset); //Add Entity to the collidable objects list
 }