0
0
mirror of https://github.com/Pumpkin-MC/Pumpkin synced 2025-08-15 11:13:06 +00:00
Files
Pumpkin/pumpkin-data/build/flower_pot_transformations.rs
Ancient77 b6e55cfbd2 build: Make file generation deterministic & skip unchanged files (#1119)
* update build.rs formatting code

* update build.rs don't save generated file when no change

* generated files use BTreeMap no build changes

* disallow HashMap in build scripts

* fmt
2025-08-12 17:34:01 +02:00

28 lines
845 B
Rust

use proc_macro2::TokenStream;
use quote::quote;
use std::{collections::BTreeMap, fs};
pub(crate) fn build() -> TokenStream {
println!("cargo:rerun-if-changed=../assets/flower_pot_transformations.json");
let flower_pot_transformation: BTreeMap<u16, u16> = serde_json::from_str(
&fs::read_to_string("../assets/flower_pot_transformations.json").unwrap(),
)
.expect("Failed to parse flower_pot_transformations.json");
let mut variants = TokenStream::new();
for (item_id, potted_block_id) in flower_pot_transformation {
variants.extend(quote! {
#item_id => #potted_block_id,
});
}
quote! {
#[must_use]
pub const fn get_potted_item(item_id: u16) -> u16 {
match item_id {
#variants
_ => 0,
}
}
}
}