using Robust.Shared.GameStates;
using Robust.Shared.Serialization;
namespace Content.Shared._NF.Atmos.Components;
[RegisterComponent, NetworkedComponent]
public sealed partial class GasDepositScannerComponent : Component
{
[ViewVariables]
public EntityUid? Target;
[ViewVariables]
public EntityUid User;
[DataField, ViewVariables(VVAccess.ReadWrite)]
public bool Enabled;
[Serializable, NetSerializable]
public enum GasDepositScannerUiKey
{
Key,
}
///
/// Atmospheric data is gathered in the system and sent to the user
///
[Serializable, NetSerializable]
public sealed class GasDepositScannerUserMessage : BoundUserInterfaceMessage
{
public GasEntry[] Gases;
public NetEntity DepositUid;
public string? Error;
public GasDepositScannerUserMessage(GasEntry[] gases, NetEntity depositUid, string? error = null)
{
Gases = gases;
DepositUid = depositUid;
Error = error;
}
}
public enum ApproximateGasDepositSize
{
Trace,
Small,
Medium,
Large,
Enormous
}
///
/// Individual gas entry data for populating the UI
///
[Serializable, NetSerializable]
public struct GasEntry(string name, ApproximateGasDepositSize amount)
{
public readonly string Name = name;
public readonly ApproximateGasDepositSize Amount = amount;
}
[Serializable, NetSerializable]
public sealed class GasDepositScannerDisableMessage : BoundUserInterfaceMessage
{
}
}
[Serializable, NetSerializable]
public enum GasDepositScannerVisuals : byte
{
Enabled,
}