use std::sync::Arc;
use super::super::helpers::{
map_renamer, register_block_rename, register_entity_rename, register_item_rename, RenameSpec,
Renamer,
};
use super::super::registry::RegistryBuilder;
const VERSION: i32 = 1510;
const RENAMED_BLOCKS: &[(&str, &str)] = &[
("minecraft:portal", "minecraft:nether_portal"),
("minecraft:oak_bark", "minecraft:oak_wood"),
("minecraft:spruce_bark", "minecraft:spruce_wood"),
("minecraft:birch_bark", "minecraft:birch_wood"),
("minecraft:jungle_bark", "minecraft:jungle_wood"),
("minecraft:acacia_bark", "minecraft:acacia_wood"),
("minecraft:dark_oak_bark", "minecraft:dark_oak_wood"),
("minecraft:stripped_oak_bark", "minecraft:stripped_oak_wood"),
(
"minecraft:stripped_spruce_bark",
"minecraft:stripped_spruce_wood",
),
(
"minecraft:stripped_birch_bark",
"minecraft:stripped_birch_wood",
),
(
"minecraft:stripped_jungle_bark",
"minecraft:stripped_jungle_wood",
),
(
"minecraft:stripped_acacia_bark",
"minecraft:stripped_acacia_wood",
),
(
"minecraft:stripped_dark_oak_bark",
"minecraft:stripped_dark_oak_wood",
),
("minecraft:mob_spawner", "minecraft:spawner"),
];
const RENAMED_ITEMS: &[(&str, &str)] = &[
("minecraft:portal", "minecraft:nether_portal"),
("minecraft:oak_bark", "minecraft:oak_wood"),
("minecraft:spruce_bark", "minecraft:spruce_wood"),
("minecraft:birch_bark", "minecraft:birch_wood"),
("minecraft:jungle_bark", "minecraft:jungle_wood"),
("minecraft:acacia_bark", "minecraft:acacia_wood"),
("minecraft:dark_oak_bark", "minecraft:dark_oak_wood"),
("minecraft:stripped_oak_bark", "minecraft:stripped_oak_wood"),
(
"minecraft:stripped_spruce_bark",
"minecraft:stripped_spruce_wood",
),
(
"minecraft:stripped_birch_bark",
"minecraft:stripped_birch_wood",
),
(
"minecraft:stripped_jungle_bark",
"minecraft:stripped_jungle_wood",
),
(
"minecraft:stripped_acacia_bark",
"minecraft:stripped_acacia_wood",
),
(
"minecraft:stripped_dark_oak_bark",
"minecraft:stripped_dark_oak_wood",
),
("minecraft:mob_spawner", "minecraft:spawner"),
("minecraft:clownfish", "minecraft:tropical_fish"),
(
"minecraft:chorus_fruit_popped",
"minecraft:popped_chorus_fruit",
),
(
"minecraft:evocation_illager_spawn_egg",
"minecraft:evoker_spawn_egg",
),
(
"minecraft:vindication_illager_spawn_egg",
"minecraft:vindicator_spawn_egg",
),
];
const RENAMED_ENTITY_IDS: &[(&str, &str)] = &[
(
"minecraft:commandblock_minecart",
"minecraft:command_block_minecart",
),
("minecraft:ender_crystal", "minecraft:end_crystal"),
("minecraft:snowman", "minecraft:snow_golem"),
("minecraft:evocation_illager", "minecraft:evoker"),
("minecraft:evocation_fangs", "minecraft:evoker_fangs"),
("minecraft:illusion_illager", "minecraft:illusioner"),
("minecraft:vindication_illager", "minecraft:vindicator"),
("minecraft:villager_golem", "minecraft:iron_golem"),
("minecraft:xp_orb", "minecraft:experience_orb"),
("minecraft:xp_bottle", "minecraft:experience_bottle"),
("minecraft:eye_of_ender_signal", "minecraft:eye_of_ender"),
("minecraft:fireworks_rocket", "minecraft:firework_rocket"),
];
pub fn register(reg: &mut RegistryBuilder) {
register_block_rename(reg, VERSION, map_renamer(RENAMED_BLOCKS));
register_item_rename(reg, VERSION, map_renamer(RENAMED_ITEMS));
let entity_renamer: Renamer = Arc::new(|input: &str| {
let key = if let Some(rest) = input.strip_prefix("minecraft:bred_") {
format!("minecraft:{rest}")
} else {
input.to_string()
};
RENAMED_ENTITY_IDS
.iter()
.find(|(old, _)| *old == key)
.map(|(_, new)| (*new).to_string())
});
let reverse_renamer: Renamer = Arc::new(|input: &str| {
RENAMED_ENTITY_IDS
.iter()
.find(|(_, new)| *new == input)
.map(|(old, _)| (*old).to_string())
});
register_entity_rename(
reg,
VERSION,
RenameSpec::custom(entity_renamer, reverse_renamer),
);
for (old_id, new_id) in RENAMED_ENTITY_IDS {
reg.entity.copy_walkers(VERSION, 0, old_id, new_id);
}
}