using Content.Server.Shuttles.Components;
+using Content.Shared.CCVar;
using Content.Shared.Shuttles.BUIStates;
using Content.Shared.Shuttles.Components;
using Content.Shared.Shuttles.Events;
SubscribeLocalEvent<IFFConsoleComponent, AnchorStateChangedEvent>(OnIFFConsoleAnchor);
SubscribeLocalEvent<IFFConsoleComponent, IFFShowIFFMessage>(OnIFFShow);
SubscribeLocalEvent<IFFConsoleComponent, IFFShowVesselMessage>(OnIFFShowVessel);
+ SubscribeLocalEvent<GridSplitEvent>(OnGridSplit);
+ }
+
+ private void OnGridSplit(ref GridSplitEvent ev)
+ {
+ var splitMass = _cfg.GetCVar(CCVars.HideSplitGridsUnder);
+
+ if (splitMass < 0)
+ return;
+
+ foreach (var grid in ev.NewGrids)
+ {
+ if (!_physicsQuery.TryGetComponent(grid, out var physics) ||
+ physics.Mass > splitMass)
+ {
+ continue;
+ }
+
+ AddIFFFlag(grid, IFFFlags.HideLabel);
+ }
}
private void OnIFFShow(EntityUid uid, IFFConsoleComponent component, IFFShowIFFMessage args)
public static readonly CVarDef<bool> GodmodeArrivals =
CVarDef.Create("shuttle.godmode_arrivals", false, CVar.SERVERONLY);
+ /// <summary>
+ /// If a grid is split then hide any smaller ones under this mass (kg) from the map.
+ /// This is useful to avoid split grids spamming out labels.
+ /// </summary>
+ public static readonly CVarDef<int> HideSplitGridsUnder =
+ CVarDef.Create("shuttle.hide_split_grids_under", 30, CVar.SERVERONLY);
+
/// <summary>
/// Whether to automatically spawn escape shuttles.
/// </summary>