* Rodents can be Faxecuted (executed via Fax machine) * use brute instead of new group. * fax visuals now use tags for mouse and hamster instead of comps * fix for ubuntu, damn ubuntu bane of my life * cant copy hamlet, can now faxecute mothroaches. * fix * fix * fixes * removed ifs now using switch, removed hastag now using string. * fixes and no more switch * cleanup * more cleanup * fix * cleanup * moved damage out of faxmachine and into own system and component. * changes * fixes and done i think. * tidy * Fixes --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
49 lines
1.6 KiB
C#
49 lines
1.6 KiB
C#
using Robust.Client.GameObjects;
|
|
using Content.Shared.Fax.Components;
|
|
using Content.Shared.Fax;
|
|
using Robust.Client.Animations;
|
|
|
|
namespace Content.Client.Fax.System;
|
|
|
|
/// <summary>
|
|
/// Visualizer for the fax machine which displays the correct sprite based on the inserted entity.
|
|
/// </summary>
|
|
public sealed class FaxVisualsSystem : EntitySystem
|
|
{
|
|
[Dependency] private readonly AnimationPlayerSystem _player = default!;
|
|
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
|
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
SubscribeLocalEvent<FaxMachineComponent, AppearanceChangeEvent>(OnAppearanceChanged);
|
|
}
|
|
|
|
private void OnAppearanceChanged(EntityUid uid, FaxMachineComponent component, ref AppearanceChangeEvent args)
|
|
{
|
|
if (args.Sprite == null)
|
|
return;
|
|
|
|
if (_appearance.TryGetData(uid, FaxMachineVisuals.VisualState, out FaxMachineVisualState visuals) && visuals == FaxMachineVisualState.Inserting)
|
|
{
|
|
_player.Play(uid, new Animation()
|
|
{
|
|
Length = TimeSpan.FromSeconds(2.4),
|
|
AnimationTracks =
|
|
{
|
|
new AnimationTrackSpriteFlick()
|
|
{
|
|
LayerKey = FaxMachineVisuals.VisualState,
|
|
KeyFrames =
|
|
{
|
|
new AnimationTrackSpriteFlick.KeyFrame(component.InsertingState, 0f),
|
|
new AnimationTrackSpriteFlick.KeyFrame("icon", 2.4f),
|
|
}
|
|
}
|
|
}
|
|
}, "faxecute");
|
|
}
|
|
}
|
|
}
|