Files

94 lines
2.9 KiB
C#
Raw Permalink Normal View History

2024-02-24 16:37:40 +03:00
using Content.Server._Amour.Animation;
2024-02-27 18:22:15 +03:00
using Content.Server._Amour.Hole;
2024-09-05 18:12:46 +03:00
using Content.Server._Honk.Cunt;
2024-02-27 18:22:15 +03:00
using Content.Server.Hands.Systems;
using Content.Server.Standing;
2024-09-05 18:12:46 +03:00
using Content.Shared._Amour.Hole;
2024-02-23 18:52:03 +03:00
using Content.Shared._Amour.InteractionPanel;
2024-09-05 18:12:46 +03:00
using Content.Shared._Honk.Cunt;
2024-02-27 18:22:15 +03:00
using Content.Shared.Hands.Components;
using Content.Shared.Movement.Pulling.Systems;
2024-09-05 18:12:46 +03:00
using Robust.Shared.Audio;
using Robust.Shared.Audio.Systems;
2024-02-23 18:52:03 +03:00
namespace Content.Server._Amour.InteractionPanel;
public sealed class Interactions : EntitySystem
{
2024-03-22 13:40:57 +03:00
[Dependency] private readonly StandingStateSystem _standingState = default!;
2024-02-24 16:37:40 +03:00
[Dependency] private readonly SharebleAnimationSystem _animationSystem = default!;
2024-02-26 21:43:11 +03:00
[Dependency] private readonly PullingSystem _pullingSystem = default!;
2024-02-27 18:22:15 +03:00
[Dependency] private readonly HoleSystem _holeSystem = default!;
[Dependency] private readonly HandsSystem _handsSystem = default!;
2024-09-05 18:12:46 +03:00
[Dependency] private readonly CuntSystem _cuntSystem = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
2024-02-27 18:22:15 +03:00
2024-02-23 18:52:03 +03:00
public override void Initialize()
{
SubscribeLocalEvent<InteractionPanelComponent,InteractionBeginningEvent>(OnBegin);
SubscribeLocalEvent<InteractionPanelComponent,InteractionEndingEvent>(OnEnd);
}
private void OnEnd(EntityUid uid, InteractionPanelComponent component, InteractionEndingEvent args)
{
if(args.Handled)
return;
switch (args.Id)
{
}
}
private void OnBegin(EntityUid uid, InteractionPanelComponent component, InteractionBeginningEvent args)
{
if(args.Handled)
return;
switch (args.Id)
{
2024-02-26 21:43:11 +03:00
case "PullTarget" :
_pullingSystem.TryStartPull(uid, args.Target);
break;
case "CrawlTarget" :
2024-03-22 13:40:57 +03:00
_standingState.TryLieDown(args.Target);
2024-02-24 16:37:40 +03:00
break;
2024-02-27 18:22:15 +03:00
case "ItemOnButt":
PutHole(uid,"Anus");
break;
case "ItemOnVagina":
PutHole(uid,"Vagina");
break;
case "ItemFromButt":
TakeHole(uid,"Anus");
break;
case "ItemFromVagina":
TakeHole(uid,"Vagina");
break;
}
}
private void PutHole(EntityUid uid,string holeType)
{
if (!TryComp<HandsComponent>(uid, out var handsComponent)
|| handsComponent.ActiveHand?.HeldEntity is null
|| !_holeSystem.TryFind(uid,holeType,out var hole))
return;
var ent = handsComponent.ActiveHand.HeldEntity.Value;
_holeSystem.PutItem(ent,hole.Owner);
}
private void TakeHole(EntityUid uid,string holeType)
{
if (!_holeSystem.TryFind(uid,holeType,out var hole))
return;
foreach (var entity in _holeSystem.TakeItem(hole.Owner))
{
_handsSystem.TryPickup(uid, entity);
2024-02-23 18:52:03 +03:00
}
}
}