namespace RhythmBase.Components; /// /// A Character. /// public readonly struct RDCharacter { /// /// Whether in-game character or customized character(sprite). /// public bool IsCustom { get; } /// /// In-game character. ///
/// If using a customized character, this value will be empty ///
public RDCharacters? Character { get; } /// /// Customized character(sprite). ///
/// If using an in-game character, this value will be empty ///
public string? CustomCharacter { get; } /// /// Construct an in-game character. /// /// Character type. public RDCharacter(RDCharacters character) { IsCustom = false; Character = character; } /// /// Construct a customized character. /// /// A sprite. public RDCharacter(string character) { IsCustom = true; CustomCharacter = character; } /// public static implicit operator RDCharacter(RDCharacters character) => new(character); /// public static implicit operator RDCharacter(string character) => new(character); /// public override readonly string ToString() => (IsCustom ? (CustomCharacter) : Character?.ToString()) ?? "[Null]"; }