Update tilechangedevent to ref structs (#13383)

This commit is contained in:
metalgearsloth
2023-01-09 13:45:21 +11:00
committed by GitHub
parent 2ee5eaeeec
commit 243fd73db4
7 changed files with 11 additions and 17 deletions

View File

@@ -59,7 +59,7 @@ public sealed partial class AtmosphereSystem : SharedAtmosphereSystem
ShutdownCommands(); ShutdownCommands();
} }
private void OnTileChanged(TileChangedEvent ev) private void OnTileChanged(ref TileChangedEvent ev)
{ {
InvalidateTile(ev.NewTile.GridUid, ev.NewTile.GridIndices); InvalidateTile(ev.NewTile.GridUid, ev.NewTile.GridIndices);
} }

View File

@@ -21,7 +21,7 @@ public sealed class AutomaticAtmosSystem : EntitySystem
SubscribeLocalEvent<TileChangedEvent>(OnTileChanged); SubscribeLocalEvent<TileChangedEvent>(OnTileChanged);
} }
private void OnTileChanged(TileChangedEvent ev) private void OnTileChanged(ref TileChangedEvent ev)
{ {
// Only if a atmos-holding tile has been added or removed. // Only if a atmos-holding tile has been added or removed.
// Also, these calls are surprisingly slow. // Also, these calls are surprisingly slow.

View File

@@ -159,7 +159,7 @@ namespace Content.Server.Decals
_conf.UnsubValueChanged(CVars.NetPVS, OnPvsToggle); _conf.UnsubValueChanged(CVars.NetPVS, OnPvsToggle);
} }
private void OnTileChanged(TileChangedEvent args) private void OnTileChanged(ref TileChangedEvent args)
{ {
if (!args.NewTile.IsSpace(_tileDefMan)) if (!args.NewTile.IsSpace(_tileDefMan))
return; return;

View File

@@ -221,7 +221,7 @@ public sealed partial class ExplosionSystem : EntitySystem
/// <summary> /// <summary>
/// When a tile is updated, we might need to update the grid edge maps. /// When a tile is updated, we might need to update the grid edge maps.
/// </summary> /// </summary>
private void OnTileChanged(TileChangedEvent ev) private void OnTileChanged(ref TileChangedEvent ev)
{ {
// only need to update the grid-edge map if a tile was added or removed from the grid. // only need to update the grid-edge map if a tile was added or removed from the grid.
if (!ev.NewTile.Tile.IsEmpty && !ev.OldTile.IsEmpty) if (!ev.NewTile.Tile.IsEmpty && !ev.OldTile.IsEmpty)

View File

@@ -53,7 +53,7 @@ public sealed partial class PathfindingSystem
SubscribeLocalEvent<MoveEvent>(OnMoveEvent); SubscribeLocalEvent<MoveEvent>(OnMoveEvent);
} }
private void OnTileChange(TileChangedEvent ev) private void OnTileChange(ref TileChangedEvent ev)
{ {
if (ev.OldTile.IsEmpty == ev.NewTile.Tile.IsEmpty) if (ev.OldTile.IsEmpty == ev.NewTile.Tile.IsEmpty)
return; return;

View File

@@ -62,7 +62,7 @@ namespace Content.Server.Shuttles.Systems
SubscribeLocalEvent<ThrusterComponent, RefreshPartsEvent>(OnRefreshParts); SubscribeLocalEvent<ThrusterComponent, RefreshPartsEvent>(OnRefreshParts);
SubscribeLocalEvent<ThrusterComponent, UpgradeExamineEvent>(OnUpgradeExamine); SubscribeLocalEvent<ThrusterComponent, UpgradeExamineEvent>(OnUpgradeExamine);
_mapManager.TileChanged += OnTileChange; SubscribeLocalEvent<ShuttleComponent, TileChangedEvent>(OnShuttleTileChange);
} }
private void OnThrusterExamine(EntityUid uid, ThrusterComponent component, ExaminedEvent args) private void OnThrusterExamine(EntityUid uid, ThrusterComponent component, ExaminedEvent args)
@@ -89,24 +89,18 @@ namespace Content.Server.Shuttles.Systems
} }
} }
public override void Shutdown()
{
base.Shutdown();
_mapManager.TileChanged -= OnTileChange;
}
private void OnIsHotEvent(EntityUid uid, ThrusterComponent component, IsHotEvent args) private void OnIsHotEvent(EntityUid uid, ThrusterComponent component, IsHotEvent args)
{ {
args.IsHot = component.Type != ThrusterType.Angular && component.IsOn; args.IsHot = component.Type != ThrusterType.Angular && component.IsOn;
} }
private void OnTileChange(object? sender, TileChangedEventArgs e) private void OnShuttleTileChange(EntityUid uid, ShuttleComponent component, ref TileChangedEvent args)
{ {
// If the old tile was space but the new one isn't then disable all adjacent thrusters // If the old tile was space but the new one isn't then disable all adjacent thrusters
if (e.NewTile.IsSpace(_tileDefManager) || !e.OldTile.IsSpace(_tileDefManager)) return; if (args.NewTile.IsSpace(_tileDefManager) || !args.OldTile.IsSpace(_tileDefManager)) return;
var tilePos = e.NewTile.GridIndices; var tilePos = args.NewTile.GridIndices;
var grid = _mapManager.GetGrid(e.NewTile.GridUid); var grid = _mapManager.GetGrid(uid);
var xformQuery = GetEntityQuery<TransformComponent>(); var xformQuery = GetEntityQuery<TransformComponent>();
var thrusterQuery = GetEntityQuery<ThrusterComponent>(); var thrusterQuery = GetEntityQuery<ThrusterComponent>();

View File

@@ -80,7 +80,7 @@ namespace Content.Shared.SubFloor
} }
} }
private void OnTileChanged(TileChangedEvent args) private void OnTileChanged(ref TileChangedEvent args)
{ {
if (args.OldTile.IsEmpty) if (args.OldTile.IsEmpty)
return; // Nothing is anchored here anyways. return; // Nothing is anchored here anyways.