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
3import java.util.ArrayList;
4import java.util.Collections;
5import java.util.Comparator;
6import java.util.HashMap;
7import java.util.List;
8import java.util.Map;
9
10import net.minecraft.world.inventory.CraftingContainer;
11import net.minecraft.world.item.CoalItem;
12import net.minecraft.world.item.Item;
13import net.minecraft.world.item.ItemInstance;
14import net.minecraft.world.level.tile.StoneSlabTile;
15import net.minecraft.world.level.tile.Tile;
16*/
17
18#include "Recipy.h"
19
20#pragma once
21using namespace std;
22
23class CraftingContainer;
24class FireTile;
25
26class ArmorRecipes;
27class ClothDyeRecipes;
28class FoodRecipies;
29class OreRecipies;
30class StructureRecipies;
31class ToolRecipies;
32class WeaponRecipies;
33class ShapedRecipy;
34class FireworksRecipe;
35
36typedef unordered_map<wchar_t, ItemInstance *> myMap;
37
38#define ADD_OBJECT(a,b) a.push_back(new Object(b))
39
40class Object
41{
42public:
43 union
44 {
45 Tile *tile;
46 FireTile *firetile;
47 Item *item;
48 MapItem *mapitem;
49 ItemInstance *iteminstance;
50 };
51
52 Object() { eType=eTYPE_NOTSET;}
53 Object(Tile *t) { eType=eType_TILE;tile=t;}
54 Object(FireTile *t) { eType=eType_FIRETILE;firetile=t;}
55 Object(Item *i) { eType=eType_ITEM; item=i;}
56 Object(MapItem *i) { eType=eType_MAPITEM;mapitem=i;}
57 Object(ItemInstance *i) { eType=eType_ITEMINSTANCE;iteminstance=i;}
58
59 eINSTANCEOF instanceof() { return eType;}
60 eINSTANCEOF GetType() { return eType; };
61
62private:
63 eINSTANCEOF eType;
64};
65
66class Recipes
67{
68public:
69 static const int ANY_AUX_VALUE = -1;
70
71private:
72 static Recipes *instance;
73
74 vector <Recipy *> *recipies;
75
76public:
77 static void staticCtor();
78
79public:
80 static Recipes *getInstance()
81 {
82 return instance;
83 }
84
85private:
86 void _init(); // 4J add
87 Recipes();
88
89public:
90 ShapedRecipy *addShapedRecipy(ItemInstance *, ... );
91 void addShapelessRecipy(ItemInstance *result,... );
92
93 shared_ptr<ItemInstance> getItemFor(shared_ptr<CraftingContainer> craftSlots, Level *level, Recipy *recipesClass = NULL); // 4J Added recipesClass param
94 vector <Recipy *> *getRecipies();
95
96 // 4J-PB - Added all below for new Xbox 'crafting'
97 shared_ptr<ItemInstance> getItemForRecipe(Recipy *r);
98 Recipy::INGREDIENTS_REQUIRED *getRecipeIngredientsArray();
99
100private:
101 void buildRecipeIngredientsArray();
102 Recipy::INGREDIENTS_REQUIRED *m_pRecipeIngredientsRequired;
103
104public:
105 static ToolRecipies *pToolRecipies;
106 static WeaponRecipies *pWeaponRecipies;
107 static StructureRecipies *pStructureRecipies;
108 static OreRecipies *pOreRecipies;
109 static FoodRecipies *pFoodRecipies;
110 static ClothDyeRecipes *pClothDyeRecipes;
111 static ArmorRecipes *pArmorRecipes;
112 static FireworksRecipe *pFireworksRecipes;
113};