73 lines
2.3 KiB
C#
73 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.Tools; // Shitmed Change
|
|
|
|
namespace Content.Shared.Body.Organ;
|
|
|
|
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
|
[Access(typeof(SharedBodySystem))]
|
|
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, AlwaysPushInheritance]
|
|
public string SlotId = "";
|
|
|
|
[DataField, AlwaysPushInheritance]
|
|
public string ToolName { get; set; } = "An organ";
|
|
|
|
[DataField, AlwaysPushInheritance]
|
|
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 add them on removal.
|
|
/// </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
|
|
}
|