Files
tbd-station-14/Content.Shared/RatKing/Components/RummageableComponent.cs
Jessica M b2d09ba457 Rat King Refactor Part 0: Separate Rummaging from RatKingComponent. (#40530)
* separate rummager into its own component/system

* thing

* address review and entitytables

* reviews

* review

* warnings

* Update Content.Shared/RatKing/Systems/RummagerSystem.cs

---------

Co-authored-by: Jessica M <jessica@maybe.sh>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-09-25 03:50:24 +02:00

41 lines
1.2 KiB
C#

using Content.Shared.EntityTable.EntitySelectors;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
namespace Content.Shared.RatKing.Components;
/// <summary>
/// This is used for entities that can be
/// rummaged through by the rat king to get loot.
/// </summary>
[RegisterComponent, NetworkedComponent]
[AutoGenerateComponentState]
public sealed partial class RummageableComponent : Component
{
/// <summary>
/// Whether or not this entity has been rummaged through already.
/// </summary>
[DataField("looted"), ViewVariables(VVAccess.ReadWrite)]
[AutoNetworkedField]
public bool Looted;
/// <summary>
/// How long it takes to rummage through a rummageable container.
/// </summary>
[DataField("rummageDuration"), ViewVariables(VVAccess.ReadWrite)]
[AutoNetworkedField]
public float RummageDuration = 3f;
/// <summary>
/// The entity table to select loot from.
/// </summary>
[DataField(required: true)]
public EntityTableSelector Table = default!;
/// <summary>
/// Sound played on rummage completion.
/// </summary>
[DataField("sound")]
public SoundSpecifier? Sound = new SoundCollectionSpecifier("storageRustle");
}