178 lines
5.5 KiB
Rust
178 lines
5.5 KiB
Rust
/* This file is generated. Do not edit manually. */
|
|
#[derive(Clone, Copy, PartialEq, Eq, Hash)]
|
|
#[repr(u32)]
|
|
pub enum JukeboxSong {
|
|
Id11,
|
|
Id13,
|
|
Id5,
|
|
Blocks,
|
|
Bounce,
|
|
Cat,
|
|
Chirp,
|
|
Creator,
|
|
CreatorMusicBox,
|
|
Far,
|
|
LavaChicken,
|
|
Mall,
|
|
Mellohi,
|
|
Otherside,
|
|
Pigstep,
|
|
Precipice,
|
|
Relic,
|
|
Stal,
|
|
Strad,
|
|
Tears,
|
|
Wait,
|
|
Ward,
|
|
}
|
|
impl JukeboxSong {
|
|
#[doc = r" Returns the `JukeboxSong` from the string name (e.g., 'pigstep')."]
|
|
#[must_use]
|
|
pub fn from_name(name: &str) -> Option<Self> {
|
|
match name {
|
|
"11" => Some(Self::Id11),
|
|
"13" => Some(Self::Id13),
|
|
"5" => Some(Self::Id5),
|
|
"blocks" => Some(Self::Blocks),
|
|
"bounce" => Some(Self::Bounce),
|
|
"cat" => Some(Self::Cat),
|
|
"chirp" => Some(Self::Chirp),
|
|
"creator" => Some(Self::Creator),
|
|
"creator_music_box" => Some(Self::CreatorMusicBox),
|
|
"far" => Some(Self::Far),
|
|
"lava_chicken" => Some(Self::LavaChicken),
|
|
"mall" => Some(Self::Mall),
|
|
"mellohi" => Some(Self::Mellohi),
|
|
"otherside" => Some(Self::Otherside),
|
|
"pigstep" => Some(Self::Pigstep),
|
|
"precipice" => Some(Self::Precipice),
|
|
"relic" => Some(Self::Relic),
|
|
"stal" => Some(Self::Stal),
|
|
"strad" => Some(Self::Strad),
|
|
"tears" => Some(Self::Tears),
|
|
"wait" => Some(Self::Wait),
|
|
"ward" => Some(Self::Ward),
|
|
_ => None,
|
|
}
|
|
}
|
|
#[doc = r" Returns the string name of the song."]
|
|
#[must_use]
|
|
pub const fn to_name(&self) -> &'static str {
|
|
match self {
|
|
Self::Id11 => "11",
|
|
Self::Id13 => "13",
|
|
Self::Id5 => "5",
|
|
Self::Blocks => "blocks",
|
|
Self::Bounce => "bounce",
|
|
Self::Cat => "cat",
|
|
Self::Chirp => "chirp",
|
|
Self::Creator => "creator",
|
|
Self::CreatorMusicBox => "creator_music_box",
|
|
Self::Far => "far",
|
|
Self::LavaChicken => "lava_chicken",
|
|
Self::Mall => "mall",
|
|
Self::Mellohi => "mellohi",
|
|
Self::Otherside => "otherside",
|
|
Self::Pigstep => "pigstep",
|
|
Self::Precipice => "precipice",
|
|
Self::Relic => "relic",
|
|
Self::Stal => "stal",
|
|
Self::Strad => "strad",
|
|
Self::Tears => "tears",
|
|
Self::Wait => "wait",
|
|
Self::Ward => "ward",
|
|
}
|
|
}
|
|
#[doc = r" Returns the numeric ID associated with the song."]
|
|
#[must_use]
|
|
pub const fn get_id(&self) -> u32 {
|
|
match self {
|
|
Self::Id11 => 0u32,
|
|
Self::Id13 => 1u32,
|
|
Self::Id5 => 2u32,
|
|
Self::Blocks => 3u32,
|
|
Self::Bounce => 4u32,
|
|
Self::Cat => 5u32,
|
|
Self::Chirp => 6u32,
|
|
Self::Creator => 7u32,
|
|
Self::CreatorMusicBox => 8u32,
|
|
Self::Far => 9u32,
|
|
Self::LavaChicken => 10u32,
|
|
Self::Mall => 11u32,
|
|
Self::Mellohi => 12u32,
|
|
Self::Otherside => 13u32,
|
|
Self::Pigstep => 14u32,
|
|
Self::Precipice => 15u32,
|
|
Self::Relic => 16u32,
|
|
Self::Stal => 17u32,
|
|
Self::Strad => 18u32,
|
|
Self::Tears => 19u32,
|
|
Self::Wait => 20u32,
|
|
Self::Ward => 21u32,
|
|
}
|
|
}
|
|
#[doc = r" Returns the comparator output value (0-15) for this song."]
|
|
#[must_use]
|
|
pub const fn comparator_output(&self) -> u8 {
|
|
#[allow(clippy::match_same_arms)]
|
|
match self {
|
|
Self::Id11 => 11u8,
|
|
Self::Id13 => 1u8,
|
|
Self::Id5 => 15u8,
|
|
Self::Blocks => 3u8,
|
|
Self::Bounce => 0u8,
|
|
Self::Cat => 2u8,
|
|
Self::Chirp => 4u8,
|
|
Self::Creator => 12u8,
|
|
Self::CreatorMusicBox => 11u8,
|
|
Self::Far => 5u8,
|
|
Self::LavaChicken => 9u8,
|
|
Self::Mall => 6u8,
|
|
Self::Mellohi => 7u8,
|
|
Self::Otherside => 14u8,
|
|
Self::Pigstep => 13u8,
|
|
Self::Precipice => 13u8,
|
|
Self::Relic => 14u8,
|
|
Self::Stal => 8u8,
|
|
Self::Strad => 9u8,
|
|
Self::Tears => 10u8,
|
|
Self::Wait => 12u8,
|
|
Self::Ward => 10u8,
|
|
}
|
|
}
|
|
#[doc = r" Returns the song length in seconds."]
|
|
#[must_use]
|
|
pub const fn length_in_seconds(&self) -> u32 {
|
|
#[allow(clippy::match_same_arms)]
|
|
match self {
|
|
Self::Id11 => 71u32,
|
|
Self::Id13 => 178u32,
|
|
Self::Id5 => 178u32,
|
|
Self::Blocks => 345u32,
|
|
Self::Bounce => 0u32,
|
|
Self::Cat => 185u32,
|
|
Self::Chirp => 185u32,
|
|
Self::Creator => 176u32,
|
|
Self::CreatorMusicBox => 73u32,
|
|
Self::Far => 174u32,
|
|
Self::LavaChicken => 134u32,
|
|
Self::Mall => 197u32,
|
|
Self::Mellohi => 96u32,
|
|
Self::Otherside => 195u32,
|
|
Self::Pigstep => 149u32,
|
|
Self::Precipice => 299u32,
|
|
Self::Relic => 218u32,
|
|
Self::Stal => 150u32,
|
|
Self::Strad => 188u32,
|
|
Self::Tears => 175u32,
|
|
Self::Wait => 238u32,
|
|
Self::Ward => 251u32,
|
|
}
|
|
}
|
|
#[doc = r" Returns the song length in ticks (20 ticks per second)."]
|
|
#[must_use]
|
|
pub const fn length_in_ticks(&self) -> u64 {
|
|
self.length_in_seconds() as u64 * 20
|
|
}
|
|
}
|