Delta-v/Content.Shared/Body/Organ/OrganComponent.cs

74 lines
2.3 KiB
C#

using Content.Shared.Body.Systems;
using Robust.Shared.Containers;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes; // Shitmed Change
using Content.Shared._Shitmed.Medical.Surgery; // Shitmed Change
using Content.Shared._Shitmed.Medical.Surgery.Tools; // Shitmed Change
namespace Content.Shared.Body.Organ;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
[Access(typeof(SharedBodySystem), typeof(SharedSurgerySystem))] // Shitmed Change
public sealed partial class OrganComponent : Component, ISurgeryToolComponent // Shitmed Change
{
/// <summary>
/// Relevant body this organ is attached to.
/// </summary>
[DataField, AutoNetworkedField]
public EntityUid? Body;
/// <summary>
/// Shitmed Change:Relevant body this organ originally belonged to.
/// FOR WHATEVER FUCKING REASON AUTONETWORKING THIS CRASHES GIBTEST AAAAAAAAAAAAAAA
/// </summary>
[DataField]
public EntityUid? OriginalBody;
// Shitmed Change Start
/// <summary>
/// Shitmed Change: Shitcodey solution to not being able to know what name corresponds to each organ's slot ID
/// without referencing the prototype or hardcoding.
/// </summary>
[DataField]
public string SlotId = string.Empty;
[DataField]
public string ToolName { get; set; } = "An organ";
[DataField]
public float Speed { get; set; } = 1f;
/// <summary>
/// Shitmed Change: If true, the organ will not heal an entity when transplanted into them.
/// </summary>
[DataField, AutoNetworkedField]
public bool? Used { get; set; }
/// <summary>
/// When attached, the organ will ensure these components on the entity, and delete them on removal.
/// </summary>
[DataField]
public ComponentRegistry? OnAdd;
/// <summary>
/// When removed, the organ will ensure these components on the entity, and delete them on insertion.
/// </summary>
[DataField]
public ComponentRegistry? OnRemove;
/// <summary>
/// Is this organ working or not?
/// </summary>
[DataField, AutoNetworkedField]
public bool Enabled = true;
/// <summary>
/// Can this organ be enabled or disabled? Used mostly for prop, damaged or useless organs.
/// </summary>
[DataField]
public bool CanEnable = true;
// Shitmed Change End
}