Update tilechangedevent to ref structs (#13383)
This commit is contained in:
@@ -59,7 +59,7 @@ public sealed partial class AtmosphereSystem : SharedAtmosphereSystem
|
||||
ShutdownCommands();
|
||||
}
|
||||
|
||||
private void OnTileChanged(TileChangedEvent ev)
|
||||
private void OnTileChanged(ref TileChangedEvent ev)
|
||||
{
|
||||
InvalidateTile(ev.NewTile.GridUid, ev.NewTile.GridIndices);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ public sealed class AutomaticAtmosSystem : EntitySystem
|
||||
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.
|
||||
// Also, these calls are surprisingly slow.
|
||||
|
||||
@@ -159,7 +159,7 @@ namespace Content.Server.Decals
|
||||
_conf.UnsubValueChanged(CVars.NetPVS, OnPvsToggle);
|
||||
}
|
||||
|
||||
private void OnTileChanged(TileChangedEvent args)
|
||||
private void OnTileChanged(ref TileChangedEvent args)
|
||||
{
|
||||
if (!args.NewTile.IsSpace(_tileDefMan))
|
||||
return;
|
||||
|
||||
@@ -221,7 +221,7 @@ public sealed partial class ExplosionSystem : EntitySystem
|
||||
/// <summary>
|
||||
/// When a tile is updated, we might need to update the grid edge maps.
|
||||
/// </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.
|
||||
if (!ev.NewTile.Tile.IsEmpty && !ev.OldTile.IsEmpty)
|
||||
|
||||
@@ -53,7 +53,7 @@ public sealed partial class PathfindingSystem
|
||||
SubscribeLocalEvent<MoveEvent>(OnMoveEvent);
|
||||
}
|
||||
|
||||
private void OnTileChange(TileChangedEvent ev)
|
||||
private void OnTileChange(ref TileChangedEvent ev)
|
||||
{
|
||||
if (ev.OldTile.IsEmpty == ev.NewTile.Tile.IsEmpty)
|
||||
return;
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace Content.Server.Shuttles.Systems
|
||||
SubscribeLocalEvent<ThrusterComponent, RefreshPartsEvent>(OnRefreshParts);
|
||||
SubscribeLocalEvent<ThrusterComponent, UpgradeExamineEvent>(OnUpgradeExamine);
|
||||
|
||||
_mapManager.TileChanged += OnTileChange;
|
||||
SubscribeLocalEvent<ShuttleComponent, TileChangedEvent>(OnShuttleTileChange);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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 (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 grid = _mapManager.GetGrid(e.NewTile.GridUid);
|
||||
var tilePos = args.NewTile.GridIndices;
|
||||
var grid = _mapManager.GetGrid(uid);
|
||||
var xformQuery = GetEntityQuery<TransformComponent>();
|
||||
var thrusterQuery = GetEntityQuery<ThrusterComponent>();
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ namespace Content.Shared.SubFloor
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTileChanged(TileChangedEvent args)
|
||||
private void OnTileChanged(ref TileChangedEvent args)
|
||||
{
|
||||
if (args.OldTile.IsEmpty)
|
||||
return; // Nothing is anchored here anyways.
|
||||
|
||||
Reference in New Issue
Block a user