the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 158 lines 4.0 kB view raw
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