CatStation/Content.Client/Effects/ScreechShockWaveSystem.cs
KeTuFaisPiKiNut cd6d356005
Screeching & Changeling Screech (#44432)
* pcmasterrace

* RMC screech port + i guess it works more

* i made a magic commit that mostly duplicates the flash system but different TM

* it just works nya

* final touchups

* Revert "pcmasterrace"

This reverts commit b75e9265610924c3a1a30761e5e050cb6ee63bc8.

* there, support for more :godo:

* Update Content.Shared/Screech/SharedScreechSystem.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* all feedback except the big one

* i lied

* mfw code

* fix

* le shader temp

* vfx

* Revert "le shader temp"

This reverts commit 0180a8c1a6ffe82f0ae8d151c07d0794c3eb4984.

* Update Content.Client/Effects/ScreechShockWaveSystem.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Shared/Screech/ScreechShockWaveComponent.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Effects/ScreechShockWaveSystem.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* rwrw

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Shared/Screech/ScreechSystem.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* :godo:

* Update Content.Client/Overlays/ScreechShockWaveOverlay.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Update Content.Client/Effects/ScreechShockWaveSystem.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Effects

* sexy

* lang

* scub

* nya

* e

* fixed shader

* entity effects

* FNAF IS THIS WHERE U WANNA BE???????

* Update Resources/Locale/en-US/screech/screech.ftl

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>

* Update Content.Shared/Screech/NoiseProtection.cs

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>

* weeeee

* scar whyyyyy

* Update Content.Shared/Screech/ScreechSystem.cs

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>

* Update Content.Shared/Screech/ScreechSystem.cs

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>

* Update Content.Shared/Screech/ScreechSystem.cs

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>

* e

* they've got allen wrenches gerbil feeders toilet seat electric heaters

* cleanup

* datafield ig

* Revert "datafield ig"

This reverts commit dd0d9421452f156b0b1ebc527ac9b142d657ae50.

* comments

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: nomdéraisonnablementlong <you@example.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: ScarKy0 <scarky0@onet.eu>
2026-07-22 23:16:46 +00:00

36 lines
1.2 KiB
C#

using Content.Client.Overlays;
using Content.Shared.Screech;
using Robust.Client.Graphics;
namespace Content.Client.Effects;
/// <summary>
/// This system ensures that <see cref="ScreechShockWaveOverlay"/> does not use costly queries.
/// </summary>
public sealed partial class ScreechShockWaveSystem : EntitySystem
{
[Dependency] private IOverlayManager _overlayMan = default!;
private readonly HashSet<EntityUid> _registered = [];
public override void Initialize()
{
SubscribeLocalEvent<ScreechShockWaveComponent, ComponentStartup>(OnScreechShockWaveStartup);
SubscribeLocalEvent<ScreechShockWaveComponent, ComponentRemove>(OnScreechShockWaveRemoved);
}
private void OnScreechShockWaveStartup(Entity<ScreechShockWaveComponent> ent, ref ComponentStartup args)
{
var overlay = _overlayMan.GetOverlay<ScreechShockWaveOverlay>();
// we must only pass here once
if (!_registered.Add(ent.Owner))
return;
overlay.Register(ent);
}
private void OnScreechShockWaveRemoved(Entity<ScreechShockWaveComponent> ent, ref ComponentRemove args)
{
_registered.Remove(ent.Owner);
}
}