feat(bedrock): Initial inventory setup (#2215)

* Initial asset prep, and `CItemRegistry` packet (vanilla; no Java fixes).

* Fix definition component NBTs.

* Packet fixes and dummy stick.

* Map actual player inventory & add stack UIDs

* Cleanup

* Update assets README
This commit is contained in:
Demetrius Kanios
2026-06-06 22:59:06 -07:00
committed by GitHub
parent 1bd6eef2a4
commit 2283048b9b
18 changed files with 38322 additions and 82 deletions

15
assets/bedrock/README.md Normal file
View File

@@ -0,0 +1,15 @@
# Bedrock Assets
This directory contains a number of different data files used to help support connecting via Bedrock Edition clients (including Java => Bedrock remapping).
- `block_states.nbt`
- mined from BDS (file hosted at [pmmp/BedrockData](https://github.com/pmmp/BedrockData/blob/master/canonical_block_states.nbt), `canonical_block_states.nbt`)
- Provides a listing of all blocks and block states that exist in Bedrock. Used to build a mapping from Java block states to Bedrock ones by matching (string) identifiers and data components.
- `item_components.nbt`
- mined from BDS (file hosted at [CloudburstMC/Data](https://github.com/CloudburstMC/Data))
- `runtime_item_states.nbt`
- mined from BDS (file hosted at [CloudburstMC/Data](https://github.com/CloudburstMC/Data))
- `item_data_overrides.json`
- adapted from `GeyserMC/mappings` `items.json`.
- Strips everything except the `bedrock_data` field (making it the value of each corresponding top-level key), omitting any `0` values.
- Most of `items.json` is automatically generated, but that value appears to be manually maintained by the Geyser team. We separate that out for our own use, while keeping the rest generated.

Binary file not shown.

View File

@@ -0,0 +1,204 @@
{
"granite": 1,
"polished_granite": 2,
"diorite": 3,
"polished_diorite": 4,
"andesite": 5,
"polished_andesite": 6,
"spruce_planks": 1,
"birch_planks": 2,
"jungle_planks": 3,
"acacia_planks": 4,
"dark_oak_planks": 5,
"spruce_log": 1,
"birch_log": 2,
"jungle_log": 3,
"dark_oak_log": 1,
"stripped_oak_wood": 8,
"stripped_spruce_wood": 9,
"stripped_birch_wood": 10,
"stripped_jungle_wood": 11,
"stripped_acacia_wood": 12,
"stripped_dark_oak_wood": 13,
"spruce_wood": 1,
"birch_wood": 2,
"jungle_wood": 3,
"acacia_wood": 4,
"dark_oak_wood": 5,
"spruce_leaves": 1,
"birch_leaves": 2,
"jungle_leaves": 3,
"dark_oak_leaves": 1,
"wet_sponge": 1,
"light_gray_wool": 8,
"purpur_pillar": 2,
"spruce_fence": 1,
"birch_fence": 2,
"jungle_fence": 3,
"acacia_fence": 4,
"dark_oak_fence": 5,
"brown_mushroom_block": 14,
"red_mushroom_block": 14,
"mossy_cobblestone_wall": 1,
"brick_wall": 6,
"prismarine_wall": 11,
"red_sandstone_wall": 12,
"mossy_stone_brick_wall": 8,
"granite_wall": 2,
"stone_brick_wall": 7,
"nether_brick_wall": 9,
"andesite_wall": 4,
"red_nether_brick_wall": 13,
"sandstone_wall": 5,
"end_stone_brick_wall": 10,
"diorite_wall": 3,
"orange_terracotta": 1,
"magenta_terracotta": 2,
"light_blue_terracotta": 3,
"yellow_terracotta": 4,
"lime_terracotta": 5,
"pink_terracotta": 6,
"gray_terracotta": 7,
"light_gray_terracotta": 8,
"cyan_terracotta": 9,
"purple_terracotta": 10,
"blue_terracotta": 11,
"brown_terracotta": 12,
"green_terracotta": 13,
"red_terracotta": 14,
"black_terracotta": 15,
"orange_carpet": 1,
"magenta_carpet": 2,
"light_blue_carpet": 3,
"yellow_carpet": 4,
"lime_carpet": 5,
"pink_carpet": 6,
"gray_carpet": 7,
"light_gray_carpet": 8,
"cyan_carpet": 9,
"purple_carpet": 10,
"blue_carpet": 11,
"brown_carpet": 12,
"green_carpet": 13,
"red_carpet": 14,
"black_carpet": 15,
"orange_stained_glass": 1,
"magenta_stained_glass": 2,
"light_blue_stained_glass": 3,
"yellow_stained_glass": 4,
"lime_stained_glass": 5,
"pink_stained_glass": 6,
"gray_stained_glass": 7,
"light_gray_stained_glass": 8,
"cyan_stained_glass": 9,
"purple_stained_glass": 10,
"blue_stained_glass": 11,
"brown_stained_glass": 12,
"green_stained_glass": 13,
"red_stained_glass": 14,
"black_stained_glass": 15,
"orange_stained_glass_pane": 1,
"magenta_stained_glass_pane": 2,
"light_blue_stained_glass_pane": 3,
"yellow_stained_glass_pane": 4,
"lime_stained_glass_pane": 5,
"pink_stained_glass_pane": 6,
"gray_stained_glass_pane": 7,
"light_gray_stained_glass_pane": 8,
"cyan_stained_glass_pane": 9,
"purple_stained_glass_pane": 10,
"blue_stained_glass_pane": 11,
"brown_stained_glass_pane": 12,
"green_stained_glass_pane": 13,
"red_stained_glass_pane": 14,
"black_stained_glass_pane": 15,
"orange_shulker_box": 1,
"magenta_shulker_box": 2,
"light_blue_shulker_box": 3,
"yellow_shulker_box": 4,
"lime_shulker_box": 5,
"pink_shulker_box": 6,
"gray_shulker_box": 7,
"light_gray_shulker_box": 8,
"cyan_shulker_box": 9,
"purple_shulker_box": 10,
"blue_shulker_box": 11,
"brown_shulker_box": 12,
"green_shulker_box": 13,
"red_shulker_box": 14,
"black_shulker_box": 15,
"orange_concrete": 1,
"magenta_concrete": 2,
"light_blue_concrete": 3,
"yellow_concrete": 4,
"lime_concrete": 5,
"pink_concrete": 6,
"gray_concrete": 7,
"light_gray_concrete": 8,
"cyan_concrete": 9,
"purple_concrete": 10,
"blue_concrete": 11,
"brown_concrete": 12,
"green_concrete": 13,
"red_concrete": 14,
"black_concrete": 15,
"orange_concrete_powder": 1,
"magenta_concrete_powder": 2,
"light_blue_concrete_powder": 3,
"yellow_concrete_powder": 4,
"lime_concrete_powder": 5,
"pink_concrete_powder": 6,
"gray_concrete_powder": 7,
"light_gray_concrete_powder": 8,
"cyan_concrete_powder": 9,
"purple_concrete_powder": 10,
"blue_concrete_powder": 11,
"brown_concrete_powder": 12,
"green_concrete_powder": 13,
"red_concrete_powder": 14,
"black_concrete_powder": 15,
"brain_coral": 1,
"bubble_coral": 2,
"fire_coral": 3,
"horn_coral": 4,
"dead_brain_coral": 9,
"dead_bubble_coral": 10,
"dead_fire_coral": 11,
"dead_horn_coral": 12,
"dead_tube_coral": 8,
"piston": 1,
"sticky_piston": 1,
"dispenser": 3,
"dropper": 3,
"cocoa_beans": 3,
"orange_bed": 1,
"magenta_bed": 2,
"light_blue_bed": 3,
"yellow_bed": 4,
"lime_bed": 5,
"pink_bed": 6,
"gray_bed": 7,
"light_gray_bed": 8,
"cyan_bed": 9,
"purple_bed": 10,
"blue_bed": 11,
"brown_bed": 12,
"green_bed": 13,
"red_bed": 14,
"black_bed": 15,
"white_banner": 15,
"orange_banner": 14,
"magenta_banner": 13,
"light_blue_banner": 12,
"yellow_banner": 11,
"lime_banner": 10,
"pink_banner": 9,
"gray_banner": 8,
"light_gray_banner": 7,
"cyan_banner": 6,
"purple_banner": 5,
"blue_banner": 4,
"brown_banner": 3,
"green_banner": 2,
"red_banner": 1
}

File diff suppressed because it is too large Load Diff