1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! V3807 (24w04a + 1) — schematic-relevant subset of `V3807.java`.
//!
//! Ported (step 0): the TILE_ENTITY walker for `minecraft:vault`, recursing the
//! ITEM_STACKs nested in the vault's config/server_data/shared_data
//! (V3807.java:25-31):
//! * `config.key_item` — single item
//! * `server_data.items_to_eject` — item list
//! * `shared_data.display_item` — single item
//!
//! Skipped (non-schematic): step 1's SAVED_DATA_MAP_DATA structure converter
//! (`banners[].Pos` block-pos flattening) — SAVED_DATA never appears in a
//! schematic file.
//!
//! VERSION = MCVersions.V24W04A (3806) + 1 = 3807.
use std::sync::Arc;
use super::super::registry::RegistryBuilder;
use super::super::types::MapExt;
use super::super::walker::{convert, convert_list};
const VERSION: i32 = 3807;
pub fn register(reg: &mut RegistryBuilder) {
reg.tile_entity.add_walker(
VERSION,
0,
"minecraft:vault",
Arc::new(|reg, root, from, to| {
if let Some(config) = root.get_map_mut("config") {
convert(reg, ®.item_stack, config, "key_item", from, to);
}
if let Some(server_data) = root.get_map_mut("server_data") {
convert_list(
reg,
®.item_stack,
server_data,
"items_to_eject",
from,
to,
);
}
if let Some(shared_data) = root.get_map_mut("shared_data") {
convert(reg, ®.item_stack, shared_data, "display_item", from, to);
}
}),
);
}