···6677A Beatsaber V3 parsing library.
8899-## Version Support
99+## Status
10101111-### Info File
1111+This project should support info file version `2.X` and difficulty file version `3.X`.
1212+Modded features such as custom data are not currently supported.
12131313-| Version | Description | Supported |
1414-|---------|-----------------------------------------------|-----------|
1515-| 2.0 | Standard info format. | Yes |
1616-| 2.1 | Per difficulty environment and color schemes. | Yes |
1717-| 4.X | Format overhaul. | No |
1818-1919-### Difficulty File
2020-2121-| Version | Description | Supported |
2222-|---------|---------------------------------------|-----------|
2323-| 2.X | Old un-abbreviated format. | No |
2424-| 3.0 | Group lighting system. | Yes |
2525-| 3.1 | Chunk, limit, and randomized filters. | Yes [^1] |
2626-| 3.2 | Translation events. | Yes |
2727-| 3.3 | More strobe functionality. | No |
2828-| 4.X | New template-like format. | No |
2929-3030-[^1]: Not supported by experimental lighting calculation methods.
1414+There are also some experimental methods to help with lighting calculations.
1515+These do not currently support all features and are marked as depreciated.
31163217## Feature Flags
3318
-13
src/difficulty.rs
···2020)]
2121pub struct Difficulty {
2222 /// The difficulty file version, in the form of `3.2.0`.
2323- ///
2424- /// ### Version Support
2525- ///
2626- /// | Version | Description | Supported |
2727- /// |---------|---------------------------------------|-----------|
2828- /// | 2.X | Old un-abbreviated format. | No |
2929- /// | 3.0 | Group lighting system. | Yes |
3030- /// | 3.1 | Chunk, limit, and randomized filters. | Yes [^1] |
3131- /// | 3.2 | Translation events. | Yes |
3232- /// | 3.3 | More strobe functionality. | No |
3333- /// | 4.X | New template-like format. | No |
3434- ///
3535- /// [^1]: Not supported by experimental lighting calculation methods.
3623 pub version: String,
3724 pub bpm_events: Vec<BpmEvent>,
3825 #[serde(rename = "rotationEvents")]
+15-1
src/difficulty/lightshow/group/color.rs
···8181 bright_dist_type: Default::default(),
8282 bright_dist_value: 0.0,
8383 bright_dist_effect_first: Default::default(),
8484- bright_dist_easing: None,
8484+ bright_dist_easing: Some(Easing::Linear),
8585 data: vec![ColorEventData::default()],
8686 }
8787 }
···124124 pub transition_type: ColorTransitionType,
125125 #[serde(rename = "c")]
126126 pub color: LightColor,
127127+ /// Controls how bright the light is, with zero being off and one being normal brightness.
127128 #[serde(rename = "s")]
128129 pub brightness: f32,
129130 /// Determines the number of strobes that will take place each beat.
130131 /// A value of zero will result in no strobing.
131132 #[serde(rename = "f")]
132133 pub strobe_frequency: i32,
134134+ /// > Only present in difficulty file V3.3 or higher.
135135+ ///
136136+ /// Controls the brightness of the "off" strobe state.
137137+ /// If this equals the event's [brightness](Self::brightness), strobing will have no effect.
138138+ #[serde(rename = "sb")]
139139+ pub strobe_brightness: Option<f32>,
140140+ /// > Only present in difficulty file V3.3 or higher.
141141+ ///
142142+ /// Whether to fade between strobe states or not.
143143+ #[serde(rename = "sf")]
144144+ pub strobe_fade: Option<LooseBool>,
133145}
134146135147impl Default for ColorEventData {
···140152 color: Default::default(),
141153 brightness: 1.0,
142154 strobe_frequency: 0,
155155+ strobe_brightness: Some(0.0),
156156+ strobe_fade: Some(LooseBool::False),
143157 }
144158 }
145159}