* 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>
80 lines
2.5 KiB
C#
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!;
|
|
}
|