Esempio n. 1
0
        /// <summary>
        /// Removes an object from the world.
        /// </summary>
        /// <param name="obj">The obj.</param>
        public virtual void RemoveObject(IObject obj)
        {
            if (obj == null)
            {
                ActiveLogger.LogMessage("Cant remove a null obj", LogLevel.RecoverableError);
                return;
            }
            obj.RemoveThisObject();
            EntityMapper.getInstance().RemoveEntity(obj);
            PhysicWorld.RemoveObject(obj.PhysicObject);
            bool resp = Objects.Remove(obj);

            if (!resp)
            {
                ActiveLogger.LogMessage("Cant remove (not found) obj: " + obj.Name, LogLevel.RecoverableError);
            }
            Culler.onObjectRemoved(obj);
        }
Esempio n. 2
0
        /// <summary>
        /// Adds an object to the world.
        /// </summary>
        /// <param name="obj">The obj.</param>
        /// <param name="InitMaterial">if set to <c>true</c> [init material].</param>
        public virtual void AddObject(IObject obj, bool InitMaterial = true)
        {
            if (obj == null)
            {
                ActiveLogger.LogMessage("Cant add null obj", LogLevel.RecoverableError);
                return;
            }

            EntityMapper.getInstance().AddEntity(obj);
            PhysicWorld.AddObject(obj.PhysicObject);
            obj.PhysicObject.ObjectOwner = obj;
            Objects.Add(obj);
            if (InitMaterial)
            {
                obj.Material.Initialization(graphicsInfo, graphicFactory, obj);
            }
            Culler.onObjectAdded(obj);
            obj.FireOnBeingAdd(this);

            obj.afterAddedToTheWorld();
        }