Beatsaber Rust Utilities: A Beatsaber V3 parsing library.
beatsaber beatmap
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Added color scheme presets.

+547 -69
+7 -69
src/info.rs
··· 1 + pub mod color_scheme; 2 + 3 + use crate::info::color_scheme::ColorSchemeOverride; 1 4 use crate::loose_enum; 2 5 use serde::{Deserialize, Serialize}; 3 6 ··· 61 64 KDA = "KDAEnvironment", 62 65 Monstercat = "MonstercatEnvironment", 63 66 CrabRave = "CrabRaveEnvironment", 64 - Dragons = "DragonsEnvironment", 67 + ImagineDragons = "DragonsEnvironment", 65 68 Origins = "OriginsEnvironment", 66 - Panic = "PanicEnvironment", 67 - Rocket = "RocketEnvironment", 69 + PanicAtTheDisco = "PanicEnvironment", 70 + RocketLeague = "RocketEnvironment", 68 71 GreenDay = "GreenDayEnvironment", 69 72 GreenDayGrenade = "GreenDayGrenadeEnvironment", 70 73 Timbaland = "TimbalandEnvironment", ··· 88 91 TheWeeknd = "TheWeekndEnvironment", 89 92 RockMixtape = "RockMixtapeEnvironment", 90 93 Dragons2 = "Dragons2Environment", 91 - Panic2 = "Panic2Environment", 94 + PanicAtTheDisco2 = "Panic2Environment", 92 95 Queen = "QueenEnvironment", 93 96 LinkinPark2 = "LinkinPark2Environment", 94 97 TheRollingStones = "TheRollingStonesEnvironment", ··· 108 111 #[default] 109 112 GlassDesert = "GlassDesertEnvironment", 110 113 } 111 - } 112 - 113 - #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] 114 - #[cfg_attr( 115 - feature = "bevy_reflect", 116 - derive(bevy_reflect::Reflect), 117 - reflect(Debug, Clone, PartialEq) 118 - )] 119 - #[serde(rename_all = "camelCase")] 120 - pub struct ColorSchemeOverride { 121 - pub use_override: bool, 122 - pub color_scheme: ColorScheme, 123 - } 124 - 125 - #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] 126 - #[cfg_attr( 127 - feature = "bevy_reflect", 128 - derive(bevy_reflect::Reflect), 129 - reflect(Debug, Clone, PartialEq) 130 - )] 131 - #[serde(rename_all = "camelCase")] 132 - pub struct ColorScheme { 133 - #[serde(rename = "colorSchemeId")] 134 - pub id: String, 135 - #[doc(alias = "saber_left")] 136 - #[serde(rename = "saberAColor")] 137 - pub note_left: Color, 138 - #[doc(alias = "saber_right")] 139 - #[serde(rename = "saberBColor")] 140 - pub note_right: Color, 141 - 142 - #[doc(alias = "obstacle")] 143 - #[serde(rename = "obstaclesColor")] 144 - pub wall: Color, 145 - 146 - #[doc(alias = "environment0")] 147 - #[serde(rename = "environmentColor0")] 148 - pub light_primary: Color, 149 - #[doc(alias = "environment1")] 150 - #[serde(rename = "environmentColor1")] 151 - pub light_secondary: Color, 152 - 153 - #[doc(alias = "environment_boost_0")] 154 - #[serde(rename = "environmentColor0Boost")] 155 - pub boost_light_primary: Color, 156 - #[doc(alias = "environment_boost_1")] 157 - #[serde(rename = "environmentColor1Boost")] 158 - pub boost_light_secondary: Color, 159 - } 160 - 161 - #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] 162 - #[cfg_attr( 163 - feature = "bevy_reflect", 164 - derive(bevy_reflect::Reflect), 165 - reflect(Debug, Clone, PartialEq) 166 - )] 167 - pub struct Color { 168 - #[serde(rename = "r")] 169 - red: f32, 170 - #[serde(rename = "g")] 171 - green: f32, 172 - #[serde(rename = "b")] 173 - blue: f32, 174 - #[serde(rename = "a")] 175 - alpha: f32, 176 114 } 177 115 178 116 #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
+120
src/info/color_scheme.rs
··· 1 + pub mod presets; 2 + 3 + use serde::{Deserialize, Serialize}; 4 + use std::string::ToString; 5 + 6 + #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] 7 + #[cfg_attr( 8 + feature = "bevy_reflect", 9 + derive(bevy_reflect::Reflect), 10 + reflect(Debug, Clone, PartialEq) 11 + )] 12 + #[serde(rename_all = "camelCase")] 13 + pub struct ColorSchemeOverride { 14 + pub use_override: bool, 15 + pub color_scheme: ColorScheme, 16 + } 17 + 18 + #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] 19 + #[cfg_attr( 20 + feature = "bevy_reflect", 21 + derive(bevy_reflect::Reflect), 22 + reflect(Debug, Clone, PartialEq) 23 + )] 24 + #[serde(rename_all = "camelCase")] 25 + pub struct ColorScheme { 26 + #[serde(rename = "colorSchemeId")] 27 + pub id: String, 28 + #[doc(alias = "saber_left")] 29 + #[serde(rename = "saberAColor")] 30 + pub note_left: Color, 31 + #[doc(alias = "saber_right")] 32 + #[serde(rename = "saberBColor")] 33 + pub note_right: Color, 34 + 35 + #[doc(alias = "obstacle")] 36 + #[serde(rename = "obstaclesColor")] 37 + pub wall: Color, 38 + 39 + #[doc(alias = "environment0")] 40 + #[serde(rename = "environmentColor0")] 41 + pub light_primary: Color, 42 + #[doc(alias = "environment1")] 43 + #[serde(rename = "environmentColor1")] 44 + pub light_secondary: Color, 45 + 46 + #[doc(alias = "environment_boost_0")] 47 + #[serde(rename = "environmentColor0Boost")] 48 + pub boost_light_primary: Color, 49 + #[doc(alias = "environment_boost_1")] 50 + #[serde(rename = "environmentColor1Boost")] 51 + pub boost_light_secondary: Color, 52 + } 53 + 54 + impl Default for ColorScheme { 55 + fn default() -> Self { 56 + ColorScheme { 57 + id: "Default".to_string(), 58 + note_left: Color { 59 + red: 0.7843137, 60 + green: 0.07843138, 61 + blue: 0.07843138, 62 + alpha: 1.0, 63 + }, 64 + note_right: Color { 65 + red: 0.1568627, 66 + green: 0.5568627, 67 + blue: 0.8235294, 68 + alpha: 1.0, 69 + }, 70 + wall: Color { 71 + red: 1.0, 72 + green: 0.1882353, 73 + blue: 0.1882353, 74 + alpha: 1.0, 75 + }, 76 + light_primary: Color { 77 + red: 0.85, 78 + green: 0.08499997, 79 + blue: 0.08499997, 80 + alpha: 1.0, 81 + }, 82 + light_secondary: Color { 83 + red: 0.1882353, 84 + green: 0.675294, 85 + blue: 1.0, 86 + alpha: 1.0, 87 + }, 88 + boost_light_primary: Default::default(), 89 + boost_light_secondary: Default::default(), 90 + } 91 + } 92 + } 93 + 94 + #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] 95 + #[cfg_attr( 96 + feature = "bevy_reflect", 97 + derive(bevy_reflect::Reflect), 98 + reflect(Debug, Clone, PartialEq) 99 + )] 100 + pub struct Color { 101 + #[serde(rename = "r")] 102 + red: f32, 103 + #[serde(rename = "g")] 104 + green: f32, 105 + #[serde(rename = "b")] 106 + blue: f32, 107 + #[serde(rename = "a")] 108 + alpha: f32, 109 + } 110 + 111 + impl Default for Color { 112 + fn default() -> Self { 113 + Self { 114 + red: 1.0, 115 + green: 1.0, 116 + blue: 1.0, 117 + alpha: 1.0, 118 + } 119 + } 120 + }
+420
src/info/color_scheme/presets.rs
··· 1 + use crate::info::color_scheme::{Color, ColorScheme}; 2 + use crate::info::{AllDirectionEnvironment, Environment}; 3 + 4 + macro_rules! color_scheme { 5 + ( 6 + $id:literal, 7 + $note_left:expr, 8 + $note_right:expr, 9 + $wall:expr, 10 + $light_primary:expr, 11 + $light_secondary:expr, 12 + $boost_light_primary:expr, 13 + $boost_light_secondary:expr 14 + ) => { 15 + ColorScheme { 16 + id: $id.to_string(), 17 + note_left: $note_left, 18 + note_right: $note_right, 19 + wall: $wall, 20 + light_primary: $light_primary, 21 + light_secondary: $light_secondary, 22 + boost_light_primary: $boost_light_primary, 23 + boost_light_secondary: $boost_light_secondary, 24 + } 25 + }; 26 + 27 + ( 28 + $id:literal, 29 + $note_left:expr, 30 + $note_right:expr, 31 + $wall:expr, 32 + $light_primary:expr, 33 + $light_secondary:expr 34 + ) => { 35 + ColorScheme { 36 + id: $id.to_string(), 37 + note_left: $note_left, 38 + note_right: $note_right, 39 + wall: $wall, 40 + light_primary: $light_primary, 41 + light_secondary: $light_secondary, 42 + boost_light_primary: $light_primary, 43 + boost_light_secondary: $light_secondary, 44 + } 45 + }; 46 + } 47 + 48 + macro_rules! rgb { 49 + ($r:expr, $g:expr, $b:expr) => { 50 + Color { 51 + red: $r, 52 + green: $g, 53 + blue: $b, 54 + alpha: 1.0, 55 + } 56 + }; 57 + } 58 + 59 + impl Environment { 60 + /// Values taken from [the wiki](https://bsmg.wiki/mapping/lighting-defaults.html#current-colors) 61 + /// and Kival Evan's [Typescript library](https://github.com/KivalEvan/BeatSaber-JSMap/blob/ef8afc42ab90e2f1100f1a163fa810ec56b6a9f8/src/beatmap/shared/colorScheme.ts). 62 + /// 63 + /// ChatGPT was used to help translate between formats, so there could be hallucinations. 64 + /// 65 + /// White light colors are not currently supported, and where therefor ignored. 66 + pub fn get_color_scheme(&self) -> ColorScheme { 67 + match self { 68 + Environment::Unknown(_) 69 + | Environment::TheFirst 70 + | Environment::Triangle 71 + | Environment::Nice 72 + | Environment::BigMirror 73 + | Environment::Monstercat 74 + | Environment::ImagineDragons 75 + | Environment::PanicAtTheDisco => ColorScheme::default(), 76 + Environment::KDA => color_scheme!( 77 + "KDA", 78 + rgb!(0.6588235, 0.2627451, 0.1607843), 79 + rgb!(0.5019608, 0.08235294, 0.572549), 80 + rgb!(1.0, 0.3960785, 0.2431373), 81 + rgb!(1.0, 0.3960785, 0.2431373), 82 + rgb!(0.7607844, 0.1254902, 0.8666667) 83 + ), 84 + Environment::CrabRave => color_scheme!( 85 + "CrabRave", 86 + rgb!(0.0, 0.7130001, 0.07806564), 87 + rgb!(0.04805952, 0.5068096, 0.734), 88 + rgb!(0.0, 0.8117648, 0.09019608), 89 + rgb!(0.134568, 0.756, 0.1557533), 90 + rgb!(0.05647058, 0.6211764, 0.9) 91 + ), 92 + Environment::Origins => color_scheme!( 93 + "Origins", 94 + rgb!(0.6792453, 0.5712628, 0.0), 95 + rgb!(0.7075472, 0.0, 0.5364411), 96 + rgb!(0.06167676, 0.2869513, 0.3962264), 97 + rgb!(0.4910995, 0.6862745, 0.7), 98 + rgb!(0.03844783, 0.6862745, 0.9056604) 99 + ), 100 + Environment::RocketLeague => color_scheme!( 101 + "Rocket", 102 + rgb!(1.0, 0.4980392, 0.0), 103 + rgb!(0.0, 0.5294118, 1.0), 104 + rgb!(0.3176471, 0.6117647, 0.7254902), 105 + rgb!(0.9, 0.4866279, 0.3244186), 106 + rgb!(0.4, 0.7180724, 1.0) 107 + ), 108 + Environment::GreenDay | Environment::GreenDayGrenade => color_scheme!( 109 + "GreenDay", 110 + rgb!(0.2588235, 0.7843138, 0.01960784), 111 + rgb!(0.0, 0.7137255, 0.6705883), 112 + rgb!(0.0, 0.8117648, 0.09019608), 113 + rgb!(0.0, 0.7137255, 0.6705883), 114 + rgb!(0.2588235, 0.7843137, 0.01960784) 115 + ), 116 + Environment::Timbaland => color_scheme!( 117 + "Timbaland", 118 + rgb!(0.5019608, 0.5019608, 0.5019608), 119 + rgb!(0.1, 0.5517647, 1.0), 120 + rgb!(0.5, 0.5, 0.5), 121 + rgb!(0.1, 0.5517647, 1.0), 122 + rgb!(0.1, 0.5517647, 1.0) 123 + ), 124 + Environment::FitBeat => color_scheme!( 125 + "FitBeat", 126 + rgb!(0.8000001, 0.6078432, 0.1568628), 127 + rgb!(0.7921569, 0.1607843, 0.682353), 128 + rgb!(0.2784314, 0.2784314, 0.4), 129 + rgb!(0.8, 0.5594772, 0.5594772), 130 + rgb!(0.5594772, 0.5594772, 0.8) 131 + ), 132 + Environment::LinkinPark => color_scheme!( 133 + "LinkinPark", 134 + rgb!(0.6627451, 0.1643608, 0.1690187), 135 + rgb!(0.3870196, 0.5168997, 0.5568628), 136 + rgb!(0.6627451, 0.1647059, 0.172549), 137 + rgb!(0.7529412, 0.672753, 0.5925647), 138 + rgb!(0.6241197, 0.6890281, 0.709), 139 + rgb!(0.922, 0.5957885, 0.255394), 140 + rgb!(0.282353, 0.4586275, 0.6235294) 141 + ), 142 + Environment::BTS => color_scheme!( 143 + "BTS", 144 + rgb!(1.0, 0.09019607, 0.4059771), 145 + rgb!(0.8018868, 0.0, 0.7517689), 146 + rgb!(0.6698113, 0.1800908, 0.5528399), 147 + rgb!(0.7843137, 0.1254902, 0.5010797), 148 + rgb!(0.6941177, 0.1254902, 0.8666667), 149 + rgb!(0.9019608, 0.5411765, 1.0), 150 + rgb!(0.3490196, 0.8078431, 1.0) 151 + ), 152 + Environment::Kaleidoscope => color_scheme!( 153 + "Kaleidoscope", 154 + rgb!(0.65882355, 0.1254902, 0.1254902), 155 + rgb!(0.28235295, 0.28235295, 0.28235295), 156 + rgb!(0.25098041, 0.25098041, 0.25098041), 157 + rgb!(0.65882355, 0.1254902, 0.1254902), 158 + rgb!(0.47058824, 0.47058824, 0.47058824), 159 + rgb!(0.50196081, 0.0, 0.0), 160 + rgb!(0.49244517, 0.0, 0.53725493) 161 + ), 162 + Environment::Interscope => color_scheme!( 163 + "Interscope", 164 + rgb!(0.726415, 0.62691, 0.31181), 165 + rgb!(0.589571, 0.297888, 0.723), 166 + rgb!(0.588235, 0.298039, 0.721569), 167 + rgb!(0.724254, 0.319804, 0.913725), 168 + rgb!(0.764706, 0.758971, 0.913725), 169 + rgb!(0.792453, 0.429686, 0.429868), 170 + rgb!(0.7038, 0.715745, 0.765) 171 + ), 172 + Environment::Skrillex => color_scheme!( 173 + "Skrillex", 174 + rgb!(0.69803923, 0.14117648, 0.36862746), 175 + rgb!(0.32933334, 0.32299998, 0.38), 176 + rgb!(0.15686275, 0.60392159, 0.60392159), 177 + rgb!(0.80000001, 0.28000003, 0.58594489), 178 + rgb!(0.06525807, 0.57800001, 0.56867743), 179 + rgb!(0.81176478, 0.30588236, 0.30588236), 180 + rgb!(0.27843139, 0.80000001, 0.44597632) 181 + ), 182 + Environment::BillieEilish => color_scheme!( 183 + "BillieEilish", 184 + rgb!(0.8, 0.64481932, 0.432), 185 + rgb!(0.54808509, 0.61276591, 0.64), 186 + rgb!(0.71325314, 0.56140977, 0.78301889), 187 + rgb!(0.81960785, 0.442, 0.184), 188 + rgb!(0.94117647, 0.70677096, 0.56470591), 189 + rgb!(0.8, 0.0, 0.0), 190 + rgb!(0.55686277, 0.7019608, 0.77647066) 191 + ), 192 + Environment::Spooky => color_scheme!( 193 + "Spooky", 194 + rgb!(0.81960785, 0.49807876, 0.27702752), 195 + rgb!(0.37894738, 0.35789475, 0.4), 196 + rgb!(0.81960791, 0.44313729, 0.18431373), 197 + rgb!(0.90196079, 0.23009226, 0.0), 198 + rgb!(0.46005884, 0.56889427, 0.92941177), 199 + rgb!(0.33768433, 0.63207543, 0.33690813), 200 + rgb!(0.60209066, 0.3280082, 0.85849059) 201 + ), 202 + Environment::LadyGaga => color_scheme!( 203 + "LadyGaga", 204 + rgb!(0.85, 0.4333333, 0.7833334), 205 + rgb!(0.4705882, 0.8, 0.4078431), 206 + rgb!(0.9921569, 0.0, 0.7719755), 207 + rgb!(0.706, 0.649, 0.2394706), 208 + rgb!(0.894, 0.1625455, 0.7485644), 209 + rgb!(0.754717, 0.3610244, 0.22071921), 210 + rgb!(0.0, 0.7058824, 1.0) 211 + ), 212 + Environment::Weave => color_scheme!( 213 + "Weave", 214 + rgb!(0.7843137, 0.07843138, 0.07843138), 215 + rgb!(0.1568627, 0.5568627, 0.8235294), 216 + rgb!(1.0, 0.1882353, 0.1882353), 217 + rgb!(0.85, 0.08499997, 0.08499997), 218 + rgb!(0.1882353, 0.675294, 1.0), 219 + rgb!(0.8218409, 0.08627451, 0.8509804), 220 + rgb!(0.6320754, 0.6320754, 0.6320754) 221 + ), 222 + Environment::FallOutBoy => color_scheme!( 223 + "Pyro", 224 + rgb!(0.5764706, 0.0, 0.03921569), 225 + rgb!(1.0, 0.6705883, 0.0), 226 + rgb!(0.8490566, 0.7037643, 0.4285333), 227 + rgb!(1.0, 0.1098039, 0.2039216), 228 + rgb!(0.8862745, 0.7372549, 0.2627451), 229 + rgb!(1.0, 0.0, 0.1764706), 230 + rgb!(0.7647059, 0.7647059, 0.7647059) 231 + ), 232 + Environment::EDM => color_scheme!( 233 + "EDM", 234 + rgb!(0.6320754, 0.6320754, 0.6320754), 235 + rgb!(0.1764706, 0.6980392, 0.8784314), 236 + rgb!(0.1764706, 0.6980392, 0.8784314), 237 + rgb!(0.08220173, 0.7169812, 0.0), 238 + rgb!(0.0, 0.3671638, 0.7169812), 239 + rgb!(0.735849, 0.0, 0.1758632), 240 + rgb!(0.4284593, 0.0, 0.754717) 241 + ), 242 + Environment::TheSecond => color_scheme!( 243 + "The Second", 244 + rgb!(0.7843137, 0.07843138, 0.07843138), 245 + rgb!(0.1568627, 0.5568627, 0.8235294), 246 + rgb!(1.0, 0.1882353, 0.1882353), 247 + rgb!(0.85, 0.08499997, 0.08499997), 248 + rgb!(0.1882353, 0.675294, 1.0), 249 + rgb!(0.8235294, 0.08627451, 0.8509804), 250 + rgb!(0.0, 1.0, 0.6478302) 251 + ), 252 + Environment::Lizzo => color_scheme!( 253 + "Lizzo", 254 + rgb!(1.0, 0.8132076, 0.3773585), 255 + rgb!(0.6705883, 0.254902, 0.8980392), 256 + rgb!(1.0, 0.5020987, 0.1882353), 257 + rgb!(0.8392157, 0.6470588, 0.2156863), 258 + rgb!(0.8196079, 0.2392157, 0.8784314), 259 + rgb!(1.0, 0.4, 0.5529412), 260 + rgb!(0.3686275, 0.7960784, 1.0) 261 + ), 262 + Environment::TheWeeknd => color_scheme!( 263 + "The Weeknd", 264 + rgb!(0.5843138, 0.1294118, 0.1294118), 265 + rgb!(0.2235294, 0.2901961, 0.3294118), 266 + rgb!(0.9176471, 0.2980392, 0.007843138), 267 + rgb!(1.0, 0.2979701, 0.1411765), 268 + rgb!(0.1668743, 0.3753689, 0.7075472), 269 + rgb!(0.9568628, 0.6039216, 0.1215686), 270 + rgb!(0.5254902, 0.8274511, 0.9921569) 271 + ), 272 + Environment::RockMixtape => color_scheme!( 273 + "Rock Mixtape", 274 + rgb!(0.6, 0.4233, 0.042), 275 + rgb!(0.6006, 0.7441199, 0.78), 276 + rgb!(1.0, 1.0, 1.0), 277 + rgb!(0.75, 0.12, 0.162), 278 + rgb!(0.95, 0.5820333, 0.1615), 279 + rgb!(0.96, 0.1344, 0.9187202), 280 + rgb!(0.378, 0.813, 0.9) 281 + ), 282 + Environment::Dragons2 => color_scheme!( 283 + "Dragons 2.0", 284 + rgb!(0.7264151, 0.6587077, 0.2809719), 285 + rgb!(0.2509804, 0.7647059, 0.405098), 286 + rgb!(0.5548979, 0.2470588, 1.0), 287 + rgb!(0.01960784, 0.9960785, 0.06666667), 288 + rgb!(0.0, 0.05490196, 1.0), 289 + rgb!(0.9764706, 0.03137255, 0.01960784), 290 + rgb!(1.0, 0.8292086, 0.2264151) 291 + ), 292 + Environment::PanicAtTheDisco2 => color_scheme!( 293 + "Panic 2.0", 294 + rgb!(0.9019608, 0.3333333, 0.5686275), 295 + rgb!(0.1529412, 0.5568628, 0.4862745), 296 + rgb!(0.9686275, 0.3803922, 0.2745098), 297 + rgb!(0.6980392, 0.1137255, 0.372549), 298 + rgb!(0.1882353, 0.6196079, 0.6235294), 299 + rgb!(0.9019608, 0.4470589, 0.06666667), 300 + rgb!(0.6365692, 0.4373443, 0.8584906) 301 + ), 302 + Environment::Queen => color_scheme!( 303 + "Queen", 304 + rgb!(0.58, 0.5675714, 0.5551428), 305 + rgb!(0.5236231, 0.1345675, 0.6792453), 306 + rgb!(0.9333334, 0.6392157, 0.1215686), 307 + rgb!(0.9333334, 0.6392157, 0.1215686), 308 + rgb!(0.04313726, 0.7176471, 0.8980393), 309 + rgb!(0.7686275, 0.145098, 0.07450981), 310 + rgb!(0.4, 0.007843138, 0.7254902) 311 + ), 312 + Environment::LinkinPark2 => color_scheme!( 313 + "Linkin Park 2.0", 314 + rgb!(0.6627451, 0.1643608, 0.1690187), 315 + rgb!(0.3870196, 0.5168997, 0.5568628), 316 + rgb!(0.6627451, 0.1647059, 0.172549), 317 + rgb!(0.6627451, 0.1647059, 0.172549), 318 + rgb!(0.6235294, 0.6901961, 0.7098039), 319 + rgb!(0.922, 0.5957885, 0.255394), 320 + rgb!(0.282353, 0.4586275, 0.6235294) 321 + ), 322 + Environment::TheRollingStones => color_scheme!( 323 + "The Rolling Stones", 324 + rgb!(0.8980392, 0.0, 0.1150319), 325 + rgb!(0.5254902, 0.1333333, 0.6784314), 326 + rgb!(0.9529412, 0.01176471, 0.4039216), 327 + rgb!(0.9529412, 0.01176471, 0.4039216), 328 + rgb!(0.4784314, 0.4039216, 1.0), 329 + rgb!(0.5647059, 0.4622677, 0.0), 330 + rgb!(0.003921554, 0.6383545, 0.6705883) 331 + ), 332 + Environment::Lattice => color_scheme!( 333 + "Lattice", 334 + rgb!(0.8392157, 0.172549, 0.5456773), 335 + rgb!(0.0, 0.6717121, 0.9803922), 336 + rgb!(0.4685534, 0.7095922, 1.0), 337 + rgb!(0.8941177, 0.1607843, 0.7490196), 338 + rgb!(0.1960784, 0.5843138, 0.7960785), 339 + rgb!(0.5450981, 0.1333333, 0.8156863), 340 + rgb!(0.4039216, 0.9176471, 0.9176471) 341 + ), 342 + Environment::DaftPunk => color_scheme!( 343 + "Daft Punk", 344 + rgb!(0.7215686, 0.2254902, 0.1803922), 345 + rgb!(0.1215686, 0.6980392, 0.6901961), 346 + rgb!(0.6068091, 0.0, 1.0), 347 + rgb!(1.0, 0.7017543, 0.2515723), 348 + rgb!(0.5215687, 0.3294118, 0.8196079), 349 + rgb!(0.8588235, 0.0, 0.4784314), 350 + rgb!(0.0, 0.8196079, 0.8039216) 351 + ), 352 + Environment::HipHop => color_scheme!( 353 + "Hip Hop Mixtape", 354 + rgb!(1.0, 0.583857, 0.3137255), 355 + rgb!(0.01542656, 0.6132076, 0.5896002), 356 + rgb!(1.0, 0.3137255, 0.5529412), 357 + rgb!(0.9137256, 0.4941177, 0.0), 358 + rgb!(0.05882353, 0.8039216, 0.1843137), 359 + rgb!(0.1411765, 1.0, 0.9686275), 360 + rgb!(0.227451, 0.2745098, 1.0) 361 + ), 362 + Environment::Collider => color_scheme!( 363 + "Collider", 364 + rgb!(0.9647059, 0.4947137, 0.1504941), 365 + rgb!(0.1686274, 0.5998134, 0.8588235), 366 + rgb!(0.8396226, 0.09639232, 0.0), 367 + rgb!(0.9637059, 0.4092787, 0.0), 368 + rgb!(0.1686275, 0.3921569, 0.8588236), 369 + rgb!(0.8980393, 0.03529412, 0.02352941), 370 + rgb!(0.854902, 0.4117647, 0.9725491) 371 + ), 372 + Environment::BritneySpears => color_scheme!( 373 + "Britney Spears", 374 + rgb!(0.9137255, 0.1411765, 0.6008013), 375 + rgb!(0.2484275, 0.578789, 1.0), 376 + rgb!(0.8396226, 0.09639232, 0.0), 377 + rgb!(0.9921569, 0.01176471, 0.9882353), 378 + rgb!(0.1921569, 0.5058824, 0.9058824), 379 + rgb!(1.0, 0.4591194, 0.5087922), 380 + rgb!(0.482353, 0.9294118, 0.7960785) 381 + ), 382 + Environment::Monstercat2 => color_scheme!( 383 + "Monstercat 2.0", 384 + rgb!(0.8745099, 0.3450981, 0.5215687), 385 + rgb!(0.3882353, 0.3019608, 0.6117647), 386 + rgb!(0.2313726, 0.1490196, 0.6392157), 387 + rgb!(0.6196079, 0.0509804, 0.8274511), 388 + rgb!(0.3372549, 0.7137255, 0.1098039), 389 + rgb!(0.7137255, 0.1098039, 0.1098039), 390 + rgb!(0.08627451, 0.5490196, 0.6470588) 391 + ), 392 + Environment::Metallica => color_scheme!( 393 + "Metallica", 394 + rgb!(0.282353, 0.3333333, 0.4039216), 395 + rgb!(0.5764706, 0.7176471, 0.8235294), 396 + rgb!(0.8392157, 0.09803922, 0.0), 397 + rgb!(0.8666667, 0.4941176, 0.3803922), 398 + rgb!(0.254902, 0.454902, 0.8666667), 399 + rgb!(0.8588235, 0.3921569, 0.09803922), 400 + rgb!(0.0, 0.7490196, 0.6313726) 401 + ), 402 + } 403 + } 404 + } 405 + 406 + impl AllDirectionEnvironment { 407 + pub fn get_color_scheme(&self) -> ColorScheme { 408 + match self { 409 + AllDirectionEnvironment::GlassDesert => color_scheme!( 410 + "Origins", 411 + rgb!(0.6792453, 0.5712628, 0.0), 412 + rgb!(0.7075472, 0.0, 0.5364411), 413 + rgb!(0.06167676, 0.2869513, 0.3962264), 414 + rgb!(0.32222217, 0.6111111, 0.75), 415 + rgb!(0.03844783, 0.62239975, 0.90566039) 416 + ), 417 + AllDirectionEnvironment::Unknown(_) => ColorScheme::default(), 418 + } 419 + } 420 + }