Oops, symphonia doesn't support opus codec
Revert "transform .mp3 to .ogg (saves space); add sound assets in build.rs"
This reverts commit 5babcd5432
.
This commit is contained in:
parent
5babcd5432
commit
6a0c691a39
13 changed files with 6 additions and 75 deletions
BIN
assets/music/Galactic_Rap.mp3
Normal file
BIN
assets/music/Galactic_Rap.mp3
Normal file
Binary file not shown.
Binary file not shown.
BIN
assets/music/Galactic_Rap_Destroyed.mp3
Normal file
BIN
assets/music/Galactic_Rap_Destroyed.mp3
Normal file
Binary file not shown.
Binary file not shown.
BIN
assets/music/Galactic_Rap_Speedup.mp3
Normal file
BIN
assets/music/Galactic_Rap_Speedup.mp3
Normal file
Binary file not shown.
Binary file not shown.
BIN
assets/music/Mesmerizing_Galaxy_Broken.mp3
Normal file
BIN
assets/music/Mesmerizing_Galaxy_Broken.mp3
Normal file
Binary file not shown.
Binary file not shown.
BIN
assets/music/Mesmerizing_Galaxy_Loop.mp3
Normal file
BIN
assets/music/Mesmerizing_Galaxy_Loop.mp3
Normal file
Binary file not shown.
Binary file not shown.
BIN
assets/sounds/bzz.mp3
Normal file
BIN
assets/sounds/bzz.mp3
Normal file
Binary file not shown.
Binary file not shown.
81
build.rs
81
build.rs
|
@ -17,9 +17,6 @@ struct Assets {
|
||||||
/// of the constant storing their png.
|
/// of the constant storing their png.
|
||||||
assets: BTreeMap<String, String>,
|
assets: BTreeMap<String, String>,
|
||||||
|
|
||||||
/// Sound assets.
|
|
||||||
sound_assets: BTreeMap<String, String>,
|
|
||||||
|
|
||||||
/// Asset groups contained within this asset group, mapping their name to the assets
|
/// Asset groups contained within this asset group, mapping their name to the assets
|
||||||
/// that group contains.
|
/// that group contains.
|
||||||
groups: BTreeMap<String, Box<Assets>>
|
groups: BTreeMap<String, Box<Assets>>
|
||||||
|
@ -40,19 +37,15 @@ impl AssetsWriter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn asset_name<P: AsRef<Path>>(canonical_path: P) -> String {
|
fn add_png<P: AsRef<Path>>(
|
||||||
let mut hasher = DefaultHasher::new();
|
|
||||||
canonical_path.as_ref().hash(&mut hasher);
|
|
||||||
let hash = hasher.finish();
|
|
||||||
format!("ASSET_{hash:X}")
|
|
||||||
}
|
|
||||||
|
|
||||||
fn add_png<P: AsRef<Path> + Copy>(
|
|
||||||
&mut self,
|
&mut self,
|
||||||
canonical_path: P,
|
canonical_path: P,
|
||||||
png: tiny_skia::Pixmap
|
png: tiny_skia::Pixmap
|
||||||
) -> String {
|
) -> String {
|
||||||
let const_name = Self::asset_name(canonical_path);
|
let mut hasher = DefaultHasher::new();
|
||||||
|
canonical_path.as_ref().hash(&mut hasher);
|
||||||
|
let hash = hasher.finish();
|
||||||
|
let const_name = format!("ASSET_{hash:X}");
|
||||||
|
|
||||||
let out_dir = env::var_os("OUT_DIR").unwrap();
|
let out_dir = env::var_os("OUT_DIR").unwrap();
|
||||||
let out_dir: PathBuf = out_dir.into();
|
let out_dir: PathBuf = out_dir.into();
|
||||||
|
@ -69,18 +62,6 @@ impl AssetsWriter {
|
||||||
const_name
|
const_name
|
||||||
}
|
}
|
||||||
|
|
||||||
fn add_ogg<P: AsRef<Path> + Copy>(&mut self, canonical_path: P) -> String {
|
|
||||||
let const_name = Self::asset_name(canonical_path);
|
|
||||||
writeln!(self.file, "// {}", canonical_path.as_ref().display()).unwrap();
|
|
||||||
writeln!(
|
|
||||||
self.file,
|
|
||||||
"const {const_name}: &[u8] = include_bytes!(\"{}\");",
|
|
||||||
canonical_path.as_ref().display()
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
const_name
|
|
||||||
}
|
|
||||||
|
|
||||||
fn finish(mut self) {
|
fn finish(mut self) {
|
||||||
fn write_assets_struct(
|
fn write_assets_struct(
|
||||||
file: &mut File,
|
file: &mut File,
|
||||||
|
@ -104,13 +85,6 @@ impl AssetsWriter {
|
||||||
asset_name.to_snake_case()
|
asset_name.to_snake_case()
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
for asset_name in root.sound_assets.keys() {
|
|
||||||
writeln!(
|
|
||||||
file,
|
|
||||||
"{indent}\tpub {}: comfy::Sound,",
|
|
||||||
asset_name.to_snake_case()
|
|
||||||
)?;
|
|
||||||
}
|
|
||||||
for group_name in root.groups.keys() {
|
for group_name in root.groups.keys() {
|
||||||
writeln!(
|
writeln!(
|
||||||
file,
|
file,
|
||||||
|
@ -127,9 +101,6 @@ impl AssetsWriter {
|
||||||
for asset_const_name in root.assets.values() {
|
for asset_const_name in root.assets.values() {
|
||||||
writeln!(file, "{indent}\t\tc.load_texture_from_bytes({asset_const_name:?}, {asset_const_name});")?;
|
writeln!(file, "{indent}\t\tc.load_texture_from_bytes({asset_const_name:?}, {asset_const_name});")?;
|
||||||
}
|
}
|
||||||
for asset_const_name in root.sound_assets.values() {
|
|
||||||
writeln!(file, "{indent}\t\tcomfy::load_sound_from_bytes({asset_const_name:?}, {asset_const_name}, Default::default());")?;
|
|
||||||
}
|
|
||||||
for group_name in root.groups.keys() {
|
for group_name in root.groups.keys() {
|
||||||
writeln!(file, "{indent}\t\t{group_name}::Assets::load(c);")?;
|
writeln!(file, "{indent}\t\t{group_name}::Assets::load(c);")?;
|
||||||
}
|
}
|
||||||
|
@ -147,13 +118,6 @@ impl AssetsWriter {
|
||||||
asset_name.to_snake_case()
|
asset_name.to_snake_case()
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
for (asset_name, asset_const_name) in &root.sound_assets {
|
|
||||||
writeln!(
|
|
||||||
file,
|
|
||||||
"{indent}\t{}: comfy::sound_id({asset_const_name:?}),",
|
|
||||||
asset_name.to_snake_case()
|
|
||||||
)?;
|
|
||||||
}
|
|
||||||
for group_name in root.groups.keys() {
|
for group_name in root.groups.keys() {
|
||||||
writeln!(
|
writeln!(
|
||||||
file,
|
file,
|
||||||
|
@ -206,8 +170,6 @@ fn process_dir<P: AsRef<Path> + Copy>(
|
||||||
groups.pop();
|
groups.pop();
|
||||||
} else if path.extension().map(|ext| ext == "svg").unwrap_or(false) {
|
} else if path.extension().map(|ext| ext == "svg").unwrap_or(false) {
|
||||||
process_svg(&path, dir, writer, groups);
|
process_svg(&path, dir, writer, groups);
|
||||||
} else if path.extension().map(|ext| ext == "ogg").unwrap_or(false) {
|
|
||||||
process_ogg(&path, dir, writer, groups);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -234,8 +196,7 @@ fn process_svg<P: AsRef<Path> + Copy, Q: AsRef<Path>>(
|
||||||
resvg::render(&tree, transform, &mut pixmap.as_mut());
|
resvg::render(&tree, transform, &mut pixmap.as_mut());
|
||||||
|
|
||||||
let const_name = writer.add_png(
|
let const_name = writer.add_png(
|
||||||
&file
|
file.as_ref()
|
||||||
.as_ref()
|
|
||||||
.canonicalize()
|
.canonicalize()
|
||||||
.expect("Failed to canonicalize"),
|
.expect("Failed to canonicalize"),
|
||||||
pixmap
|
pixmap
|
||||||
|
@ -257,33 +218,3 @@ fn process_svg<P: AsRef<Path> + Copy, Q: AsRef<Path>>(
|
||||||
const_name
|
const_name
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn process_ogg<P: AsRef<Path> + Copy, Q: AsRef<Path>>(
|
|
||||||
file: P,
|
|
||||||
dir: Q,
|
|
||||||
writer: &mut AssetsWriter,
|
|
||||||
groups: &[String]
|
|
||||||
) {
|
|
||||||
let const_name = writer.add_ogg(
|
|
||||||
&file
|
|
||||||
.as_ref()
|
|
||||||
.canonicalize()
|
|
||||||
.expect("Failed to canonicalize")
|
|
||||||
);
|
|
||||||
let mut group = &mut writer.root;
|
|
||||||
for group_name in groups {
|
|
||||||
if !group.groups.contains_key(group_name) {
|
|
||||||
group.groups.insert(group_name.to_owned(), Box::default());
|
|
||||||
}
|
|
||||||
group = group.groups.get_mut(group_name).unwrap();
|
|
||||||
}
|
|
||||||
group.sound_assets.insert(
|
|
||||||
file.as_ref()
|
|
||||||
.file_stem()
|
|
||||||
.expect("File doesn't have a stem")
|
|
||||||
.to_str()
|
|
||||||
.expect("Non-UTF8 file names aren't allowed")
|
|
||||||
.into(),
|
|
||||||
const_name
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue