示例#1
0
        public Scene()
        {
            _GameObjectCache = new GameObjectCache(this);

            Enabled = false;
            Visible = false;

            Camera
            .Create(this);
        }
示例#2
0
        /// <summary>
        /// Unloads and removes the given GameObject.
        /// </summary>
        public void Pop(Entity gameObject)
        {
            gameObject.OnUnloadContent();
            Items.Remove(gameObject);

            if (Initialized)
            {
                GameObjectCache.CacheAll();
            }

            if (null != World)
            {
                World.InvalidateEntityIDCache(gameObject);
            }
        }
示例#3
0
        /// <summary>
        /// Pushes an Entity onto this scene.
        /// </summary>
        public void Push(Entity entity)
        {
            Items.Add(entity);

            entity.UpdateScene = this;
            entity.DrawScene   = entity.DrawScene ?? this;

            if (Loaded)
            {
                entity.OnLoadContent(this.Content);
            }

            if (Initialized)
            {
                GameObjectCache.CacheAll();
            }
        }
示例#4
0
 void OnDeserialized(StreamingContext c)
 {
     _GameObjectCache = new GameObjectCache(this);
     _World           = (World)Parent;
 }
示例#5
0
 /// <summary>
 /// Returns an entity with the given ID.
 /// </summary>
 public Entity GetObject(string id)
 {
     return(GameObjectCache.GetEntityById(id, Initialized));
 }
示例#6
0
 public override void OnChangeComponents()
 {
     GameObjectCache.CacheComponents();
     GameObjectCache.CacheObjectsToDraw();
 }
示例#7
0
        public override void OnInitialize(bool restore)
        {
            base.OnInitialize(restore);

            GameObjectCache.CacheAll();
        }