From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Fri, 14 Apr 2023 08:45:58 +0000 (+0000) Subject: refactor toilet (#15406) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=ffe946729f6b80dc971f266ad1e701661a9a4e53;p=space-station-14.git refactor toilet (#15406) Co-authored-by: deltanedas <@deltanedas:kde.org> --- diff --git a/Content.Server/Toilet/ToiletSystem.cs b/Content.Server/Toilet/ToiletSystem.cs index 03591433fb..d158b71616 100644 --- a/Content.Server/Toilet/ToiletSystem.cs +++ b/Content.Server/Toilet/ToiletSystem.cs @@ -25,11 +25,11 @@ namespace Content.Server.Toilet { [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; - [Dependency] private readonly BodySystem _bodySystem = default!; + [Dependency] private readonly BodySystem _body = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SecretStashSystem _secretStash = default!; - [Dependency] private readonly PopupSystem _popupSystem = default!; - [Dependency] private readonly SharedToolSystem _toolSystem = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly SharedToolSystem _tool = default!; public override void Initialize() { @@ -49,16 +49,17 @@ namespace Content.Server.Toilet return; // Check that victim has a head - if (EntityManager.TryGetComponent(args.Victim, out var body) && - _bodySystem.BodyHasChildOfType(args.Victim, BodyPartType.Head, body)) + // FIXME: since suiciding turns you into a ghost immediately, both messages are seen, not sure how this can be fixed + if (TryComp(args.Victim, out var body) && + _body.BodyHasChildOfType(args.Victim, BodyPartType.Head, body)) { var othersMessage = Loc.GetString("toilet-component-suicide-head-message-others", ("victim", Identity.Entity(args.Victim, EntityManager)), ("owner", uid)); - _popupSystem.PopupEntity(othersMessage, uid, Filter.PvsExcept(args.Victim), true, PopupType.MediumCaution); + _popup.PopupEntity(othersMessage, uid, Filter.PvsExcept(args.Victim), true, PopupType.MediumCaution); var selfMessage = Loc.GetString("toilet-component-suicide-head-message", ("owner", uid)); - _popupSystem.PopupEntity(selfMessage, uid, args.Victim, PopupType.LargeCaution); + _popup.PopupEntity(selfMessage, uid, args.Victim, PopupType.LargeCaution); args.SetHandled(SuicideKind.Asphyxiation); } @@ -66,11 +67,11 @@ namespace Content.Server.Toilet { var othersMessage = Loc.GetString("toilet-component-suicide-message-others", ("victim", Identity.Entity(args.Victim, EntityManager)), ("owner", uid)); - _popupSystem.PopupEntity(othersMessage, uid, Filter.PvsExcept(uid), true, PopupType.MediumCaution); + _popup.PopupEntity(othersMessage, uid, Filter.PvsExcept(uid), true, PopupType.MediumCaution); var selfMessage = Loc.GetString("toilet-component-suicide-message", ("owner", uid)); - _popupSystem.PopupEntity(selfMessage, uid, args.Victim, PopupType.LargeCaution); + _popup.PopupEntity(selfMessage, uid, args.Victim, PopupType.LargeCaution); args.SetHandled(SuicideKind.Blunt); } @@ -78,7 +79,7 @@ namespace Content.Server.Toilet private void OnInit(EntityUid uid, ToiletComponent component, ComponentInit args) { - EntityManager.EnsureComponent(uid); + EnsureComp(uid); } private void OnMapInit(EntityUid uid, ToiletComponent component, MapInitEvent args) @@ -94,7 +95,7 @@ namespace Content.Server.Toilet return; // are player trying place or lift of cistern lid? - if (_toolSystem.UseTool(args.Used, args.User, uid, component.PryLidTime, component.PryingQuality, new ToiletPryDoAfterEvent())) + if (_tool.UseTool(args.Used, args.User, uid, component.PryLidTime, component.PryingQuality, new ToiletPryDoAfterEvent())) { args.Handled = true; } @@ -124,11 +125,8 @@ namespace Content.Server.Toilet // just want to up/down seat? // check that nobody seats on seat right now - if (EntityManager.TryGetComponent(uid, out StrapComponent? strap)) - { - if (strap.BuckledEntities.Count != 0) - return; - } + if (TryComp(uid, out var strap) && strap.BuckledEntities.Count != 0) + return; ToggleToiletSeat(uid, component); args.Handled = true; @@ -167,7 +165,7 @@ namespace Content.Server.Toilet private void UpdateSprite(EntityUid uid, ToiletComponent component) { - if (!EntityManager.TryGetComponent(uid, out AppearanceComponent? appearance)) + if (!TryComp(uid, out var appearance)) return; _appearance.SetData(uid, ToiletVisuals.LidOpen, component.LidOpen, appearance); diff --git a/Content.Shared/Toilet/SharedWaterclosetVisuals.cs b/Content.Shared/Toilet/SharedWaterclosetVisuals.cs deleted file mode 100644 index 7471247004..0000000000 --- a/Content.Shared/Toilet/SharedWaterclosetVisuals.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Robust.Shared.Serialization; - -namespace Content.Shared.Toilet -{ - [Serializable, NetSerializable] - public enum ToiletVisuals - { - LidOpen, - SeatUp - } -} diff --git a/Content.Shared/Toilet/ToiletVisuals.cs b/Content.Shared/Toilet/ToiletVisuals.cs new file mode 100644 index 0000000000..c5992bc0be --- /dev/null +++ b/Content.Shared/Toilet/ToiletVisuals.cs @@ -0,0 +1,10 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.Toilet; + +[Serializable, NetSerializable] +public enum ToiletVisuals +{ + LidOpen, + SeatUp +} diff --git a/Resources/Locale/en-US/toilet/toilet-component.ftl b/Resources/Locale/en-US/toilet/toilet-component.ftl index f5021e7451..2cbfdfbff1 100644 --- a/Resources/Locale/en-US/toilet/toilet-component.ftl +++ b/Resources/Locale/en-US/toilet/toilet-component.ftl @@ -1,6 +1,6 @@ ## ToiletComponent -toilet-component-on-examine-found-hidden-item = There is [color=darkgreen]something[/color] inside cistern! +toilet-component-on-examine-found-hidden-item = There is something inside of the cistern! toilet-component-suicide-head-message-others = {CAPITALIZE(THE($victim))} sticks their head into {THE($owner)} and flushes it! toilet-component-suicide-head-message = You stick your head into {THE($owner)} and flush it! toilet-component-suicide-message-others = {CAPITALIZE(THE($victim))} bashes themselves with {THE($owner)}!