* Fix outdated component name in assaultbelt whitelist RangedMagazine was replaced with BallisticAmmoProvider in the Gun refactor (#8301) * Move FlashOnTrigger, SmokeOnTrigger, Flash components to Shared * Move LightReplacerComponent to Shared * Move Utensil, Mousetrap components to Shared * Move SprayPainterComponent to Shared The PaintableAirlock tag has also been removed, as it was unused & unnecessary, likely a vestige of spray painter development when the PaintableAirlock component wasn't in Content.Shared. * Add trivial Produce and Seed components to Client This allows the plant bag and botanical belt whitelists to correctly match produce and seeds on the client, fixing the extraneous "Can't insert" message that previously appeared. --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
50 lines
1.6 KiB
C#
50 lines
1.6 KiB
C#
using Content.Shared.Explosion.Components;
|
|
using Content.Shared.Explosion.EntitySystems;
|
|
using Content.Server.Fluids.EntitySystems;
|
|
using Content.Shared.Chemistry.Components;
|
|
using Content.Shared.Coordinates.Helpers;
|
|
using Content.Shared.Explosion.Components.OnTrigger;
|
|
using Content.Shared.Explosion.EntitySystems;
|
|
using Content.Shared.Maps;
|
|
using Robust.Shared.Map;
|
|
|
|
namespace Content.Server.Explosion.EntitySystems;
|
|
|
|
/// <summary>
|
|
/// Handles creating smoke when <see cref="SmokeOnTriggerComponent"/> is triggered.
|
|
/// </summary>
|
|
public sealed class SmokeOnTriggerSystem : SharedSmokeOnTriggerSystem
|
|
{
|
|
[Dependency] private readonly IMapManager _mapMan = default!;
|
|
[Dependency] private readonly SmokeSystem _smoke = default!;
|
|
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
SubscribeLocalEvent<SmokeOnTriggerComponent, TriggerEvent>(OnTrigger);
|
|
}
|
|
|
|
private void OnTrigger(EntityUid uid, SmokeOnTriggerComponent comp, TriggerEvent args)
|
|
{
|
|
var xform = Transform(uid);
|
|
if (!_mapMan.TryFindGridAt(xform.MapPosition, out _, out var grid) ||
|
|
!grid.TryGetTileRef(xform.Coordinates, out var tileRef) ||
|
|
tileRef.Tile.IsSpace())
|
|
{
|
|
return;
|
|
}
|
|
|
|
var coords = grid.MapToGrid(xform.MapPosition);
|
|
var ent = Spawn(comp.SmokePrototype, coords.SnapToGrid());
|
|
if (!TryComp<SmokeComponent>(ent, out var smoke))
|
|
{
|
|
Logger.Error($"Smoke prototype {comp.SmokePrototype} was missing SmokeComponent");
|
|
Del(ent);
|
|
return;
|
|
}
|
|
|
|
_smoke.StartSmoke(ent, comp.Solution, comp.Duration, comp.SpreadAmount, smoke);
|
|
}
|
|
}
|