60 lines
1.7 KiB
C++
Executable File
60 lines
1.7 KiB
C++
Executable File
#include "ToolRecipes.h"
|
|
#include "Recipes.h"
|
|
#include "../ShearsItem.h"
|
|
#include "../../level/tile/Tile.h"
|
|
|
|
|
|
static RowList shapes[] = {
|
|
Recipes::Shape( "XXX", //
|
|
" # ",//
|
|
" # "),//
|
|
|
|
Recipes::Shape( "X",//
|
|
"#",//
|
|
"#"),//
|
|
|
|
Recipes::Shape( "XX",//
|
|
"X#",//
|
|
" #"),//
|
|
|
|
Recipes::Shape( "XX",//
|
|
" #",//
|
|
" #")//
|
|
};
|
|
|
|
void ToolRecipes::addRecipes( Recipes* r )
|
|
{
|
|
int materialIds[] = {Tile::wood->id, Tile::stoneBrick->id, Item::ironIngot->id, Item::emerald->id, Item::goldIngot->id};
|
|
const int NumMaterials = sizeof(materialIds) / sizeof(int);
|
|
const int NumRecipes = sizeof(shapes) / sizeof(RowList);
|
|
|
|
Item* map[NumRecipes][NumMaterials] = {
|
|
{Item::pickAxe_wood, Item::pickAxe_stone, Item::pickAxe_iron, Item::pickAxe_emerald, Item::pickAxe_gold},
|
|
{Item::shovel_wood, Item::shovel_stone, Item::shovel_iron, Item::shovel_emerald, Item::shovel_gold},
|
|
{Item::hatchet_wood, Item::hatchet_stone, Item::hatchet_iron, Item::hatchet_emerald, Item::hatchet_gold},
|
|
{Item::hoe_wood, Item::hoe_stone, Item::hoe_iron, Item::hoe_emerald, Item::hoe_gold},
|
|
};
|
|
|
|
//const int OVERRIDDEN_MaterialCount = 2;
|
|
for (int m = 0; m < NumMaterials; m++) {
|
|
int mId = materialIds[m];
|
|
for (int t = 0; t < NumRecipes; t++) {
|
|
Item* target = (Item*) map[t][m];
|
|
|
|
if (mId < 256) { // Tile
|
|
r->addShapedRecipe( ItemInstance(target), shapes[t],
|
|
definition('#', Item::stick, 'X', Tile::tiles[mId]) );
|
|
} else { // Item
|
|
r->addShapedRecipe( ItemInstance(target), shapes[t],
|
|
definition('#', Item::stick, 'X', Item::items[mId]) );
|
|
}
|
|
}
|
|
}
|
|
|
|
r->addShapedRecipe( ItemInstance(Item::shears), //
|
|
" #", //
|
|
"# ", //
|
|
|
|
definition('#', Item::ironIngot));
|
|
}
|