mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-17 05:27:38 +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]? --> Originally started because I wanted to add some stuff to salvage, but ended up with me porting over whitelisted borg hands, the PKA module, and some other stuff. --- # 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: Engi borgs can now carry electronics, and medical borgs can carry organs - add: Salvage borgs now get a PKA module - tweak: All mining drills have had their damage turned to piercing and have received a moderate damage buff - tweak: Exosuit drills now swing at the same speed as normal drills (why were they worse???) - tweak: The RPD and RCD modules for borg have been merged into one - tweak: Salvage can now purchase drills from their vendor - tweak: Salvage borgs mining module no longer contains a shovel --------- Co-authored-by: Your Name <EctoplasmIsGood@users.noreply.github.com> Co-authored-by: Whatstone <whatston3@gmail.com> Co-authored-by: RatherUncreative <RatherUncreativeName@proton.me> Co-authored-by: Aidenkrz <aiden@djkraz.com> (cherry picked from commit ed8850e551bd9c0d533d69cad262a8743442a62a)
48 lines
1.6 KiB
C#
48 lines
1.6 KiB
C#
using Content.Client._NF.Hands.UI;
|
|
using Content.Client.Items;
|
|
using Content.Client.Items.Systems;
|
|
using Content.Shared._NF.Interaction.Components;
|
|
using JetBrains.Annotations;
|
|
using Robust.Client.GameObjects;
|
|
|
|
namespace Content.Client._NF.Interaction.Systems;
|
|
|
|
/// <summary>
|
|
/// Handles interactions with items that spawn HandPlaceholder items.
|
|
/// </summary>
|
|
[UsedImplicitly]
|
|
public sealed partial class HandPlaceholderVisualsSystem : EntitySystem
|
|
{
|
|
[Dependency] ContainerSystem _container = default!;
|
|
[Dependency] ItemSystem _item = default!;
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
SubscribeLocalEvent<HandPlaceholderComponent, AfterAutoHandleStateEvent>(OnAfterAutoHandleState);
|
|
|
|
SubscribeLocalEvent<HandPlaceholderVisualsComponent, ComponentRemove>(PlaceholderRemove);
|
|
|
|
Subs.ItemStatus<HandPlaceholderVisualsComponent>(_ => new HandPlaceholderStatus());
|
|
}
|
|
|
|
private void OnAfterAutoHandleState(Entity<HandPlaceholderComponent> ent, ref AfterAutoHandleStateEvent args)
|
|
{
|
|
if (!TryComp(ent, out HandPlaceholderVisualsComponent? placeholder))
|
|
return;
|
|
|
|
if (placeholder.Dummy != EntityUid.Invalid)
|
|
QueueDel(placeholder.Dummy);
|
|
placeholder.Dummy = Spawn(ent.Comp.Prototype);
|
|
|
|
if (_container.IsEntityInContainer(ent))
|
|
_item.VisualsChanged(ent);
|
|
}
|
|
|
|
private void PlaceholderRemove(Entity<HandPlaceholderVisualsComponent> ent, ref ComponentRemove args)
|
|
{
|
|
if (ent.Comp.Dummy != EntityUid.Invalid)
|
|
QueueDel(ent.Comp.Dummy);
|
|
}
|
|
}
|