using System; using Sirenix.OdinInspector; using VOID.Generic.Dict; namespace VOID.Generic.Objects.Abstract.Data { [Serializable] public record Resources { [MinValue(0f)] public float health = 10f; public float Get(BasicResourceType type) { return type switch { BasicResourceType.Health => health, _ => throw new ArgumentOutOfRangeException(nameof(type), type, null) }; } public void Set(BasicResourceType type, float value) { switch(type) { case BasicResourceType.Health: health = value; return; default: throw new ArgumentOutOfRangeException(nameof(type), type, null); }; } } }