diff --git a/Content.Client/_Sunrise/VentCraw/VentCrawableSystem.cs b/Content.Client/_Sunrise/VentCraw/VentCrawableSystem.cs new file mode 100644 index 0000000000..c053d8f7b1 --- /dev/null +++ b/Content.Client/_Sunrise/VentCraw/VentCrawableSystem.cs @@ -0,0 +1,7 @@ +using Content.Shared._Sunrise.VentCraw; + +namespace Content.Client._Sunrise.VentCraw; + +public sealed class VentCrawableSystem : SharedVentCrawableSystem +{ +} diff --git a/Content.Shared/_Sunrise/VentCraw/SharedVentCrawableSystem.cs b/Content.Shared/_Sunrise/VentCraw/SharedVentCrawableSystem.cs index eb3813a9ae..2bd9ddfc3f 100644 --- a/Content.Shared/_Sunrise/VentCraw/SharedVentCrawableSystem.cs +++ b/Content.Shared/_Sunrise/VentCraw/SharedVentCrawableSystem.cs @@ -2,9 +2,13 @@ using System.Linq; using System.Numerics; using Content.Shared._Sunrise.VentCraw.Components; using Content.Shared.Body.Components; +using Content.Shared.Emoting; +using Content.Shared.Interaction.Events; using Content.Shared.Item; using Content.Shared.Movement.Events; +using Content.Shared.Movement.Pulling.Events; using Content.Shared.Movement.Systems; +using Content.Shared.Throwing; using Content.Shared.Tools.Components; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; @@ -17,7 +21,7 @@ namespace Content.Shared._Sunrise.VentCraw; /// /// A system that handles the crawling behavior for vent creatures. /// -public sealed class SharedVentCrawableSystem : EntitySystem +public abstract class SharedVentCrawableSystem : EntitySystem { [Dependency] private readonly SharedVentTubeSystem _ventCrawTubeSystem = default!; [Dependency] private readonly SharedPhysicsSystem _physicsSystem = default!; @@ -32,6 +36,42 @@ public sealed class SharedVentCrawableSystem : EntitySystem SubscribeLocalEvent(OnComponentStartup); SubscribeLocalEvent(OnMoveInput); + + SubscribeLocalEvent(OnAttempt); + SubscribeLocalEvent(OnAttempt); + SubscribeLocalEvent(OnAttempt); + SubscribeLocalEvent(OnInteractAttempt); + SubscribeLocalEvent(OnPullAttempt); + SubscribeLocalEvent(OnAttempt); + SubscribeLocalEvent(OnAttempt); + // SubscribeLocalEvent(OnEmoteAttempt); + // SubscribeLocalEvent(OnSpeakAttempt); + } + + // SUNRISE-TODO: Не уверен что стоит блокировать эмоции и речь в трубах, но атмос-фелинид может знатно подзаебать. + // private void OnSpeakAttempt(EntityUid uid, BeingVentCrawComponent component, SpeakAttemptEvent args) + // { + // args.Cancel(); + // } + // + // private void OnEmoteAttempt(EntityUid uid, BeingVentCrawComponent component, EmoteAttemptEvent args) + // { + // args.Cancel(); + // } + + private void OnInteractAttempt(Entity ent, ref InteractionAttemptEvent args) + { + args.Cancelled = true; + } + + private void OnAttempt(EntityUid uid, BeingVentCrawComponent component, CancellableEntityEventArgs args) + { + args.Cancel(); + } + + private void OnPullAttempt(EntityUid uid, BeingVentCrawComponent component, PullAttemptEvent args) + { + args.Cancelled = true; } ///