mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-18 14:07:53 +03:00
<!-- This is a semi-strict format, you can add/remove sections as needed but the order/format should be kept the same Remove these comments before submitting --> # Description <!-- Explain this PR in as much detail as applicable Some example prompts to consider: How might this affect the game? The codebase? What might be some alternatives to this? How/Who does this benefit/hurt [the game/codebase]? --> Check the changelog for the full list. --- # Changelog <!-- You can add an author after the `🆑` to change the name that appears in the changelog (ex: `🆑 Death`) Leaving it blank will default to your GitHub display name This includes all available types for the changelog --> 🆑 - add: Added Holopads (unmapped) - add: Intellicards are now useful for removing/adding a Station AI's brain. - add: Added the Communications Console to Station AI actions. - add: AI now has a warp point. - add: Added more things for the AI to press. - add: More AI laws have been added. - fix: Fixed the mail system - fix: Fixed AI actions - fix: Fixed invalid spawns for station AI breaking and ruining your ability to play it. - fix: The Station AI's name will now properly send in "arrived to the station" announcements. - fix: Changed the CPR sound to simply not loop until fixed. - fix: Fixed unlocalized messages being sent for the random sentience event. --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com> Co-authored-by: Zachary Higgs <compgeek223@gmail.com> Co-authored-by: MendaxxDev <153332064+MendaxxDev@users.noreply.github.com> Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> (cherry picked from commit 3e8a7d9b00e19e160321eb81d69a884189dfa4e6)
49 lines
1.6 KiB
C#
49 lines
1.6 KiB
C#
using Content.Shared.DeltaV.Hologram;
|
|
using Robust.Client.GameObjects;
|
|
using Robust.Client.Graphics;
|
|
using Robust.Shared.Prototypes;
|
|
|
|
namespace Content.Client.DeltaV.Hologram;
|
|
|
|
public sealed class HologramSystem : SharedHologramSystem
|
|
{
|
|
[Dependency] private readonly IPrototypeManager _protoMan = default!;
|
|
[Dependency] private readonly OccluderSystem _occluder = default!;
|
|
[Dependency] private readonly EntityManager _entMan = default!;
|
|
|
|
private ShaderInstance _shader = default!;
|
|
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
_shader = _protoMan.Index<ShaderPrototype>("HologramDeltaV").InstanceUnique();
|
|
SubscribeLocalEvent<HologramComponent, ComponentShutdown>(OnShutdown);
|
|
SubscribeLocalEvent<HologramComponent, ComponentStartup>(OnStartup);
|
|
}
|
|
|
|
private void SetShader(EntityUid uid, bool enabled, HologramComponent? component = null, SpriteComponent? sprite = null)
|
|
{
|
|
if (!Resolve(uid, ref component, ref sprite, false))
|
|
return;
|
|
|
|
sprite.PostShader = enabled ? _shader : null;
|
|
}
|
|
|
|
private void OnStartup(EntityUid uid, HologramComponent component, ComponentStartup args)
|
|
{
|
|
SetShader(uid, true, component);
|
|
|
|
component.Occludes = _entMan.TryGetComponent<OccluderComponent>(uid, out var occluder) && occluder.Enabled;
|
|
if (component.Occludes)
|
|
_occluder.SetEnabled(uid, false);
|
|
}
|
|
|
|
private void OnShutdown(EntityUid uid, HologramComponent component, ComponentShutdown args)
|
|
{
|
|
SetShader(uid, false, component);
|
|
if (component.Occludes)
|
|
_occluder.SetEnabled(uid, true);
|
|
}
|
|
}
|