#include "ToolRecipes.h" #include #include "Recipes.h" #include "java/Class.h" #include "minecraft/world/item/Item.h" #include "minecraft/world/item/ItemInstance.h" #include "minecraft/world/item/ShearsItem.h" #include "minecraft/world/level/tile/Tile.h" // 4J-PB - adding "" on the end of these so we can detect it std::string ToolRecipies::shapes[][4] = { {"XXX", // " # ", // " # "}, // {"X", // "#", // "#"}, // {"XX", // "X#", // " #"}, // {"XX", // " #", // " #"}, // }; void ToolRecipies::_init() { map = new std::vector[MAX_TOOL_RECIPES]; ADD_OBJECT(map[0], Tile::wood); ADD_OBJECT(map[0], Tile::cobblestone); ADD_OBJECT(map[0], Item::ironIngot); ADD_OBJECT(map[0], Item::diamond); ADD_OBJECT(map[0], Item::goldIngot); ADD_OBJECT(map[1], Item::pickAxe_wood); ADD_OBJECT(map[1], Item::pickAxe_stone); ADD_OBJECT(map[1], Item::pickAxe_iron); ADD_OBJECT(map[1], Item::pickAxe_diamond); ADD_OBJECT(map[1], Item::pickAxe_gold); ADD_OBJECT(map[2], Item::shovel_wood); ADD_OBJECT(map[2], Item::shovel_stone); ADD_OBJECT(map[2], Item::shovel_iron); ADD_OBJECT(map[2], Item::shovel_diamond); ADD_OBJECT(map[2], Item::shovel_gold); ADD_OBJECT(map[3], Item::hatchet_wood); ADD_OBJECT(map[3], Item::hatchet_stone); ADD_OBJECT(map[3], Item::hatchet_iron); ADD_OBJECT(map[3], Item::hatchet_diamond); ADD_OBJECT(map[3], Item::hatchet_gold); ADD_OBJECT(map[4], Item::hoe_wood); ADD_OBJECT(map[4], Item::hoe_stone); ADD_OBJECT(map[4], Item::hoe_iron); ADD_OBJECT(map[4], Item::hoe_diamond); ADD_OBJECT(map[4], Item::hoe_gold); } void ToolRecipies::addRecipes(Recipes* r) { char wchTypes[7]; wchTypes[6] = 0; for (unsigned int m = 0; m < map[0].size(); m++) { Object* pObjMaterial = map[0].at(m); for (int t = 0; t < MAX_TOOL_RECIPES - 1; t++) { Item* target = map[t + 1].at(m)->item; wchTypes[0] = 'w'; wchTypes[1] = 'c'; wchTypes[2] = 'i'; wchTypes[3] = 'c'; wchTypes[5] = 'g'; if (pObjMaterial->GetType() == eType_TILE) { wchTypes[4] = 't'; r->addShapedRecipy( new ItemInstance(target), wchTypes, shapes[t], '#', Item::stick, 'X', pObjMaterial->tile, 'T'); } else { // must be Item wchTypes[4] = 'i'; r->addShapedRecipy( new ItemInstance(target), wchTypes, shapes[t], '#', Item::stick, 'X', pObjMaterial->item, 'T'); } } } r->addShapedRecipy(new ItemInstance((Item*)Item::shears), "sscig", " #", // "# ", // '#', Item::ironIngot, 'T'); }