From: I.K <45953835+notquitehadouken@users.noreply.github.com> Date: Mon, 8 Jan 2024 06:23:41 +0000 (-0600) Subject: Improve visibility of gun bolts (#23711) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=dc994f9c66f13f8195b7938f849003dc5b37464d;p=space-station-14.git Improve visibility of gun bolts (#23711) * add overlay * ?????? --- diff --git a/Content.Client/CombatMode/CombatModeIndicatorsOverlay.cs b/Content.Client/CombatMode/CombatModeIndicatorsOverlay.cs index 9732a67753..b2bdf2893d 100644 --- a/Content.Client/CombatMode/CombatModeIndicatorsOverlay.cs +++ b/Content.Client/CombatMode/CombatModeIndicatorsOverlay.cs @@ -4,6 +4,7 @@ using Content.Shared.Weapons.Ranged.Components; using Robust.Client.GameObjects; using Robust.Client.Graphics; using Robust.Client.Input; +using Robust.Client.Serialization; using Robust.Client.UserInterface; using Robust.Shared.Enums; using Robust.Shared.Graphics; @@ -26,6 +27,7 @@ public sealed class CombatModeIndicatorsOverlay : Overlay private readonly HandsSystem _hands = default!; private readonly Texture _gunSight; + private readonly Texture _gunBoltSight; private readonly Texture _meleeSight; public override OverlaySpace Space => OverlaySpace.ScreenSpace; @@ -46,6 +48,8 @@ public sealed class CombatModeIndicatorsOverlay : Overlay var spriteSys = _entMan.EntitySysManager.GetEntitySystem(); _gunSight = spriteSys.Frame0(new SpriteSpecifier.Rsi(new ResPath("/Textures/Interface/Misc/crosshair_pointers.rsi"), "gun_sight")); + _gunBoltSight = spriteSys.Frame0(new SpriteSpecifier.Rsi(new ResPath("/Textures/Interface/Misc/crosshair_pointers.rsi"), + "gun_bolt_sight")); _meleeSight = spriteSys.Frame0(new SpriteSpecifier.Rsi(new ResPath("/Textures/Interface/Misc/crosshair_pointers.rsi"), "melee_sight")); } @@ -67,12 +71,16 @@ public sealed class CombatModeIndicatorsOverlay : Overlay var handEntity = _hands.GetActiveHandEntity(); var isHandGunItem = _entMan.HasComponent(handEntity); + var isGunBolted = true; + if (_entMan.TryGetComponent(handEntity, out ChamberMagazineAmmoProviderComponent? chamber)) + isGunBolted = chamber.BoltClosed ?? true; + var mousePos = mouseScreenPosition.Position; var uiScale = (args.ViewportControl as Control)?.UIScale ?? 1f; var limitedScale = uiScale > 1.25f ? 1.25f : uiScale; - var sight = isHandGunItem ? _gunSight : _meleeSight; + var sight = isHandGunItem ? (isGunBolted ? _gunSight : _gunBoltSight) : _meleeSight; DrawSight(sight, args.ScreenHandle, mousePos, limitedScale * Scale); } diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index 06667857b3..45f4f2e608 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -323,7 +323,7 @@ public abstract partial class SharedGunSystem : EntitySystem { if (ev.Reason != null) { - PopupSystem.PopupClient(ev.Reason, gunUid, user); + PopupSystem.PopupCursor(ev.Reason); } // Don't spam safety sounds at gun fire rate, play it at a reduced rate. diff --git a/Resources/Textures/Interface/Misc/crosshair_pointers.rsi/gun_bolt_sight.png b/Resources/Textures/Interface/Misc/crosshair_pointers.rsi/gun_bolt_sight.png new file mode 100644 index 0000000000..4badcc7d1e Binary files /dev/null and b/Resources/Textures/Interface/Misc/crosshair_pointers.rsi/gun_bolt_sight.png differ diff --git a/Resources/Textures/Interface/Misc/crosshair_pointers.rsi/meta.json b/Resources/Textures/Interface/Misc/crosshair_pointers.rsi/meta.json index a9ef50c0dd..25fd92795e 100644 --- a/Resources/Textures/Interface/Misc/crosshair_pointers.rsi/meta.json +++ b/Resources/Textures/Interface/Misc/crosshair_pointers.rsi/meta.json @@ -10,6 +10,9 @@ { "name": "gun_sight" }, + { + "name": "gun_bolt_sight" + }, { "name": "melee_sight" }