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))]
public sealed partial class OrganComponent : Component, ISurgeryToolComponent // Shitmed Change
{
///
/// Relevant body this organ is attached to.
///
[DataField, AutoNetworkedField]
public EntityUid? Body;
///
/// Shitmed Change:Relevant body this organ originally belonged to.
/// FOR WHATEVER FUCKING REASON AUTONETWORKING THIS CRASHES GIBTEST AAAAAAAAAAAAAAA
///
[DataField]
public EntityUid? OriginalBody;
// Shitmed Change Start
///
/// 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.
///
[DataField]
public string SlotId = string.Empty;
[DataField]
public string ToolName { get; set; } = "An organ";
[DataField]
public float Speed { get; set; } = 1f;
///
/// Shitmed Change: If true, the organ will not heal an entity when transplanted into them.
///
[DataField, AutoNetworkedField]
public bool? Used { get; set; }
///
/// When attached, the organ will ensure these components on the entity, and delete them on removal.
///
[DataField]
public ComponentRegistry? OnAdd;
///
/// When removed, the organ will ensure these components on the entity, and delete them on insertion.
///
[DataField]
public ComponentRegistry? OnRemove;
///
/// Is this organ working or not?
///
[DataField, AutoNetworkedField]
public bool Enabled = true;
///
/// Can this organ be enabled or disabled? Used mostly for prop, damaged or useless organs.
///
[DataField]
public bool CanEnable = true;
// Shitmed Change End
}