예제 #1
0
        public override void UpdateBeforeSimulation()
        {
            base.UpdateBeforeSimulation();
            int count = this.m_creationBuffer.Count;

            if (count > 20)
            {
                count /= 10;
            }
            while (true)
            {
                count--;
                if (count <= 0)
                {
                    return;
                }
                DebrisCreationInfo info = this.m_creationBuffer.Dequeue();
                DebrisType         type = info.Type;
                if (type == DebrisType.Voxel)
                {
                    (this.CreateVoxelDebris(50f, info.Ammount).Debris as MyDebrisVoxel.MyDebrisVoxelLogic).Start(info.Position, info.Velocity, info.Material);
                    continue;
                }
                if (type != DebrisType.Random)
                {
                    throw new ArgumentOutOfRangeException();
                }
                MyDebrisBase base2 = this.CreateRandomDebris();
                if (base2 != null)
                {
                    base2.Debris.Start(info.Position, info.Velocity);
                }
            }
        }
예제 #2
0
        public MyEntity CreateDebris(string model)
        {
            m_desc.ScaleMin = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MIN;
            m_desc.ScaleMax = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MAX;

            var newObj = new MyDebrisBase();

            m_desc.Model = model;
            newObj.Debris.Init(m_desc);
            m_debrisCount++;
            return(newObj);
        }
예제 #3
0
        public MyEntity CreateDebris(string model)
        {
            m_desc.ScaleMin = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MIN;
            m_desc.ScaleMax = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MAX;

            var newObj = new MyDebrisBase();

            m_desc.Model = model;
            newObj.Debris.Init(m_desc);
            m_debrisCount++;
            m_desc.LifespanMinInMiliseconds = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_LIFESPAN_MIN_IN_MILISECONDS;
            m_desc.LifespanMaxInMiliseconds = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_LIFESPAN_MAX_IN_MILISECONDS;
            return(newObj);
        }
예제 #4
0
        public MyEntity CreateDebris(string model)
        {
            if (!MyFakes.ENABLE_DEBRIS)
            {
                return(null);
            }
            this.m_desc.Model = model;
            MyDebrisBase base1 = new MyDebrisBase();

            base1.Debris.Init(this.m_desc);
            Interlocked.Increment(ref this.m_debrisCount);
            this.m_desc.LifespanMinInMiliseconds = 0xfa0;
            this.m_desc.LifespanMaxInMiliseconds = 0x1b58;
            return(base1);
        }
예제 #5
0
        private MyDebrisBase CreateRandomDebris()
        {
            MyDebrisBase base2 = null;

            if (this.m_debrisModelIndex < m_debrisModels.Length)
            {
                int debrisModelIndex = this.m_debrisModelIndex;
                if (debrisModelIndex > m_debrisModels.Length)
                {
                    this.m_debrisModelIndex = debrisModelIndex = debrisModelIndex % m_debrisModels.Length;
                }
                base2 = (MyDebrisBase)this.CreateDebris(m_debrisModels[debrisModelIndex]);
                this.m_debrisModelIndex++;
            }
            return(base2);
        }
예제 #6
0
        private MyDebrisBase CreateDebris()
        {
            m_desc.ScaleMin = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MIN;
            m_desc.ScaleMax = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MAX;

            var newObj = new MyDebrisBase();

            m_desc.Model = m_debrisModels[m_debrisModelIndex];
            m_debrisModelIndex++;
            if (m_debrisModelIndex >= m_debrisModels.Count())
            {
                m_debrisModelIndex = 0;
            }

            newObj.Debris.Init(m_desc);
            return(newObj);
        }
예제 #7
0
 private void OnDebrisClosed(MyDebrisBase obj)
 {
     m_debrisCount--;
 }
예제 #8
0
 public override void OnAddedToContainer()
 {
     base.OnAddedToContainer();
     m_debris = Container.Entity as MyDebrisBase;
 }
예제 #9
0
 public override void OnAddedToContainer()
 {
     base.OnAddedToContainer();
     m_debris = Container.Entity as MyDebrisBase;
 }
예제 #10
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_debris = container.Entity as MyDebrisBase;
 }
예제 #11
0
        private MyDebrisBase CreateDebris()
        {
            m_desc.ScaleMin = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MIN;
            m_desc.ScaleMax = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MAX;

            var newObj = new MyDebrisBase();
            m_desc.Model = m_debrisModels[m_debrisModelIndex];
            m_debrisModelIndex++;
            if (m_debrisModelIndex >= m_debrisModels.Count())
            {
                m_debrisModelIndex = 0;
            }

            newObj.Debris.Init(m_desc);
            return newObj;
        }
예제 #12
0
        public MyEntity CreateDebris(string model)
        {
            m_desc.ScaleMin = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MIN;
            m_desc.ScaleMax = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MAX;

            var newObj = new MyDebrisBase();
            m_desc.Model = model;
            newObj.Debris.Init(m_desc);
            m_debrisCount++;
            return newObj;
        }
예제 #13
0
 private void OnDebrisClosed(MyDebrisBase obj)
 {
     m_debrisCount--;
 }
예제 #14
0
 private void OnDebrisClosed(MyDebrisBase obj)
 {
     Interlocked.Decrement(ref this.m_debrisCount);
 }
예제 #15
0
        public MyEntity CreateDebris(string model)
        {
            m_desc.ScaleMin = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MIN;
            m_desc.ScaleMax = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_INITIAL_SCALE_MAX;

            var newObj = new MyDebrisBase();
            m_desc.Model = model;
            newObj.Debris.Init(m_desc);
            m_debrisCount++;
            m_desc.LifespanMinInMiliseconds = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_LIFESPAN_MIN_IN_MILISECONDS;
            m_desc.LifespanMaxInMiliseconds = MyDebrisConstants.EXPLOSION_MODEL_DEBRIS_LIFESPAN_MAX_IN_MILISECONDS;
            return newObj;
        }
예제 #16
0
 public override void OnAddedToContainer(MyComponentContainer container)
 {
     base.OnAddedToContainer(container);
     m_debris = container.Entity as MyDebrisBase;
 }