Files
OldThink/Content.Shared/RCD/Components/RCDComponent.cs
ThereDrD0 d627758826 Баффы (#510)
* Moodsystem cleanups

* remove overhydrated and overfed mood debuffs

* admins now join game deadmined + new player timers

* faster arrivals

* recharging rcd with metal, glass, plastic or cable coils

* better timings and costs + building apc and camera

* preparing for rpd

* RPD + make RCD more generic

* add rpd to atmos lockers, rcd to engivend

* rcd and rpd to technologies

* dont deadmin me in debug

* rcd ammo buff

* add ChargeCountModifier logic for non stackable items

* increase time to become experienced player

* Dynamic Radial Menus (#29678)

* fix

* Clean Some Code

* Some Commentaries

* Update Content.Client/UserInterface/Controls/RadialContainer.cs

* Update Content.Client/UserInterface/Controls/RadialContainer.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* more dynamically parameters

---------

Co-authored-by: Rinary <72972221+Rinary1@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-07-29 06:04:21 +03:00

80 lines
2.5 KiB
C#

using Content.Shared._White.RCD;
using Content.Shared.RCD.Systems;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Physics;
using Robust.Shared.Prototypes;
namespace Content.Shared.RCD.Components;
/// <summary>
/// Main component for the RCD
/// Optionally uses LimitedChargesComponent.
/// Charges can be refilled with RCD ammo
/// </summary>
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
[Access(typeof(RCDSystem))]
public sealed partial class RCDComponent : Component
{
/// <summary>
/// List of RCD prototypes that the device comes loaded with
/// </summary>
[DataField, AutoNetworkedField]
public HashSet<ProtoId<RCDPrototype>> AvailablePrototypes { get; set; } = new();
/// <summary>
/// Sound that plays when a RCD operation successfully completes
/// </summary>
[DataField]
public SoundSpecifier SuccessSound { get; set; } = new SoundPathSpecifier("/Audio/Items/deconstruct.ogg");
/// <summary>
/// The ProtoId of the currently selected RCD prototype
/// </summary>
[DataField, AutoNetworkedField]
public ProtoId<RCDPrototype> ProtoId { get; set; } = "Invalid";
/// <summary>
/// The ProtoId of the currently selected RCD prototype
/// </summary>
[DataField(required: true), AutoNetworkedField]
public HashSet<ProtoId<RCDCategoryPrototype>> CategoryPrototypes = default!;
/// <summary>
/// A cached copy of currently selected RCD prototype
/// </summary>
/// <remarks>
/// If the ProtoId is changed, make sure to update the CachedPrototype as well
/// </remarks>
[ViewVariables(VVAccess.ReadOnly)]
public RCDPrototype CachedPrototype { get; set; } = default!;
/// <summary>
/// The direction constructed entities will face upon spawning
/// </summary>
[DataField, AutoNetworkedField]
public Direction ConstructionDirection
{
get
{
return _constructionDirection;
}
set
{
_constructionDirection = value;
ConstructionTransform = new Transform(new(), _constructionDirection.ToAngle());
}
}
private Direction _constructionDirection = Direction.South;
/// <summary>
/// Returns a rotated transform based on the specified ConstructionDirection
/// </summary>
/// <remarks>
/// Contains no position data
/// </remarks>
[ViewVariables(VVAccess.ReadOnly)]
public Transform ConstructionTransform { get; private set; } = default!;
}