feat: add more mappings

This commit is contained in:
Alexander Medvedev
2026-07-25 12:38:52 +02:00
parent 25ba4c6e40
commit 40d7ed052f
26 changed files with 433 additions and 17 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -772,7 +772,6 @@ dependencies = [
name = "pumpkin-codecs"
version = "0.1.0-dev+26.2"
dependencies = [
"either",
"serde_json",
"tracing",
]
@@ -806,7 +805,6 @@ dependencies = [
"cesu8",
"flate2",
"pumpkin-codecs",
"rustc-hash",
"serde",
"thiserror",
"tracing",
@@ -925,12 +923,6 @@ dependencies = [
"zeroize",
]
[[package]]
name = "rustc-hash"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d"
[[package]]
name = "rustls"
version = "0.23.39"

View File

@@ -1456,10 +1456,10 @@ fn get_be_data_from_nbt<R: Read + Seek>(
let data_end = reader.seek(SeekFrom::End(0)).unwrap();
let _ = reader.seek(SeekFrom::Start(data_start));
let nbt_reader = &mut NbtReadHelperBedrock::new(&mut *reader);
let nbt_reader = &mut NbtReadHelperBedrock::new(pumpkin_nbt::deserializer::NbtStreamReader(&mut *reader));
loop {
if nbt_reader.reader().stream_position().unwrap() >= data_end {
if nbt_reader.reader().0.stream_position().unwrap() >= data_end {
break;
}

View File

@@ -75,8 +75,6 @@ pub fn main() {
fs::create_dir_all(OUT_DIR).expect("Failed to create output directory");
wit::main();
let mut build_functions: Vec<(BuilderFn, &str)> = vec![
(advancement::build, "advancement.rs"),
(bedrock_creative::build, "bedrock_creative.rs"),
@@ -146,6 +144,7 @@ pub fn main() {
// e.g. `cargo run -- chest_loot` only regenerates chest_loot.rs.
let filters: Vec<String> = std::env::args().skip(1).collect();
let build_functions: Vec<_> = if filters.is_empty() {
wit::main();
build_functions
} else {
build_functions

View File

@@ -7,10 +7,95 @@ use crate::version::JavaMinecraftVersion;
/// Generates the `TokenStream` for per-version block-state remap tables and the
/// `remap_block_state_for_version` function.
pub fn build() -> TokenStream {
let node_1_10 = MappingNode {
version: JavaMinecraftVersion::V_1_10,
value: "../assets/viabackwards/data/mappings-1.11to1.10.nbt",
child: None,
};
let node_1_11 = MappingNode {
version: JavaMinecraftVersion::V_1_11,
value: "../assets/viabackwards/data/mappings-1.12to1.11.nbt",
child: Some(&node_1_10),
};
let node_1_12 = MappingNode {
version: JavaMinecraftVersion::V_1_12,
value: "../assets/viabackwards/data/mappings-1.13to1.12.nbt",
child: Some(&node_1_11),
};
let node_1_13 = MappingNode {
version: JavaMinecraftVersion::V_1_13,
value: "../assets/viabackwards/data/mappings-1.13.2to1.13.nbt",
child: Some(&node_1_12),
};
let node_1_13_2 = MappingNode {
version: JavaMinecraftVersion::V_1_13_2,
value: "../assets/viabackwards/data/mappings-1.14to1.13.2.nbt",
child: Some(&node_1_13),
};
let node_1_14 = MappingNode {
version: JavaMinecraftVersion::V_1_14,
value: "../assets/viabackwards/data/mappings-1.15to1.14.nbt",
child: Some(&node_1_13_2),
};
let node_1_15 = MappingNode {
version: JavaMinecraftVersion::V_1_15,
value: "../assets/viabackwards/data/mappings-1.16to1.15.nbt",
child: Some(&node_1_14),
};
let node_1_16 = MappingNode {
version: JavaMinecraftVersion::V_1_16,
value: "../assets/viabackwards/data/mappings-1.16.2to1.16.nbt",
child: Some(&node_1_15),
};
let node_1_16_2 = MappingNode {
version: JavaMinecraftVersion::V_1_16_2,
value: "../assets/viabackwards/data/mappings-1.17to1.16.2.nbt",
child: Some(&node_1_16),
};
let node_1_17 = MappingNode {
version: JavaMinecraftVersion::V_1_17,
value: "../assets/viabackwards/data/mappings-1.18to1.17.nbt",
child: Some(&node_1_16_2),
};
let node_1_18 = MappingNode {
version: JavaMinecraftVersion::V_1_18,
value: "../assets/viabackwards/data/mappings-1.19to1.18.nbt",
child: Some(&node_1_17),
};
let node_1_19 = MappingNode {
version: JavaMinecraftVersion::V_1_19,
value: "../assets/viabackwards/data/mappings-1.19.3to1.19.nbt",
child: Some(&node_1_18),
};
let node_1_19_3 = MappingNode {
version: JavaMinecraftVersion::V_1_19_3,
value: "../assets/viabackwards/data/mappings-1.19.4to1.19.3.nbt",
child: Some(&node_1_19),
};
let node_1_19_4 = MappingNode {
version: JavaMinecraftVersion::V_1_19_4,
value: "../assets/viabackwards/data/mappings-1.20to1.19.4.nbt",
child: Some(&node_1_19_3),
};
let node_1_20 = MappingNode {
version: JavaMinecraftVersion::V_1_20,
value: "../assets/viabackwards/data/mappings-1.20.2to1.20.nbt",
child: Some(&node_1_19_4),
};
let node_1_20_2 = MappingNode {
version: JavaMinecraftVersion::V_1_20_2,
value: "../assets/viabackwards/data/mappings-1.20.3to1.20.2.nbt",
child: Some(&node_1_20),
};
let node_1_20_3 = MappingNode {
version: JavaMinecraftVersion::V_1_20_3,
value: "../assets/viabackwards/data/mappings-1.20.5to1.20.3.nbt",
child: Some(&node_1_20_2),
};
let node_1_20_5 = MappingNode {
version: JavaMinecraftVersion::V_1_20_5,
value: "../assets/viabackwards/data/mappings-1.21to1.20.5.nbt",
child: None,
child: Some(&node_1_20_3),
};
let node_1_21 = MappingNode {
version: JavaMinecraftVersion::V_1_21,

View File

@@ -7,10 +7,95 @@ use crate::version::JavaMinecraftVersion;
/// Generates the `TokenStream` for per-version entity ID remap tables and the
/// `remap_entity_id_for_version` function.
pub fn build() -> TokenStream {
let node_1_10 = MappingNode {
version: JavaMinecraftVersion::V_1_10,
value: "../assets/viabackwards/data/mappings-1.11to1.10.nbt",
child: None,
};
let node_1_11 = MappingNode {
version: JavaMinecraftVersion::V_1_11,
value: "../assets/viabackwards/data/mappings-1.12to1.11.nbt",
child: Some(&node_1_10),
};
let node_1_12 = MappingNode {
version: JavaMinecraftVersion::V_1_12,
value: "../assets/viabackwards/data/mappings-1.13to1.12.nbt",
child: Some(&node_1_11),
};
let node_1_13 = MappingNode {
version: JavaMinecraftVersion::V_1_13,
value: "../assets/viabackwards/data/mappings-1.13.2to1.13.nbt",
child: Some(&node_1_12),
};
let node_1_13_2 = MappingNode {
version: JavaMinecraftVersion::V_1_13_2,
value: "../assets/viabackwards/data/mappings-1.14to1.13.2.nbt",
child: Some(&node_1_13),
};
let node_1_14 = MappingNode {
version: JavaMinecraftVersion::V_1_14,
value: "../assets/viabackwards/data/mappings-1.15to1.14.nbt",
child: Some(&node_1_13_2),
};
let node_1_15 = MappingNode {
version: JavaMinecraftVersion::V_1_15,
value: "../assets/viabackwards/data/mappings-1.16to1.15.nbt",
child: Some(&node_1_14),
};
let node_1_16 = MappingNode {
version: JavaMinecraftVersion::V_1_16,
value: "../assets/viabackwards/data/mappings-1.16.2to1.16.nbt",
child: Some(&node_1_15),
};
let node_1_16_2 = MappingNode {
version: JavaMinecraftVersion::V_1_16_2,
value: "../assets/viabackwards/data/mappings-1.17to1.16.2.nbt",
child: Some(&node_1_16),
};
let node_1_17 = MappingNode {
version: JavaMinecraftVersion::V_1_17,
value: "../assets/viabackwards/data/mappings-1.18to1.17.nbt",
child: Some(&node_1_16_2),
};
let node_1_18 = MappingNode {
version: JavaMinecraftVersion::V_1_18,
value: "../assets/viabackwards/data/mappings-1.19to1.18.nbt",
child: Some(&node_1_17),
};
let node_1_19 = MappingNode {
version: JavaMinecraftVersion::V_1_19,
value: "../assets/viabackwards/data/mappings-1.19.3to1.19.nbt",
child: Some(&node_1_18),
};
let node_1_19_3 = MappingNode {
version: JavaMinecraftVersion::V_1_19_3,
value: "../assets/viabackwards/data/mappings-1.19.4to1.19.3.nbt",
child: Some(&node_1_19),
};
let node_1_19_4 = MappingNode {
version: JavaMinecraftVersion::V_1_19_4,
value: "../assets/viabackwards/data/mappings-1.20to1.19.4.nbt",
child: Some(&node_1_19_3),
};
let node_1_20 = MappingNode {
version: JavaMinecraftVersion::V_1_20,
value: "../assets/viabackwards/data/mappings-1.20.2to1.20.nbt",
child: Some(&node_1_19_4),
};
let node_1_20_2 = MappingNode {
version: JavaMinecraftVersion::V_1_20_2,
value: "../assets/viabackwards/data/mappings-1.20.3to1.20.2.nbt",
child: Some(&node_1_20),
};
let node_1_20_3 = MappingNode {
version: JavaMinecraftVersion::V_1_20_3,
value: "../assets/viabackwards/data/mappings-1.20.5to1.20.3.nbt",
child: Some(&node_1_20_2),
};
let node_1_20_5 = MappingNode {
version: JavaMinecraftVersion::V_1_20_5,
value: "../assets/viabackwards/data/mappings-1.21to1.20.5.nbt",
child: None,
child: Some(&node_1_20_3),
};
let node_1_21 = MappingNode {
version: JavaMinecraftVersion::V_1_21,

View File

@@ -9,10 +9,95 @@ use crate::version::JavaMinecraftVersion;
pub fn build() -> TokenStream {
// ViaBackwards mappings go new → old (26.1 → 1.21.11 → ... → 1.20.5)
// This is the correct direction for a new server sending to old clients.
let node_1_10 = MappingNode {
version: JavaMinecraftVersion::V_1_10,
value: "../assets/viabackwards/data/mappings-1.11to1.10.nbt",
child: None,
};
let node_1_11 = MappingNode {
version: JavaMinecraftVersion::V_1_11,
value: "../assets/viabackwards/data/mappings-1.12to1.11.nbt",
child: Some(&node_1_10),
};
let node_1_12 = MappingNode {
version: JavaMinecraftVersion::V_1_12,
value: "../assets/viabackwards/data/mappings-1.13to1.12.nbt",
child: Some(&node_1_11),
};
let node_1_13 = MappingNode {
version: JavaMinecraftVersion::V_1_13,
value: "../assets/viabackwards/data/mappings-1.13.2to1.13.nbt",
child: Some(&node_1_12),
};
let node_1_13_2 = MappingNode {
version: JavaMinecraftVersion::V_1_13_2,
value: "../assets/viabackwards/data/mappings-1.14to1.13.2.nbt",
child: Some(&node_1_13),
};
let node_1_14 = MappingNode {
version: JavaMinecraftVersion::V_1_14,
value: "../assets/viabackwards/data/mappings-1.15to1.14.nbt",
child: Some(&node_1_13_2),
};
let node_1_15 = MappingNode {
version: JavaMinecraftVersion::V_1_15,
value: "../assets/viabackwards/data/mappings-1.16to1.15.nbt",
child: Some(&node_1_14),
};
let node_1_16 = MappingNode {
version: JavaMinecraftVersion::V_1_16,
value: "../assets/viabackwards/data/mappings-1.16.2to1.16.nbt",
child: Some(&node_1_15),
};
let node_1_16_2 = MappingNode {
version: JavaMinecraftVersion::V_1_16_2,
value: "../assets/viabackwards/data/mappings-1.17to1.16.2.nbt",
child: Some(&node_1_16),
};
let node_1_17 = MappingNode {
version: JavaMinecraftVersion::V_1_17,
value: "../assets/viabackwards/data/mappings-1.18to1.17.nbt",
child: Some(&node_1_16_2),
};
let node_1_18 = MappingNode {
version: JavaMinecraftVersion::V_1_18,
value: "../assets/viabackwards/data/mappings-1.19to1.18.nbt",
child: Some(&node_1_17),
};
let node_1_19 = MappingNode {
version: JavaMinecraftVersion::V_1_19,
value: "../assets/viabackwards/data/mappings-1.19.3to1.19.nbt",
child: Some(&node_1_18),
};
let node_1_19_3 = MappingNode {
version: JavaMinecraftVersion::V_1_19_3,
value: "../assets/viabackwards/data/mappings-1.19.4to1.19.3.nbt",
child: Some(&node_1_19),
};
let node_1_19_4 = MappingNode {
version: JavaMinecraftVersion::V_1_19_4,
value: "../assets/viabackwards/data/mappings-1.20to1.19.4.nbt",
child: Some(&node_1_19_3),
};
let node_1_20 = MappingNode {
version: JavaMinecraftVersion::V_1_20,
value: "../assets/viabackwards/data/mappings-1.20.2to1.20.nbt",
child: Some(&node_1_19_4),
};
let node_1_20_2 = MappingNode {
version: JavaMinecraftVersion::V_1_20_2,
value: "../assets/viabackwards/data/mappings-1.20.3to1.20.2.nbt",
child: Some(&node_1_20),
};
let node_1_20_3 = MappingNode {
version: JavaMinecraftVersion::V_1_20_3,
value: "../assets/viabackwards/data/mappings-1.20.5to1.20.3.nbt",
child: Some(&node_1_20_2),
};
let node_1_20_5 = MappingNode {
version: JavaMinecraftVersion::V_1_20_5,
value: "../assets/viabackwards/data/mappings-1.21to1.20.5.nbt",
child: None,
child: Some(&node_1_20_3),
};
let node_1_21 = MappingNode {
version: JavaMinecraftVersion::V_1_21,

View File

@@ -7,10 +7,95 @@ use crate::version::JavaMinecraftVersion;
/// Generates the `TokenStream` for per-version particle ID remap tables and the
/// `remap_particle_id_for_version` function.
pub fn build() -> TokenStream {
let node_1_10 = MappingNode {
version: JavaMinecraftVersion::V_1_10,
value: "../assets/viabackwards/data/mappings-1.11to1.10.nbt",
child: None,
};
let node_1_11 = MappingNode {
version: JavaMinecraftVersion::V_1_11,
value: "../assets/viabackwards/data/mappings-1.12to1.11.nbt",
child: Some(&node_1_10),
};
let node_1_12 = MappingNode {
version: JavaMinecraftVersion::V_1_12,
value: "../assets/viabackwards/data/mappings-1.13to1.12.nbt",
child: Some(&node_1_11),
};
let node_1_13 = MappingNode {
version: JavaMinecraftVersion::V_1_13,
value: "../assets/viabackwards/data/mappings-1.13.2to1.13.nbt",
child: Some(&node_1_12),
};
let node_1_13_2 = MappingNode {
version: JavaMinecraftVersion::V_1_13_2,
value: "../assets/viabackwards/data/mappings-1.14to1.13.2.nbt",
child: Some(&node_1_13),
};
let node_1_14 = MappingNode {
version: JavaMinecraftVersion::V_1_14,
value: "../assets/viabackwards/data/mappings-1.15to1.14.nbt",
child: Some(&node_1_13_2),
};
let node_1_15 = MappingNode {
version: JavaMinecraftVersion::V_1_15,
value: "../assets/viabackwards/data/mappings-1.16to1.15.nbt",
child: Some(&node_1_14),
};
let node_1_16 = MappingNode {
version: JavaMinecraftVersion::V_1_16,
value: "../assets/viabackwards/data/mappings-1.16.2to1.16.nbt",
child: Some(&node_1_15),
};
let node_1_16_2 = MappingNode {
version: JavaMinecraftVersion::V_1_16_2,
value: "../assets/viabackwards/data/mappings-1.17to1.16.2.nbt",
child: Some(&node_1_16),
};
let node_1_17 = MappingNode {
version: JavaMinecraftVersion::V_1_17,
value: "../assets/viabackwards/data/mappings-1.18to1.17.nbt",
child: Some(&node_1_16_2),
};
let node_1_18 = MappingNode {
version: JavaMinecraftVersion::V_1_18,
value: "../assets/viabackwards/data/mappings-1.19to1.18.nbt",
child: Some(&node_1_17),
};
let node_1_19 = MappingNode {
version: JavaMinecraftVersion::V_1_19,
value: "../assets/viabackwards/data/mappings-1.19.3to1.19.nbt",
child: Some(&node_1_18),
};
let node_1_19_3 = MappingNode {
version: JavaMinecraftVersion::V_1_19_3,
value: "../assets/viabackwards/data/mappings-1.19.4to1.19.3.nbt",
child: Some(&node_1_19),
};
let node_1_19_4 = MappingNode {
version: JavaMinecraftVersion::V_1_19_4,
value: "../assets/viabackwards/data/mappings-1.20to1.19.4.nbt",
child: Some(&node_1_19_3),
};
let node_1_20 = MappingNode {
version: JavaMinecraftVersion::V_1_20,
value: "../assets/viabackwards/data/mappings-1.20.2to1.20.nbt",
child: Some(&node_1_19_4),
};
let node_1_20_2 = MappingNode {
version: JavaMinecraftVersion::V_1_20_2,
value: "../assets/viabackwards/data/mappings-1.20.3to1.20.2.nbt",
child: Some(&node_1_20),
};
let node_1_20_3 = MappingNode {
version: JavaMinecraftVersion::V_1_20_3,
value: "../assets/viabackwards/data/mappings-1.20.5to1.20.3.nbt",
child: Some(&node_1_20_2),
};
let node_1_20_5 = MappingNode {
version: JavaMinecraftVersion::V_1_20_5,
value: "../assets/viabackwards/data/mappings-1.21to1.20.5.nbt",
child: None,
child: Some(&node_1_20_3),
};
let node_1_21 = MappingNode {
version: JavaMinecraftVersion::V_1_21,

View File

@@ -7,10 +7,95 @@ use crate::version::JavaMinecraftVersion;
/// Generates the `TokenStream` for per-version sound ID remap tables and the
/// `remap_sound_id_for_version` function.
pub fn build() -> TokenStream {
let node_1_10 = MappingNode {
version: JavaMinecraftVersion::V_1_10,
value: "../assets/viabackwards/data/mappings-1.11to1.10.nbt",
child: None,
};
let node_1_11 = MappingNode {
version: JavaMinecraftVersion::V_1_11,
value: "../assets/viabackwards/data/mappings-1.12to1.11.nbt",
child: Some(&node_1_10),
};
let node_1_12 = MappingNode {
version: JavaMinecraftVersion::V_1_12,
value: "../assets/viabackwards/data/mappings-1.13to1.12.nbt",
child: Some(&node_1_11),
};
let node_1_13 = MappingNode {
version: JavaMinecraftVersion::V_1_13,
value: "../assets/viabackwards/data/mappings-1.13.2to1.13.nbt",
child: Some(&node_1_12),
};
let node_1_13_2 = MappingNode {
version: JavaMinecraftVersion::V_1_13_2,
value: "../assets/viabackwards/data/mappings-1.14to1.13.2.nbt",
child: Some(&node_1_13),
};
let node_1_14 = MappingNode {
version: JavaMinecraftVersion::V_1_14,
value: "../assets/viabackwards/data/mappings-1.15to1.14.nbt",
child: Some(&node_1_13_2),
};
let node_1_15 = MappingNode {
version: JavaMinecraftVersion::V_1_15,
value: "../assets/viabackwards/data/mappings-1.16to1.15.nbt",
child: Some(&node_1_14),
};
let node_1_16 = MappingNode {
version: JavaMinecraftVersion::V_1_16,
value: "../assets/viabackwards/data/mappings-1.16.2to1.16.nbt",
child: Some(&node_1_15),
};
let node_1_16_2 = MappingNode {
version: JavaMinecraftVersion::V_1_16_2,
value: "../assets/viabackwards/data/mappings-1.17to1.16.2.nbt",
child: Some(&node_1_16),
};
let node_1_17 = MappingNode {
version: JavaMinecraftVersion::V_1_17,
value: "../assets/viabackwards/data/mappings-1.18to1.17.nbt",
child: Some(&node_1_16_2),
};
let node_1_18 = MappingNode {
version: JavaMinecraftVersion::V_1_18,
value: "../assets/viabackwards/data/mappings-1.19to1.18.nbt",
child: Some(&node_1_17),
};
let node_1_19 = MappingNode {
version: JavaMinecraftVersion::V_1_19,
value: "../assets/viabackwards/data/mappings-1.19.3to1.19.nbt",
child: Some(&node_1_18),
};
let node_1_19_3 = MappingNode {
version: JavaMinecraftVersion::V_1_19_3,
value: "../assets/viabackwards/data/mappings-1.19.4to1.19.3.nbt",
child: Some(&node_1_19),
};
let node_1_19_4 = MappingNode {
version: JavaMinecraftVersion::V_1_19_4,
value: "../assets/viabackwards/data/mappings-1.20to1.19.4.nbt",
child: Some(&node_1_19_3),
};
let node_1_20 = MappingNode {
version: JavaMinecraftVersion::V_1_20,
value: "../assets/viabackwards/data/mappings-1.20.2to1.20.nbt",
child: Some(&node_1_19_4),
};
let node_1_20_2 = MappingNode {
version: JavaMinecraftVersion::V_1_20_2,
value: "../assets/viabackwards/data/mappings-1.20.3to1.20.2.nbt",
child: Some(&node_1_20),
};
let node_1_20_3 = MappingNode {
version: JavaMinecraftVersion::V_1_20_3,
value: "../assets/viabackwards/data/mappings-1.20.5to1.20.3.nbt",
child: Some(&node_1_20_2),
};
let node_1_20_5 = MappingNode {
version: JavaMinecraftVersion::V_1_20_5,
value: "../assets/viabackwards/data/mappings-1.21to1.20.5.nbt",
child: None,
child: Some(&node_1_20_3),
};
let node_1_21 = MappingNode {
version: JavaMinecraftVersion::V_1_21,