Пример #1
0
        private void DestroyProjectileInternal(Projectile *ptr)
        {
            Signals.OnProjectileDestroy(ptr);
            Signals.OnEntityDestroy(&ptr->_entity);
            var copy = ptr->_entity;

            *ptr = _default_.Projectile;
            ptr->_entity = copy;
            EntityDestroy(&ptr->_entity);
        }
Пример #2
0
 public void DestroyProjectile(Projectile *ptr)
 {
     if (ptr == null)
     {
         return;
     }
     if (ptr->_entity._active == false)
     {
         return;
     }
     _destroy.Enqueue(ptr->EntityRef);
 }
Пример #3
0
 public Boolean Next()
 {
     while (++_index < Projectile.MAX_COUNT)
     {
         if (_ptr[_index]._entity._active)
         {
             Current = &_ptr[_index];
             return(true);
         }
     }
     Current = null;
     return(false);
 }
Пример #4
0
            public void OnProjectileDestroy(Projectile *entity)
            {
                var array   = _f._ISignalOnProjectileDestroySystems;
                var systems = &(_f._globals->Systems);

                for (Int32 i = 0; i < array.Length; ++i)
                {
                    var s = array[i];
                    if (BitSet256.IsSet(systems, s.RuntimeIndex))
                    {
                        s.OnProjectileDestroy(_f, entity);
                    }
                }
            }
Пример #5
0
 public ProjectileIterator(Projectile *ptr)
 {
     _ptr    = ptr;
     _index  = -1;
     Current = null;
 }