Example #1
0
        private void OnGibbed(EntityUid uid, PerishableComponent component, BeingGibbedEvent args)
        {
            if (!TryComp <PhysicsComponent>(uid, out var physics))
            {
                return;
            }

            if (!component.Rotting)
            {
                return;
            }

            var molsToDump = (component.MolsPerSecondPerUnitMass * physics.FixturesMass) * component.DeathAccumulator;
            var tileMix    = _atmosphereSystem.GetTileMixture(Transform(uid).Coordinates);

            if (tileMix != null)
            {
                tileMix.AdjustMoles(Gas.Miasma, molsToDump);
            }

            // Waste of entities to let these through
            foreach (var part in args.GibbedParts)
            {
                EntityManager.DeleteEntity(part);
            }
        }
        private void OnGibbed(EntityUid uid, PerishableComponent component, BeingGibbedEvent args)
        {
            if (!TryComp <PhysicsComponent>(uid, out var physics))
            {
                return;
            }

            if (!component.Rotting)
            {
                return;
            }

            var molsToDump = (component.MolsPerSecondPerUnitMass * physics.FixturesMass) * component.DeathAccumulator;
            var transform  = Transform(uid);
            var indices    = _transformSystem.GetGridOrMapTilePosition(uid, transform);
            var tileMix    = _atmosphereSystem.GetTileMixture(transform.GridUid, null, indices, true);

            tileMix?.AdjustMoles(Gas.Miasma, molsToDump);

            // Waste of entities to let these through
            foreach (var part in args.GibbedParts)
            {
                EntityManager.DeleteEntity(part);
            }
        }
Example #3
0
 private void OnBeingGibbed(EntityUid uid, BloodstreamComponent component, BeingGibbedEvent args)
 {
     SpillAllSolutions(uid, component);
 }