mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-18 05:59:03 +03:00
Lots of stuff. Also moved everything I could to the _Shitmed namespace
as I do in Goob. Will make future ports way faster
# Changelog
🆑 Mocho
- add: Added some fun organs and other thingies, check out the Goob PRs
if you want more details.
- fix: Fixed tons of issues with shitmed. Too many for the changelog in
fact.
(cherry picked from commit 3c9db94102cb25b28a83d51ac8d659fa31fe7d12)
56 lines
1.8 KiB
C#
56 lines
1.8 KiB
C#
using Content.Server.Emp;
|
|
using Content.Shared.Body.Part;
|
|
using Content.Shared.Body.Organ;
|
|
using Content.Shared._Shitmed.Body.Organ;
|
|
using Content.Shared._Shitmed.Body.Events;
|
|
using Content.Shared._Shitmed.Cybernetics;
|
|
|
|
namespace Content.Server._Shitmed.Cybernetics;
|
|
|
|
internal sealed class CyberneticsSystem : EntitySystem
|
|
{
|
|
public override void Initialize()
|
|
{
|
|
SubscribeLocalEvent<CyberneticsComponent, EmpPulseEvent>(OnEmpPulse);
|
|
SubscribeLocalEvent<CyberneticsComponent, EmpDisabledRemoved>(OnEmpDisabledRemoved);
|
|
}
|
|
private void OnEmpPulse(Entity<CyberneticsComponent> cyberEnt, ref EmpPulseEvent ev)
|
|
{
|
|
if (!cyberEnt.Comp.Disabled)
|
|
{
|
|
ev.Affected = true;
|
|
ev.Disabled = true;
|
|
cyberEnt.Comp.Disabled = true;
|
|
|
|
if (HasComp<OrganComponent>(cyberEnt))
|
|
{
|
|
var disableEvent = new OrganEnableChangedEvent(false);
|
|
RaiseLocalEvent(cyberEnt, ref disableEvent);
|
|
}
|
|
else if (HasComp<BodyPartComponent>(cyberEnt))
|
|
{
|
|
var disableEvent = new BodyPartEnableChangedEvent(false);
|
|
RaiseLocalEvent(cyberEnt, ref disableEvent);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnEmpDisabledRemoved(Entity<CyberneticsComponent> cyberEnt, ref EmpDisabledRemoved ev)
|
|
{
|
|
if (cyberEnt.Comp.Disabled)
|
|
{
|
|
cyberEnt.Comp.Disabled = false;
|
|
if (HasComp<OrganComponent>(cyberEnt))
|
|
{
|
|
var enableEvent = new OrganEnableChangedEvent(true);
|
|
RaiseLocalEvent(cyberEnt, ref enableEvent);
|
|
}
|
|
else if (HasComp<BodyPartComponent>(cyberEnt))
|
|
{
|
|
var enableEvent = new BodyPartEnableChangedEvent(true);
|
|
RaiseLocalEvent(cyberEnt, ref enableEvent);
|
|
}
|
|
}
|
|
}
|
|
}
|