void IDestroyAct.OnDestroy(DestructionEventArgs eventArgs)
        {
            var storedEntities = StoredEntities?.ToList();

            if (storedEntities == null)
            {
                return;
            }

            foreach (var entity in storedEntities)
            {
                Remove(entity);
            }
        }
Beispiel #2
0
        void IDestroyAct.OnDestroy(DestructionEventArgs eventArgs)
        {
            if (SpawnOnDestroy == null || !eventArgs.IsSpawnWreck)
            {
                return;
            }
            foreach (var(key, value) in SpawnOnDestroy)
            {
                int count;
                if (value.Min >= value.Max)
                {
                    count = value.Min;
                }
                else
                {
                    count = _random.Next(value.Min, value.Max + 1);
                }

                if (count == 0)
                {
                    continue;
                }

                if (EntityPrototypeHelpers.HasComponent <StackComponent>(key))
                {
                    var spawned = Owner.EntityManager.SpawnEntity(key, Owner.Transform.Coordinates);
                    var stack   = spawned.GetComponent <StackComponent>();
                    stack.Count = count;
                    spawned.RandomOffset(0.5f);
                }
                else
                {
                    for (var i = 0; i < count; i++)
                    {
                        var spawned = Owner.EntityManager.SpawnEntity(key, Owner.Transform.Coordinates);
                        spawned.RandomOffset(0.5f);
                    }
                }
            }
        }
 private void OnDestroyed(EntityUid uid, MedicalScannerComponent scannerComponent, DestructionEventArgs args)
 {
     EjectBody(uid, scannerComponent);
 }
 private void OnDestroyed(EntityUid uid, SecretStashComponent component, DestructionEventArgs args)
 {
     component.ItemContainer.EmptyContainer();
 }
 private void HandleDestruction(EntityUid uid, ExplosiveComponent component, DestructionEventArgs args)
 {
     Explode(uid, component);
 }
 void IDestroyAct.OnDestroy(DestructionEventArgs eventArgs)
 {
     Explosion();
 }
 private void OnDestroy(EntityUid uid, StrapComponent component, DestructionEventArgs args)
 {
     component.RemoveAll();
 }
 private void OnDestroy(EntityUid uid, EntityStorageComponent component, DestructionEventArgs args)
 {
     component.Open = true;
     EmptyContents(uid, component);
 }