TomatitoToho commited on
Commit
b822dab
·
verified ·
1 Parent(s): 7e70951

Upload src/engine/crafting/recipes.ts with huggingface_hub

Browse files
Files changed (1) hide show
  1. src/engine/crafting/recipes.ts +3264 -0
src/engine/crafting/recipes.ts ADDED
@@ -0,0 +1,3264 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // =============================================================
2
+ // MINECRAFT CLONE - COMPREHENSIVE CRAFTING RECIPE SYSTEM
3
+ // 100+ recipes covering all major categories
4
+ // =============================================================
5
+
6
+ import {
7
+ BLOCK_STONE,
8
+ BLOCK_GRANITE,
9
+ BLOCK_POLISHED_GRANITE,
10
+ BLOCK_DIORITE,
11
+ BLOCK_POLISHED_DIORITE,
12
+ BLOCK_ANDESITE,
13
+ BLOCK_POLISHED_ANDESITE,
14
+ BLOCK_COBBLESTONE,
15
+ BLOCK_GRAVEL,
16
+ BLOCK_SAND,
17
+ BLOCK_RED_SAND,
18
+ BLOCK_CLAY,
19
+ BLOCK_SANDSTONE,
20
+ BLOCK_RED_SANDSTONE,
21
+ BLOCK_SMOOTH_SANDSTONE,
22
+ BLOCK_SMOOTH_RED_SANDSTONE,
23
+ BLOCK_COAL_ORE,
24
+ BLOCK_IRON_ORE,
25
+ BLOCK_GOLD_ORE,
26
+ BLOCK_DIAMOND_ORE,
27
+ BLOCK_EMERALD_ORE,
28
+ BLOCK_LAPIS_ORE,
29
+ BLOCK_REDSTONE_ORE,
30
+ BLOCK_COPPER_ORE,
31
+ BLOCK_NETHER_GOLD_ORE,
32
+ BLOCK_NETHER_QUARTZ_ORE,
33
+ BLOCK_DEEPSLATE_COAL_ORE,
34
+ BLOCK_DEEPSLATE_IRON_ORE,
35
+ BLOCK_DEEPSLATE_GOLD_ORE,
36
+ BLOCK_DEEPSLATE_DIAMOND_ORE,
37
+ BLOCK_DEEPSLATE_EMERALD_ORE,
38
+ BLOCK_DEEPSLATE_LAPIS_ORE,
39
+ BLOCK_DEEPSLATE_REDSTONE_ORE,
40
+ BLOCK_DEEPSLATE_COPPER_ORE,
41
+ BLOCK_COAL_BLOCK,
42
+ BLOCK_IRON_BLOCK,
43
+ BLOCK_GOLD_BLOCK,
44
+ BLOCK_DIAMOND_BLOCK,
45
+ BLOCK_LAPIS_BLOCK,
46
+ BLOCK_REDSTONE_BLOCK,
47
+ BLOCK_RAW_IRON_BLOCK,
48
+ BLOCK_RAW_GOLD_BLOCK,
49
+ BLOCK_RAW_COPPER_BLOCK,
50
+ BLOCK_OBSIDIAN,
51
+ BLOCK_SLIME_BLOCK,
52
+ BLOCK_OAK_LOG,
53
+ BLOCK_OAK_PLANKS,
54
+ BLOCK_SPRUCE_LOG,
55
+ BLOCK_SPRUCE_PLANKS,
56
+ BLOCK_BIRCH_LOG,
57
+ BLOCK_BIRCH_PLANKS,
58
+ BLOCK_JUNGLE_LOG,
59
+ BLOCK_JUNGLE_PLANKS,
60
+ BLOCK_DARK_OAK_LOG,
61
+ BLOCK_DARK_OAK_PLANKS,
62
+ BLOCK_ACACIA_LOG,
63
+ BLOCK_ACACIA_PLANKS,
64
+ BLOCK_MANGROVE_LOG,
65
+ BLOCK_MANGROVE_PLANKS,
66
+ BLOCK_CHERRY_LOG,
67
+ BLOCK_CHERRY_PLANKS,
68
+ BLOCK_PALE_OAK_LOG,
69
+ BLOCK_PALE_OAK_PLANKS,
70
+ BLOCK_WHITE_WOOL,
71
+ BLOCK_ORANGE_WOOL,
72
+ BLOCK_MAGENTA_WOOL,
73
+ BLOCK_LIGHT_BLUE_WOOL,
74
+ BLOCK_YELLOW_WOOL,
75
+ BLOCK_LIME_WOOL,
76
+ BLOCK_PINK_WOOL,
77
+ BLOCK_GRAY_WOOL,
78
+ BLOCK_LIGHT_GRAY_WOOL,
79
+ BLOCK_CYAN_WOOL,
80
+ BLOCK_PURPLE_WOOL,
81
+ BLOCK_BLUE_WOOL,
82
+ BLOCK_BROWN_WOOL,
83
+ BLOCK_GREEN_WOOL,
84
+ BLOCK_RED_WOOL,
85
+ BLOCK_BLACK_WOOL,
86
+ BLOCK_WHITE_CONCRETE_POWDER,
87
+ BLOCK_ORANGE_CONCRETE_POWDER,
88
+ BLOCK_MAGENTA_CONCRETE_POWDER,
89
+ BLOCK_LIGHT_BLUE_CONCRETE_POWDER,
90
+ BLOCK_YELLOW_CONCRETE_POWDER,
91
+ BLOCK_LIME_CONCRETE_POWDER,
92
+ BLOCK_PINK_CONCRETE_POWDER,
93
+ BLOCK_GRAY_CONCRETE_POWDER,
94
+ BLOCK_LIGHT_GRAY_CONCRETE_POWDER,
95
+ BLOCK_CYAN_CONCRETE_POWDER,
96
+ BLOCK_PURPLE_CONCRETE_POWDER,
97
+ BLOCK_BLUE_CONCRETE_POWDER,
98
+ BLOCK_BROWN_CONCRETE_POWDER,
99
+ BLOCK_GREEN_CONCRETE_POWDER,
100
+ BLOCK_RED_CONCRETE_POWDER,
101
+ BLOCK_BLACK_CONCRETE_POWDER,
102
+ BLOCK_TERRACOTTA,
103
+ BLOCK_WHITE_TERRACOTTA,
104
+ BLOCK_ORANGE_TERRACOTTA,
105
+ BLOCK_MAGENTA_TERRACOTTA,
106
+ BLOCK_LIGHT_BLUE_TERRACOTTA,
107
+ BLOCK_YELLOW_TERRACOTTA,
108
+ BLOCK_LIME_TERRACOTTA,
109
+ BLOCK_PINK_TERRACOTTA,
110
+ BLOCK_GRAY_TERRACOTTA,
111
+ BLOCK_LIGHT_GRAY_TERRACOTTA,
112
+ BLOCK_CYAN_TERRACOTTA,
113
+ BLOCK_PURPLE_TERRACOTTA,
114
+ BLOCK_BLUE_TERRACOTTA,
115
+ BLOCK_BROWN_TERRACOTTA,
116
+ BLOCK_GREEN_TERRACOTTA,
117
+ BLOCK_RED_TERRACOTTA,
118
+ BLOCK_BLACK_TERRACOTTA,
119
+ BLOCK_WHITE_STAINED_GLASS,
120
+ BLOCK_ORANGE_STAINED_GLASS,
121
+ BLOCK_MAGENTA_STAINED_GLASS,
122
+ BLOCK_LIGHT_BLUE_STAINED_GLASS,
123
+ BLOCK_YELLOW_STAINED_GLASS,
124
+ BLOCK_LIME_STAINED_GLASS,
125
+ BLOCK_PINK_STAINED_GLASS,
126
+ BLOCK_GRAY_STAINED_GLASS,
127
+ BLOCK_LIGHT_GRAY_STAINED_GLASS,
128
+ BLOCK_CYAN_STAINED_GLASS,
129
+ BLOCK_PURPLE_STAINED_GLASS,
130
+ BLOCK_BLUE_STAINED_GLASS,
131
+ BLOCK_BROWN_STAINED_GLASS,
132
+ BLOCK_GREEN_STAINED_GLASS,
133
+ BLOCK_RED_STAINED_GLASS,
134
+ BLOCK_BLACK_STAINED_GLASS,
135
+ BLOCK_GLASS,
136
+ BLOCK_BRICKS,
137
+ BLOCK_STONE_BRICKS,
138
+ BLOCK_CRACKED_STONE_BRICKS,
139
+ BLOCK_NETHERRACK,
140
+ BLOCK_SOUL_SAND,
141
+ BLOCK_NETHER_BRICKS,
142
+ BLOCK_CRACKED_NETHER_BRICKS,
143
+ BLOCK_QUARTZ_BLOCK,
144
+ BLOCK_CACTUS,
145
+ BLOCK_SUGAR_CANE,
146
+ BLOCK_WHEAT,
147
+ BLOCK_RED_MUSHROOM,
148
+ BLOCK_BROWN_MUSHROOM,
149
+ BLOCK_CRAFTING_TABLE,
150
+ BLOCK_FURNACE,
151
+ BLOCK_BLAST_FURNACE,
152
+ BLOCK_SMOKER,
153
+ BLOCK_ANVIL,
154
+ BLOCK_ENCHANTING_TABLE,
155
+ BLOCK_BREWING_STAND,
156
+ BLOCK_CAULDRON,
157
+ BLOCK_STONECUTTER,
158
+ BLOCK_SMITHING_TABLE,
159
+ BLOCK_BOOKSHELF,
160
+ BLOCK_REDSTONE_LAMP,
161
+ BLOCK_REDSTONE_TORCH,
162
+ BLOCK_TNT,
163
+ BLOCK_LEVER,
164
+ BLOCK_REPEATER,
165
+ BLOCK_COMPARATOR,
166
+ BLOCK_OBSERVER,
167
+ BLOCK_PISTON,
168
+ BLOCK_STICKY_PISTON,
169
+ BLOCK_DISPENSER,
170
+ BLOCK_DROPPER,
171
+ BLOCK_HOPPER,
172
+ BLOCK_RAIL,
173
+ BLOCK_POWERED_RAIL,
174
+ BLOCK_DETECTOR_RAIL,
175
+ BLOCK_ACTIVATOR_RAIL,
176
+ BLOCK_GLOWSTONE,
177
+ BLOCK_JACK_O_LANTERN,
178
+ BLOCK_TORCH,
179
+ BLOCK_CAMPFIRE,
180
+ BLOCK_SOUL_CAMPFIRE,
181
+ BLOCK_BEACON,
182
+ BLOCK_END_STONE,
183
+ BLOCK_END_STONE_BRICKS,
184
+ BLOCK_PUMPKIN,
185
+ BLOCK_CARVED_PUMPKIN,
186
+ BLOCK_MELON,
187
+ BLOCK_HAY_BLOCK,
188
+ BLOCK_IRON_BARS,
189
+ BLOCK_LADDER,
190
+ BLOCK_CAKE,
191
+ BLOCK_IRON_DOOR,
192
+ BLOCK_OAK_DOOR,
193
+ BLOCK_OAK_FENCE,
194
+ BLOCK_OAK_FENCE_GATE,
195
+ BLOCK_SPRUCE_FENCE,
196
+ BLOCK_SPRUCE_FENCE_GATE,
197
+ BLOCK_BIRCH_FENCE,
198
+ BLOCK_BIRCH_FENCE_GATE,
199
+ BLOCK_JUNGLE_FENCE,
200
+ BLOCK_JUNGLE_FENCE_GATE,
201
+ BLOCK_DARK_OAK_FENCE,
202
+ BLOCK_DARK_OAK_FENCE_GATE,
203
+ BLOCK_ACACIA_FENCE,
204
+ BLOCK_ACACIA_FENCE_GATE,
205
+ BLOCK_MAGMA_BLOCK,
206
+ BLOCK_MAGMA,
207
+ } from '../constants';
208
+
209
+ // =============================================================
210
+ // ITEM IDs (non-block items use IDs >= 10000)
211
+ // =============================================================
212
+
213
+ // Wooden tools: 10001-10005
214
+ export const ITEM_WOODEN_PICKAXE = 10001;
215
+ export const ITEM_WOODEN_AXE = 10002;
216
+ export const ITEM_WOODEN_SWORD = 10003;
217
+ export const ITEM_WOODEN_SHOVEL = 10004;
218
+ export const ITEM_WOODEN_HOE = 10005;
219
+
220
+ // Stone tools: 10006-10010
221
+ export const ITEM_STONE_PICKAXE = 10006;
222
+ export const ITEM_STONE_AXE = 10007;
223
+ export const ITEM_STONE_SWORD = 10008;
224
+ export const ITEM_STONE_SHOVEL = 10009;
225
+ export const ITEM_STONE_HOE = 10010;
226
+
227
+ // Iron tools: 10011-10015
228
+ export const ITEM_IRON_PICKAXE = 10011;
229
+ export const ITEM_IRON_AXE = 10012;
230
+ export const ITEM_IRON_SWORD = 10013;
231
+ export const ITEM_IRON_SHOVEL = 10014;
232
+ export const ITEM_IRON_HOE = 10015;
233
+
234
+ // Gold tools: 10016-10020
235
+ export const ITEM_GOLD_PICKAXE = 10016;
236
+ export const ITEM_GOLD_AXE = 10017;
237
+ export const ITEM_GOLD_SWORD = 10018;
238
+ export const ITEM_GOLD_SHOVEL = 10019;
239
+ export const ITEM_GOLD_HOE = 10020;
240
+
241
+ // Diamond tools: 10021-10025
242
+ export const ITEM_DIAMOND_PICKAXE = 10021;
243
+ export const ITEM_DIAMOND_AXE = 10022;
244
+ export const ITEM_DIAMOND_SWORD = 10023;
245
+ export const ITEM_DIAMOND_SHOVEL = 10024;
246
+ export const ITEM_DIAMOND_HOE = 10025;
247
+
248
+ // Leather armor: 10031-10034
249
+ export const ITEM_LEATHER_HELMET = 10031;
250
+ export const ITEM_LEATHER_CHESTPLATE = 10032;
251
+ export const ITEM_LEATHER_LEGGINGS = 10033;
252
+ export const ITEM_LEATHER_BOOTS = 10034;
253
+
254
+ // Iron armor: 10035-10038
255
+ export const ITEM_IRON_HELMET = 10035;
256
+ export const ITEM_IRON_CHESTPLATE = 10036;
257
+ export const ITEM_IRON_LEGGINGS = 10037;
258
+ export const ITEM_IRON_BOOTS = 10038;
259
+
260
+ // Gold armor: 10039-10042
261
+ export const ITEM_GOLD_HELMET = 10039;
262
+ export const ITEM_GOLD_CHESTPLATE = 10040;
263
+ export const ITEM_GOLD_LEGGINGS = 10041;
264
+ export const ITEM_GOLD_BOOTS = 10042;
265
+
266
+ // Diamond armor: 10043-10046
267
+ export const ITEM_DIAMOND_HELMET = 10043;
268
+ export const ITEM_DIAMOND_CHESTPLATE = 10044;
269
+ export const ITEM_DIAMOND_LEGGINGS = 10045;
270
+ export const ITEM_DIAMOND_BOOTS = 10046;
271
+
272
+ // Misc items: 10050+
273
+ export const ITEM_STICK = 10050;
274
+ export const ITEM_COAL = 10051;
275
+ export const ITEM_IRON_INGOT = 10052;
276
+ export const ITEM_GOLD_INGOT = 10053;
277
+ export const ITEM_DIAMOND_GEM = 10054;
278
+ export const ITEM_EMERALD = 10055;
279
+ export const ITEM_LAPIS_LAZULI = 10056;
280
+ export const ITEM_REDSTONE_DUST = 10057;
281
+ export const ITEM_QUARTZ = 10058;
282
+ export const ITEM_NETHERITE_INGOT = 10059;
283
+ export const ITEM_COPPER_INGOT = 10060;
284
+
285
+ // Food items: 10070+
286
+ export const ITEM_BREAD = 10070;
287
+ export const ITEM_APPLE = 10071;
288
+ export const ITEM_COOKED_PORKCHOP = 10072;
289
+ export const ITEM_RAW_PORKCHOP = 10073;
290
+ export const ITEM_COOKED_BEEF = 10074;
291
+ export const ITEM_RAW_BEEF = 10075;
292
+ export const ITEM_COOKED_CHICKEN = 10076;
293
+ export const ITEM_RAW_CHICKEN = 10077;
294
+ export const ITEM_COOKED_MUTTON = 10078;
295
+ export const ITEM_RAW_MUTTON = 10079;
296
+ export const ITEM_COOKED_COD = 10080;
297
+ export const ITEM_RAW_COD = 10081;
298
+ export const ITEM_COOKED_SALMON = 10082;
299
+ export const ITEM_RAW_SALMON = 10083;
300
+ export const ITEM_GOLDEN_APPLE = 10084;
301
+ export const ITEM_COOKIE = 10085;
302
+ export const ITEM_MUSHROOM_STEW = 10086;
303
+ export const ITEM_SUGAR = 10087;
304
+ export const ITEM_WHEAT_SEEDS = 10088;
305
+ export const ITEM_MELON_SLICE = 10089;
306
+ export const ITEM_PUMPKIN_PIE = 10090;
307
+ export const ITEM_COCOA_BEANS = 10091;
308
+ export const ITEM_BLAZE_ROD = 10092;
309
+ export const ITEM_BLAZE_POWDER = 10093;
310
+ export const ITEM_ENDER_PEARL = 10094;
311
+ export const ITEM_EYE_OF_ENDER = 10095;
312
+ export const ITEM_FIRE_CHARGE = 10096;
313
+ export const ITEM_GUNPOWDER = 10097;
314
+ export const ITEM_STRING = 10098;
315
+ export const ITEM_LEATHER = 10099;
316
+ export const ITEM_PAPER = 10100;
317
+ export const ITEM_BOOK = 10101;
318
+ export const ITEM_BOWL = 10102;
319
+ export const ITEM_BUCKET = 10103;
320
+ export const ITEM_WATER_BUCKET = 10104;
321
+ export const ITEM_LAVA_BUCKET = 10105;
322
+ export const ITEM_MILK_BUCKET = 10106;
323
+ export const ITEM_PAINTING = 10107;
324
+ export const ITEM_ITEM_FRAME = 10108;
325
+ export const ITEM_GLOWSTONE_DUST = 10109;
326
+ export const ITEM_FLINT = 10110;
327
+ export const ITEM_FLINT_AND_STEEL = 10111;
328
+ export const ITEM_COMPASS = 10112;
329
+ export const ITEM_CLOCK = 10113;
330
+ export const ITEM_MAP = 10114;
331
+ export const ITEM_SHEARS = 10115;
332
+ export const ITEM_BONE = 10116;
333
+ export const ITEM_BONE_MEAL = 10117;
334
+ export const ITEM_ARROW = 10118;
335
+ export const ITEM_BOW = 10119;
336
+ export const ITEM_SHIELD = 10120;
337
+ export const ITEM_NAME_TAG = 10121;
338
+ export const ITEM_SADDLE = 10122;
339
+ export const ITEM_LEAD = 10123;
340
+ export const ITEM_MINECART = 10124;
341
+ export const ITEM_CHEST_MINECART = 10125;
342
+ export const ITEM_TNT_MINECART = 10126;
343
+ export const ITEM_HOPPER_MINECART = 10127;
344
+ export const ITEM_BOAT = 10128;
345
+ export const ITEM_IRON_NUGGET = 10129;
346
+ export const ITEM_GOLD_NUGGET = 10130;
347
+ export const ITEM_NETHER_BRICK = 10131;
348
+ export const ITEM_NETHER_STAR = 10132;
349
+ export const ITEM_CLAY_BALL = 10133;
350
+ export const ITEM_BRICK_ITEM = 10134;
351
+ export const ITEM_CHARCOAL = 10135;
352
+ export const ITEM_DANDELION_YELLOW = 10136;
353
+ export const ITEM_ROSE_RED = 10137;
354
+ export const ITEM_LAPIS_DYE = 10138;
355
+ export const ITEM_CACTUS_GREEN = 10139;
356
+ export const ITEM_INK_SAC = 10140;
357
+ export const ITEM_COCOA_DYE = 10141;
358
+ export const ITEM_BONE_MEAL_DYE = 10142;
359
+ export const ITEM_EGG = 10150;
360
+
361
+ // Missing block IDs that recipes need (not in constants yet)
362
+ // These will be defined here as virtual block IDs for recipe purposes
363
+ const BLOCK_CHEST = 600;
364
+ const BLOCK_GLASS_PANE = 601;
365
+ const BLOCK_OAK_SLAB = 602;
366
+ const BLOCK_COBBLESTONE_SLAB = 603;
367
+ const BLOCK_STONE_SLAB = 604;
368
+ const BLOCK_STONE_BRICK_SLAB = 605;
369
+ const BLOCK_BRICK_SLAB = 606;
370
+ const BLOCK_OAK_STAIRS = 607;
371
+ const BLOCK_COBBLESTONE_STAIRS = 608;
372
+ const BLOCK_STONE_STAIRS = 609;
373
+ const BLOCK_STONE_BRICK_STAIRS = 610;
374
+ const BLOCK_BRICK_STAIRS = 611;
375
+ const BLOCK_COBBLESTONE_WALL = 612;
376
+ const BLOCK_STONE_BRICK_WALL = 613;
377
+ const BLOCK_BRICK_WALL = 614;
378
+ const BLOCK_WHITE_BANNER = 615;
379
+ const BLOCK_WHITE_BED = 616;
380
+ const BLOCK_BLACK_BED = 617;
381
+ const BLOCK_RED_BED = 618;
382
+ const BLOCK_BLUE_BED = 619;
383
+ const BLOCK_GREEN_BED = 620;
384
+ const BLOCK_YELLOW_BED = 621;
385
+ const BLOCK_BROWN_BED = 622;
386
+ const BLOCK_CYAN_BED = 623;
387
+ const BLOCK_LIGHT_GRAY_BED = 624;
388
+ const BLOCK_GRAY_BED = 625;
389
+ const BLOCK_PINK_BED = 626;
390
+ const BLOCK_LIME_BED = 627;
391
+ const BLOCK_PURPLE_BED = 628;
392
+ const BLOCK_MAGENTA_BED = 629;
393
+ const BLOCK_LIGHT_BLUE_BED = 630;
394
+ const BLOCK_ORANGE_BED = 631;
395
+ const BLOCK_SPRUCE_PLANK_SLAB = 632;
396
+ const BLOCK_BIRCH_PLANK_SLAB = 633;
397
+ const BLOCK_JUNGLE_PLANK_SLAB = 634;
398
+ const BLOCK_DARK_OAK_PLANK_SLAB = 635;
399
+ const BLOCK_ACACIA_PLANK_SLAB = 636;
400
+ const BLOCK_SPRUCE_STAIRS = 637;
401
+ const BLOCK_BIRCH_STAIRS = 638;
402
+ const BLOCK_JUNGLE_STAIRS = 639;
403
+ const BLOCK_DARK_OAK_STAIRS = 640;
404
+ const BLOCK_ACACIA_STAIRS = 641;
405
+ const BLOCK_POLISHED_GRANITE_SLAB = 642;
406
+ const BLOCK_POLISHED_DIORITE_SLAB = 643;
407
+ const BLOCK_POLISHED_ANDESITE_SLAB = 644;
408
+ const BLOCK_SANDSTONE_SLAB = 645;
409
+ const BLOCK_RED_SANDSTONE_SLAB = 646;
410
+ const BLOCK_NETHER_BRICK_SLAB = 647;
411
+ const BLOCK_QUARTZ_SLAB = 648;
412
+ const BLOCK_POLISHED_GRANITE_STAIRS = 649;
413
+ const BLOCK_POLISHED_DIORITE_STAIRS = 650;
414
+ const BLOCK_POLISHED_ANDESITE_STAIRS = 651;
415
+ const BLOCK_SANDSTONE_STAIRS = 652;
416
+ const BLOCK_RED_SANDSTONE_STAIRS = 653;
417
+ const BLOCK_NETHER_BRICK_STAIRS = 654;
418
+ const BLOCK_QUARTZ_STAIRS = 655;
419
+ const BLOCK_NETHER_BRICK_WALL = 656;
420
+ const BLOCK_ENDER_CHEST = 657;
421
+ const BLOCK_TRAPPED_CHEST = 658;
422
+ const BLOCK_LOOM_BLOCK = 659;
423
+
424
+ // =============================================================
425
+ // TYPE DEFINITIONS
426
+ // =============================================================
427
+
428
+ export interface CraftingRecipe {
429
+ id: string;
430
+ name: string;
431
+ pattern: (number | null)[][]; // 3x3 grid of block/item IDs, null = empty
432
+ result: { id: number; count: number };
433
+ type: 'crafting_table' | 'stonecutter' | 'furnace' | 'smithing';
434
+ }
435
+
436
+ export interface SmeltingRecipe {
437
+ input: number;
438
+ output: number;
439
+ cookTime: number; // in ticks (20 ticks = 1 second)
440
+ xp: number;
441
+ }
442
+
443
+ // =============================================================
444
+ // CRAFTING RECIPES
445
+ // =============================================================
446
+
447
+ const P = BLOCK_OAK_PLANKS; // shorthand for recipes using oak planks
448
+ const ST = BLOCK_STONE; // shorthand for stone
449
+ const CO = BLOCK_COBBLESTONE; // shorthand for cobblestone
450
+ const IR = ITEM_IRON_INGOT; // shorthand for iron ingot
451
+ const GO = ITEM_GOLD_INGOT; // shorthand for gold ingot
452
+ const DI = ITEM_DIAMOND_GEM; // shorthand for diamond
453
+ const SK = ITEM_STICK; // shorthand for stick
454
+ const CL = ITEM_COAL; // shorthand for coal
455
+ const WO = BLOCK_WHITE_WOOL; // shorthand for white wool
456
+
457
+ export const craftingRecipes: CraftingRecipe[] = [
458
+ // =============================================================
459
+ // BASIC CRAFTING (1-15)
460
+ // =============================================================
461
+ {
462
+ id: 'oak_planks',
463
+ name: 'Oak Planks',
464
+ pattern: [[BLOCK_OAK_LOG, null, null], [null, null, null], [null, null, null]],
465
+ result: { id: BLOCK_OAK_PLANKS, count: 4 },
466
+ type: 'crafting_table',
467
+ },
468
+ {
469
+ id: 'spruce_planks',
470
+ name: 'Spruce Planks',
471
+ pattern: [[BLOCK_SPRUCE_LOG, null, null], [null, null, null], [null, null, null]],
472
+ result: { id: BLOCK_SPRUCE_PLANKS, count: 4 },
473
+ type: 'crafting_table',
474
+ },
475
+ {
476
+ id: 'birch_planks',
477
+ name: 'Birch Planks',
478
+ pattern: [[BLOCK_BIRCH_LOG, null, null], [null, null, null], [null, null, null]],
479
+ result: { id: BLOCK_BIRCH_PLANKS, count: 4 },
480
+ type: 'crafting_table',
481
+ },
482
+ {
483
+ id: 'jungle_planks',
484
+ name: 'Jungle Planks',
485
+ pattern: [[BLOCK_JUNGLE_LOG, null, null], [null, null, null], [null, null, null]],
486
+ result: { id: BLOCK_JUNGLE_PLANKS, count: 4 },
487
+ type: 'crafting_table',
488
+ },
489
+ {
490
+ id: 'dark_oak_planks',
491
+ name: 'Dark Oak Planks',
492
+ pattern: [[BLOCK_DARK_OAK_LOG, null, null], [null, null, null], [null, null, null]],
493
+ result: { id: BLOCK_DARK_OAK_PLANKS, count: 4 },
494
+ type: 'crafting_table',
495
+ },
496
+ {
497
+ id: 'acacia_planks',
498
+ name: 'Acacia Planks',
499
+ pattern: [[BLOCK_ACACIA_LOG, null, null], [null, null, null], [null, null, null]],
500
+ result: { id: BLOCK_ACACIA_PLANKS, count: 4 },
501
+ type: 'crafting_table',
502
+ },
503
+ {
504
+ id: 'sticks',
505
+ name: 'Sticks',
506
+ pattern: [
507
+ [P, null, null],
508
+ [P, null, null],
509
+ [null, null, null],
510
+ ],
511
+ result: { id: ITEM_STICK, count: 4 },
512
+ type: 'crafting_table',
513
+ },
514
+ {
515
+ id: 'crafting_table',
516
+ name: 'Crafting Table',
517
+ pattern: [
518
+ [P, P, null],
519
+ [P, P, null],
520
+ [null, null, null],
521
+ ],
522
+ result: { id: BLOCK_CRAFTING_TABLE, count: 1 },
523
+ type: 'crafting_table',
524
+ },
525
+ {
526
+ id: 'chest',
527
+ name: 'Chest',
528
+ pattern: [
529
+ [P, P, P],
530
+ [P, null, P],
531
+ [P, P, P],
532
+ ],
533
+ result: { id: BLOCK_CHEST, count: 1 },
534
+ type: 'crafting_table',
535
+ },
536
+ {
537
+ id: 'furnace',
538
+ name: 'Furnace',
539
+ pattern: [
540
+ [CO, CO, CO],
541
+ [CO, null, CO],
542
+ [CO, CO, CO],
543
+ ],
544
+ result: { id: BLOCK_FURNACE, count: 1 },
545
+ type: 'crafting_table',
546
+ },
547
+ {
548
+ id: 'stone_bricks',
549
+ name: 'Stone Bricks',
550
+ pattern: [
551
+ [ST, ST, null],
552
+ [ST, ST, null],
553
+ [null, null, null],
554
+ ],
555
+ result: { id: BLOCK_STONE_BRICKS, count: 4 },
556
+ type: 'crafting_table',
557
+ },
558
+ {
559
+ id: 'polished_granite',
560
+ name: 'Polished Granite',
561
+ pattern: [
562
+ [BLOCK_GRANITE, BLOCK_GRANITE, null],
563
+ [BLOCK_GRANITE, BLOCK_GRANITE, null],
564
+ [null, null, null],
565
+ ],
566
+ result: { id: BLOCK_POLISHED_GRANITE, count: 4 },
567
+ type: 'crafting_table',
568
+ },
569
+ {
570
+ id: 'polished_diorite',
571
+ name: 'Polished Diorite',
572
+ pattern: [
573
+ [BLOCK_DIORITE, BLOCK_DIORITE, null],
574
+ [BLOCK_DIORITE, BLOCK_DIORITE, null],
575
+ [null, null, null],
576
+ ],
577
+ result: { id: BLOCK_POLISHED_DIORITE, count: 4 },
578
+ type: 'crafting_table',
579
+ },
580
+ {
581
+ id: 'polished_andesite',
582
+ name: 'Polished Andesite',
583
+ pattern: [
584
+ [BLOCK_ANDESITE, BLOCK_ANDESITE, null],
585
+ [BLOCK_ANDESITE, BLOCK_ANDESITE, null],
586
+ [null, null, null],
587
+ ],
588
+ result: { id: BLOCK_POLISHED_ANDESITE, count: 4 },
589
+ type: 'crafting_table',
590
+ },
591
+ {
592
+ id: 'sandstone',
593
+ name: 'Sandstone',
594
+ pattern: [
595
+ [BLOCK_SAND, BLOCK_SAND, null],
596
+ [BLOCK_SAND, BLOCK_SAND, null],
597
+ [null, null, null],
598
+ ],
599
+ result: { id: BLOCK_SANDSTONE, count: 4 },
600
+ type: 'crafting_table',
601
+ },
602
+
603
+ // =============================================================
604
+ // WOODEN TOOLS (16-20)
605
+ // =============================================================
606
+ {
607
+ id: 'wooden_pickaxe',
608
+ name: 'Wooden Pickaxe',
609
+ pattern: [
610
+ [P, P, P],
611
+ [null, SK, null],
612
+ [null, SK, null],
613
+ ],
614
+ result: { id: ITEM_WOODEN_PICKAXE, count: 1 },
615
+ type: 'crafting_table',
616
+ },
617
+ {
618
+ id: 'wooden_axe',
619
+ name: 'Wooden Axe',
620
+ pattern: [
621
+ [P, P, null],
622
+ [P, SK, null],
623
+ [null, SK, null],
624
+ ],
625
+ result: { id: ITEM_WOODEN_AXE, count: 1 },
626
+ type: 'crafting_table',
627
+ },
628
+ {
629
+ id: 'wooden_sword',
630
+ name: 'Wooden Sword',
631
+ pattern: [
632
+ [P, null, null],
633
+ [P, null, null],
634
+ [SK, null, null],
635
+ ],
636
+ result: { id: ITEM_WOODEN_SWORD, count: 1 },
637
+ type: 'crafting_table',
638
+ },
639
+ {
640
+ id: 'wooden_shovel',
641
+ name: 'Wooden Shovel',
642
+ pattern: [
643
+ [P, null, null],
644
+ [SK, null, null],
645
+ [SK, null, null],
646
+ ],
647
+ result: { id: ITEM_WOODEN_SHOVEL, count: 1 },
648
+ type: 'crafting_table',
649
+ },
650
+ {
651
+ id: 'wooden_hoe',
652
+ name: 'Wooden Hoe',
653
+ pattern: [
654
+ [P, P, null],
655
+ [null, SK, null],
656
+ [null, SK, null],
657
+ ],
658
+ result: { id: ITEM_WOODEN_HOE, count: 1 },
659
+ type: 'crafting_table',
660
+ },
661
+
662
+ // =============================================================
663
+ // STONE TOOLS (21-25)
664
+ // =============================================================
665
+ {
666
+ id: 'stone_pickaxe',
667
+ name: 'Stone Pickaxe',
668
+ pattern: [
669
+ [CO, CO, CO],
670
+ [null, SK, null],
671
+ [null, SK, null],
672
+ ],
673
+ result: { id: ITEM_STONE_PICKAXE, count: 1 },
674
+ type: 'crafting_table',
675
+ },
676
+ {
677
+ id: 'stone_axe',
678
+ name: 'Stone Axe',
679
+ pattern: [
680
+ [CO, CO, null],
681
+ [CO, SK, null],
682
+ [null, SK, null],
683
+ ],
684
+ result: { id: ITEM_STONE_AXE, count: 1 },
685
+ type: 'crafting_table',
686
+ },
687
+ {
688
+ id: 'stone_sword',
689
+ name: 'Stone Sword',
690
+ pattern: [
691
+ [CO, null, null],
692
+ [CO, null, null],
693
+ [SK, null, null],
694
+ ],
695
+ result: { id: ITEM_STONE_SWORD, count: 1 },
696
+ type: 'crafting_table',
697
+ },
698
+ {
699
+ id: 'stone_shovel',
700
+ name: 'Stone Shovel',
701
+ pattern: [
702
+ [CO, null, null],
703
+ [SK, null, null],
704
+ [SK, null, null],
705
+ ],
706
+ result: { id: ITEM_STONE_SHOVEL, count: 1 },
707
+ type: 'crafting_table',
708
+ },
709
+ {
710
+ id: 'stone_hoe',
711
+ name: 'Stone Hoe',
712
+ pattern: [
713
+ [CO, CO, null],
714
+ [null, SK, null],
715
+ [null, SK, null],
716
+ ],
717
+ result: { id: ITEM_STONE_HOE, count: 1 },
718
+ type: 'crafting_table',
719
+ },
720
+
721
+ // =============================================================
722
+ // IRON TOOLS (26-30)
723
+ // =============================================================
724
+ {
725
+ id: 'iron_pickaxe',
726
+ name: 'Iron Pickaxe',
727
+ pattern: [
728
+ [IR, IR, IR],
729
+ [null, SK, null],
730
+ [null, SK, null],
731
+ ],
732
+ result: { id: ITEM_IRON_PICKAXE, count: 1 },
733
+ type: 'crafting_table',
734
+ },
735
+ {
736
+ id: 'iron_axe',
737
+ name: 'Iron Axe',
738
+ pattern: [
739
+ [IR, IR, null],
740
+ [IR, SK, null],
741
+ [null, SK, null],
742
+ ],
743
+ result: { id: ITEM_IRON_AXE, count: 1 },
744
+ type: 'crafting_table',
745
+ },
746
+ {
747
+ id: 'iron_sword',
748
+ name: 'Iron Sword',
749
+ pattern: [
750
+ [IR, null, null],
751
+ [IR, null, null],
752
+ [SK, null, null],
753
+ ],
754
+ result: { id: ITEM_IRON_SWORD, count: 1 },
755
+ type: 'crafting_table',
756
+ },
757
+ {
758
+ id: 'iron_shovel',
759
+ name: 'Iron Shovel',
760
+ pattern: [
761
+ [IR, null, null],
762
+ [SK, null, null],
763
+ [SK, null, null],
764
+ ],
765
+ result: { id: ITEM_IRON_SHOVEL, count: 1 },
766
+ type: 'crafting_table',
767
+ },
768
+ {
769
+ id: 'iron_hoe',
770
+ name: 'Iron Hoe',
771
+ pattern: [
772
+ [IR, IR, null],
773
+ [null, SK, null],
774
+ [null, SK, null],
775
+ ],
776
+ result: { id: ITEM_IRON_HOE, count: 1 },
777
+ type: 'crafting_table',
778
+ },
779
+
780
+ // =============================================================
781
+ // GOLD TOOLS (31-35)
782
+ // =============================================================
783
+ {
784
+ id: 'gold_pickaxe',
785
+ name: 'Gold Pickaxe',
786
+ pattern: [
787
+ [GO, GO, GO],
788
+ [null, SK, null],
789
+ [null, SK, null],
790
+ ],
791
+ result: { id: ITEM_GOLD_PICKAXE, count: 1 },
792
+ type: 'crafting_table',
793
+ },
794
+ {
795
+ id: 'gold_axe',
796
+ name: 'Gold Axe',
797
+ pattern: [
798
+ [GO, GO, null],
799
+ [GO, SK, null],
800
+ [null, SK, null],
801
+ ],
802
+ result: { id: ITEM_GOLD_AXE, count: 1 },
803
+ type: 'crafting_table',
804
+ },
805
+ {
806
+ id: 'gold_sword',
807
+ name: 'Gold Sword',
808
+ pattern: [
809
+ [GO, null, null],
810
+ [GO, null, null],
811
+ [SK, null, null],
812
+ ],
813
+ result: { id: ITEM_GOLD_SWORD, count: 1 },
814
+ type: 'crafting_table',
815
+ },
816
+ {
817
+ id: 'gold_shovel',
818
+ name: 'Gold Shovel',
819
+ pattern: [
820
+ [GO, null, null],
821
+ [SK, null, null],
822
+ [SK, null, null],
823
+ ],
824
+ result: { id: ITEM_GOLD_SHOVEL, count: 1 },
825
+ type: 'crafting_table',
826
+ },
827
+ {
828
+ id: 'gold_hoe',
829
+ name: 'Gold Hoe',
830
+ pattern: [
831
+ [GO, GO, null],
832
+ [null, SK, null],
833
+ [null, SK, null],
834
+ ],
835
+ result: { id: ITEM_GOLD_HOE, count: 1 },
836
+ type: 'crafting_table',
837
+ },
838
+
839
+ // =============================================================
840
+ // DIAMOND TOOLS (36-40)
841
+ // =============================================================
842
+ {
843
+ id: 'diamond_pickaxe',
844
+ name: 'Diamond Pickaxe',
845
+ pattern: [
846
+ [DI, DI, DI],
847
+ [null, SK, null],
848
+ [null, SK, null],
849
+ ],
850
+ result: { id: ITEM_DIAMOND_PICKAXE, count: 1 },
851
+ type: 'crafting_table',
852
+ },
853
+ {
854
+ id: 'diamond_axe',
855
+ name: 'Diamond Axe',
856
+ pattern: [
857
+ [DI, DI, null],
858
+ [DI, SK, null],
859
+ [null, SK, null],
860
+ ],
861
+ result: { id: ITEM_DIAMOND_AXE, count: 1 },
862
+ type: 'crafting_table',
863
+ },
864
+ {
865
+ id: 'diamond_sword',
866
+ name: 'Diamond Sword',
867
+ pattern: [
868
+ [DI, null, null],
869
+ [DI, null, null],
870
+ [SK, null, null],
871
+ ],
872
+ result: { id: ITEM_DIAMOND_SWORD, count: 1 },
873
+ type: 'crafting_table',
874
+ },
875
+ {
876
+ id: 'diamond_shovel',
877
+ name: 'Diamond Shovel',
878
+ pattern: [
879
+ [DI, null, null],
880
+ [SK, null, null],
881
+ [SK, null, null],
882
+ ],
883
+ result: { id: ITEM_DIAMOND_SHOVEL, count: 1 },
884
+ type: 'crafting_table',
885
+ },
886
+ {
887
+ id: 'diamond_hoe',
888
+ name: 'Diamond Hoe',
889
+ pattern: [
890
+ [DI, DI, null],
891
+ [null, SK, null],
892
+ [null, SK, null],
893
+ ],
894
+ result: { id: ITEM_DIAMOND_HOE, count: 1 },
895
+ type: 'crafting_table',
896
+ },
897
+
898
+ // =============================================================
899
+ // LEATHER ARMOR (41-44)
900
+ // =============================================================
901
+ {
902
+ id: 'leather_helmet',
903
+ name: 'Leather Helmet',
904
+ pattern: [
905
+ [ITEM_LEATHER, ITEM_LEATHER, ITEM_LEATHER],
906
+ [ITEM_LEATHER, null, ITEM_LEATHER],
907
+ [null, null, null],
908
+ ],
909
+ result: { id: ITEM_LEATHER_HELMET, count: 1 },
910
+ type: 'crafting_table',
911
+ },
912
+ {
913
+ id: 'leather_chestplate',
914
+ name: 'Leather Chestplate',
915
+ pattern: [
916
+ [ITEM_LEATHER, null, ITEM_LEATHER],
917
+ [ITEM_LEATHER, ITEM_LEATHER, ITEM_LEATHER],
918
+ [ITEM_LEATHER, ITEM_LEATHER, ITEM_LEATHER],
919
+ ],
920
+ result: { id: ITEM_LEATHER_CHESTPLATE, count: 1 },
921
+ type: 'crafting_table',
922
+ },
923
+ {
924
+ id: 'leather_leggings',
925
+ name: 'Leather Leggings',
926
+ pattern: [
927
+ [ITEM_LEATHER, ITEM_LEATHER, ITEM_LEATHER],
928
+ [ITEM_LEATHER, null, ITEM_LEATHER],
929
+ [ITEM_LEATHER, null, ITEM_LEATHER],
930
+ ],
931
+ result: { id: ITEM_LEATHER_LEGGINGS, count: 1 },
932
+ type: 'crafting_table',
933
+ },
934
+ {
935
+ id: 'leather_boots',
936
+ name: 'Leather Boots',
937
+ pattern: [
938
+ [ITEM_LEATHER, null, ITEM_LEATHER],
939
+ [ITEM_LEATHER, null, ITEM_LEATHER],
940
+ [null, null, null],
941
+ ],
942
+ result: { id: ITEM_LEATHER_BOOTS, count: 1 },
943
+ type: 'crafting_table',
944
+ },
945
+
946
+ // =============================================================
947
+ // IRON ARMOR (45-48)
948
+ // =============================================================
949
+ {
950
+ id: 'iron_helmet',
951
+ name: 'Iron Helmet',
952
+ pattern: [
953
+ [IR, IR, IR],
954
+ [IR, null, IR],
955
+ [null, null, null],
956
+ ],
957
+ result: { id: ITEM_IRON_HELMET, count: 1 },
958
+ type: 'crafting_table',
959
+ },
960
+ {
961
+ id: 'iron_chestplate',
962
+ name: 'Iron Chestplate',
963
+ pattern: [
964
+ [IR, null, IR],
965
+ [IR, IR, IR],
966
+ [IR, IR, IR],
967
+ ],
968
+ result: { id: ITEM_IRON_CHESTPLATE, count: 1 },
969
+ type: 'crafting_table',
970
+ },
971
+ {
972
+ id: 'iron_leggings',
973
+ name: 'Iron Leggings',
974
+ pattern: [
975
+ [IR, IR, IR],
976
+ [IR, null, IR],
977
+ [IR, null, IR],
978
+ ],
979
+ result: { id: ITEM_IRON_LEGGINGS, count: 1 },
980
+ type: 'crafting_table',
981
+ },
982
+ {
983
+ id: 'iron_boots',
984
+ name: 'Iron Boots',
985
+ pattern: [
986
+ [IR, null, IR],
987
+ [IR, null, IR],
988
+ [null, null, null],
989
+ ],
990
+ result: { id: ITEM_IRON_BOOTS, count: 1 },
991
+ type: 'crafting_table',
992
+ },
993
+
994
+ // =============================================================
995
+ // GOLD ARMOR (49-52)
996
+ // =============================================================
997
+ {
998
+ id: 'gold_helmet',
999
+ name: 'Gold Helmet',
1000
+ pattern: [
1001
+ [GO, GO, GO],
1002
+ [GO, null, GO],
1003
+ [null, null, null],
1004
+ ],
1005
+ result: { id: ITEM_GOLD_HELMET, count: 1 },
1006
+ type: 'crafting_table',
1007
+ },
1008
+ {
1009
+ id: 'gold_chestplate',
1010
+ name: 'Gold Chestplate',
1011
+ pattern: [
1012
+ [GO, null, GO],
1013
+ [GO, GO, GO],
1014
+ [GO, GO, GO],
1015
+ ],
1016
+ result: { id: ITEM_GOLD_CHESTPLATE, count: 1 },
1017
+ type: 'crafting_table',
1018
+ },
1019
+ {
1020
+ id: 'gold_leggings',
1021
+ name: 'Gold Leggings',
1022
+ pattern: [
1023
+ [GO, GO, GO],
1024
+ [GO, null, GO],
1025
+ [GO, null, GO],
1026
+ ],
1027
+ result: { id: ITEM_GOLD_LEGGINGS, count: 1 },
1028
+ type: 'crafting_table',
1029
+ },
1030
+ {
1031
+ id: 'gold_boots',
1032
+ name: 'Gold Boots',
1033
+ pattern: [
1034
+ [GO, null, GO],
1035
+ [GO, null, GO],
1036
+ [null, null, null],
1037
+ ],
1038
+ result: { id: ITEM_GOLD_BOOTS, count: 1 },
1039
+ type: 'crafting_table',
1040
+ },
1041
+
1042
+ // =============================================================
1043
+ // DIAMOND ARMOR (53-56)
1044
+ // =============================================================
1045
+ {
1046
+ id: 'diamond_helmet',
1047
+ name: 'Diamond Helmet',
1048
+ pattern: [
1049
+ [DI, DI, DI],
1050
+ [DI, null, DI],
1051
+ [null, null, null],
1052
+ ],
1053
+ result: { id: ITEM_DIAMOND_HELMET, count: 1 },
1054
+ type: 'crafting_table',
1055
+ },
1056
+ {
1057
+ id: 'diamond_chestplate',
1058
+ name: 'Diamond Chestplate',
1059
+ pattern: [
1060
+ [DI, null, DI],
1061
+ [DI, DI, DI],
1062
+ [DI, DI, DI],
1063
+ ],
1064
+ result: { id: ITEM_DIAMOND_CHESTPLATE, count: 1 },
1065
+ type: 'crafting_table',
1066
+ },
1067
+ {
1068
+ id: 'diamond_leggings',
1069
+ name: 'Diamond Leggings',
1070
+ pattern: [
1071
+ [DI, DI, DI],
1072
+ [DI, null, DI],
1073
+ [DI, null, DI],
1074
+ ],
1075
+ result: { id: ITEM_DIAMOND_LEGGINGS, count: 1 },
1076
+ type: 'crafting_table',
1077
+ },
1078
+ {
1079
+ id: 'diamond_boots',
1080
+ name: 'Diamond Boots',
1081
+ pattern: [
1082
+ [DI, null, DI],
1083
+ [DI, null, DI],
1084
+ [null, null, null],
1085
+ ],
1086
+ result: { id: ITEM_DIAMOND_BOOTS, count: 1 },
1087
+ type: 'crafting_table',
1088
+ },
1089
+
1090
+ // =============================================================
1091
+ // BUILDING BLOCKS - SLABS (57-68)
1092
+ // =============================================================
1093
+ {
1094
+ id: 'oak_slab',
1095
+ name: 'Oak Slab',
1096
+ pattern: [
1097
+ [null, null, null],
1098
+ [null, null, null],
1099
+ [P, P, P],
1100
+ ],
1101
+ result: { id: BLOCK_OAK_SLAB, count: 6 },
1102
+ type: 'crafting_table',
1103
+ },
1104
+ {
1105
+ id: 'cobblestone_slab',
1106
+ name: 'Cobblestone Slab',
1107
+ pattern: [
1108
+ [null, null, null],
1109
+ [null, null, null],
1110
+ [CO, CO, CO],
1111
+ ],
1112
+ result: { id: BLOCK_COBBLESTONE_SLAB, count: 6 },
1113
+ type: 'crafting_table',
1114
+ },
1115
+ {
1116
+ id: 'stone_slab',
1117
+ name: 'Stone Slab',
1118
+ pattern: [
1119
+ [null, null, null],
1120
+ [null, null, null],
1121
+ [ST, ST, ST],
1122
+ ],
1123
+ result: { id: BLOCK_STONE_SLAB, count: 6 },
1124
+ type: 'crafting_table',
1125
+ },
1126
+ {
1127
+ id: 'stone_brick_slab',
1128
+ name: 'Stone Brick Slab',
1129
+ pattern: [
1130
+ [null, null, null],
1131
+ [null, null, null],
1132
+ [BLOCK_STONE_BRICKS, BLOCK_STONE_BRICKS, BLOCK_STONE_BRICKS],
1133
+ ],
1134
+ result: { id: BLOCK_STONE_BRICK_SLAB, count: 6 },
1135
+ type: 'crafting_table',
1136
+ },
1137
+ {
1138
+ id: 'brick_slab',
1139
+ name: 'Brick Slab',
1140
+ pattern: [
1141
+ [null, null, null],
1142
+ [null, null, null],
1143
+ [BLOCK_BRICKS, BLOCK_BRICKS, BLOCK_BRICKS],
1144
+ ],
1145
+ result: { id: BLOCK_BRICK_SLAB, count: 6 },
1146
+ type: 'crafting_table',
1147
+ },
1148
+ {
1149
+ id: 'sandstone_slab',
1150
+ name: 'Sandstone Slab',
1151
+ pattern: [
1152
+ [null, null, null],
1153
+ [null, null, null],
1154
+ [BLOCK_SANDSTONE, BLOCK_SANDSTONE, BLOCK_SANDSTONE],
1155
+ ],
1156
+ result: { id: BLOCK_SANDSTONE_SLAB, count: 6 },
1157
+ type: 'crafting_table',
1158
+ },
1159
+ {
1160
+ id: 'nether_brick_slab',
1161
+ name: 'Nether Brick Slab',
1162
+ pattern: [
1163
+ [null, null, null],
1164
+ [null, null, null],
1165
+ [BLOCK_NETHER_BRICKS, BLOCK_NETHER_BRICKS, BLOCK_NETHER_BRICKS],
1166
+ ],
1167
+ result: { id: BLOCK_NETHER_BRICK_SLAB, count: 6 },
1168
+ type: 'crafting_table',
1169
+ },
1170
+ {
1171
+ id: 'quartz_slab',
1172
+ name: 'Quartz Slab',
1173
+ pattern: [
1174
+ [null, null, null],
1175
+ [null, null, null],
1176
+ [BLOCK_QUARTZ_BLOCK, BLOCK_QUARTZ_BLOCK, BLOCK_QUARTZ_BLOCK],
1177
+ ],
1178
+ result: { id: BLOCK_QUARTZ_SLAB, count: 6 },
1179
+ type: 'crafting_table',
1180
+ },
1181
+ {
1182
+ id: 'polished_granite_slab',
1183
+ name: 'Polished Granite Slab',
1184
+ pattern: [
1185
+ [null, null, null],
1186
+ [null, null, null],
1187
+ [BLOCK_POLISHED_GRANITE, BLOCK_POLISHED_GRANITE, BLOCK_POLISHED_GRANITE],
1188
+ ],
1189
+ result: { id: BLOCK_POLISHED_GRANITE_SLAB, count: 6 },
1190
+ type: 'crafting_table',
1191
+ },
1192
+ {
1193
+ id: 'polished_diorite_slab',
1194
+ name: 'Polished Diorite Slab',
1195
+ pattern: [
1196
+ [null, null, null],
1197
+ [null, null, null],
1198
+ [BLOCK_POLISHED_DIORITE, BLOCK_POLISHED_DIORITE, BLOCK_POLISHED_DIORITE],
1199
+ ],
1200
+ result: { id: BLOCK_POLISHED_DIORITE_SLAB, count: 6 },
1201
+ type: 'crafting_table',
1202
+ },
1203
+ {
1204
+ id: 'polished_andesite_slab',
1205
+ name: 'Polished Andesite Slab',
1206
+ pattern: [
1207
+ [null, null, null],
1208
+ [null, null, null],
1209
+ [BLOCK_POLISHED_ANDESITE, BLOCK_POLISHED_ANDESITE, BLOCK_POLISHED_ANDESITE],
1210
+ ],
1211
+ result: { id: BLOCK_POLISHED_ANDESITE_SLAB, count: 6 },
1212
+ type: 'crafting_table',
1213
+ },
1214
+ {
1215
+ id: 'red_sandstone_slab',
1216
+ name: 'Red Sandstone Slab',
1217
+ pattern: [
1218
+ [null, null, null],
1219
+ [null, null, null],
1220
+ [BLOCK_RED_SANDSTONE, BLOCK_RED_SANDSTONE, BLOCK_RED_SANDSTONE],
1221
+ ],
1222
+ result: { id: BLOCK_RED_SANDSTONE_SLAB, count: 6 },
1223
+ type: 'crafting_table',
1224
+ },
1225
+
1226
+ // =============================================================
1227
+ // BUILDING BLOCKS - STAIRS (69-78)
1228
+ // =============================================================
1229
+ {
1230
+ id: 'oak_stairs',
1231
+ name: 'Oak Stairs',
1232
+ pattern: [
1233
+ [P, null, null],
1234
+ [P, P, null],
1235
+ [P, P, P],
1236
+ ],
1237
+ result: { id: BLOCK_OAK_STAIRS, count: 4 },
1238
+ type: 'crafting_table',
1239
+ },
1240
+ {
1241
+ id: 'cobblestone_stairs',
1242
+ name: 'Cobblestone Stairs',
1243
+ pattern: [
1244
+ [CO, null, null],
1245
+ [CO, CO, null],
1246
+ [CO, CO, CO],
1247
+ ],
1248
+ result: { id: BLOCK_COBBLESTONE_STAIRS, count: 4 },
1249
+ type: 'crafting_table',
1250
+ },
1251
+ {
1252
+ id: 'stone_stairs',
1253
+ name: 'Stone Stairs',
1254
+ pattern: [
1255
+ [ST, null, null],
1256
+ [ST, ST, null],
1257
+ [ST, ST, ST],
1258
+ ],
1259
+ result: { id: BLOCK_STONE_STAIRS, count: 4 },
1260
+ type: 'crafting_table',
1261
+ },
1262
+ {
1263
+ id: 'stone_brick_stairs',
1264
+ name: 'Stone Brick Stairs',
1265
+ pattern: [
1266
+ [BLOCK_STONE_BRICKS, null, null],
1267
+ [BLOCK_STONE_BRICKS, BLOCK_STONE_BRICKS, null],
1268
+ [BLOCK_STONE_BRICKS, BLOCK_STONE_BRICKS, BLOCK_STONE_BRICKS],
1269
+ ],
1270
+ result: { id: BLOCK_STONE_BRICK_STAIRS, count: 4 },
1271
+ type: 'crafting_table',
1272
+ },
1273
+ {
1274
+ id: 'brick_stairs',
1275
+ name: 'Brick Stairs',
1276
+ pattern: [
1277
+ [BLOCK_BRICKS, null, null],
1278
+ [BLOCK_BRICKS, BLOCK_BRICKS, null],
1279
+ [BLOCK_BRICKS, BLOCK_BRICKS, BLOCK_BRICKS],
1280
+ ],
1281
+ result: { id: BLOCK_BRICK_STAIRS, count: 4 },
1282
+ type: 'crafting_table',
1283
+ },
1284
+ {
1285
+ id: 'sandstone_stairs',
1286
+ name: 'Sandstone Stairs',
1287
+ pattern: [
1288
+ [BLOCK_SANDSTONE, null, null],
1289
+ [BLOCK_SANDSTONE, BLOCK_SANDSTONE, null],
1290
+ [BLOCK_SANDSTONE, BLOCK_SANDSTONE, BLOCK_SANDSTONE],
1291
+ ],
1292
+ result: { id: BLOCK_SANDSTONE_STAIRS, count: 4 },
1293
+ type: 'crafting_table',
1294
+ },
1295
+ {
1296
+ id: 'nether_brick_stairs',
1297
+ name: 'Nether Brick Stairs',
1298
+ pattern: [
1299
+ [BLOCK_NETHER_BRICKS, null, null],
1300
+ [BLOCK_NETHER_BRICKS, BLOCK_NETHER_BRICKS, null],
1301
+ [BLOCK_NETHER_BRICKS, BLOCK_NETHER_BRICKS, BLOCK_NETHER_BRICKS],
1302
+ ],
1303
+ result: { id: BLOCK_NETHER_BRICK_STAIRS, count: 4 },
1304
+ type: 'crafting_table',
1305
+ },
1306
+ {
1307
+ id: 'quartz_stairs',
1308
+ name: 'Quartz Stairs',
1309
+ pattern: [
1310
+ [BLOCK_QUARTZ_BLOCK, null, null],
1311
+ [BLOCK_QUARTZ_BLOCK, BLOCK_QUARTZ_BLOCK, null],
1312
+ [BLOCK_QUARTZ_BLOCK, BLOCK_QUARTZ_BLOCK, BLOCK_QUARTZ_BLOCK],
1313
+ ],
1314
+ result: { id: BLOCK_QUARTZ_STAIRS, count: 4 },
1315
+ type: 'crafting_table',
1316
+ },
1317
+ {
1318
+ id: 'polished_granite_stairs',
1319
+ name: 'Polished Granite Stairs',
1320
+ pattern: [
1321
+ [BLOCK_POLISHED_GRANITE, null, null],
1322
+ [BLOCK_POLISHED_GRANITE, BLOCK_POLISHED_GRANITE, null],
1323
+ [BLOCK_POLISHED_GRANITE, BLOCK_POLISHED_GRANITE, BLOCK_POLISHED_GRANITE],
1324
+ ],
1325
+ result: { id: BLOCK_POLISHED_GRANITE_STAIRS, count: 4 },
1326
+ type: 'crafting_table',
1327
+ },
1328
+ {
1329
+ id: 'red_sandstone_stairs',
1330
+ name: 'Red Sandstone Stairs',
1331
+ pattern: [
1332
+ [BLOCK_RED_SANDSTONE, null, null],
1333
+ [BLOCK_RED_SANDSTONE, BLOCK_RED_SANDSTONE, null],
1334
+ [BLOCK_RED_SANDSTONE, BLOCK_RED_SANDSTONE, BLOCK_RED_SANDSTONE],
1335
+ ],
1336
+ result: { id: BLOCK_RED_SANDSTONE_STAIRS, count: 4 },
1337
+ type: 'crafting_table',
1338
+ },
1339
+
1340
+ // =============================================================
1341
+ // BUILDING BLOCKS - WALLS (80-82)
1342
+ // =============================================================
1343
+ {
1344
+ id: 'cobblestone_wall',
1345
+ name: 'Cobblestone Wall',
1346
+ pattern: [
1347
+ [CO, CO, CO],
1348
+ [CO, CO, CO],
1349
+ [null, null, null],
1350
+ ],
1351
+ result: { id: BLOCK_COBBLESTONE_WALL, count: 6 },
1352
+ type: 'crafting_table',
1353
+ },
1354
+ {
1355
+ id: 'stone_brick_wall',
1356
+ name: 'Stone Brick Wall',
1357
+ pattern: [
1358
+ [BLOCK_STONE_BRICKS, BLOCK_STONE_BRICKS, BLOCK_STONE_BRICKS],
1359
+ [BLOCK_STONE_BRICKS, BLOCK_STONE_BRICKS, BLOCK_STONE_BRICKS],
1360
+ [null, null, null],
1361
+ ],
1362
+ result: { id: BLOCK_STONE_BRICK_WALL, count: 6 },
1363
+ type: 'crafting_table',
1364
+ },
1365
+ {
1366
+ id: 'brick_wall',
1367
+ name: 'Brick Wall',
1368
+ pattern: [
1369
+ [BLOCK_BRICKS, BLOCK_BRICKS, BLOCK_BRICKS],
1370
+ [BLOCK_BRICKS, BLOCK_BRICKS, BLOCK_BRICKS],
1371
+ [null, null, null],
1372
+ ],
1373
+ result: { id: BLOCK_BRICK_WALL, count: 6 },
1374
+ type: 'crafting_table',
1375
+ },
1376
+
1377
+ // =============================================================
1378
+ // BUILDING BLOCKS - FENCES & DOORS (83-90)
1379
+ // =============================================================
1380
+ {
1381
+ id: 'oak_fence',
1382
+ name: 'Oak Fence',
1383
+ pattern: [
1384
+ [P, SK, P],
1385
+ [P, SK, P],
1386
+ [null, null, null],
1387
+ ],
1388
+ result: { id: BLOCK_OAK_FENCE, count: 3 },
1389
+ type: 'crafting_table',
1390
+ },
1391
+ {
1392
+ id: 'oak_fence_gate',
1393
+ name: 'Oak Fence Gate',
1394
+ pattern: [
1395
+ [SK, P, SK],
1396
+ [SK, P, SK],
1397
+ [null, null, null],
1398
+ ],
1399
+ result: { id: BLOCK_OAK_FENCE_GATE, count: 1 },
1400
+ type: 'crafting_table',
1401
+ },
1402
+ {
1403
+ id: 'spruce_fence',
1404
+ name: 'Spruce Fence',
1405
+ pattern: [
1406
+ [BLOCK_SPRUCE_PLANKS, SK, BLOCK_SPRUCE_PLANKS],
1407
+ [BLOCK_SPRUCE_PLANKS, SK, BLOCK_SPRUCE_PLANKS],
1408
+ [null, null, null],
1409
+ ],
1410
+ result: { id: BLOCK_SPRUCE_FENCE, count: 3 },
1411
+ type: 'crafting_table',
1412
+ },
1413
+ {
1414
+ id: 'birch_fence',
1415
+ name: 'Birch Fence',
1416
+ pattern: [
1417
+ [BLOCK_BIRCH_PLANKS, SK, BLOCK_BIRCH_PLANKS],
1418
+ [BLOCK_BIRCH_PLANKS, SK, BLOCK_BIRCH_PLANKS],
1419
+ [null, null, null],
1420
+ ],
1421
+ result: { id: BLOCK_BIRCH_FENCE, count: 3 },
1422
+ type: 'crafting_table',
1423
+ },
1424
+ {
1425
+ id: 'jungle_fence',
1426
+ name: 'Jungle Fence',
1427
+ pattern: [
1428
+ [BLOCK_JUNGLE_PLANKS, SK, BLOCK_JUNGLE_PLANKS],
1429
+ [BLOCK_JUNGLE_PLANKS, SK, BLOCK_JUNGLE_PLANKS],
1430
+ [null, null, null],
1431
+ ],
1432
+ result: { id: BLOCK_JUNGLE_FENCE, count: 3 },
1433
+ type: 'crafting_table',
1434
+ },
1435
+ {
1436
+ id: 'dark_oak_fence',
1437
+ name: 'Dark Oak Fence',
1438
+ pattern: [
1439
+ [BLOCK_DARK_OAK_PLANKS, SK, BLOCK_DARK_OAK_PLANKS],
1440
+ [BLOCK_DARK_OAK_PLANKS, SK, BLOCK_DARK_OAK_PLANKS],
1441
+ [null, null, null],
1442
+ ],
1443
+ result: { id: BLOCK_DARK_OAK_FENCE, count: 3 },
1444
+ type: 'crafting_table',
1445
+ },
1446
+ {
1447
+ id: 'acacia_fence',
1448
+ name: 'Acacia Fence',
1449
+ pattern: [
1450
+ [BLOCK_ACACIA_PLANKS, SK, BLOCK_ACACIA_PLANKS],
1451
+ [BLOCK_ACACIA_PLANKS, SK, BLOCK_ACACIA_PLANKS],
1452
+ [null, null, null],
1453
+ ],
1454
+ result: { id: BLOCK_ACACIA_FENCE, count: 3 },
1455
+ type: 'crafting_table',
1456
+ },
1457
+ {
1458
+ id: 'oak_door',
1459
+ name: 'Oak Door',
1460
+ pattern: [
1461
+ [P, P, null],
1462
+ [P, P, null],
1463
+ [P, P, null],
1464
+ ],
1465
+ result: { id: BLOCK_OAK_DOOR, count: 3 },
1466
+ type: 'crafting_table',
1467
+ },
1468
+ {
1469
+ id: 'iron_door',
1470
+ name: 'Iron Door',
1471
+ pattern: [
1472
+ [IR, IR, null],
1473
+ [IR, IR, null],
1474
+ [IR, IR, null],
1475
+ ],
1476
+ result: { id: BLOCK_IRON_DOOR, count: 3 },
1477
+ type: 'crafting_table',
1478
+ },
1479
+
1480
+ // =============================================================
1481
+ // REDSTONE (91-106)
1482
+ // =============================================================
1483
+ {
1484
+ id: 'redstone_torch',
1485
+ name: 'Redstone Torch',
1486
+ pattern: [
1487
+ [ITEM_REDSTONE_DUST, null, null],
1488
+ [SK, null, null],
1489
+ [null, null, null],
1490
+ ],
1491
+ result: { id: BLOCK_REDSTONE_TORCH, count: 1 },
1492
+ type: 'crafting_table',
1493
+ },
1494
+ {
1495
+ id: 'repeater',
1496
+ name: 'Repeater',
1497
+ pattern: [
1498
+ [null, BLOCK_REDSTONE_TORCH, null],
1499
+ [ITEM_REDSTONE_DUST, ITEM_REDSTONE_DUST, ITEM_REDSTONE_DUST],
1500
+ [ST, ST, ST],
1501
+ ],
1502
+ result: { id: BLOCK_REPEATER, count: 1 },
1503
+ type: 'crafting_table',
1504
+ },
1505
+ {
1506
+ id: 'comparator',
1507
+ name: 'Comparator',
1508
+ pattern: [
1509
+ [null, BLOCK_REDSTONE_TORCH, null],
1510
+ [BLOCK_REDSTONE_TORCH, ITEM_REDSTONE_DUST, BLOCK_REDSTONE_TORCH],
1511
+ [ST, ST, ST],
1512
+ ],
1513
+ result: { id: BLOCK_COMPARATOR, count: 1 },
1514
+ type: 'crafting_table',
1515
+ },
1516
+ {
1517
+ id: 'piston',
1518
+ name: 'Piston',
1519
+ pattern: [
1520
+ [P, P, P],
1521
+ [CO, IR, CO],
1522
+ [CO, ITEM_REDSTONE_DUST, CO],
1523
+ ],
1524
+ result: { id: BLOCK_PISTON, count: 1 },
1525
+ type: 'crafting_table',
1526
+ },
1527
+ {
1528
+ id: 'sticky_piston',
1529
+ name: 'Sticky Piston',
1530
+ pattern: [
1531
+ [BLOCK_SLIME_BLOCK, null, null],
1532
+ [BLOCK_PISTON, null, null],
1533
+ [null, null, null],
1534
+ ],
1535
+ result: { id: BLOCK_STICKY_PISTON, count: 1 },
1536
+ type: 'crafting_table',
1537
+ },
1538
+ {
1539
+ id: 'dispenser',
1540
+ name: 'Dispenser',
1541
+ pattern: [
1542
+ [CO, CO, CO],
1543
+ [CO, null, CO],
1544
+ [CO, BLOCK_REDSTONE_TORCH, CO],
1545
+ ],
1546
+ result: { id: BLOCK_DISPENSER, count: 1 },
1547
+ type: 'crafting_table',
1548
+ },
1549
+ {
1550
+ id: 'dropper',
1551
+ name: 'Dropper',
1552
+ pattern: [
1553
+ [CO, CO, CO],
1554
+ [CO, null, CO],
1555
+ [CO, CO, CO],
1556
+ ],
1557
+ result: { id: BLOCK_DROPPER, count: 1 },
1558
+ type: 'crafting_table',
1559
+ },
1560
+ {
1561
+ id: 'observer',
1562
+ name: 'Observer',
1563
+ pattern: [
1564
+ [CO, CO, CO],
1565
+ [ITEM_REDSTONE_DUST, ITEM_REDSTONE_DUST, ITEM_REDSTONE_DUST],
1566
+ [ST, ST, ST],
1567
+ ],
1568
+ result: { id: BLOCK_OBSERVER, count: 1 },
1569
+ type: 'crafting_table',
1570
+ },
1571
+ {
1572
+ id: 'hopper',
1573
+ name: 'Hopper',
1574
+ pattern: [
1575
+ [IR, null, IR],
1576
+ [IR, null, IR],
1577
+ [null, IR, null],
1578
+ ],
1579
+ result: { id: BLOCK_HOPPER, count: 1 },
1580
+ type: 'crafting_table',
1581
+ },
1582
+ {
1583
+ id: 'lever',
1584
+ name: 'Lever',
1585
+ pattern: [
1586
+ [null, CO, null],
1587
+ [null, SK, null],
1588
+ [null, null, null],
1589
+ ],
1590
+ result: { id: BLOCK_LEVER, count: 1 },
1591
+ type: 'crafting_table',
1592
+ },
1593
+ {
1594
+ id: 'tnt',
1595
+ name: 'TNT',
1596
+ pattern: [
1597
+ [ITEM_GUNPOWDER, BLOCK_SAND, ITEM_GUNPOWDER],
1598
+ [BLOCK_SAND, ITEM_GUNPOWDER, BLOCK_SAND],
1599
+ [ITEM_GUNPOWDER, BLOCK_SAND, ITEM_GUNPOWDER],
1600
+ ],
1601
+ result: { id: BLOCK_TNT, count: 1 },
1602
+ type: 'crafting_table',
1603
+ },
1604
+ {
1605
+ id: 'redstone_lamp',
1606
+ name: 'Redstone Lamp',
1607
+ pattern: [
1608
+ [null, ITEM_REDSTONE_DUST, null],
1609
+ [ITEM_REDSTONE_DUST, BLOCK_GLOWSTONE, ITEM_REDSTONE_DUST],
1610
+ [null, ITEM_REDSTONE_DUST, null],
1611
+ ],
1612
+ result: { id: BLOCK_REDSTONE_LAMP, count: 1 },
1613
+ type: 'crafting_table',
1614
+ },
1615
+ {
1616
+ id: 'rail',
1617
+ name: 'Rail',
1618
+ pattern: [
1619
+ [IR, null, IR],
1620
+ [IR, SK, IR],
1621
+ [IR, null, IR],
1622
+ ],
1623
+ result: { id: BLOCK_RAIL, count: 16 },
1624
+ type: 'crafting_table',
1625
+ },
1626
+ {
1627
+ id: 'powered_rail',
1628
+ name: 'Powered Rail',
1629
+ pattern: [
1630
+ [GO, null, GO],
1631
+ [GO, SK, GO],
1632
+ [GO, ITEM_REDSTONE_DUST, GO],
1633
+ ],
1634
+ result: { id: BLOCK_POWERED_RAIL, count: 6 },
1635
+ type: 'crafting_table',
1636
+ },
1637
+ {
1638
+ id: 'detector_rail',
1639
+ name: 'Detector Rail',
1640
+ pattern: [
1641
+ [IR, null, IR],
1642
+ [IR, BLOCK_REDSTONE_TORCH, IR],
1643
+ [IR, null, IR],
1644
+ ],
1645
+ result: { id: BLOCK_DETECTOR_RAIL, count: 6 },
1646
+ type: 'crafting_table',
1647
+ },
1648
+ {
1649
+ id: 'activator_rail',
1650
+ name: 'Activator Rail',
1651
+ pattern: [
1652
+ [IR, null, IR],
1653
+ [IR, SK, IR],
1654
+ [IR, BLOCK_REDSTONE_TORCH, IR],
1655
+ ],
1656
+ result: { id: BLOCK_ACTIVATOR_RAIL, count: 6 },
1657
+ type: 'crafting_table',
1658
+ },
1659
+
1660
+ // =============================================================
1661
+ // DECORATION (107-122)
1662
+ // =============================================================
1663
+ {
1664
+ id: 'white_bed',
1665
+ name: 'White Bed',
1666
+ pattern: [
1667
+ [WO, WO, WO],
1668
+ [P, P, P],
1669
+ [null, null, null],
1670
+ ],
1671
+ result: { id: BLOCK_WHITE_BED, count: 1 },
1672
+ type: 'crafting_table',
1673
+ },
1674
+ {
1675
+ id: 'black_bed',
1676
+ name: 'Black Bed',
1677
+ pattern: [
1678
+ [BLOCK_BLACK_WOOL, BLOCK_BLACK_WOOL, BLOCK_BLACK_WOOL],
1679
+ [P, P, P],
1680
+ [null, null, null],
1681
+ ],
1682
+ result: { id: BLOCK_BLACK_BED, count: 1 },
1683
+ type: 'crafting_table',
1684
+ },
1685
+ {
1686
+ id: 'red_bed',
1687
+ name: 'Red Bed',
1688
+ pattern: [
1689
+ [BLOCK_RED_WOOL, BLOCK_RED_WOOL, BLOCK_RED_WOOL],
1690
+ [P, P, P],
1691
+ [null, null, null],
1692
+ ],
1693
+ result: { id: BLOCK_RED_BED, count: 1 },
1694
+ type: 'crafting_table',
1695
+ },
1696
+ {
1697
+ id: 'blue_bed',
1698
+ name: 'Blue Bed',
1699
+ pattern: [
1700
+ [BLOCK_BLUE_WOOL, BLOCK_BLUE_WOOL, BLOCK_BLUE_WOOL],
1701
+ [P, P, P],
1702
+ [null, null, null],
1703
+ ],
1704
+ result: { id: BLOCK_BLUE_BED, count: 1 },
1705
+ type: 'crafting_table',
1706
+ },
1707
+ {
1708
+ id: 'green_bed',
1709
+ name: 'Green Bed',
1710
+ pattern: [
1711
+ [BLOCK_GREEN_WOOL, BLOCK_GREEN_WOOL, BLOCK_GREEN_WOOL],
1712
+ [P, P, P],
1713
+ [null, null, null],
1714
+ ],
1715
+ result: { id: BLOCK_GREEN_BED, count: 1 },
1716
+ type: 'crafting_table',
1717
+ },
1718
+ {
1719
+ id: 'painting',
1720
+ name: 'Painting',
1721
+ pattern: [
1722
+ [SK, SK, SK],
1723
+ [SK, WO, SK],
1724
+ [SK, SK, SK],
1725
+ ],
1726
+ result: { id: ITEM_PAINTING, count: 1 },
1727
+ type: 'crafting_table',
1728
+ },
1729
+ {
1730
+ id: 'item_frame',
1731
+ name: 'Item Frame',
1732
+ pattern: [
1733
+ [SK, SK, SK],
1734
+ [SK, null, SK],
1735
+ [SK, SK, SK],
1736
+ ],
1737
+ result: { id: ITEM_ITEM_FRAME, count: 1 },
1738
+ type: 'crafting_table',
1739
+ },
1740
+ {
1741
+ id: 'glass_panes',
1742
+ name: 'Glass Panes',
1743
+ pattern: [
1744
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
1745
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
1746
+ [null, null, null],
1747
+ ],
1748
+ result: { id: BLOCK_GLASS_PANE, count: 16 },
1749
+ type: 'crafting_table',
1750
+ },
1751
+ {
1752
+ id: 'white_banner',
1753
+ name: 'White Banner',
1754
+ pattern: [
1755
+ [WO, WO, WO],
1756
+ [WO, WO, WO],
1757
+ [null, SK, null],
1758
+ ],
1759
+ result: { id: BLOCK_WHITE_BANNER, count: 1 },
1760
+ type: 'crafting_table',
1761
+ },
1762
+ {
1763
+ id: 'ladder',
1764
+ name: 'Ladder',
1765
+ pattern: [
1766
+ [SK, null, SK],
1767
+ [SK, SK, SK],
1768
+ [SK, null, SK],
1769
+ ],
1770
+ result: { id: BLOCK_LADDER, count: 3 },
1771
+ type: 'crafting_table',
1772
+ },
1773
+ {
1774
+ id: 'iron_bars',
1775
+ name: 'Iron Bars',
1776
+ pattern: [
1777
+ [IR, IR, IR],
1778
+ [IR, IR, IR],
1779
+ [null, null, null],
1780
+ ],
1781
+ result: { id: BLOCK_IRON_BARS, count: 16 },
1782
+ type: 'crafting_table',
1783
+ },
1784
+ {
1785
+ id: 'bookshelf',
1786
+ name: 'Bookshelf',
1787
+ pattern: [
1788
+ [P, P, P],
1789
+ [ITEM_BOOK, ITEM_BOOK, ITEM_BOOK],
1790
+ [P, P, P],
1791
+ ],
1792
+ result: { id: BLOCK_BOOKSHELF, count: 1 },
1793
+ type: 'crafting_table',
1794
+ },
1795
+ {
1796
+ id: 'torch',
1797
+ name: 'Torch',
1798
+ pattern: [
1799
+ [CL, null, null],
1800
+ [SK, null, null],
1801
+ [null, null, null],
1802
+ ],
1803
+ result: { id: BLOCK_TORCH, count: 4 },
1804
+ type: 'crafting_table',
1805
+ },
1806
+ {
1807
+ id: 'torch_charcoal',
1808
+ name: 'Torch (Charcoal)',
1809
+ pattern: [
1810
+ [ITEM_CHARCOAL, null, null],
1811
+ [SK, null, null],
1812
+ [null, null, null],
1813
+ ],
1814
+ result: { id: BLOCK_TORCH, count: 4 },
1815
+ type: 'crafting_table',
1816
+ },
1817
+ {
1818
+ id: 'jack_o_lantern',
1819
+ name: 'Jack o\'Lantern',
1820
+ pattern: [
1821
+ [BLOCK_TORCH, null, null],
1822
+ [BLOCK_PUMPKIN, null, null],
1823
+ [null, null, null],
1824
+ ],
1825
+ result: { id: BLOCK_JACK_O_LANTERN, count: 1 },
1826
+ type: 'crafting_table',
1827
+ },
1828
+ {
1829
+ id: 'campfire',
1830
+ name: 'Campfire',
1831
+ pattern: [
1832
+ [SK, null, SK],
1833
+ [SK, CL, SK],
1834
+ [CO, CO, CO],
1835
+ ],
1836
+ result: { id: BLOCK_CAMPFIRE, count: 1 },
1837
+ type: 'crafting_table',
1838
+ },
1839
+
1840
+ // =============================================================
1841
+ // FOOD (123-132)
1842
+ // =============================================================
1843
+ {
1844
+ id: 'bread',
1845
+ name: 'Bread',
1846
+ pattern: [
1847
+ [null, null, null],
1848
+ [BLOCK_WHEAT, BLOCK_WHEAT, BLOCK_WHEAT],
1849
+ [null, null, null],
1850
+ ],
1851
+ result: { id: ITEM_BREAD, count: 1 },
1852
+ type: 'crafting_table',
1853
+ },
1854
+ {
1855
+ id: 'cake',
1856
+ name: 'Cake',
1857
+ pattern: [
1858
+ [ITEM_MILK_BUCKET, ITEM_MILK_BUCKET, ITEM_MILK_BUCKET],
1859
+ [ITEM_SUGAR, ITEM_EGG, ITEM_SUGAR],
1860
+ [BLOCK_WHEAT, BLOCK_WHEAT, BLOCK_WHEAT],
1861
+ ],
1862
+ result: { id: BLOCK_CAKE, count: 1 },
1863
+ type: 'crafting_table',
1864
+ },
1865
+ {
1866
+ id: 'cookie',
1867
+ name: 'Cookie',
1868
+ pattern: [
1869
+ [BLOCK_WHEAT, ITEM_COCOA_BEANS, BLOCK_WHEAT],
1870
+ [null, null, null],
1871
+ [null, null, null],
1872
+ ],
1873
+ result: { id: ITEM_COOKIE, count: 8 },
1874
+ type: 'crafting_table',
1875
+ },
1876
+ {
1877
+ id: 'golden_apple',
1878
+ name: 'Golden Apple',
1879
+ pattern: [
1880
+ [GO, GO, GO],
1881
+ [GO, ITEM_APPLE, GO],
1882
+ [GO, GO, GO],
1883
+ ],
1884
+ result: { id: ITEM_GOLDEN_APPLE, count: 1 },
1885
+ type: 'crafting_table',
1886
+ },
1887
+ {
1888
+ id: 'pumpkin_pie',
1889
+ name: 'Pumpkin Pie',
1890
+ pattern: [
1891
+ [null, ITEM_SUGAR, null],
1892
+ [BLOCK_PUMPKIN, ITEM_EGG, null],
1893
+ [null, null, null],
1894
+ ],
1895
+ result: { id: ITEM_PUMPKIN_PIE, count: 1 },
1896
+ type: 'crafting_table',
1897
+ },
1898
+ {
1899
+ id: 'mushroom_stew',
1900
+ name: 'Mushroom Stew',
1901
+ pattern: [
1902
+ [BLOCK_RED_MUSHROOM, null, null],
1903
+ [BLOCK_BROWN_MUSHROOM, null, null],
1904
+ [ITEM_BOWL, null, null],
1905
+ ],
1906
+ result: { id: ITEM_MUSHROOM_STEW, count: 1 },
1907
+ type: 'crafting_table',
1908
+ },
1909
+ {
1910
+ id: 'sugar',
1911
+ name: 'Sugar',
1912
+ pattern: [
1913
+ [BLOCK_SUGAR_CANE, null, null],
1914
+ [null, null, null],
1915
+ [null, null, null],
1916
+ ],
1917
+ result: { id: ITEM_SUGAR, count: 1 },
1918
+ type: 'crafting_table',
1919
+ },
1920
+ {
1921
+ id: 'bowl',
1922
+ name: 'Bowl',
1923
+ pattern: [
1924
+ [P, null, P],
1925
+ [null, P, null],
1926
+ [null, null, null],
1927
+ ],
1928
+ result: { id: ITEM_BOWL, count: 4 },
1929
+ type: 'crafting_table',
1930
+ },
1931
+ {
1932
+ id: 'paper',
1933
+ name: 'Paper',
1934
+ pattern: [
1935
+ [BLOCK_SUGAR_CANE, BLOCK_SUGAR_CANE, BLOCK_SUGAR_CANE],
1936
+ [null, null, null],
1937
+ [null, null, null],
1938
+ ],
1939
+ result: { id: ITEM_PAPER, count: 3 },
1940
+ type: 'crafting_table',
1941
+ },
1942
+ {
1943
+ id: 'book',
1944
+ name: 'Book',
1945
+ pattern: [
1946
+ [ITEM_PAPER, null, null],
1947
+ [ITEM_PAPER, null, null],
1948
+ [ITEM_PAPER, ITEM_LEATHER, null],
1949
+ ],
1950
+ result: { id: ITEM_BOOK, count: 1 },
1951
+ type: 'crafting_table',
1952
+ },
1953
+
1954
+ // =============================================================
1955
+ // NETHER-RELATED (133-141)
1956
+ // =============================================================
1957
+ {
1958
+ id: 'fire_charge',
1959
+ name: 'Fire Charge',
1960
+ pattern: [
1961
+ [null, ITEM_BLAZE_POWDER, null],
1962
+ [null, ITEM_COAL, null],
1963
+ [null, ITEM_GUNPOWDER, null],
1964
+ ],
1965
+ result: { id: ITEM_FIRE_CHARGE, count: 3 },
1966
+ type: 'crafting_table',
1967
+ },
1968
+ {
1969
+ id: 'blaze_powder',
1970
+ name: 'Blaze Powder',
1971
+ pattern: [
1972
+ [ITEM_BLAZE_ROD, null, null],
1973
+ [null, null, null],
1974
+ [null, null, null],
1975
+ ],
1976
+ result: { id: ITEM_BLAZE_POWDER, count: 2 },
1977
+ type: 'crafting_table',
1978
+ },
1979
+ {
1980
+ id: 'eye_of_ender',
1981
+ name: 'Eye of Ender',
1982
+ pattern: [
1983
+ [ITEM_BLAZE_POWDER, null, null],
1984
+ [ITEM_ENDER_PEARL, null, null],
1985
+ [null, null, null],
1986
+ ],
1987
+ result: { id: ITEM_EYE_OF_ENDER, count: 1 },
1988
+ type: 'crafting_table',
1989
+ },
1990
+ {
1991
+ id: 'nether_bricks',
1992
+ name: 'Nether Bricks',
1993
+ pattern: [
1994
+ [ITEM_NETHER_BRICK, ITEM_NETHER_BRICK, ITEM_NETHER_BRICK],
1995
+ [ITEM_NETHER_BRICK, ITEM_NETHER_BRICK, ITEM_NETHER_BRICK],
1996
+ [null, null, null],
1997
+ ],
1998
+ result: { id: BLOCK_NETHER_BRICKS, count: 1 },
1999
+ type: 'crafting_table',
2000
+ },
2001
+ {
2002
+ id: 'nether_brick_fence',
2003
+ name: 'Nether Brick Fence',
2004
+ pattern: [
2005
+ [ITEM_NETHER_BRICK, ITEM_NETHER_BRICK, ITEM_NETHER_BRICK],
2006
+ [ITEM_NETHER_BRICK, ITEM_NETHER_BRICK, ITEM_NETHER_BRICK],
2007
+ [null, null, null],
2008
+ ],
2009
+ result: { id: BLOCK_NETHER_BRICK_WALL, count: 6 },
2010
+ type: 'crafting_table',
2011
+ },
2012
+ {
2013
+ id: 'quartz_block',
2014
+ name: 'Quartz Block',
2015
+ pattern: [
2016
+ [ITEM_QUARTZ, ITEM_QUARTZ, null],
2017
+ [ITEM_QUARTZ, ITEM_QUARTZ, null],
2018
+ [null, null, null],
2019
+ ],
2020
+ result: { id: BLOCK_QUARTZ_BLOCK, count: 4 },
2021
+ type: 'crafting_table',
2022
+ },
2023
+ {
2024
+ id: 'magma_block',
2025
+ name: 'Magma Block',
2026
+ pattern: [
2027
+ [BLOCK_MAGMA, BLOCK_MAGMA, null],
2028
+ [BLOCK_MAGMA, BLOCK_MAGMA, null],
2029
+ [null, null, null],
2030
+ ],
2031
+ result: { id: BLOCK_MAGMA_BLOCK, count: 4 },
2032
+ type: 'crafting_table',
2033
+ },
2034
+ {
2035
+ id: 'end_stone_bricks',
2036
+ name: 'End Stone Bricks',
2037
+ pattern: [
2038
+ [BLOCK_END_STONE, BLOCK_END_STONE, null],
2039
+ [BLOCK_END_STONE, BLOCK_END_STONE, null],
2040
+ [null, null, null],
2041
+ ],
2042
+ result: { id: BLOCK_END_STONE_BRICKS, count: 4 },
2043
+ type: 'crafting_table',
2044
+ },
2045
+ {
2046
+ id: 'ender_chest',
2047
+ name: 'Ender Chest',
2048
+ pattern: [
2049
+ [null, ITEM_ENDER_PEARL, null],
2050
+ [null, BLOCK_CHEST, null],
2051
+ [null, BLOCK_OBSIDIAN, null],
2052
+ ],
2053
+ result: { id: BLOCK_ENDER_CHEST, count: 1 },
2054
+ type: 'crafting_table',
2055
+ },
2056
+
2057
+ // =============================================================
2058
+ // DYE-RELATED - STAINED GLASS (142-157)
2059
+ // =============================================================
2060
+ {
2061
+ id: 'white_stained_glass',
2062
+ name: 'White Stained Glass',
2063
+ pattern: [
2064
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2065
+ [BLOCK_GLASS, ITEM_BONE_MEAL_DYE, BLOCK_GLASS],
2066
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2067
+ ],
2068
+ result: { id: BLOCK_WHITE_STAINED_GLASS, count: 8 },
2069
+ type: 'crafting_table',
2070
+ },
2071
+ {
2072
+ id: 'orange_stained_glass',
2073
+ name: 'Orange Stained Glass',
2074
+ pattern: [
2075
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2076
+ [BLOCK_GLASS, ITEM_COCOA_DYE, BLOCK_GLASS],
2077
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2078
+ ],
2079
+ result: { id: BLOCK_ORANGE_STAINED_GLASS, count: 8 },
2080
+ type: 'crafting_table',
2081
+ },
2082
+ {
2083
+ id: 'magenta_stained_glass',
2084
+ name: 'Magenta Stained Glass',
2085
+ pattern: [
2086
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2087
+ [BLOCK_GLASS, ITEM_BONE_MEAL_DYE, BLOCK_GLASS],
2088
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2089
+ ],
2090
+ result: { id: BLOCK_MAGENTA_STAINED_GLASS, count: 8 },
2091
+ type: 'crafting_table',
2092
+ },
2093
+ {
2094
+ id: 'yellow_stained_glass',
2095
+ name: 'Yellow Stained Glass',
2096
+ pattern: [
2097
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2098
+ [BLOCK_GLASS, ITEM_DANDELION_YELLOW, BLOCK_GLASS],
2099
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2100
+ ],
2101
+ result: { id: BLOCK_YELLOW_STAINED_GLASS, count: 8 },
2102
+ type: 'crafting_table',
2103
+ },
2104
+ {
2105
+ id: 'lime_stained_glass',
2106
+ name: 'Lime Stained Glass',
2107
+ pattern: [
2108
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2109
+ [BLOCK_GLASS, ITEM_CACTUS_GREEN, BLOCK_GLASS],
2110
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2111
+ ],
2112
+ result: { id: BLOCK_LIME_STAINED_GLASS, count: 8 },
2113
+ type: 'crafting_table',
2114
+ },
2115
+ {
2116
+ id: 'pink_stained_glass',
2117
+ name: 'Pink Stained Glass',
2118
+ pattern: [
2119
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2120
+ [BLOCK_GLASS, ITEM_BONE_MEAL_DYE, BLOCK_GLASS],
2121
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2122
+ ],
2123
+ result: { id: BLOCK_PINK_STAINED_GLASS, count: 8 },
2124
+ type: 'crafting_table',
2125
+ },
2126
+ {
2127
+ id: 'gray_stained_glass',
2128
+ name: 'Gray Stained Glass',
2129
+ pattern: [
2130
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2131
+ [BLOCK_GLASS, ITEM_INK_SAC, BLOCK_GLASS],
2132
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2133
+ ],
2134
+ result: { id: BLOCK_GRAY_STAINED_GLASS, count: 8 },
2135
+ type: 'crafting_table',
2136
+ },
2137
+ {
2138
+ id: 'cyan_stained_glass',
2139
+ name: 'Cyan Stained Glass',
2140
+ pattern: [
2141
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2142
+ [BLOCK_GLASS, ITEM_CACTUS_GREEN, BLOCK_GLASS],
2143
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2144
+ ],
2145
+ result: { id: BLOCK_CYAN_STAINED_GLASS, count: 8 },
2146
+ type: 'crafting_table',
2147
+ },
2148
+ {
2149
+ id: 'purple_stained_glass',
2150
+ name: 'Purple Stained Glass',
2151
+ pattern: [
2152
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2153
+ [BLOCK_GLASS, ITEM_INK_SAC, BLOCK_GLASS],
2154
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2155
+ ],
2156
+ result: { id: BLOCK_PURPLE_STAINED_GLASS, count: 8 },
2157
+ type: 'crafting_table',
2158
+ },
2159
+ {
2160
+ id: 'blue_stained_glass',
2161
+ name: 'Blue Stained Glass',
2162
+ pattern: [
2163
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2164
+ [BLOCK_GLASS, ITEM_LAPIS_DYE, BLOCK_GLASS],
2165
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2166
+ ],
2167
+ result: { id: BLOCK_BLUE_STAINED_GLASS, count: 8 },
2168
+ type: 'crafting_table',
2169
+ },
2170
+ {
2171
+ id: 'brown_stained_glass',
2172
+ name: 'Brown Stained Glass',
2173
+ pattern: [
2174
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2175
+ [BLOCK_GLASS, ITEM_COCOA_BEANS, BLOCK_GLASS],
2176
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2177
+ ],
2178
+ result: { id: BLOCK_BROWN_STAINED_GLASS, count: 8 },
2179
+ type: 'crafting_table',
2180
+ },
2181
+ {
2182
+ id: 'green_stained_glass',
2183
+ name: 'Green Stained Glass',
2184
+ pattern: [
2185
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2186
+ [BLOCK_GLASS, ITEM_CACTUS_GREEN, BLOCK_GLASS],
2187
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2188
+ ],
2189
+ result: { id: BLOCK_GREEN_STAINED_GLASS, count: 8 },
2190
+ type: 'crafting_table',
2191
+ },
2192
+ {
2193
+ id: 'red_stained_glass',
2194
+ name: 'Red Stained Glass',
2195
+ pattern: [
2196
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2197
+ [BLOCK_GLASS, ITEM_ROSE_RED, BLOCK_GLASS],
2198
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2199
+ ],
2200
+ result: { id: BLOCK_RED_STAINED_GLASS, count: 8 },
2201
+ type: 'crafting_table',
2202
+ },
2203
+ {
2204
+ id: 'black_stained_glass',
2205
+ name: 'Black Stained Glass',
2206
+ pattern: [
2207
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2208
+ [BLOCK_GLASS, ITEM_INK_SAC, BLOCK_GLASS],
2209
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2210
+ ],
2211
+ result: { id: BLOCK_BLACK_STAINED_GLASS, count: 8 },
2212
+ type: 'crafting_table',
2213
+ },
2214
+
2215
+ // =============================================================
2216
+ // DYE-RELATED - COLORED WOOL (158-163)
2217
+ // =============================================================
2218
+ {
2219
+ id: 'orange_wool',
2220
+ name: 'Orange Wool',
2221
+ pattern: [
2222
+ [null, null, null],
2223
+ [null, WO, null],
2224
+ [null, ITEM_COCOA_DYE, null],
2225
+ ],
2226
+ result: { id: BLOCK_ORANGE_WOOL, count: 1 },
2227
+ type: 'crafting_table',
2228
+ },
2229
+ {
2230
+ id: 'red_wool',
2231
+ name: 'Red Wool',
2232
+ pattern: [
2233
+ [null, null, null],
2234
+ [null, WO, null],
2235
+ [null, ITEM_ROSE_RED, null],
2236
+ ],
2237
+ result: { id: BLOCK_RED_WOOL, count: 1 },
2238
+ type: 'crafting_table',
2239
+ },
2240
+ {
2241
+ id: 'yellow_wool',
2242
+ name: 'Yellow Wool',
2243
+ pattern: [
2244
+ [null, null, null],
2245
+ [null, WO, null],
2246
+ [null, ITEM_DANDELION_YELLOW, null],
2247
+ ],
2248
+ result: { id: BLOCK_YELLOW_WOOL, count: 1 },
2249
+ type: 'crafting_table',
2250
+ },
2251
+ {
2252
+ id: 'green_wool',
2253
+ name: 'Green Wool',
2254
+ pattern: [
2255
+ [null, null, null],
2256
+ [null, WO, null],
2257
+ [null, ITEM_CACTUS_GREEN, null],
2258
+ ],
2259
+ result: { id: BLOCK_GREEN_WOOL, count: 1 },
2260
+ type: 'crafting_table',
2261
+ },
2262
+ {
2263
+ id: 'black_wool',
2264
+ name: 'Black Wool',
2265
+ pattern: [
2266
+ [null, null, null],
2267
+ [null, WO, null],
2268
+ [null, ITEM_INK_SAC, null],
2269
+ ],
2270
+ result: { id: BLOCK_BLACK_WOOL, count: 1 },
2271
+ type: 'crafting_table',
2272
+ },
2273
+ {
2274
+ id: 'blue_wool',
2275
+ name: 'Blue Wool',
2276
+ pattern: [
2277
+ [null, null, null],
2278
+ [null, WO, null],
2279
+ [null, ITEM_LAPIS_DYE, null],
2280
+ ],
2281
+ result: { id: BLOCK_BLUE_WOOL, count: 1 },
2282
+ type: 'crafting_table',
2283
+ },
2284
+
2285
+ // =============================================================
2286
+ // DYE-RELATED - CONCRETE POWDER (164-171)
2287
+ // =============================================================
2288
+ {
2289
+ id: 'white_concrete_powder',
2290
+ name: 'White Concrete Powder',
2291
+ pattern: [
2292
+ [BLOCK_SAND, BLOCK_SAND, BLOCK_SAND],
2293
+ [BLOCK_SAND, ITEM_BONE_MEAL_DYE, BLOCK_SAND],
2294
+ [BLOCK_GRAVEL, BLOCK_GRAVEL, BLOCK_GRAVEL],
2295
+ ],
2296
+ result: { id: BLOCK_WHITE_CONCRETE_POWDER, count: 8 },
2297
+ type: 'crafting_table',
2298
+ },
2299
+ {
2300
+ id: 'orange_concrete_powder',
2301
+ name: 'Orange Concrete Powder',
2302
+ pattern: [
2303
+ [BLOCK_SAND, BLOCK_SAND, BLOCK_SAND],
2304
+ [BLOCK_SAND, ITEM_COCOA_DYE, BLOCK_SAND],
2305
+ [BLOCK_GRAVEL, BLOCK_GRAVEL, BLOCK_GRAVEL],
2306
+ ],
2307
+ result: { id: BLOCK_ORANGE_CONCRETE_POWDER, count: 8 },
2308
+ type: 'crafting_table',
2309
+ },
2310
+ {
2311
+ id: 'red_concrete_powder',
2312
+ name: 'Red Concrete Powder',
2313
+ pattern: [
2314
+ [BLOCK_SAND, BLOCK_SAND, BLOCK_SAND],
2315
+ [BLOCK_SAND, ITEM_ROSE_RED, BLOCK_SAND],
2316
+ [BLOCK_GRAVEL, BLOCK_GRAVEL, BLOCK_GRAVEL],
2317
+ ],
2318
+ result: { id: BLOCK_RED_CONCRETE_POWDER, count: 8 },
2319
+ type: 'crafting_table',
2320
+ },
2321
+ {
2322
+ id: 'yellow_concrete_powder',
2323
+ name: 'Yellow Concrete Powder',
2324
+ pattern: [
2325
+ [BLOCK_SAND, BLOCK_SAND, BLOCK_SAND],
2326
+ [BLOCK_SAND, ITEM_DANDELION_YELLOW, BLOCK_SAND],
2327
+ [BLOCK_GRAVEL, BLOCK_GRAVEL, BLOCK_GRAVEL],
2328
+ ],
2329
+ result: { id: BLOCK_YELLOW_CONCRETE_POWDER, count: 8 },
2330
+ type: 'crafting_table',
2331
+ },
2332
+ {
2333
+ id: 'green_concrete_powder',
2334
+ name: 'Green Concrete Powder',
2335
+ pattern: [
2336
+ [BLOCK_SAND, BLOCK_SAND, BLOCK_SAND],
2337
+ [BLOCK_SAND, ITEM_CACTUS_GREEN, BLOCK_SAND],
2338
+ [BLOCK_GRAVEL, BLOCK_GRAVEL, BLOCK_GRAVEL],
2339
+ ],
2340
+ result: { id: BLOCK_GREEN_CONCRETE_POWDER, count: 8 },
2341
+ type: 'crafting_table',
2342
+ },
2343
+ {
2344
+ id: 'black_concrete_powder',
2345
+ name: 'Black Concrete Powder',
2346
+ pattern: [
2347
+ [BLOCK_SAND, BLOCK_SAND, BLOCK_SAND],
2348
+ [BLOCK_SAND, ITEM_INK_SAC, BLOCK_SAND],
2349
+ [BLOCK_GRAVEL, BLOCK_GRAVEL, BLOCK_GRAVEL],
2350
+ ],
2351
+ result: { id: BLOCK_BLACK_CONCRETE_POWDER, count: 8 },
2352
+ type: 'crafting_table',
2353
+ },
2354
+ {
2355
+ id: 'blue_concrete_powder',
2356
+ name: 'Blue Concrete Powder',
2357
+ pattern: [
2358
+ [BLOCK_SAND, BLOCK_SAND, BLOCK_SAND],
2359
+ [BLOCK_SAND, ITEM_LAPIS_DYE, BLOCK_SAND],
2360
+ [BLOCK_GRAVEL, BLOCK_GRAVEL, BLOCK_GRAVEL],
2361
+ ],
2362
+ result: { id: BLOCK_BLUE_CONCRETE_POWDER, count: 8 },
2363
+ type: 'crafting_table',
2364
+ },
2365
+ {
2366
+ id: 'brown_concrete_powder',
2367
+ name: 'Brown Concrete Powder',
2368
+ pattern: [
2369
+ [BLOCK_SAND, BLOCK_SAND, BLOCK_SAND],
2370
+ [BLOCK_SAND, ITEM_COCOA_BEANS, BLOCK_SAND],
2371
+ [BLOCK_GRAVEL, BLOCK_GRAVEL, BLOCK_GRAVEL],
2372
+ ],
2373
+ result: { id: BLOCK_BROWN_CONCRETE_POWDER, count: 8 },
2374
+ type: 'crafting_table',
2375
+ },
2376
+
2377
+ // =============================================================
2378
+ // DYE-RELATED - TERRACOTTA (172-179)
2379
+ // =============================================================
2380
+ {
2381
+ id: 'white_terracotta',
2382
+ name: 'White Terracotta',
2383
+ pattern: [
2384
+ [null, null, null],
2385
+ [null, BLOCK_TERRACOTTA, null],
2386
+ [null, ITEM_BONE_MEAL_DYE, null],
2387
+ ],
2388
+ result: { id: BLOCK_WHITE_TERRACOTTA, count: 8 },
2389
+ type: 'crafting_table',
2390
+ },
2391
+ {
2392
+ id: 'orange_terracotta',
2393
+ name: 'Orange Terracotta',
2394
+ pattern: [
2395
+ [null, null, null],
2396
+ [null, BLOCK_TERRACOTTA, null],
2397
+ [null, ITEM_COCOA_DYE, null],
2398
+ ],
2399
+ result: { id: BLOCK_ORANGE_TERRACOTTA, count: 8 },
2400
+ type: 'crafting_table',
2401
+ },
2402
+ {
2403
+ id: 'red_terracotta',
2404
+ name: 'Red Terracotta',
2405
+ pattern: [
2406
+ [null, null, null],
2407
+ [null, BLOCK_TERRACOTTA, null],
2408
+ [null, ITEM_ROSE_RED, null],
2409
+ ],
2410
+ result: { id: BLOCK_RED_TERRACOTTA, count: 8 },
2411
+ type: 'crafting_table',
2412
+ },
2413
+ {
2414
+ id: 'yellow_terracotta',
2415
+ name: 'Yellow Terracotta',
2416
+ pattern: [
2417
+ [null, null, null],
2418
+ [null, BLOCK_TERRACOTTA, null],
2419
+ [null, ITEM_DANDELION_YELLOW, null],
2420
+ ],
2421
+ result: { id: BLOCK_YELLOW_TERRACOTTA, count: 8 },
2422
+ type: 'crafting_table',
2423
+ },
2424
+ {
2425
+ id: 'green_terracotta',
2426
+ name: 'Green Terracotta',
2427
+ pattern: [
2428
+ [null, null, null],
2429
+ [null, BLOCK_TERRACOTTA, null],
2430
+ [null, ITEM_CACTUS_GREEN, null],
2431
+ ],
2432
+ result: { id: BLOCK_GREEN_TERRACOTTA, count: 8 },
2433
+ type: 'crafting_table',
2434
+ },
2435
+ {
2436
+ id: 'black_terracotta',
2437
+ name: 'Black Terracotta',
2438
+ pattern: [
2439
+ [null, null, null],
2440
+ [null, BLOCK_TERRACOTTA, null],
2441
+ [null, ITEM_INK_SAC, null],
2442
+ ],
2443
+ result: { id: BLOCK_BLACK_TERRACOTTA, count: 8 },
2444
+ type: 'crafting_table',
2445
+ },
2446
+ {
2447
+ id: 'blue_terracotta',
2448
+ name: 'Blue Terracotta',
2449
+ pattern: [
2450
+ [null, null, null],
2451
+ [null, BLOCK_TERRACOTTA, null],
2452
+ [null, ITEM_LAPIS_DYE, null],
2453
+ ],
2454
+ result: { id: BLOCK_BLUE_TERRACOTTA, count: 8 },
2455
+ type: 'crafting_table',
2456
+ },
2457
+ {
2458
+ id: 'brown_terracotta',
2459
+ name: 'Brown Terracotta',
2460
+ pattern: [
2461
+ [null, null, null],
2462
+ [null, BLOCK_TERRACOTTA, null],
2463
+ [null, ITEM_COCOA_BEANS, null],
2464
+ ],
2465
+ result: { id: BLOCK_BROWN_TERRACOTTA, count: 8 },
2466
+ type: 'crafting_table',
2467
+ },
2468
+
2469
+ // =============================================================
2470
+ // STORAGE & UTILITY BLOCKS (180-192)
2471
+ // =============================================================
2472
+ {
2473
+ id: 'coal_block',
2474
+ name: 'Coal Block',
2475
+ pattern: [
2476
+ [CL, CL, CL],
2477
+ [CL, CL, CL],
2478
+ [CL, CL, CL],
2479
+ ],
2480
+ result: { id: BLOCK_COAL_BLOCK, count: 1 },
2481
+ type: 'crafting_table',
2482
+ },
2483
+ {
2484
+ id: 'iron_block',
2485
+ name: 'Iron Block',
2486
+ pattern: [
2487
+ [IR, IR, IR],
2488
+ [IR, IR, IR],
2489
+ [IR, IR, IR],
2490
+ ],
2491
+ result: { id: BLOCK_IRON_BLOCK, count: 1 },
2492
+ type: 'crafting_table',
2493
+ },
2494
+ {
2495
+ id: 'gold_block',
2496
+ name: 'Gold Block',
2497
+ pattern: [
2498
+ [GO, GO, GO],
2499
+ [GO, GO, GO],
2500
+ [GO, GO, GO],
2501
+ ],
2502
+ result: { id: BLOCK_GOLD_BLOCK, count: 1 },
2503
+ type: 'crafting_table',
2504
+ },
2505
+ {
2506
+ id: 'diamond_block',
2507
+ name: 'Diamond Block',
2508
+ pattern: [
2509
+ [DI, DI, DI],
2510
+ [DI, DI, DI],
2511
+ [DI, DI, DI],
2512
+ ],
2513
+ result: { id: BLOCK_DIAMOND_BLOCK, count: 1 },
2514
+ type: 'crafting_table',
2515
+ },
2516
+ {
2517
+ id: 'lapis_block',
2518
+ name: 'Lapis Block',
2519
+ pattern: [
2520
+ [ITEM_LAPIS_LAZULI, ITEM_LAPIS_LAZULI, ITEM_LAPIS_LAZULI],
2521
+ [ITEM_LAPIS_LAZULI, ITEM_LAPIS_LAZULI, ITEM_LAPIS_LAZULI],
2522
+ [ITEM_LAPIS_LAZULI, ITEM_LAPIS_LAZULI, ITEM_LAPIS_LAZULI],
2523
+ ],
2524
+ result: { id: BLOCK_LAPIS_BLOCK, count: 1 },
2525
+ type: 'crafting_table',
2526
+ },
2527
+ {
2528
+ id: 'redstone_block',
2529
+ name: 'Redstone Block',
2530
+ pattern: [
2531
+ [ITEM_REDSTONE_DUST, ITEM_REDSTONE_DUST, ITEM_REDSTONE_DUST],
2532
+ [ITEM_REDSTONE_DUST, ITEM_REDSTONE_DUST, ITEM_REDSTONE_DUST],
2533
+ [ITEM_REDSTONE_DUST, ITEM_REDSTONE_DUST, ITEM_REDSTONE_DUST],
2534
+ ],
2535
+ result: { id: BLOCK_REDSTONE_BLOCK, count: 1 },
2536
+ type: 'crafting_table',
2537
+ },
2538
+ {
2539
+ id: 'hay_bale',
2540
+ name: 'Hay Bale',
2541
+ pattern: [
2542
+ [BLOCK_WHEAT, BLOCK_WHEAT, BLOCK_WHEAT],
2543
+ [BLOCK_WHEAT, BLOCK_WHEAT, BLOCK_WHEAT],
2544
+ [null, null, null],
2545
+ ],
2546
+ result: { id: BLOCK_HAY_BLOCK, count: 1 },
2547
+ type: 'crafting_table',
2548
+ },
2549
+ {
2550
+ id: 'melon_block',
2551
+ name: 'Melon Block',
2552
+ pattern: [
2553
+ [ITEM_MELON_SLICE, ITEM_MELON_SLICE, ITEM_MELON_SLICE],
2554
+ [ITEM_MELON_SLICE, ITEM_MELON_SLICE, ITEM_MELON_SLICE],
2555
+ [ITEM_MELON_SLICE, ITEM_MELON_SLICE, ITEM_MELON_SLICE],
2556
+ ],
2557
+ result: { id: BLOCK_MELON, count: 1 },
2558
+ type: 'crafting_table',
2559
+ },
2560
+
2561
+ // =============================================================
2562
+ // UTILITY CRAFTING - DECOMPOSITION & MISC (193-206)
2563
+ // =============================================================
2564
+ {
2565
+ id: 'coal_from_block',
2566
+ name: 'Coal (from Block)',
2567
+ pattern: [
2568
+ [BLOCK_COAL_BLOCK, null, null],
2569
+ [null, null, null],
2570
+ [null, null, null],
2571
+ ],
2572
+ result: { id: ITEM_COAL, count: 9 },
2573
+ type: 'crafting_table',
2574
+ },
2575
+ {
2576
+ id: 'iron_ingot_from_block',
2577
+ name: 'Iron Ingot (from Block)',
2578
+ pattern: [
2579
+ [BLOCK_IRON_BLOCK, null, null],
2580
+ [null, null, null],
2581
+ [null, null, null],
2582
+ ],
2583
+ result: { id: ITEM_IRON_INGOT, count: 9 },
2584
+ type: 'crafting_table',
2585
+ },
2586
+ {
2587
+ id: 'gold_ingot_from_block',
2588
+ name: 'Gold Ingot (from Block)',
2589
+ pattern: [
2590
+ [BLOCK_GOLD_BLOCK, null, null],
2591
+ [null, null, null],
2592
+ [null, null, null],
2593
+ ],
2594
+ result: { id: ITEM_GOLD_INGOT, count: 9 },
2595
+ type: 'crafting_table',
2596
+ },
2597
+ {
2598
+ id: 'diamond_from_block',
2599
+ name: 'Diamond (from Block)',
2600
+ pattern: [
2601
+ [BLOCK_DIAMOND_BLOCK, null, null],
2602
+ [null, null, null],
2603
+ [null, null, null],
2604
+ ],
2605
+ result: { id: ITEM_DIAMOND_GEM, count: 9 },
2606
+ type: 'crafting_table',
2607
+ },
2608
+ {
2609
+ id: 'redstone_from_block',
2610
+ name: 'Redstone (from Block)',
2611
+ pattern: [
2612
+ [BLOCK_REDSTONE_BLOCK, null, null],
2613
+ [null, null, null],
2614
+ [null, null, null],
2615
+ ],
2616
+ result: { id: ITEM_REDSTONE_DUST, count: 9 },
2617
+ type: 'crafting_table',
2618
+ },
2619
+ {
2620
+ id: 'iron_nugget',
2621
+ name: 'Iron Nugget',
2622
+ pattern: [
2623
+ [IR, null, null],
2624
+ [null, null, null],
2625
+ [null, null, null],
2626
+ ],
2627
+ result: { id: ITEM_IRON_NUGGET, count: 9 },
2628
+ type: 'crafting_table',
2629
+ },
2630
+ {
2631
+ id: 'iron_ingot_from_nuggets',
2632
+ name: 'Iron Ingot (from Nuggets)',
2633
+ pattern: [
2634
+ [ITEM_IRON_NUGGET, ITEM_IRON_NUGGET, ITEM_IRON_NUGGET],
2635
+ [ITEM_IRON_NUGGET, ITEM_IRON_NUGGET, ITEM_IRON_NUGGET],
2636
+ [ITEM_IRON_NUGGET, ITEM_IRON_NUGGET, ITEM_IRON_NUGGET],
2637
+ ],
2638
+ result: { id: ITEM_IRON_INGOT, count: 1 },
2639
+ type: 'crafting_table',
2640
+ },
2641
+ {
2642
+ id: 'gold_nugget',
2643
+ name: 'Gold Nugget',
2644
+ pattern: [
2645
+ [GO, null, null],
2646
+ [null, null, null],
2647
+ [null, null, null],
2648
+ ],
2649
+ result: { id: ITEM_GOLD_NUGGET, count: 9 },
2650
+ type: 'crafting_table',
2651
+ },
2652
+ {
2653
+ id: 'gold_ingot_from_nuggets',
2654
+ name: 'Gold Ingot (from Nuggets)',
2655
+ pattern: [
2656
+ [ITEM_GOLD_NUGGET, ITEM_GOLD_NUGGET, ITEM_GOLD_NUGGET],
2657
+ [ITEM_GOLD_NUGGET, ITEM_GOLD_NUGGET, ITEM_GOLD_NUGGET],
2658
+ [ITEM_GOLD_NUGGET, ITEM_GOLD_NUGGET, ITEM_GOLD_NUGGET],
2659
+ ],
2660
+ result: { id: ITEM_GOLD_INGOT, count: 1 },
2661
+ type: 'crafting_table',
2662
+ },
2663
+ {
2664
+ id: 'bone_meal',
2665
+ name: 'Bone Meal',
2666
+ pattern: [
2667
+ [ITEM_BONE, null, null],
2668
+ [null, null, null],
2669
+ [null, null, null],
2670
+ ],
2671
+ result: { id: ITEM_BONE_MEAL, count: 3 },
2672
+ type: 'crafting_table',
2673
+ },
2674
+ {
2675
+ id: 'brick_item',
2676
+ name: 'Brick',
2677
+ pattern: [
2678
+ [ITEM_CLAY_BALL, null, null],
2679
+ [null, null, null],
2680
+ [null, null, null],
2681
+ ],
2682
+ result: { id: ITEM_BRICK_ITEM, count: 1 },
2683
+ type: 'furnace',
2684
+ },
2685
+ {
2686
+ id: 'bricks_block',
2687
+ name: 'Bricks',
2688
+ pattern: [
2689
+ [ITEM_BRICK_ITEM, ITEM_BRICK_ITEM, null],
2690
+ [ITEM_BRICK_ITEM, ITEM_BRICK_ITEM, null],
2691
+ [null, null, null],
2692
+ ],
2693
+ result: { id: BLOCK_BRICKS, count: 4 },
2694
+ type: 'crafting_table',
2695
+ },
2696
+ {
2697
+ id: 'nether_brick_item',
2698
+ name: 'Nether Brick',
2699
+ pattern: [
2700
+ [BLOCK_NETHERRACK, null, null],
2701
+ [null, null, null],
2702
+ [null, null, null],
2703
+ ],
2704
+ result: { id: ITEM_NETHER_BRICK, count: 1 },
2705
+ type: 'furnace',
2706
+ },
2707
+
2708
+ // =============================================================
2709
+ // TOOLS & EQUIPMENT (207-218)
2710
+ // =============================================================
2711
+ {
2712
+ id: 'bucket',
2713
+ name: 'Bucket',
2714
+ pattern: [
2715
+ [IR, null, IR],
2716
+ [null, IR, null],
2717
+ [null, null, null],
2718
+ ],
2719
+ result: { id: ITEM_BUCKET, count: 1 },
2720
+ type: 'crafting_table',
2721
+ },
2722
+ {
2723
+ id: 'flint_and_steel',
2724
+ name: 'Flint and Steel',
2725
+ pattern: [
2726
+ [IR, null, null],
2727
+ [null, ITEM_FLINT, null],
2728
+ [null, null, null],
2729
+ ],
2730
+ result: { id: ITEM_FLINT_AND_STEEL, count: 1 },
2731
+ type: 'crafting_table',
2732
+ },
2733
+ {
2734
+ id: 'compass',
2735
+ name: 'Compass',
2736
+ pattern: [
2737
+ [null, IR, null],
2738
+ [IR, ITEM_REDSTONE_DUST, IR],
2739
+ [null, IR, null],
2740
+ ],
2741
+ result: { id: ITEM_COMPASS, count: 1 },
2742
+ type: 'crafting_table',
2743
+ },
2744
+ {
2745
+ id: 'clock',
2746
+ name: 'Clock',
2747
+ pattern: [
2748
+ [null, GO, null],
2749
+ [GO, ITEM_REDSTONE_DUST, GO],
2750
+ [null, GO, null],
2751
+ ],
2752
+ result: { id: ITEM_CLOCK, count: 1 },
2753
+ type: 'crafting_table',
2754
+ },
2755
+ {
2756
+ id: 'shears',
2757
+ name: 'Shears',
2758
+ pattern: [
2759
+ [null, IR, null],
2760
+ [IR, null, null],
2761
+ [null, null, null],
2762
+ ],
2763
+ result: { id: ITEM_SHEARS, count: 1 },
2764
+ type: 'crafting_table',
2765
+ },
2766
+ {
2767
+ id: 'bow',
2768
+ name: 'Bow',
2769
+ pattern: [
2770
+ [null, SK, ITEM_STRING],
2771
+ [SK, null, ITEM_STRING],
2772
+ [null, SK, ITEM_STRING],
2773
+ ],
2774
+ result: { id: ITEM_BOW, count: 1 },
2775
+ type: 'crafting_table',
2776
+ },
2777
+ {
2778
+ id: 'arrows',
2779
+ name: 'Arrows',
2780
+ pattern: [
2781
+ [ITEM_FLINT, null, null],
2782
+ [SK, null, null],
2783
+ [ITEM_STRING, null, null],
2784
+ ],
2785
+ result: { id: ITEM_ARROW, count: 4 },
2786
+ type: 'crafting_table',
2787
+ },
2788
+ {
2789
+ id: 'shield',
2790
+ name: 'Shield',
2791
+ pattern: [
2792
+ [P, IR, P],
2793
+ [P, P, P],
2794
+ [null, P, null],
2795
+ ],
2796
+ result: { id: ITEM_SHIELD, count: 1 },
2797
+ type: 'crafting_table',
2798
+ },
2799
+ {
2800
+ id: 'lead',
2801
+ name: 'Lead',
2802
+ pattern: [
2803
+ [ITEM_STRING, ITEM_STRING, null],
2804
+ [ITEM_STRING, ITEM_LEATHER, null],
2805
+ [null, null, ITEM_STRING],
2806
+ ],
2807
+ result: { id: ITEM_LEAD, count: 2 },
2808
+ type: 'crafting_table',
2809
+ },
2810
+ {
2811
+ id: 'minecart',
2812
+ name: 'Minecart',
2813
+ pattern: [
2814
+ [IR, null, IR],
2815
+ [IR, IR, IR],
2816
+ [null, null, null],
2817
+ ],
2818
+ result: { id: ITEM_MINECART, count: 1 },
2819
+ type: 'crafting_table',
2820
+ },
2821
+ {
2822
+ id: 'boat',
2823
+ name: 'Boat',
2824
+ pattern: [
2825
+ [P, null, P],
2826
+ [P, P, P],
2827
+ [null, null, null],
2828
+ ],
2829
+ result: { id: ITEM_BOAT, count: 1 },
2830
+ type: 'crafting_table',
2831
+ },
2832
+ {
2833
+ id: 'chest_minecart',
2834
+ name: 'Chest Minecart',
2835
+ pattern: [
2836
+ [BLOCK_CHEST, null, null],
2837
+ [ITEM_MINECART, null, null],
2838
+ [null, null, null],
2839
+ ],
2840
+ result: { id: ITEM_CHEST_MINECART, count: 1 },
2841
+ type: 'crafting_table',
2842
+ },
2843
+ {
2844
+ id: 'tnt_minecart',
2845
+ name: 'TNT Minecart',
2846
+ pattern: [
2847
+ [BLOCK_TNT, null, null],
2848
+ [ITEM_MINECART, null, null],
2849
+ [null, null, null],
2850
+ ],
2851
+ result: { id: ITEM_TNT_MINECART, count: 1 },
2852
+ type: 'crafting_table',
2853
+ },
2854
+ {
2855
+ id: 'hopper_minecart',
2856
+ name: 'Hopper Minecart',
2857
+ pattern: [
2858
+ [BLOCK_HOPPER, null, null],
2859
+ [ITEM_MINECART, null, null],
2860
+ [null, null, null],
2861
+ ],
2862
+ result: { id: ITEM_HOPPER_MINECART, count: 1 },
2863
+ type: 'crafting_table',
2864
+ },
2865
+
2866
+ // =============================================================
2867
+ // WORKSTATION & UTILITY BLOCKS (221-232)
2868
+ // =============================================================
2869
+ {
2870
+ id: 'blast_furnace',
2871
+ name: 'Blast Furnace',
2872
+ pattern: [
2873
+ [IR, IR, IR],
2874
+ [IR, BLOCK_FURNACE, IR],
2875
+ [CO, CO, CO],
2876
+ ],
2877
+ result: { id: BLOCK_BLAST_FURNACE, count: 1 },
2878
+ type: 'crafting_table',
2879
+ },
2880
+ {
2881
+ id: 'smoker',
2882
+ name: 'Smoker',
2883
+ pattern: [
2884
+ [null, P, null],
2885
+ [P, BLOCK_FURNACE, P],
2886
+ [null, P, null],
2887
+ ],
2888
+ result: { id: BLOCK_SMOKER, count: 1 },
2889
+ type: 'crafting_table',
2890
+ },
2891
+ {
2892
+ id: 'stonecutter',
2893
+ name: 'Stonecutter',
2894
+ pattern: [
2895
+ [null, IR, null],
2896
+ [null, ST, null],
2897
+ [ST, ST, ST],
2898
+ ],
2899
+ result: { id: BLOCK_STONECUTTER, count: 1 },
2900
+ type: 'crafting_table',
2901
+ },
2902
+ {
2903
+ id: 'smithing_table',
2904
+ name: 'Smithing Table',
2905
+ pattern: [
2906
+ [IR, IR, null],
2907
+ [P, P, null],
2908
+ [P, P, null],
2909
+ ],
2910
+ result: { id: BLOCK_SMITHING_TABLE, count: 1 },
2911
+ type: 'crafting_table',
2912
+ },
2913
+ {
2914
+ id: 'enchanting_table',
2915
+ name: 'Enchanting Table',
2916
+ pattern: [
2917
+ [null, ITEM_BOOK, null],
2918
+ [DI, BLOCK_OBSIDIAN, DI],
2919
+ [BLOCK_OBSIDIAN, BLOCK_OBSIDIAN, BLOCK_OBSIDIAN],
2920
+ ],
2921
+ result: { id: BLOCK_ENCHANTING_TABLE, count: 1 },
2922
+ type: 'crafting_table',
2923
+ },
2924
+ {
2925
+ id: 'brewing_stand',
2926
+ name: 'Brewing Stand',
2927
+ pattern: [
2928
+ [ITEM_BLAZE_ROD, null, null],
2929
+ [CO, CO, CO],
2930
+ [null, null, null],
2931
+ ],
2932
+ result: { id: BLOCK_BREWING_STAND, count: 1 },
2933
+ type: 'crafting_table',
2934
+ },
2935
+ {
2936
+ id: 'cauldron',
2937
+ name: 'Cauldron',
2938
+ pattern: [
2939
+ [IR, null, IR],
2940
+ [IR, null, IR],
2941
+ [IR, IR, IR],
2942
+ ],
2943
+ result: { id: BLOCK_CAULDRON, count: 1 },
2944
+ type: 'crafting_table',
2945
+ },
2946
+ {
2947
+ id: 'anvil',
2948
+ name: 'Anvil',
2949
+ pattern: [
2950
+ [BLOCK_IRON_BLOCK, BLOCK_IRON_BLOCK, BLOCK_IRON_BLOCK],
2951
+ [null, IR, null],
2952
+ [IR, IR, IR],
2953
+ ],
2954
+ result: { id: BLOCK_ANVIL, count: 1 },
2955
+ type: 'crafting_table',
2956
+ },
2957
+ {
2958
+ id: 'beacon',
2959
+ name: 'Beacon',
2960
+ pattern: [
2961
+ [BLOCK_GLASS, BLOCK_GLASS, BLOCK_GLASS],
2962
+ [BLOCK_GLASS, ITEM_NETHER_STAR, BLOCK_GLASS],
2963
+ [BLOCK_OBSIDIAN, BLOCK_OBSIDIAN, BLOCK_OBSIDIAN],
2964
+ ],
2965
+ result: { id: BLOCK_BEACON, count: 1 },
2966
+ type: 'crafting_table',
2967
+ },
2968
+ {
2969
+ id: 'trapped_chest',
2970
+ name: 'Trapped Chest',
2971
+ pattern: [
2972
+ [null, BLOCK_REDSTONE_TORCH, null],
2973
+ [null, BLOCK_CHEST, null],
2974
+ [null, null, null],
2975
+ ],
2976
+ result: { id: BLOCK_TRAPPED_CHEST, count: 1 },
2977
+ type: 'crafting_table',
2978
+ },
2979
+ {
2980
+ id: 'loom',
2981
+ name: 'Loom',
2982
+ pattern: [
2983
+ [ITEM_STRING, ITEM_STRING, null],
2984
+ [P, P, null],
2985
+ [P, P, null],
2986
+ ],
2987
+ result: { id: BLOCK_LOOM_BLOCK, count: 1 },
2988
+ type: 'crafting_table',
2989
+ },
2990
+ {
2991
+ id: 'smooth_sandstone',
2992
+ name: 'Smooth Sandstone',
2993
+ pattern: [
2994
+ [BLOCK_SANDSTONE, BLOCK_SANDSTONE, null],
2995
+ [BLOCK_SANDSTONE, BLOCK_SANDSTONE, null],
2996
+ [null, null, null],
2997
+ ],
2998
+ result: { id: BLOCK_SMOOTH_SANDSTONE, count: 4 },
2999
+ type: 'crafting_table',
3000
+ },
3001
+ ];
3002
+
3003
+ // =============================================================
3004
+ // SMELTING RECIPES
3005
+ // =============================================================
3006
+
3007
+ export const smeltingRecipes: SmeltingRecipe[] = [
3008
+ // Ores to ingots/items
3009
+ { input: BLOCK_IRON_ORE, output: ITEM_IRON_INGOT, cookTime: 200, xp: 0.7 },
3010
+ { input: BLOCK_GOLD_ORE, output: ITEM_GOLD_INGOT, cookTime: 200, xp: 1.0 },
3011
+ { input: BLOCK_COAL_ORE, output: ITEM_COAL, cookTime: 200, xp: 0.1 },
3012
+ { input: BLOCK_DIAMOND_ORE, output: ITEM_DIAMOND_GEM, cookTime: 200, xp: 1.0 },
3013
+ { input: BLOCK_REDSTONE_ORE, output: ITEM_REDSTONE_DUST, cookTime: 200, xp: 0.7 },
3014
+ { input: BLOCK_LAPIS_ORE, output: ITEM_LAPIS_LAZULI, cookTime: 200, xp: 0.2 },
3015
+
3016
+ // Deepslate ores
3017
+ { input: BLOCK_DEEPSLATE_IRON_ORE, output: ITEM_IRON_INGOT, cookTime: 200, xp: 0.7 },
3018
+ { input: BLOCK_DEEPSLATE_GOLD_ORE, output: ITEM_GOLD_INGOT, cookTime: 200, xp: 1.0 },
3019
+ { input: BLOCK_DEEPSLATE_COAL_ORE, output: ITEM_COAL, cookTime: 200, xp: 0.1 },
3020
+ { input: BLOCK_DEEPSLATE_DIAMOND_ORE, output: ITEM_DIAMOND_GEM, cookTime: 200, xp: 1.0 },
3021
+ { input: BLOCK_DEEPSLATE_REDSTONE_ORE, output: ITEM_REDSTONE_DUST, cookTime: 200, xp: 0.7 },
3022
+ { input: BLOCK_DEEPSLATE_LAPIS_ORE, output: ITEM_LAPIS_LAZULI, cookTime: 200, xp: 0.2 },
3023
+ { input: BLOCK_DEEPSLATE_COPPER_ORE, output: ITEM_COPPER_INGOT, cookTime: 200, xp: 0.7 },
3024
+ { input: BLOCK_DEEPSLATE_EMERALD_ORE, output: ITEM_EMERALD, cookTime: 200, xp: 1.0 },
3025
+
3026
+ // Other ores
3027
+ { input: BLOCK_COPPER_ORE, output: ITEM_COPPER_INGOT, cookTime: 200, xp: 0.7 },
3028
+ { input: BLOCK_EMERALD_ORE, output: ITEM_EMERALD, cookTime: 200, xp: 1.0 },
3029
+ { input: BLOCK_NETHER_GOLD_ORE, output: ITEM_GOLD_INGOT, cookTime: 200, xp: 1.0 },
3030
+ { input: BLOCK_NETHER_QUARTZ_ORE, output: ITEM_QUARTZ, cookTime: 200, xp: 0.2 },
3031
+
3032
+ // Blocks from smelting
3033
+ { input: BLOCK_COBBLESTONE, output: BLOCK_STONE, cookTime: 200, xp: 0.1 },
3034
+ { input: BLOCK_STONE, output: BLOCK_SMOOTH_SANDSTONE, cookTime: 200, xp: 0.1 },
3035
+ { input: BLOCK_SAND, output: BLOCK_GLASS, cookTime: 200, xp: 0.1 },
3036
+ { input: BLOCK_CLAY, output: BLOCK_TERRACOTTA, cookTime: 200, xp: 0.35 },
3037
+ { input: ITEM_CLAY_BALL, output: ITEM_BRICK_ITEM, cookTime: 200, xp: 0.3 },
3038
+ { input: BLOCK_NETHERRACK, output: ITEM_NETHER_BRICK, cookTime: 200, xp: 0.1 },
3039
+ { input: BLOCK_CACTUS, output: ITEM_CACTUS_GREEN, cookTime: 200, xp: 0.2 },
3040
+ { input: BLOCK_OAK_LOG, output: ITEM_CHARCOAL, cookTime: 200, xp: 0.15 },
3041
+ { input: BLOCK_SPRUCE_LOG, output: ITEM_CHARCOAL, cookTime: 200, xp: 0.15 },
3042
+ { input: BLOCK_BIRCH_LOG, output: ITEM_CHARCOAL, cookTime: 200, xp: 0.15 },
3043
+ { input: BLOCK_JUNGLE_LOG, output: ITEM_CHARCOAL, cookTime: 200, xp: 0.15 },
3044
+ { input: BLOCK_DARK_OAK_LOG, output: ITEM_CHARCOAL, cookTime: 200, xp: 0.15 },
3045
+ { input: BLOCK_ACACIA_LOG, output: ITEM_CHARCOAL, cookTime: 200, xp: 0.15 },
3046
+ { input: BLOCK_MANGROVE_LOG, output: ITEM_CHARCOAL, cookTime: 200, xp: 0.15 },
3047
+ { input: BLOCK_CHERRY_LOG, output: ITEM_CHARCOAL, cookTime: 200, xp: 0.15 },
3048
+ { input: BLOCK_PALE_OAK_LOG, output: ITEM_CHARCOAL, cookTime: 200, xp: 0.15 },
3049
+ { input: BLOCK_OAK_PLANKS, output: ITEM_CHARCOAL, cookTime: 200, xp: 0.15 },
3050
+ { input: BLOCK_PUMPKIN, output: BLOCK_CARVED_PUMPKIN, cookTime: 200, xp: 0.1 },
3051
+
3052
+ // Food smelting
3053
+ { input: ITEM_RAW_PORKCHOP, output: ITEM_COOKED_PORKCHOP, cookTime: 200, xp: 0.35 },
3054
+ { input: ITEM_RAW_BEEF, output: ITEM_COOKED_BEEF, cookTime: 200, xp: 0.35 },
3055
+ { input: ITEM_RAW_CHICKEN, output: ITEM_COOKED_CHICKEN, cookTime: 200, xp: 0.35 },
3056
+ { input: ITEM_RAW_MUTTON, output: ITEM_COOKED_MUTTON, cookTime: 200, xp: 0.35 },
3057
+ { input: ITEM_RAW_COD, output: ITEM_COOKED_COD, cookTime: 200, xp: 0.35 },
3058
+ { input: ITEM_RAW_SALMON, output: ITEM_COOKED_SALMON, cookTime: 200, xp: 0.35 },
3059
+
3060
+ // Raw ore blocks to ingots
3061
+ { input: BLOCK_RAW_IRON_BLOCK, output: ITEM_IRON_INGOT, cookTime: 200, xp: 0.7 },
3062
+ { input: BLOCK_RAW_GOLD_BLOCK, output: ITEM_GOLD_INGOT, cookTime: 200, xp: 1.0 },
3063
+ { input: BLOCK_RAW_COPPER_BLOCK, output: ITEM_COPPER_INGOT, cookTime: 200, xp: 0.7 },
3064
+
3065
+ // Smooth blocks
3066
+ { input: BLOCK_SANDSTONE, output: BLOCK_SMOOTH_SANDSTONE, cookTime: 200, xp: 0.1 },
3067
+ { input: BLOCK_RED_SANDSTONE, output: BLOCK_SMOOTH_RED_SANDSTONE, cookTime: 200, xp: 0.1 },
3068
+ { input: BLOCK_STONE_BRICKS, output: BLOCK_CRACKED_STONE_BRICKS, cookTime: 200, xp: 0.1 },
3069
+ { input: BLOCK_NETHER_BRICKS, output: BLOCK_CRACKED_NETHER_BRICKS, cookTime: 200, xp: 0.1 },
3070
+ ];
3071
+
3072
+ // =============================================================
3073
+ // PATTERN MATCHING HELPERS
3074
+ // =============================================================
3075
+
3076
+ /**
3077
+ * Normalizes a pattern by trimming away empty rows and columns,
3078
+ * returning the minimal bounding box of non-null cells.
3079
+ */
3080
+ function normalizePattern(pattern: (number | null)[][]): (number | null)[][] {
3081
+ // Find bounds of non-null cells
3082
+ let minRow = pattern.length;
3083
+ let maxRow = -1;
3084
+ let minCol = 3;
3085
+ let maxCol = -1;
3086
+
3087
+ for (let r = 0; r < pattern.length; r++) {
3088
+ for (let c = 0; c < pattern[r].length; c++) {
3089
+ if (pattern[r][c] !== null) {
3090
+ minRow = Math.min(minRow, r);
3091
+ maxRow = Math.max(maxRow, r);
3092
+ minCol = Math.min(minCol, c);
3093
+ maxCol = Math.max(maxCol, c);
3094
+ }
3095
+ }
3096
+ }
3097
+
3098
+ if (maxRow === -1) return []; // Empty pattern
3099
+
3100
+ const result: (number | null)[][] = [];
3101
+ for (let r = minRow; r <= maxRow; r++) {
3102
+ const row: (number | null)[] = [];
3103
+ for (let c = minCol; c <= maxCol; c++) {
3104
+ row.push(pattern[r]?.[c] ?? null);
3105
+ }
3106
+ result.push(row);
3107
+ }
3108
+
3109
+ return result;
3110
+ }
3111
+
3112
+ /**
3113
+ * Checks if two patterns match by comparing their normalized forms.
3114
+ * This allows patterns to be placed anywhere in the 3x3 grid.
3115
+ */
3116
+ function patternsMatch(
3117
+ a: (number | null)[][],
3118
+ b: (number | null)[][]
3119
+ ): boolean {
3120
+ const normA = normalizePattern(a);
3121
+ const normB = normalizePattern(b);
3122
+
3123
+ if (normA.length !== normB.length) return false;
3124
+
3125
+ for (let r = 0; r < normA.length; r++) {
3126
+ if (normA[r].length !== normB[r].length) return false;
3127
+ for (let c = 0; c < normA[r].length; c++) {
3128
+ if (normA[r][c] !== normB[r][c]) return false;
3129
+ }
3130
+ }
3131
+
3132
+ return true;
3133
+ }
3134
+
3135
+ /**
3136
+ * Count the items in a pattern, grouping by ID.
3137
+ */
3138
+ function countPatternItems(pattern: (number | null)[][]): Map<number, number> {
3139
+ const counts = new Map<number, number>();
3140
+ for (const row of pattern) {
3141
+ for (const cell of row) {
3142
+ if (cell !== null) {
3143
+ counts.set(cell, (counts.get(cell) || 0) + 1);
3144
+ }
3145
+ }
3146
+ }
3147
+ return counts;
3148
+ }
3149
+
3150
+ /**
3151
+ * Checks if two patterns match shapelessly (same ingredients, any arrangement).
3152
+ */
3153
+ function shapelessMatch(
3154
+ a: (number | null)[][],
3155
+ b: (number | null)[][]
3156
+ ): boolean {
3157
+ const countsA = countPatternItems(a);
3158
+ const countsB = countPatternItems(b);
3159
+
3160
+ if (countsA.size !== countsB.size) return false;
3161
+
3162
+ let match = true;
3163
+ countsA.forEach((count, id) => {
3164
+ if (countsB.get(id) !== count) {
3165
+ match = false;
3166
+ }
3167
+ });
3168
+
3169
+ return match;
3170
+ }
3171
+
3172
+ // Shapeless recipes - these IDs use shapeless matching
3173
+ const SHAPELESS_RECIPE_IDS = new Set([
3174
+ 'fire_charge',
3175
+ 'eye_of_ender',
3176
+ 'blaze_powder',
3177
+ 'bone_meal',
3178
+ 'sugar',
3179
+ 'mushroom_stew',
3180
+ 'coarse_dirt', // hypothetical
3181
+ ]);
3182
+
3183
+ // =============================================================
3184
+ // EXPORTED FUNCTIONS
3185
+ // =============================================================
3186
+
3187
+ /**
3188
+ * Matches a 3x3 pattern against all recipes.
3189
+ * Returns the result if a match is found, or null.
3190
+ * Patterns are normalized so placement within the grid doesn't matter.
3191
+ * Some recipes use shapeless matching.
3192
+ */
3193
+ export function getCraftingResult(
3194
+ pattern: (number | null)[][]
3195
+ ): { id: number; count: number } | null {
3196
+ // Check against all crafting_table recipes
3197
+ for (const recipe of craftingRecipes) {
3198
+ if (recipe.type === 'furnace') continue; // furnace recipes handled separately
3199
+
3200
+ if (SHAPELESS_RECIPE_IDS.has(recipe.id)) {
3201
+ if (shapelessMatch(pattern, recipe.pattern)) {
3202
+ return { id: recipe.result.id, count: recipe.result.count };
3203
+ }
3204
+ } else {
3205
+ if (patternsMatch(pattern, recipe.pattern)) {
3206
+ return { id: recipe.result.id, count: recipe.result.count };
3207
+ }
3208
+ }
3209
+ }
3210
+
3211
+ return null;
3212
+ }
3213
+
3214
+ /**
3215
+ * Returns all crafting recipes.
3216
+ */
3217
+ export function getAllRecipes(): CraftingRecipe[] {
3218
+ return [...craftingRecipes];
3219
+ }
3220
+
3221
+ /**
3222
+ * Returns the smelting result for a given input item/block ID.
3223
+ */
3224
+ export function getSmeltingResult(
3225
+ input: number
3226
+ ): { output: number; cookTime: number; xp: number } | null {
3227
+ const recipe = smeltingRecipes.find((r) => r.input === input);
3228
+ if (recipe) {
3229
+ return { output: recipe.output, cookTime: recipe.cookTime, xp: recipe.xp };
3230
+ }
3231
+ return null;
3232
+ }
3233
+
3234
+ /**
3235
+ * Finds all recipes that produce the given item ID.
3236
+ */
3237
+ export function getRecipesForItem(itemId: number): CraftingRecipe[] {
3238
+ return craftingRecipes.filter((r) => r.result.id === itemId);
3239
+ }
3240
+
3241
+ /**
3242
+ * Finds all smelting recipes that produce the given item ID.
3243
+ */
3244
+ export function getSmeltingRecipesForItem(
3245
+ itemId: number
3246
+ ): SmeltingRecipe[] {
3247
+ return smeltingRecipes.filter((r) => r.output === itemId);
3248
+ }
3249
+
3250
+ /**
3251
+ * Get all recipes of a specific type.
3252
+ */
3253
+ export function getRecipesByType(
3254
+ type: CraftingRecipe['type']
3255
+ ): CraftingRecipe[] {
3256
+ return craftingRecipes.filter((r) => r.type === type);
3257
+ }
3258
+
3259
+ /**
3260
+ * Get a recipe by its unique ID string.
3261
+ */
3262
+ export function getRecipeById(id: string): CraftingRecipe | undefined {
3263
+ return craftingRecipes.find((r) => r.id === id);
3264
+ }