the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "net.minecraft.world.item.h"
3#include "Tile.h"
4#include "Recipy.h"
5#include "Recipes.h"
6#include "ToolRecipies.h"
7
8// 4J-PB - adding "" on the end of these so we can detect it
9wstring ToolRecipies::shapes[][4] =
10{
11 {L"XXX", //
12 L" # ",//
13 L" # "},//
14
15 {L"X",//
16 L"#",//
17 L"#"},//
18
19 {L"XX",//
20 L"X#",//
21 L" #"},//
22
23 {L"XX",//
24 L" #",//
25 L" #"},//
26};
27
28void ToolRecipies::_init()
29{
30 map = new vector <Object *> [MAX_TOOL_RECIPES];
31
32 ADD_OBJECT(map[0],Tile::wood);
33 ADD_OBJECT(map[0],Tile::cobblestone);
34 ADD_OBJECT(map[0],Item::ironIngot);
35 ADD_OBJECT(map[0],Item::diamond);
36 ADD_OBJECT(map[0],Item::goldIngot);
37
38 ADD_OBJECT(map[1],Item::pickAxe_wood);
39 ADD_OBJECT(map[1],Item::pickAxe_stone);
40 ADD_OBJECT(map[1],Item::pickAxe_iron);
41 ADD_OBJECT(map[1],Item::pickAxe_diamond);
42 ADD_OBJECT(map[1],Item::pickAxe_gold);
43
44 ADD_OBJECT(map[2],Item::shovel_wood);
45 ADD_OBJECT(map[2],Item::shovel_stone);
46 ADD_OBJECT(map[2],Item::shovel_iron);
47 ADD_OBJECT(map[2],Item::shovel_diamond);
48 ADD_OBJECT(map[2],Item::shovel_gold);
49
50 ADD_OBJECT(map[3],Item::hatchet_wood);
51 ADD_OBJECT(map[3],Item::hatchet_stone);
52 ADD_OBJECT(map[3],Item::hatchet_iron);
53 ADD_OBJECT(map[3],Item::hatchet_diamond);
54 ADD_OBJECT(map[3],Item::hatchet_gold);
55
56 ADD_OBJECT(map[4],Item::hoe_wood);
57 ADD_OBJECT(map[4],Item::hoe_stone);
58 ADD_OBJECT(map[4],Item::hoe_iron);
59 ADD_OBJECT(map[4],Item::hoe_diamond);
60 ADD_OBJECT(map[4],Item::hoe_gold);
61}
62
63void ToolRecipies::addRecipes(Recipes *r)
64{
65 wchar_t wchTypes[7];
66 wchTypes[6]=0;
67
68 for (unsigned int m = 0; m < map[0].size(); m++)
69 {
70 Object *pObjMaterial = map[0].at(m);
71
72 for (int t=0; t<MAX_TOOL_RECIPES-1; t++)
73 {
74 Item *target = map[t+1].at(m)->item;
75
76 wchTypes[0]=L'w';
77 wchTypes[1]=L'c';
78 wchTypes[2]=L'i';
79 wchTypes[3]=L'c';
80 wchTypes[5]=L'g';
81 if(pObjMaterial->GetType()==eType_TILE)
82 {
83 wchTypes[4]=L't';
84 r->addShapedRecipy(new ItemInstance(target),
85 wchTypes,
86 shapes[t],
87
88 L'#', Item::stick,
89 L'X', pObjMaterial->tile,
90 L'T');
91 }
92 else
93 {
94 // must be Item
95 wchTypes[4]=L'i';
96 r->addShapedRecipy(new ItemInstance(target),
97 wchTypes,
98 shapes[t],
99
100 L'#', Item::stick,
101 L'X', pObjMaterial->item,
102 L'T');
103 }
104 }
105 }
106 r->addShapedRecipy(new ItemInstance((Item *)Item::shears),
107 L"sscig",
108 L" #", //
109 L"# ", //
110 L'#', Item::ironIngot,
111 L'T'
112 );
113}