Files
wwdpublic/Content.Server/DeltaV/Hologram/HologramSystem.cs
Debug 7eeb4cfa6a Add hologram shader (#68)
* Add holograms!

* Updated localization files
2023-10-03 17:23:09 -05:00

44 lines
1.5 KiB
C#

using Content.Shared.Actions.Events;
using Content.Shared.DeltaV.Hologram;
using Content.Shared.Examine;
using Content.Shared.IdentityManagement;
using Content.Shared.Popups;
using Robust.Shared.Player;
namespace Content.Server.DeltaV.Hologram;
public sealed class HologramSystem : SharedHologramSystem
{
[Dependency] private readonly SharedPopupSystem _popup = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<HologramComponent, ExaminedEvent>(OnExamine);
SubscribeLocalEvent<HologramComponent, DisarmAttemptEvent>(OnDisarmAttempt);
}
private void OnExamine(EntityUid uid, HologramComponent component, ExaminedEvent args)
{
args.PushMarkup(Loc.GetString("hologram-on-examine"));
}
private void OnDisarmAttempt(EntityUid uid, HologramComponent component, DisarmAttemptEvent args)
{
if (component.PreventDisarm)
{
args.Cancel();
var filterOther = Filter.PvsExcept(args.DisarmerUid, entityManager: EntityManager);
var messageUser = Loc.GetString("hologram-disarm-blocked",
("target", Identity.Entity(args.TargetUid, EntityManager)));
var messageOther = Loc.GetString("hologram-disarm-blocked-other",
("target", Identity.Entity(args.TargetUid, EntityManager)), ("performerName", args.DisarmerUid));
_popup.PopupEntity(messageOther, args.DisarmerUid, filterOther, true);
_popup.PopupEntity(messageUser, args.TargetUid, args.DisarmerUid);
}
}
}