Generate visual parameter and foliage catalogs (#48)
Some checks failed
Native code generation / deterministic (push) Successful in 4m48s
Imaging and meshing gate / native (push) Failing after 16s
JPEG 2000 feature / linux (push) Failing after 58s
Skia feature / linux (push) Failing after 1m37s

This commit is contained in:
2026-08-09 09:00:41 +00:00
parent 74801c3488
commit 5f83ce61e1
15 changed files with 25447 additions and 465 deletions

View File

@@ -11,9 +11,13 @@ use std::fmt::Write as _;
use std::fs;
use std::path::{Component, Path, PathBuf};
mod xml_catalog;
pub const INVENTORY_PATH: &str = "codegen/sources.json";
pub const MANIFEST_OUTPUT: &str = "codegen/generated/source_manifest.rs";
pub const PACKET_OUTPUT: &str = "crates/libremetaverse/src/packet_catalog.rs";
pub const VISUAL_OUTPUT: &str = "crates/libremetaverse/src/visual_catalog.rs";
pub const FOLIAGE_OUTPUT: &str = "crates/libremetaverse/src/foliage_catalog.rs";
pub const PUBLIC_API_PATH: &str = "api/public-api.json";
const RUST_KEYWORDS: &[&str] = &[
"as", "break", "const", "continue", "crate", "else", "enum", "extern", "false", "fn", "for",
@@ -2043,6 +2047,14 @@ pub fn regenerate(root: &Path, check: bool) -> Result<(), String> {
let outputs = [
(root.join(MANIFEST_OUTPUT), source_manifest_bytes(root)?),
(root.join(PACKET_OUTPUT), packet_catalog_bytes(root)?),
(
root.join(VISUAL_OUTPUT),
xml_catalog::visual_catalog_bytes(root)?,
),
(
root.join(FOLIAGE_OUTPUT),
xml_catalog::foliage_catalog_bytes(root)?,
),
];
if check {
for (path, expected) in outputs {
@@ -2077,6 +2089,16 @@ mod tests {
let first_packets = packet_catalog_bytes(&root).expect("first packet generation");
let second_packets = packet_catalog_bytes(&root).expect("second packet generation");
assert_eq!(first_packets, second_packets);
let first_visual =
xml_catalog::visual_catalog_bytes(&root).expect("first visual generation");
let second_visual =
xml_catalog::visual_catalog_bytes(&root).expect("second visual generation");
assert_eq!(first_visual, second_visual);
let first_foliage =
xml_catalog::foliage_catalog_bytes(&root).expect("first foliage generation");
let second_foliage =
xml_catalog::foliage_catalog_bytes(&root).expect("second foliage generation");
assert_eq!(first_foliage, second_foliage);
}
#[test]

File diff suppressed because it is too large Load Diff