the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1//package net.minecraft.world.item.crafting;
2
3//import net.minecraft.world.item.*;
4//import net.minecraft.world.level.tile.Tile;
5#include "stdafx.h"
6#include "net.minecraft.world.item.h"
7#include "Tile.h"
8#include "Recipy.h"
9#include "Recipes.h"
10#include "ArmorRecipes.h"
11
12// 4J-PB - adding "" on the end of these so we can detect it
13wstring ArmorRecipes::shapes[][4] =
14{
15 {L"XXX", //
16 L"X X",L""},//
17
18 {L"X X", //
19 L"XXX",//
20 L"XXX",L""},//
21
22 {L"XXX", //
23 L"X X",//
24 L"X X",L""},//
25
26 {L"X X",//
27 L"X X",L""},//
28};
29
30/*
31ArmorRecipes::map[5] =
32{
33 {Item::leather, Tile::fire, Item::ironIngot, Item::diamond, Item::goldIngot},
34 {Item::helmet_cloth, Item::helmet_chain, Item::helmet_iron, Item::helmet_diamond, Item::helmet_gold},
35 {Item::chestplate_cloth, Item::chestplate_chain, Item::chestplate_iron, Item::chestplate_diamond, Item::chestplate_gold},
36 {Item::leggings_cloth, Item::leggings_chain, Item::leggings_iron, Item::leggings_diamond, Item::leggings_gold},
37 {Item::boots_cloth, Item::boots_chain, Item::boots_iron, Item::boots_diamond, Item::boots_gold},
38};
39*/
40
41void ArmorRecipes::_init()
42{
43 map = new vector <Object *> [MAX_ARMOUR_RECIPES];
44
45 // 4J-PB - removing the chain armour, since we show all possible recipes in the xbox game, and it's not one you can make
46 ADD_OBJECT(map[0],Item::leather);
47// ADD_OBJECT(map[0],Tile::fire);
48 ADD_OBJECT(map[0],Item::ironIngot);
49 ADD_OBJECT(map[0],Item::diamond);
50 ADD_OBJECT(map[0],Item::goldIngot);
51
52 ADD_OBJECT(map[1],Item::helmet_leather);
53// ADD_OBJECT(map[1],Item::helmet_chain);
54 ADD_OBJECT(map[1],Item::helmet_iron);
55 ADD_OBJECT(map[1],Item::helmet_diamond);
56 ADD_OBJECT(map[1],Item::helmet_gold);
57
58 ADD_OBJECT(map[2],Item::chestplate_leather);
59// ADD_OBJECT(map[2],Item::chestplate_chain);
60 ADD_OBJECT(map[2],Item::chestplate_iron);
61 ADD_OBJECT(map[2],Item::chestplate_diamond);
62 ADD_OBJECT(map[2],Item::chestplate_gold);
63
64 ADD_OBJECT(map[3],Item::leggings_leather);
65// ADD_OBJECT(map[3],Item::leggings_chain);
66 ADD_OBJECT(map[3],Item::leggings_iron);
67 ADD_OBJECT(map[3],Item::leggings_diamond);
68 ADD_OBJECT(map[3],Item::leggings_gold);
69
70 ADD_OBJECT(map[4],Item::boots_leather);
71// ADD_OBJECT(map[4],Item::boots_chain);
72 ADD_OBJECT(map[4],Item::boots_iron);
73 ADD_OBJECT(map[4],Item::boots_diamond);
74 ADD_OBJECT(map[4],Item::boots_gold);
75}
76
77// 4J-PB added for quick equip in the inventory
78ArmorRecipes::_eArmorType ArmorRecipes::GetArmorType(int iId)
79{
80 switch(iId)
81 {
82 case Item::helmet_leather_Id:
83 case Item::helmet_chain_Id:
84 case Item::helmet_iron_Id:
85 case Item::helmet_diamond_Id:
86 case Item::helmet_gold_Id:
87 return eArmorType_Helmet;
88 break;
89
90 case Item::chestplate_leather_Id:
91 case Item::chestplate_chain_Id:
92 case Item::chestplate_iron_Id:
93 case Item::chestplate_diamond_Id:
94 case Item::chestplate_gold_Id:
95 return eArmorType_Chestplate;
96 break;
97
98 case Item::leggings_leather_Id:
99 case Item::leggings_chain_Id:
100 case Item::leggings_iron_Id:
101 case Item::leggings_diamond_Id:
102 case Item::leggings_gold_Id:
103 return eArmorType_Leggings;
104 break;
105
106 case Item::boots_leather_Id:
107 case Item::boots_chain_Id:
108 case Item::boots_iron_Id:
109 case Item::boots_diamond_Id:
110 case Item::boots_gold_Id:
111 return eArmorType_Boots;
112 break;
113 }
114
115 return eArmorType_None;
116}
117
118void ArmorRecipes::addRecipes(Recipes *r)
119{
120 wchar_t wchTypes[5];
121 wchTypes[4]=0;
122
123 for (unsigned int m = 0; m < map[0].size(); m++)
124 {
125 Object *pObjMaterial = map[0].at(m);
126
127 for (int t=0; t<MAX_ARMOUR_RECIPES-1; t++)
128 {
129 Item *target = map[t+1].at(m)->item;
130
131 wchTypes[0]=L'w';
132 wchTypes[1]=L'c';
133 wchTypes[3]=L'g';
134 if(pObjMaterial->GetType()==eType_TILE)
135 {
136 wchTypes[2]=L't';
137 r->addShapedRecipy(new ItemInstance(target),
138 wchTypes,
139 shapes[t],
140
141 L'X', pObjMaterial->tile,
142 L'A');
143 }
144 else
145 {
146 // must be Item
147 wchTypes[2]=L'i';
148 r->addShapedRecipy(new ItemInstance(target),
149 wchTypes,
150 shapes[t],
151
152 L'X', pObjMaterial->item,
153 L'A');
154 }
155 }
156 }
157}
158