tool texture updates, pt1

master
darkrose 2017-08-11 19:57:09 +10:00
parent 17ed2155d6
commit 48eac3d9e2
78 changed files with 276 additions and 386 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 416 B

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 368 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 619 B

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 B

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 811 B

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
data/textures/straw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

View File

Before

Width:  |  Height:  |  Size: 285 B

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 391 B

After

Width:  |  Height:  |  Size: 370 B

View File

@ -753,9 +753,18 @@ void setShortsRecipe(u16 input, u16 result)
void set4SpacedTo1Recipe(u16 input, u16 result)
{
u16 r[9] = {
input, CONTENT_IGNORE, input,
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE,
input, CONTENT_IGNORE, input
input, CONTENT_IGNORE, input,
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE,
input, CONTENT_IGNORE, input
};
setRecipe(r,result,1);
}
void setKnifeRecipe(u16 input, u16 result)
{
u16 r[9] = {
CONTENT_IGNORE, input, CONTENT_IGNORE,
CONTENT_CRAFTITEM_STICK, CONTENT_IGNORE, CONTENT_IGNORE,
CONTENT_IGNORE, CONTENT_IGNORE, CONTENT_IGNORE
};
setRecipe(r,result,1);
}

View File

@ -290,6 +290,8 @@ namespace crafting {
void setShortsRecipe(u16 input, u16 result);
// 4 spaced input yelds 1 result
void set4SpacedTo1Recipe(u16 input, u16 result);
// one input diagonally above and to the right of a stick gives 1 result
void setKnifeRecipe(u16 input, u16 result);
InventoryItem *getResult(InventoryItem **items, Player *player, Server *server);
InventoryItem *getAlloy(content_t c0, content_t c1);

View File

@ -57,7 +57,6 @@ void content_craftitem_init()
g_content_craftitem_features[k].content = CONTENT_IGNORE;
g_content_craftitem_features[k].texture = "unknown_item.png";
g_content_craftitem_features[k].overlay_base = "";
g_content_craftitem_features[k].name = "";
g_content_craftitem_features[k].description = (char*)"";
g_content_craftitem_features[k].cook_result = CONTENT_IGNORE;
g_content_craftitem_features[k].cook_type = COOK_ANY;
@ -85,7 +84,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_PAPER;
f->texture = "paper.png";
f->name = "paper";
f->description = gettext("Paper");
crafting::setRow3Recipe(CONTENT_PAPYRUS,CONTENT_CRAFTITEM_PAPER);
content_list_add("craftguide",i,1,0);
@ -95,7 +93,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_PADLOCK;
f->texture = "padlock.png";
f->name = "padlock";
f->description = gettext("Padlock");
crafting::set1over1Recipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_CRAFTITEM_PADLOCK);
content_list_add("craftguide",i,1,0);
@ -105,7 +102,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CHARCOAL;
f->texture = "lump_of_charcoal.png";
f->name = "lump_of_charcoal";
f->description = gettext("Charcoal Lump");
f->fuel_time = BT_COAL;
content_list_add("creative",i,1,0);
@ -114,7 +110,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COAL;
f->texture = "lump_of_coal.png";
f->name = "lump_of_coal";
f->description = gettext("Coal Lump");
f->fuel_time = BT_COAL;
content_list_add("creative",i,1,0);
@ -123,7 +118,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_IRON;
f->texture = "lump_of_iron.png";
f->name = "lump_of_iron";
f->description = gettext("Iron Lump");
f->cook_result = CONTENT_CRAFTITEM_IRON_INGOT;
f->cook_type = COOK_FURNACE;
@ -134,7 +128,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CLAY;
f->texture = "lump_of_clay.png";
f->name = "lump_of_clay";
f->description = gettext("Clay Lump");
f->cook_result = CONTENT_CRAFTITEM_CLAY_BRICK;
content_list_add("creative",i,1,0);
@ -144,7 +137,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_TIN;
f->texture = "lump_of_tin.png";
f->name = "lump_of_tin";
f->description = gettext("Tin Lump");
f->cook_result = CONTENT_CRAFTITEM_TIN_INGOT;
content_list_add("creative",i,1,0);
@ -154,7 +146,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COPPER;
f->texture = "lump_of_copper.png";
f->name = "lump_of_copper";
f->description = gettext("Copper Lump");
f->cook_result = CONTENT_CRAFTITEM_COPPER_INGOT;
content_list_add("creative",i,1,0);
@ -164,7 +155,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_SILVER;
f->texture = "lump_of_silver.png";
f->name = "lump_of_silver";
f->description = gettext("Silver Lump");
f->cook_result = CONTENT_CRAFTITEM_SILVER_INGOT;
f->cook_type = COOK_FURNACE;
@ -175,7 +165,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_GOLD;
f->texture = "lump_of_gold.png";
f->name = "lump_of_gold";
f->description = gettext("Gold Lump");
f->cook_result = CONTENT_CRAFTITEM_GOLD_INGOT;
f->cook_type = COOK_FURNACE;
@ -186,7 +175,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_QUARTZ;
f->texture = "lump_of_quartz.png";
f->name = "lump_of_quartz";
f->description = gettext("Quartz Crystal");
content_list_add("creative",i,1,0);
@ -194,7 +182,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_TIN_INGOT;
f->texture = "tin_ingot.png";
f->name = "tin_ingot";
f->description = gettext("Tin Ingot");
content_list_add("creative",i,1,0);
@ -202,7 +189,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COPPER_INGOT;
f->texture = "copper_ingot.png";
f->name = "copper_ingot";
f->description = gettext("Copper Ingot");
content_list_add("creative",i,1,0);
@ -210,7 +196,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_SILVER_INGOT;
f->texture = "silver_ingot.png";
f->name = "silver_ingot";
f->description = gettext("Silver Ingot");
content_list_add("creative",i,1,0);
@ -218,7 +203,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_GOLD_INGOT;
f->texture = "gold_ingot.png";
f->name = "gold_ingot";
f->description = gettext("Gold Ingot");
content_list_add("creative",i,1,0);
@ -226,7 +210,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FLINT;
f->texture = "lump_of_flint.png";
f->name = "lump_of_flint";
f->description = gettext("Flint");
content_list_add("creative",i,1,0);
@ -234,7 +217,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_IRON_INGOT;
f->texture = "iron_ingot.png";
f->name = "iron_ingot";
f->description = gettext("Iron Ingot");
content_list_add("creative",i,1,0);
@ -242,7 +224,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_BRONZE_INGOT;
f->texture = "bronze_ingot.png";
f->name = "bronze_ingot";
f->description = gettext("Bronze Ingot");
content_list_add("creative",i,1,0);
{
@ -263,7 +244,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CLAY_BRICK;
f->texture = "clay_brick.png";
f->name = "clay_brick";
f->description = gettext("Brick");
content_list_add("creative",i,1,0);
@ -271,7 +251,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_RAT;
f->texture = "rat.png";
f->name = "rat";
f->description = gettext("Rat");
f->cook_result = CONTENT_CRAFTITEM_COOKED_RAT;
f->drop_count = 1;
@ -283,7 +262,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COOKED_RAT;
f->texture = "cooked_rat.png";
f->name = "cooked_rat";
f->description = gettext("Cooked Rat");
f->cook_result = CONTENT_CRAFTITEM_ASH;
f->consumable = true;
@ -297,7 +275,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FIREFLY;
f->texture = "firefly.png";
f->name = "firefly";
f->description = gettext("Firefly");
f->drop_count = 1;
f->drop_item = CONTENT_MOB_FIREFLY;
@ -307,7 +284,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_APPLE;
f->texture = "apple.png^[forcesingle";
f->name = "apple";
f->description = gettext("Apple");
f->consumable = true;
f->sound_use = "use-eat";
@ -319,7 +295,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_APPLE_IRON;
f->texture = "apple_iron.png";
f->name = "apple_iron";
f->description = gettext("Iron Apple");
f->consumable = true;
f->sound_use = "use-eat";
@ -340,7 +315,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_DYE_BLUE;
f->texture = "dye_blue.png";
f->name = "dye_blue";
f->description = gettext("Blue Dye");
crafting::set1To2Recipe(CONTENT_FLOWER_TULIP,CONTENT_CRAFTITEM_DYE_BLUE);
content_list_add("craftguide",i,1,0);
@ -350,7 +324,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_DYE_GREEN;
f->texture = "dye_green.png";
f->name = "dye_green";
f->description = gettext("Green Dye");
crafting::set2Any2Recipe(CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_DYE_GREEN);
content_list_add("craftguide",i,1,0);
@ -360,7 +333,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_DYE_ORANGE;
f->texture = "dye_orange.png";
f->name = "dye_orange";
f->description = gettext("Orange Dye");
crafting::set2Any2Recipe(CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_DYE_ORANGE);
content_list_add("craftguide",i,1,0);
@ -370,7 +342,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_DYE_PURPLE;
f->texture = "dye_purple.png";
f->name = "dye_purple";
f->description = gettext("Purple Dye");
crafting::set2Any2Recipe(CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_DYE_PURPLE);
content_list_add("craftguide",i,1,0);
@ -380,7 +351,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_DYE_RED;
f->texture = "dye_red.png";
f->name = "dye_red";
f->description = gettext("Red Dye");
crafting::set1To2Recipe(CONTENT_FLOWER_ROSE,CONTENT_CRAFTITEM_DYE_RED);
content_list_add("craftguide",i,1,0);
@ -390,7 +360,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_DYE_YELLOW;
f->texture = "dye_yellow.png";
f->name = "dye_yellow";
f->description = gettext("Yellow Dye");
crafting::set1To2Recipe(CONTENT_CACTUS_BLOSSOM,CONTENT_CRAFTITEM_DYE_YELLOW);
crafting::set1To2Recipe(CONTENT_FLOWER_DAFFODIL,CONTENT_CRAFTITEM_DYE_YELLOW);
@ -401,7 +370,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_DYE_WHITE;
f->texture = "dye_white.png";
f->name = "dye_white";
f->description = gettext("White Dye");
crafting::set1To1Recipe(CONTENT_CRAFTITEM_APPLE_BLOSSOM,CONTENT_CRAFTITEM_DYE_WHITE);
crafting::set2Any3Recipe(CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_DYE_WHITE);
@ -412,7 +380,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_DYE_BLACK;
f->texture = "dye_black.png";
f->name = "dye_black";
f->description = gettext("Black Dye");
crafting::set2Any2Recipe(CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_CRAFTITEM_COAL,CONTENT_CRAFTITEM_DYE_BLACK);
content_list_add("craftguide",i,1,0);
@ -422,7 +389,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_QUARTZ_DUST;
f->texture = "quartz_dust.png";
f->name = "quartz_dust";
f->description = gettext("Quartz Dust");
crafting::set1To2Recipe(CONTENT_CRAFTITEM_QUARTZ,CONTENT_CRAFTITEM_QUARTZ_DUST);
content_list_add("craftguide",i,1,0);
@ -432,7 +398,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_SALTPETER;
f->texture = "saltpeter.png";
f->name = "saltpeter";
f->description = gettext("Saltpeter");
content_list_add("creative",i,1,0);
@ -440,7 +405,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_GUNPOWDER;
f->texture = "gunpowder.png";
f->name = "gunpowder";
f->description = gettext("Gun Powder");
crafting::set1Any3Recipe(CONTENT_CRAFTITEM_CHARCOAL,CONTENT_CRAFTITEM_FLINT,CONTENT_CRAFTITEM_SALTPETER,CONTENT_CRAFTITEM_GUNPOWDER);
content_list_add("craftguide",i,1,0);
@ -450,7 +414,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_SNOW_BALL;
f->texture = "snow_ball.png";
f->name = "snow_ball";
f->description = gettext("Snow Ball");
f->thrown_item = CONTENT_MOB_SNOWBALL;
@ -458,7 +421,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_STICK;
f->texture = "stick.png";
f->name = "Stick";
f->description = gettext("Stick");
f->fuel_time = BT_STICK;
crafting::set1To2Recipe(CONTENT_CRAFTITEM_PINE_PLANK,CONTENT_CRAFTITEM_STICK);
@ -479,7 +441,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_PINE_PLANK;
f->texture = "pine_plank.png";
f->name = "pine_plank";
f->description = gettext("Pine Plank");
f->fuel_time = BT_PLANK;
crafting::set1To4Recipe(CONTENT_WOOD_PINE,CONTENT_CRAFTITEM_PINE_PLANK);
@ -491,7 +452,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_APPLE_PLANK;
f->texture = "applewood_plank.png";
f->name = "applewood_plank";
f->description = gettext("Apple Wood Plank");
f->fuel_time = BT_PLANK;
crafting::set1To4Recipe(CONTENT_APPLEWOOD,CONTENT_CRAFTITEM_APPLE_PLANK);
@ -503,7 +463,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_WOOD_PLANK;
f->texture = "wood_plank.png";
f->name = "wood_plank";
f->description = gettext("Wood Plank");
f->fuel_time = BT_PLANK;
crafting::set1To4Recipe(CONTENT_WOOD,CONTENT_CRAFTITEM_WOOD_PLANK);
@ -516,7 +475,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_JUNGLE_PLANK;
f->texture = "jungle_plank.png";
f->name = "jungle_plank";
f->description = gettext("Jungle Wood Plank");
f->fuel_time = BT_PLANK;
crafting::set1To4Recipe(CONTENT_JUNGLEWOOD,CONTENT_CRAFTITEM_JUNGLE_PLANK);
@ -528,7 +486,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_TNT;
f->texture = "tnt_stick.png";
f->name = "tnt_stick";
f->description = gettext("TNT Stick");
{
u16 recipe[9] = {
@ -545,7 +502,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_ASH;
f->texture = "lump_of_ash.png";
f->name = "lump_of_ash";
f->description = gettext("Ash");
content_list_add("creative",i,1,0);
@ -553,7 +509,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_APPLE_BLOSSOM;
f->texture = "apple_blossom.png";
f->name = "apple_blossom";
f->description = gettext("Apple Blossoms");
f->consumable = true;
f->sound_use = "use-eat";
@ -566,7 +521,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CACTUS_FRUIT;
f->texture = "cactus_fruit.png^[forcesingle";
f->name = "cactus_fruit";
f->description = gettext("Cactus Berry");
f->consumable = true;
f->sound_use = "use-eat";
@ -578,7 +532,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_MUSH;
f->texture = "mush.png";
f->name = "mush";
f->cook_result = CONTENT_CRAFTITEM_ASH;
f->description = gettext("Mush");
f->consumable = true;
@ -590,7 +543,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_PUMPKINSLICE;
f->texture = "pumpkin_slice.png";
f->name = "pumpkin_slice";
f->description = gettext("Sliced Pumpkin");
f->consumable = true;
f->sound_use = "use-eat";
@ -604,7 +556,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_PUMPKIN_PIE_SLICE;
f->texture = "pumpkin_pie_slice.png";
f->name = "pumpkin_pie_slice";
f->description = gettext("Pumpkin Pie Slice");
f->consumable = true;
f->sound_use = "use-eat";
@ -616,7 +567,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_APPLE_PIE_SLICE;
f->texture = "apple_pie_slice.png";
f->name = "apple_pie_slice";
f->description = gettext("Apple Pie Slice");
f->consumable = true;
f->sound_use = "use-eat";
@ -628,7 +578,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_MELONSLICE;
f->texture = "melon_slice.png";
f->name = "melon_slice";
f->description = gettext("Sliced Melon");
f->consumable = true;
f->sound_use = "use-eat";
@ -642,7 +591,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_WHEAT;
f->texture = "harvested_wheat.png";
f->name = "harvested_wheat";
f->description = gettext("Wheat");
f->consumable = true;
f->sound_use = "use-eat";
@ -654,7 +602,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FLOUR;
f->texture = "flour.png";
f->name = "flour";
f->description = gettext("Flour");
f->consumable = true;
f->sound_use = "use-eat";
@ -668,7 +615,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_DOUGH;
f->texture = "dough.png";
f->name = "dough";
f->description = gettext("Dough");
f->cook_result = CONTENT_CRAFTITEM_BREAD;
f->consumable = true;
@ -684,7 +630,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_BREAD;
f->texture = "bread.png";
f->name = "bread";
f->description = gettext("Bread");
f->consumable = true;
f->sound_use = "use-eat";
@ -696,7 +641,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_POTATO;
f->texture = "harvested_potato.png";
f->name = "harvested_potato";
f->description = gettext("Potato");
f->cook_result = CONTENT_CRAFTITEM_ROASTPOTATO;
f->consumable = true;
@ -710,7 +654,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_STARCH;
f->texture = "potato_starch.png";
f->name = "potato_starch";
f->description = gettext("Potato Starch");
crafting::set2Any2Recipe(CONTENT_CRAFTITEM_POTATO,CONTENT_CRAFTITEM_POTATO,CONTENT_CRAFTITEM_STARCH);
content_list_add("craftguide",i,1,0);
@ -720,7 +663,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_ROASTPOTATO;
f->texture = "roast_potato.png";
f->name = "roast_potato";
f->description = gettext("Roast Potato");
f->consumable = true;
f->sound_use = "use-eat";
@ -732,7 +674,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CARROT;
f->texture = "harvested_carrot.png";
f->name = "harvested_carrot";
f->description = gettext("Carrot");
f->consumable = true;
f->sound_use = "use-eat";
@ -744,7 +685,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CARROT_CAKE_RAW;
f->texture = "carrot_cake_raw.png";
f->name = "carrot_cake_raw";
f->description = gettext("Raw Carrot Cake");
f->cook_result = CONTENT_CRAFTITEM_CARROT_CAKE;
f->consumable = true;
@ -759,7 +699,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CARROT_CAKE;
f->texture = "carrot_cake.png";
f->name = "carrot_cake";
f->description = gettext("Carrot Cake");
f->consumable = true;
f->sound_use = "use-eat";
@ -771,7 +710,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_BEETROOT;
f->texture = "harvested_beetroot.png";
f->name = "harvested_beetroot";
f->description = gettext("Beetroot");
f->consumable = true;
f->sound_use = "use-eat";
@ -783,7 +721,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_GRAPE;
f->texture = "harvested_grape.png";
f->name = "harvested_grape";
f->description = gettext("Bunch of Grapes");
f->consumable = true;
f->sound_use = "use-eat";
@ -795,7 +732,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_STRING;
f->texture = "string.png";
f->name = "string";
f->description = gettext("String");
crafting::set1To4Recipe(CONTENT_COTTON,CONTENT_CRAFTITEM_STRING);
content_list_add("craftguide",i,1,0);
@ -805,7 +741,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_MITHRILDUST;
f->texture = "mithril_dust.png";
f->name = "mese_dust";
f->description = gettext("Mithril Dust");
f->drop_count = 1;
f->drop_item = CONTENT_CIRCUIT_MITHRILWIRE;
@ -817,7 +752,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_RESIN;
f->texture = "resin.png";
f->name = "lump_of_resin";
f->description = gettext("Resin");
f->drop_count = 1;
content_list_add("cooking",i,1,0);
@ -827,7 +761,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_OERKKI_DUST;
f->texture = "oerkki_dust.png";
f->name = "oerkki_dust";
f->description = gettext("Oerkki Dust");
f->drop_count = 1;
f->teleports = PLAYERFLAG_HOME; // teleports player to default home location
@ -846,7 +779,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FISH;
f->texture = "fish.png";
f->name = "fish";
f->description = gettext("Fish");
f->cook_result = CONTENT_CRAFTITEM_COOKED_FISH;
f->drop_count = 1;
@ -862,7 +794,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COOKED_FISH;
f->texture = "cooked_fish.png";
f->name = "cooked_fish";
f->description = gettext("Cooked Fish");
f->cook_result = CONTENT_CRAFTITEM_ASH;
f->consumable = true;
@ -876,7 +807,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_MEAT;
f->texture = "meat.png";
f->name = "meat";
f->description = gettext("Meat");
f->cook_result = CONTENT_CRAFTITEM_COOKED_MEAT;
f->consumable = true;
@ -890,7 +820,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COOKED_MEAT;
f->texture = "cooked_meat.png";
f->name = "cooked_meat";
f->description = gettext("Cooked Meat");
f->cook_result = CONTENT_CRAFTITEM_ASH;
f->consumable = true;
@ -904,7 +833,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET;
f->texture = "cotton_sheet.png";
f->name = "cotton_sheet";
f->description = gettext("Cotton Sheet");
crafting::setRow2Recipe(CONTENT_CRAFTITEM_STRING,CONTENT_CRAFTITEM_COTTON_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_COTTON_SHEET_BLUE,CONTENT_CRAFTITEM_COTTON_SHEET);
@ -921,7 +849,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_BLUE;
f->texture = "cotton_sheet_blue.png";
f->name = "cotton_sheet_blue";
f->description = gettext("Blue Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_COTTON_SHEET_BLUE);
content_list_add("craftguide",i,1,0);
@ -931,7 +858,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_GREEN;
f->texture = "cotton_sheet_green.png";
f->name = "cotton_sheet_green";
f->description = gettext("Green Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_COTTON_SHEET_GREEN);
content_list_add("craftguide",i,1,0);
@ -941,7 +867,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_ORANGE;
f->texture = "cotton_sheet_orange.png";
f->name = "cotton_sheet_orange";
f->description = gettext("Orange Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_COTTON_SHEET_ORANGE);
content_list_add("craftguide",i,1,0);
@ -951,7 +876,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_PURPLE;
f->texture = "cotton_sheet_purple.png";
f->name = "cotton_sheet_purple";
f->description = gettext("Purple Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_COTTON_SHEET_PURPLE);
content_list_add("craftguide",i,1,0);
@ -961,7 +885,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_RED;
f->texture = "cotton_sheet_red.png";
f->name = "cotton_sheet_red";
f->description = gettext("Red Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_COTTON_SHEET_RED);
content_list_add("craftguide",i,1,0);
@ -971,7 +894,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_YELLOW;
f->texture = "cotton_sheet_yellow.png";
f->name = "cotton_sheet_yellow";
f->description = gettext("Yellow Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_COTTON_SHEET_YELLOW);
content_list_add("craftguide",i,1,0);
@ -981,7 +903,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_COTTON_SHEET_BLACK;
f->texture = "cotton_sheet_black.png";
f->name = "cotton_sheet_black";
f->description = gettext("Black Cotton Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_COTTON_SHEET_BLACK);
content_list_add("craftguide",i,1,0);
@ -991,7 +912,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET;
f->texture = "canvas_sheet.png";
f->name = "canvas_sheet";
f->description = gettext("Canvas Sheet");
crafting::setCol2Recipe(CONTENT_CRAFTITEM_COTTON_SHEET,CONTENT_CRAFTITEM_CANVAS_SHEET);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_CANVAS_SHEET_BLUE,CONTENT_CRAFTITEM_CANVAS_SHEET);
@ -1008,7 +928,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_BLUE;
f->texture = "canvas_sheet_blue.png";
f->name = "canvas_sheet_blue";
f->description = gettext("Blue Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_CANVAS_SHEET_BLUE);
content_list_add("craftguide",i,1,0);
@ -1018,7 +937,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_GREEN;
f->texture = "canvas_sheet_green.png";
f->name = "canvas_sheet_green";
f->description = gettext("Green Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_CANVAS_SHEET_GREEN);
content_list_add("craftguide",i,1,0);
@ -1028,7 +946,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_ORANGE;
f->texture = "canvas_sheet_orange.png";
f->name = "canvas_sheet_orange";
f->description = gettext("Orange Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_CANVAS_SHEET_ORANGE);
content_list_add("craftguide",i,1,0);
@ -1038,7 +955,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_PURPLE;
f->texture = "canvas_sheet_purple.png";
f->name = "canvas_sheet_purple";
f->description = gettext("Purple Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_CANVAS_SHEET_PURPLE);
content_list_add("craftguide",i,1,0);
@ -1048,7 +964,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_RED;
f->texture = "canvas_sheet_red.png";
f->name = "canvas_sheet_red";
f->description = gettext("Red Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_CANVAS_SHEET_RED);
content_list_add("craftguide",i,1,0);
@ -1058,7 +973,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_YELLOW;
f->texture = "canvas_sheet_yellow.png";
f->name = "canvas_sheet_yellow";
f->description = gettext("Yellow Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_CANVAS_SHEET_YELLOW);
content_list_add("craftguide",i,1,0);
@ -1068,7 +982,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_CANVAS_SHEET_BLACK;
f->texture = "canvas_sheet_black.png";
f->name = "canvas_sheet_black";
f->description = gettext("Black Canvas Sheet");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_CANVAS_SHEET,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_CANVAS_SHEET_BLACK);
content_list_add("craftguide",i,1,0);
@ -1078,7 +991,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FUR;
f->texture = "fur.png";
f->name = "fur";
f->description = gettext("Fur");
content_list_add("creative",i,1,0);
@ -1086,7 +998,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FUR_WHITE;
f->texture = "fur_white.png";
f->name = "fur_white";
f->description = gettext("White Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_CRAFTITEM_FUR_WHITE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_FUR_WHITE);
@ -1097,7 +1008,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FUR_BLUE;
f->texture = "fur_blue.png";
f->name = "fur_blue";
f->description = gettext("Blue Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_FUR_BLUE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_FUR_BLUE);
@ -1108,7 +1018,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FUR_GREEN;
f->texture = "fur_green.png";
f->name = "fur_green";
f->description = gettext("Green Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_FUR_GREEN);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_FUR_GREEN);
@ -1119,7 +1028,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FUR_ORANGE;
f->texture = "fur_orange.png";
f->name = "fur_orange";
f->description = gettext("Orange Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_FUR_ORANGE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_FUR_ORANGE);
@ -1130,7 +1038,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FUR_PURPLE;
f->texture = "fur_purple.png";
f->name = "fur_purple";
f->description = gettext("Purple Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_FUR_PURPLE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_FUR_PURPLE);
@ -1141,7 +1048,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FUR_RED;
f->texture = "fur_red.png";
f->name = "fur_red";
f->description = gettext("Red Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_FUR_RED);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_FUR_RED);
@ -1152,7 +1058,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FUR_YELLOW;
f->texture = "fur_yellow.png";
f->name = "fur_yellow";
f->description = gettext("Yellow Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_FUR_YELLOW);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_FUR_YELLOW);
@ -1163,7 +1068,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FUR_BLACK;
f->texture = "fur_black.png";
f->name = "fur_black";
f->description = gettext("Black Fur");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR_WHITE,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_FUR_BLACK);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_FUR_BLACK);
@ -1174,7 +1078,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_LEATHER;
f->texture = "leather.png";
f->name = "leather";
f->description = gettext("Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_ASH,CONTENT_CRAFTITEM_LEATHER);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FUR,CONTENT_CRAFTITEM_MUSH,CONTENT_CRAFTITEM_LEATHER);
@ -1184,7 +1087,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_LEATHER_WHITE;
f->texture = "leather_white.png";
f->name = "leather_white";
f->description = gettext("White Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_WHITE,CONTENT_CRAFTITEM_LEATHER_WHITE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_STARCH,CONTENT_CRAFTITEM_LEATHER_WHITE);
@ -1195,7 +1097,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_LEATHER_BLUE;
f->texture = "leather_blue.png";
f->name = "leather_blue";
f->description = gettext("Blue Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_LEATHER_BLUE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_BLUE,CONTENT_CRAFTITEM_LEATHER_BLUE);
@ -1206,7 +1107,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_LEATHER_GREEN;
f->texture = "leather_green.png";
f->name = "leather_green";
f->description = gettext("Green Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_LEATHER_GREEN);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_GREEN,CONTENT_CRAFTITEM_LEATHER_GREEN);
@ -1217,7 +1117,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_LEATHER_ORANGE;
f->texture = "leather_orange.png";
f->name = "leather_orange";
f->description = gettext("Orange Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_LEATHER_ORANGE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_ORANGE,CONTENT_CRAFTITEM_LEATHER_ORANGE);
@ -1228,7 +1127,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_LEATHER_PURPLE;
f->texture = "leather_purple.png";
f->name = "leather_purple";
f->description = gettext("Purple Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_LEATHER_PURPLE);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_PURPLE,CONTENT_CRAFTITEM_LEATHER_PURPLE);
@ -1239,7 +1137,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_LEATHER_RED;
f->texture = "leather_red.png";
f->name = "leather_red";
f->description = gettext("Red Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_LEATHER_RED);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_RED,CONTENT_CRAFTITEM_LEATHER_RED);
@ -1250,7 +1147,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_LEATHER_YELLOW;
f->texture = "leather_yellow.png";
f->name = "leather_yellow";
f->description = gettext("Yellow Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_LEATHER_YELLOW);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_YELLOW,CONTENT_CRAFTITEM_LEATHER_YELLOW);
@ -1261,7 +1157,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_LEATHER_BLACK;
f->texture = "leather_black.png";
f->name = "leather_black";
f->description = gettext("Black Leather");
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER_WHITE,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_LEATHER_BLACK);
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_LEATHER,CONTENT_CRAFTITEM_DYE_BLACK,CONTENT_CRAFTITEM_LEATHER_BLACK);
@ -1272,7 +1167,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_ARROW;
f->texture = "arrow.png";
f->name = "arrow";
f->description = gettext("Arrow");
f->shot_item = CONTENT_MOB_ARROW;
crafting::set1over4Recipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_CRAFTITEM_STICK,CONTENT_CRAFTITEM_ARROW);
@ -1283,7 +1177,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_FERTILIZER;
f->texture = "fertilizer_item.png";
f->name = "fertilizer";
f->description = gettext("Fertilizer");
f->drop_count = 1;
f->drop_item = CONTENT_FERTILIZER;
@ -1295,7 +1188,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "oerkki_dust_white.png";
f->name = "oerkki_dust_white";
f->description = gettext("White Oerkki Dust");
f->drop_count = 1;
f->teleports = PLAYERFLAG_WHITE;
@ -1307,7 +1199,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "oerkki_dust_blue.png";
f->name = "oerkki_dust_blue";
f->description = gettext("Blue Oerkki Dust");
f->drop_count = 1;
f->teleports = PLAYERFLAG_BLUE;
@ -1319,7 +1210,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "oerkki_dust_green.png";
f->name = "oerkki_dust_green";
f->description = gettext("Green Oerkki Dust");
f->drop_count = 1;
f->teleports = PLAYERFLAG_GREEN;
@ -1331,7 +1221,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "oerkki_dust_orange.png";
f->name = "oerkki_dust_orange";
f->description = gettext("Orange Oerkki Dust");
f->drop_count = 1;
f->teleports = PLAYERFLAG_ORANGE;
@ -1343,7 +1232,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "oerkki_dust_purple.png";
f->name = "oerkki_dust_purple";
f->description = gettext("Purple Oerkki Dust");
f->drop_count = 1;
f->teleports = PLAYERFLAG_PURPLE;
@ -1355,7 +1243,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "oerkki_dust_red.png";
f->name = "oerkki_dust_red";
f->description = gettext("Red Oerkki Dust");
f->drop_count = 1;
f->teleports = PLAYERFLAG_RED;
@ -1367,7 +1254,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "oerkki_dust_yellow.png";
f->name = "oerkki_dust_yellow";
f->description = gettext("Yellow Oerkki Dust");
f->drop_count = 1;
f->teleports = PLAYERFLAG_YELLOW;
@ -1379,7 +1265,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "oerkki_dust_black.png";
f->name = "oerkki_dust_black";
f->description = gettext("Black Oerkki Dust");
f->drop_count = 1;
f->teleports = PLAYERFLAG_BLACK;
@ -1391,7 +1276,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "glass_bottle.png";
f->name = "glass_bottle";
f->description = gettext("Glass Bottle");
f->drop_count = 1;
{
@ -1409,7 +1293,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "drink_grape.png^glass_bottle.png";
f->name = "grape_juice";
f->description = gettext("Grape Juice");
f->stackable = false;
f->drop_count = 1;
@ -1427,7 +1310,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "drink_apple.png^glass_bottle.png";
f->name = "apple_juice";
f->description = gettext("Apple Juice");
f->stackable = false;
f->drop_count = 1;
@ -1445,7 +1327,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "tea_leaves.png";
f->name = "tea_leaves";
f->description = gettext("Tea Leaves");
f->drop_count = 1;
f->consumable = true;
@ -1458,7 +1339,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "iron_bottle.png^tea_bag.png";
f->name = "tea_drink";
f->description = gettext("Tea");
f->stackable = false;
f->drop_count = 1;
@ -1477,7 +1357,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "coffee_beans.png";
f->name = "coffee_beans";
f->description = gettext("Roasted Coffee Beans");
f->drop_count = 1;
f->consumable = true;
@ -1491,7 +1370,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "iron_bottle.png^coffee_bean.png";
f->name = "coffee_drink";
f->description = gettext("Coffee");
f->stackable = false;
f->drop_count = 1;
@ -1510,7 +1388,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "iron_bottle.png";
f->name = "iron_bottle";
f->description = gettext("Iron Bottle");
f->drop_count = 1;
{
@ -1528,7 +1405,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "drink_water.png^glass_bottle.png";
f->name = "water_drink";
f->description = gettext("Bottle of Water");
f->stackable = false;
f->drop_count = 1;
@ -1543,7 +1419,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "iron_bottle.png^water_droplet.png";
f->name = "hotwater_drink";
f->description = gettext("Bottle of Hot Water");
f->stackable = false;
f->drop_count = 1;
@ -1559,7 +1434,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_MITHRIL_RAW;
f->texture = "mithril_raw.png";
f->name = "mithril_raw";
f->description = gettext("Raw Mithril");
f->cook_result = CONTENT_CRAFTITEM_MITHRIL_UNBOUND;
f->cook_type = COOK_FURNACE;
@ -1570,7 +1444,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_MITHRIL_UNBOUND;
f->texture = "mithril_unbound.png";
f->name = "mithril_unbound";
f->enchanted_item = CONTENT_CRAFTITEM_MITHRIL;
f->description = gettext("Unbound Mithril");
content_list_add("creative",i,1,0);
@ -1579,7 +1452,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_MITHRIL;
f->texture = "mithril_unbound.png";
f->name = "mithril_bound";
f->param_type = CPT_ENCHANTMENT;
f->description = gettext("Mithril");
f->overlay_base = "ingot_overlay";
@ -1589,7 +1461,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "lump_of_ruby.png";
f->name = "lump_of_ruby";
f->description = gettext("Ruby");
content_list_add("creative",i,1,0);
@ -1597,7 +1468,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "lump_of_turquoise.png";
f->name = "lump_of_turquiose";
f->description = gettext("Turquiose");
content_list_add("creative",i,1,0);
@ -1605,7 +1475,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "lump_of_amethyst.png";
f->name = "lump_of_amethyst";
f->description = gettext("Amethyst");
content_list_add("creative",i,1,0);
@ -1613,7 +1482,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "lump_of_sapphire.png";
f->name = "lump_of_sapphire";
f->description = gettext("Sapphire");
content_list_add("creative",i,1,0);
@ -1621,7 +1489,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "lump_of_sunstone.png";
f->name = "lump_of_sunstone";
f->description = gettext("Sunstone");
content_list_add("creative",i,1,0);
@ -1629,7 +1496,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "salt.png";
f->name = "salt_dust";
f->description = gettext("Salt");
content_list_add("creative",i,1,0);
@ -1637,7 +1503,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_OERKKI_DUST_SPACE;
f->texture = "oerkki_dust_space.png";
f->name = "oerkki_dust_space";
f->description = gettext("Space Dust");
f->drop_count = 1;
f->teleports = PLAYERFLAG_JUMP; // teleports player up 1500
@ -1656,7 +1521,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_BLUEBERRY;
f->texture = "harvested_blueberry.png";
f->name = "blueberry";
f->description = gettext("Blueberries");
f->consumable = true;
f->sound_use = "use-eat";
@ -1668,7 +1532,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_RASPBERRY;
f->texture = "harvested_raspberry.png";
f->name = "raspberry";
f->description = gettext("Raspberries");
f->consumable = true;
f->sound_use = "use-eat";
@ -1680,7 +1543,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_UPGRADE_STORAGE;
f->texture = "upgrade_storage.png";
f->name = "upgrade_storage";
f->description = gettext("Storage Upgrade");
crafting::set1To1Recipe(CONTENT_CHEST,CONTENT_CRAFTITEM_UPGRADE_STORAGE);
crafting::set1To1Recipe(CONTENT_CHEST_APPLE,CONTENT_CRAFTITEM_UPGRADE_STORAGE);
@ -1726,7 +1588,6 @@ void content_craftitem_init()
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = CONTENT_CRAFTITEM_UPGRADE_EXO;
f->texture = "upgrade_exo.png";
f->name = "upgrade_exo";
f->description = gettext("Exo Upgrade");
crafting::set1To1Recipe(CONTENT_CRAFTITEM_OERKKI_DUST,CONTENT_CRAFTITEM_UPGRADE_EXO);
{
@ -1739,4 +1600,12 @@ void content_craftitem_init()
}
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_CRAFTITEM_STRAW;
f = &g_content_craftitem_features[(i&~CONTENT_CRAFTITEM_MASK)];
f->content = i;
f->texture = "straw.png";
f->description = gettext("Straw");
content_list_add("creative",i,1,0);
}

View File

@ -33,8 +33,6 @@ struct CraftItemFeatures {
// if additional overlays are used, the texture name is made from
// <overlay_base>_<overlay>.png
std::string overlay_base;
// the old 'subname'
std::string name;
// tooltip used in inventory
char* description;
// the result of cooking this item
@ -223,5 +221,6 @@ CraftItemFeatures *content_craftitem_features(content_t i);
#define CONTENT_CRAFTITEM_UPGRADE_STORAGE (CONTENT_CRAFTITEM_MASK | 0x8B)
#define CONTENT_CRAFTITEM_UPGRADE_EXO (CONTENT_CRAFTITEM_MASK | 0x8C)
#define CONTENT_CRAFTITEM_BRONZE_INGOT (CONTENT_CRAFTITEM_MASK | 0x8D)
#define CONTENT_CRAFTITEM_STRAW (CONTENT_CRAFTITEM_MASK | 0x8E)
#endif

View File

@ -1356,7 +1356,6 @@ void content_mapnode_init(bool repeat)
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
f->ondig_special_drop = CONTENT_SPONGE;
f->ondig_special_tool = TT_BUCKET;
f->ondig_special_tool_append = std::string("_water");
f->type = CMT_DIRT;
f->dig_time = 1.0;
f->pressure_type = CST_CRUSHABLE;
@ -1374,7 +1373,7 @@ void content_mapnode_init(bool repeat)
f->type = CMT_PLANT;
f->dig_time = 0.6;
f->pressure_type = CST_CRUSHABLE;
crafting::setSoftBlockRecipe(CONTENT_DEADGRASS,CONTENT_HAY);
crafting::setSoftBlockRecipe(CONTENT_CRAFTITEM_STRAW,CONTENT_HAY);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);

View File

@ -52,9 +52,6 @@ void content_mapnode_plants(bool repeat)
f->fuel_time = BT_TREE;
f->type = CMT_TREE;
f->dig_time = 1.0;
f->ondig_special_drop = CONTENT_WOOD;
f->ondig_special_drop_count = 6;
f->ondig_special_tool = TT_AXE;
content_list_add("creative",i,1,0);
content_list_add("cooking",i,1,0);
@ -74,9 +71,6 @@ void content_mapnode_plants(bool repeat)
f->fuel_time = BT_TREE;
f->type = CMT_TREE;
f->dig_time = 1.0;
f->ondig_special_drop = CONTENT_APPLEWOOD;
f->ondig_special_drop_count = 6;
f->ondig_special_tool = TT_AXE;
content_list_add("creative",i,1,0);
content_list_add("cooking",i,1,0);
@ -96,9 +90,6 @@ void content_mapnode_plants(bool repeat)
f->fuel_time = BT_TREE;
f->type = CMT_TREE;
f->dig_time = 1.0;
f->ondig_special_drop = CONTENT_JUNGLEWOOD;
f->ondig_special_drop_count = 6;
f->ondig_special_tool = TT_AXE;
content_list_add("creative",i,1,0);
i = CONTENT_CONIFER_TREE;
@ -117,9 +108,6 @@ void content_mapnode_plants(bool repeat)
f->fuel_time = BT_TREE;
f->type = CMT_TREE;
f->dig_time = 0.8;
f->ondig_special_drop = CONTENT_WOOD_PINE;
f->ondig_special_drop_count = 6;
f->ondig_special_tool = TT_AXE;
content_list_add("creative",i,1,0);
content_list_add("cooking",i,1,0);
@ -215,6 +203,9 @@ void content_mapnode_plants(bool repeat)
f->draw_type = CDT_PLANTLIKE_FERN;
f->air_equivalent = true;
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
f->ondig_special_drop = CONTENT_CRAFTITEM_STRAW;
f->ondig_special_drop_count = 2;
f->ondig_special_tool = TT_KNIFE;
f->walkable = false;
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
f->fuel_time = BT_BUSH;
@ -893,7 +884,8 @@ void content_mapnode_plants(bool repeat)
f->param_type = CPT_LIGHT;
f->draw_type = CDT_PLANTLIKE;
f->air_equivalent = true;
f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1";
f->ondig_special_drop = CONTENT_CRAFTITEM_STRAW;
f->ondig_special_tool = TT_KNIFE;
f->walkable = false;
f->material_pointable = false;
f->flammable = 1; // can be replaced by fire if the node under it is set on fire
@ -916,7 +908,8 @@ void content_mapnode_plants(bool repeat)
f->param_type = CPT_LIGHT;
f->draw_type = CDT_PLANTLIKE;
f->air_equivalent = true;
f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_WILDGRASS_SHORT)+" 1";
f->ondig_special_drop = CONTENT_CRAFTITEM_STRAW;
f->ondig_special_tool = TT_KNIFE;
f->walkable = false;
f->material_pointable = false;
f->flammable = 1; // can be replaced by fire if the node under it is set on fire

View File

@ -489,9 +489,7 @@ void content_mapnode_special(bool repeat)
f->pressure_type = CST_CRUSHABLE;
f->suffocation_per_second = 0;
content_nodebox_roofcollide(f);
crafting::set1over4Recipe(CONTENT_DEADGRASS,CONTENT_DEADGRASS,CONTENT_ROOFTILE_THATCH);
crafting::set1over4Recipe(CONTENT_WILDGRASS_SHORT,CONTENT_WILDGRASS_SHORT,CONTENT_ROOFTILE_THATCH);
crafting::set1over4Recipe(CONTENT_JUNGLEGRASS,CONTENT_JUNGLEGRASS,CONTENT_ROOFTILE_THATCH);
crafting::set1over4Recipe(CONTENT_CRAFTITEM_STRAW,CONTENT_DEADGRASS,CONTENT_ROOFTILE_THATCH);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
@ -1598,13 +1596,12 @@ void content_mapnode_special(bool repeat)
f->description = gettext("Camp Fire");
f->draw_type = CDT_CAMPFIRELIKE;
f->param_type = CPT_LIGHT;
f->draw_type = CDT_CAMPFIRELIKE;
f->light_propagates = true;
f->sunlight_propagates = true;
f->walkable = false;
f->fuel_time = BT_CAMP_FIRE;
f->light_source = LIGHT_MAX-3;
f->damage_per_second = 40;
f->damage_per_second = 10;
f->setAllTextures("campfire_stones.png");
f->setTexture(1, "campfire_logs.png");
#ifndef SERVER

View File

@ -44,15 +44,6 @@ ToolItemFeatures & content_toolitem_features(content_t i)
return it->second;
}
ToolItemFeatures & content_toolitem_features(std::string subname)
{
for (std::map<content_t,struct ToolItemFeatures>::iterator i = g_content_toolitem_features.begin(); i!=g_content_toolitem_features.end(); i++) {
if (i->second.name == subname)
return i->second;
}
return g_content_toolitem_features[CONTENT_IGNORE];
}
int get_tool_use(tooluse_t *info, content_t target, uint16_t data, content_t toolid, uint16_t tooldata)
{
ToolItemFeatures *t_features;
@ -122,6 +113,7 @@ int get_tool_use(tooluse_t *info, content_t target, uint16_t data, content_t too
info->delay = 0.5;
break;
case TT_CLUB:
case TT_KNIFE:
type_match = true;
info->diggable = true;
info->data = (5.0-t_features->diginfo.time)*0.65;
@ -160,23 +152,21 @@ int get_tool_use(tooluse_t *info, content_t target, uint16_t data, content_t too
}
break;
case TT_PICK:
if (c_features->type == CMT_STONE && t_features->diginfo.level >= mineral_features(data).min_level) {
if (c_features->type == CMT_STONE && t_features->diginfo.level >= mineral_features(data).min_level)
type_match = true;
}
break;
case TT_SHOVEL:
if (c_features->type == CMT_DIRT) {
if (c_features->type == CMT_DIRT)
type_match = true;
}
break;
case TT_SWORD:
if (c_features->type == CMT_PLANT)
type_match = true;
break;
case TT_KNIFE:
case TT_SHEAR:
if (c_features->type == CMT_PLANT) {
if (c_features->type == CMT_PLANT)
type_match = true;
}
break;
case TT_BUCKET:
if (c_features->type == CMT_LIQUID) {
@ -188,6 +178,7 @@ int get_tool_use(tooluse_t *info, content_t target, uint16_t data, content_t too
if (c_features->type == CMT_DIRT)
type_match = true;
break;
case TT_HAMMER:
case TT_NONE:
default:
break;
@ -266,6 +257,8 @@ std::string toolitem_overlay(content_t content, std::string ol)
case TT_SPEAR:
base += "spear_";
break;
case TT_KNIFE:
case TT_HAMMER:
case TT_SPECIAL:
case TT_CLUB:
case TT_NONE:
@ -291,9 +284,8 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_SMALL_PICK;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_smallpick.png";
f->name = "WPick";
f->description = gettext("Small Stone Pick");
f->texture = "tool_handle.png^tool_head_pick_stone.png^tool_binding_pick.png";
f->description = gettext("Stone Pick");
f->type = TT_PICK;
f->diginfo.uses = 32;
f->diginfo.time = 3.0;
@ -311,67 +303,62 @@ void content_toolitem_init()
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_STONEPICK;
i = CONTENT_TOOLITEM_COPPER_PICK;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_stonepick.png";
f->name = "STPick";
f->description = gettext("Stone Pick");
f->texture = "tool_handle.png^tool_head_pick_copper.png^tool_binding_pick.png";
f->description = gettext("Copper Pick");
f->type = TT_PICK;
f->diginfo.uses = 64;
f->diginfo.time = 1.5;
f->diginfo.level = 2;
crafting::setPickRecipe(CONTENT_ROUGHSTONE,CONTENT_TOOLITEM_STONEPICK);
crafting::setPickRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_PICK);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_FLINTPICK;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_flintpick.png";
f->name = "FPick";
f->texture = "tool_handle.png^tool_head_pick_flint.png^tool_binding_pick.png";
f->description = gettext("Flint Pick");
f->type = TT_PICK;
f->diginfo.uses = 128;
f->diginfo.time = 1.75;
f->diginfo.uses = 64;
f->diginfo.time = 1.5;
f->diginfo.level = 2;
crafting::setPickRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINTPICK);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_BRONZE_PICK;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_handle.png^tool_head_pick_bronze.png^tool_binding_pick.png";
f->description = gettext("Bronze Pick");
f->type = TT_PICK;
f->diginfo.uses = 128;
f->diginfo.time = 1.25;
f->diginfo.level = 3;
crafting::setPickRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_PICK);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_IRON_PICK;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_ironpick.png";
f->name = "IronPick";
f->texture = "tool_handle.png^tool_head_pick_iron.png^tool_binding_pick.png";
f->description = gettext("Iron Pick");
f->type = TT_PICK;
f->diginfo.uses = 256;
f->diginfo.time = 1.0;
f->diginfo.level = 3;
crafting::setPickRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_PICK);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_RAW_PICK;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_raw_pick.png";
f->name = "mithril_raw_pick";
f->description = gettext("Raw Mithril Pick");
f->type = TT_PICK;
f->diginfo.uses = 512;
f->diginfo.time = 0.75;
f->diginfo.level = 4;
crafting::setPickRecipe(CONTENT_CRAFTITEM_MITHRIL_RAW,CONTENT_TOOLITEM_MITHRIL_RAW_PICK);
crafting::setPickRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_PICK);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_PICK;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_pick.png";
f->name = "mithril_unbound_pick";
f->texture = "tool_handle.png^tool_head_pick_mithril.png^tool_binding_pick.png";
f->description = gettext("Unbound Mithril Pick");
f->type = TT_PICK;
f->diginfo.uses = 1024;
@ -384,14 +371,13 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_MITHRIL_PICK;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_pick.png";
f->name = "mithril_pick";
f->texture = "tool_handle.png^tool_head_pick_mithril.png^tool_binding_pick.png";
f->description = gettext("Mithril Pick");
f->type = TT_PICK;
f->param_type = CPT_ENCHANTMENT;
f->diginfo.uses = 2048;
f->diginfo.time = 0.4;
f->diginfo.level = 5;
f->diginfo.level = 6;
f->has_punch_effect = false;
crafting::setPickRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_PICK);
content_list_add("craftguide",i,1,0);
@ -399,13 +385,12 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_CREATIVEPICK;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_creativepick.png";
f->name = "MesePick";
f->texture = "tool_handle.png^tool_head_pick_creative.png^tool_binding_pick.png";
f->description = gettext("Creative Pick");
f->type = TT_PICK;
f->diginfo.uses = 1000;
f->diginfo.time = 0.1;
f->diginfo.level = 4;
f->diginfo.level = 6;
f->has_punch_effect = false;
content_list_add("player-creative",i,1,0);
content_list_add("creative",i,1,0);
@ -415,9 +400,8 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_TROWEL;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_trowel.png";
f->name = "WShovel";
f->description = gettext("Stone Trowel");
f->texture = "tool_handle.png^tool_head_shovel_stone.png^tool_binding_shovel.png";
f->description = gettext("Stone Shovel");
f->type = TT_SHOVEL;
f->diginfo.uses = 32;
f->diginfo.time = 3.0;
@ -426,25 +410,23 @@ void content_toolitem_init()
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_STONESHOVEL;
i = CONTENT_TOOLITEM_COPPER_SHOVEL;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_stoneshovel.png";
f->name = "STShovel";
f->description = gettext("Stone Shovel");
f->texture = "tool_handle.png^tool_head_shovel_copper.png^tool_binding_shovel.png";
f->description = gettext("Copper Shovel");
f->type = TT_SHOVEL;
f->diginfo.uses = 64;
f->diginfo.time = 1.5;
f->diginfo.level = 1;
crafting::setShovelRecipe(CONTENT_ROUGHSTONE,CONTENT_TOOLITEM_STONESHOVEL);
crafting::setShovelRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_SHOVEL);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_FLINTSHOVEL;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_flintshovel.png";
f->name = "FShovel";
f->texture = "tool_handle.png^tool_head_shovel_flint.png^tool_binding_shovel.png";
f->description = gettext("Flint Shovel");
f->type = TT_SHOVEL;
f->diginfo.uses = 128;
@ -457,8 +439,7 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_IRON_SHOVEL;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_ironshovel.png";
f->name = "IronShovel";
f->texture = "tool_handle.png^tool_head_shovel_iron.png^tool_binding_shovel.png";
f->description = gettext("Iron Shovel");
f->type = TT_SHOVEL;
f->diginfo.uses = 256;
@ -468,25 +449,23 @@ void content_toolitem_init()
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_RAW_SHOVEL;
i = CONTENT_TOOLITEM_BRONZE_SHOVEL;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_raw_shovel.png";
f->name = "mithril_raw_shovel";
f->description = gettext("Raw Mithril Shovel");
f->texture = "tool_handle.png^tool_head_shovel_bronze.png^tool_binding_shovel.png";
f->description = gettext("Bronze Shovel");
f->type = TT_SHOVEL;
f->diginfo.uses = 512;
f->diginfo.time = 0.75;
f->diginfo.level = 4;
crafting::setShovelRecipe(CONTENT_CRAFTITEM_MITHRIL_RAW,CONTENT_TOOLITEM_MITHRIL_RAW_SHOVEL);
crafting::setShovelRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_SHOVEL);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_SHOVEL;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_shovel.png";
f->name = "mithril_unbound_shovel";
f->texture = "tool_handle.png^tool_head_shovel_mithril.png^tool_binding_shovel.png";
f->description = gettext("Unbound Mithril Shovel");
f->type = TT_SHOVEL;
f->diginfo.uses = 1024;
@ -499,8 +478,7 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_MITHRIL_SHOVEL;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_shovel.png";
f->name = "mithril_shovel";
f->texture = "tool_handle.png^tool_head_shovel_mithril.png^tool_binding_shovel.png";
f->description = gettext("Mithril Shovel");
f->type = TT_SHOVEL;
f->param_type = CPT_ENCHANTMENT;
@ -515,9 +493,8 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_SMALL_AXE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_smallaxe.png";
f->name = "WAxe";
f->description = gettext("Small Stone Axe");
f->texture = "tool_handle.png^tool_head_axe_stone.png^tool_binding_axe.png";
f->description = gettext("Stone Axe");
f->type = TT_AXE;
f->diginfo.uses = 32;
f->diginfo.time = 3.0;
@ -536,25 +513,23 @@ void content_toolitem_init()
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_STONEAXE;
i = CONTENT_TOOLITEM_COPPER_AXE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_stoneaxe.png";
f->name = "STAxe";
f->description = gettext("Stone Axe");
f->texture = "tool_handle.png^tool_head_axe_copper.png^tool_binding_axe.png";
f->description = gettext("Copper Axe");
f->type = TT_AXE;
f->diginfo.uses = 64;
f->diginfo.time = 1.5;
f->diginfo.level = 1;
crafting::setAxeRecipe(CONTENT_ROUGHSTONE,CONTENT_TOOLITEM_STONEAXE);
crafting::setAxeRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_AXE);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_FLINTAXE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_flintaxe.png";
f->name = "FAxe";
f->texture = "tool_handle.png^tool_head_axe_flint.png^tool_binding_axe.png";
f->description = gettext("Flint Axe");
f->type = TT_AXE;
f->diginfo.uses = 128;
@ -567,8 +542,7 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_IRON_AXE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_ironaxe.png";
f->name = "IronAxe";
f->texture = "tool_handle.png^tool_head_axe_iron.png^tool_binding_axe.png";
f->description = gettext("Iron Axe");
f->type = TT_AXE;
f->diginfo.uses = 256;
@ -578,25 +552,23 @@ void content_toolitem_init()
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_RAW_AXE;
i = CONTENT_TOOLITEM_BRONZE_AXE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_raw_axe.png";
f->name = "mithril_raw_axe";
f->description = gettext("Raw Mithril Axe");
f->texture = "tool_handle.png^tool_head_axe_bronze.png^tool_binding_axe.png";
f->description = gettext("Bronze Axe");
f->type = TT_AXE;
f->diginfo.uses = 512;
f->diginfo.time = 0.75;
f->diginfo.level = 4;
crafting::setAxeRecipe(CONTENT_CRAFTITEM_MITHRIL_RAW,CONTENT_TOOLITEM_MITHRIL_RAW_AXE);
crafting::setAxeRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_AXE);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_AXE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_axe.png";
f->name = "mithril_unbound_axe";
f->texture = "tool_handle.png^tool_head_axe_mithril.png^tool_binding_axe.png";
f->description = gettext("Unbound Mithril Axe");
f->type = TT_AXE;
f->diginfo.uses = 1024;
@ -609,8 +581,7 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_MITHRIL_AXE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_axe.png";
f->name = "mithril_axe";
f->texture = "tool_handle.png^tool_head_axe_mithril.png^tool_binding_axe.png";
f->description = gettext("Mithril Axe");
f->type = TT_AXE;
f->param_type = CPT_ENCHANTMENT;
@ -626,7 +597,6 @@ void content_toolitem_init()
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_woodclub.png";
f->name = "WSword";
f->description = gettext("Wooden Club");
f->type = TT_CLUB;
f->diginfo.uses = 32;
@ -641,7 +611,6 @@ void content_toolitem_init()
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_bow.png";
f->name = "bow";
f->description = gettext("Bow");
f->type = TT_SPECIAL;
f->diginfo.uses = 256;
@ -661,25 +630,36 @@ void content_toolitem_init()
/* SPEARS */
i = CONTENT_TOOLITEM_STONESPEAR;
i = CONTENT_TOOLITEM_STONE_SPEAR;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_stonespear.png";
f->name = "stone_spear";
f->texture = "tool_handle_long.png^tool_head_spear_stone.png^tool_binding_spear.png";
f->description = gettext("Stone Spear");
f->type = TT_SPEAR;
f->diginfo.uses = 64;
f->diginfo.time = 1.5;
f->diginfo.level = 1;
crafting::setSpearRecipe(CONTENT_ROUGHSTONE,CONTENT_TOOLITEM_STONESPEAR);
crafting::setSpearRecipe(CONTENT_ROCK,CONTENT_TOOLITEM_STONE_SPEAR);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_COPPER_SPEAR;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_handle_long.png^tool_head_spear_copper.png^tool_binding_spear.png";
f->description = gettext("Copper Spear");
f->type = TT_SPEAR;
f->diginfo.uses = 64;
f->diginfo.time = 1.5;
f->diginfo.level = 1;
crafting::setSpearRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_SPEAR);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_FLINTSPEAR;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_flintspear.png";
f->name = "flint_spear";
f->texture = "tool_handle_long.png^tool_head_spear_flint.png^tool_binding_spear.png";
f->description = gettext("Flint Spear");
f->type = TT_SPEAR;
f->diginfo.uses = 128;
@ -692,8 +672,7 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_IRON_SPEAR;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_ironspear.png";
f->name = "iron_spear";
f->texture = "tool_handle_long.png^tool_head_spear_iron.png^tool_binding_spear.png";
f->description = gettext("Iron Spear");
f->type = TT_SPEAR;
f->diginfo.uses = 256;
@ -703,25 +682,23 @@ void content_toolitem_init()
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_RAW_SPEAR;
i = CONTENT_TOOLITEM_BRONZE_SPEAR;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_raw_spear.png";
f->name = "mithril_raw_spear";
f->description = gettext("Raw Mithril Spear");
f->texture = "tool_handle_long.png^tool_head_spear_bronze.png^tool_binding_spear.png";
f->description = gettext("Bronze Spear");
f->type = TT_SPEAR;
f->diginfo.uses = 512;
f->diginfo.time = 0.75;
f->diginfo.level = 4;
crafting::setSpearRecipe(CONTENT_CRAFTITEM_MITHRIL_RAW,CONTENT_TOOLITEM_MITHRIL_RAW_SPEAR);
crafting::setSpearRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_SPEAR);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_SPEAR;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_spear.png";
f->name = "mithril_unbound_spear";
f->texture = "tool_handle_long.png^tool_head_spear_mithril.png^tool_binding_spear.png";
f->description = gettext("Unbound Mithril Spear");
f->type = TT_SPEAR;
f->diginfo.uses = 1024;
@ -734,8 +711,7 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_MITHRIL_SPEAR;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_spear.png";
f->name = "mithril_spear";
f->texture = "tool_handle_long.png^tool_head_spear_mithril.png^tool_binding_spear.png";
f->description = gettext("Mithril Spear");
f->type = TT_SPEAR;
f->param_type = CPT_ENCHANTMENT;
@ -747,25 +723,36 @@ void content_toolitem_init()
/* SWORDS */
i = CONTENT_TOOLITEM_STONESWORD;
i = CONTENT_TOOLITEM_COPPER_SWORD;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_stonesword.png";
f->name = "STSword";
f->description = gettext("Stone Sword");
f->texture = "tool_handle.png^tool_head_sword_copper.png^tool_binding_sword.png";
f->description = gettext("Copper Sword");
f->type = TT_SWORD;
f->diginfo.uses = 64;
f->diginfo.time = 1.5;
f->diginfo.level = 1;
crafting::setSwordRecipe(CONTENT_ROUGHSTONE,CONTENT_TOOLITEM_STONESWORD);
crafting::setSwordRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_SWORD);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_BRONZE_SWORD;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_handle.png^tool_head_sword_bronze.png^tool_binding_sword.png";
f->description = gettext("Bronze Sword");
f->type = TT_SWORD;
f->diginfo.uses = 128;
f->diginfo.time = 1.5;
f->diginfo.level = 4;
crafting::setSwordRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_SWORD);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_IRON_SWORD;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_ironsword.png";
f->name = "IronSword";
f->texture = "tool_handle.png^tool_head_sword_iron.png^tool_binding_sword.png";
f->description = gettext("Iron Sword");
f->type = TT_SWORD;
f->diginfo.uses = 256;
@ -775,25 +762,10 @@ void content_toolitem_init()
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_RAW_SWORD;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_raw_sword.png";
f->name = "mithril_raw_sword";
f->description = gettext("Raw Mithril Sword");
f->type = TT_SWORD;
f->diginfo.uses = 512;
f->diginfo.time = 0.75;
f->diginfo.level = 4;
crafting::setSwordRecipe(CONTENT_CRAFTITEM_MITHRIL_RAW,CONTENT_TOOLITEM_MITHRIL_RAW_SWORD);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_SWORD;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_sword.png";
f->name = "mithril_unbound_sword";
f->texture = "tool_handle.png^tool_head_sword_mithril.png^tool_binding_sword.png";
f->description = gettext("Unbound Mithril Sword");
f->type = TT_SWORD;
f->diginfo.uses = 1024;
@ -806,8 +778,7 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_MITHRIL_SWORD;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_sword.png";
f->name = "mithril_sword";
f->texture = "tool_handle.png^tool_head_sword_mithril.png^tool_binding_sword.png";
f->description = gettext("Mithril Sword");
f->type = TT_SWORD;
f->param_type = CPT_ENCHANTMENT;
@ -823,7 +794,6 @@ void content_toolitem_init()
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_flintshears.png";
f->name = "FShears";
f->description = gettext("Flint Shears");
f->type = TT_SHEAR;
f->diginfo.uses = 128;
@ -833,11 +803,23 @@ void content_toolitem_init()
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_COPPER_SHEARS;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_copper_shears.png";
f->description = gettext("Copper Shears");
f->type = TT_SHEAR;
f->diginfo.uses = 128;
f->diginfo.time = 1.5;
f->diginfo.level = 2;
crafting::setShearsRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_SHEARS);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_IRON_SHEARS;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_ironshears.png";
f->name = "Shears";
f->description = gettext("Iron Shears");
f->type = TT_SHEAR;
f->diginfo.uses = 256;
@ -853,7 +835,6 @@ void content_toolitem_init()
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_woodbucket.png";
f->name = "WBucket";
f->description = gettext("Wooden Bucket");
f->liquids_pointable = true;
f->type = TT_BUCKET;
@ -872,7 +853,6 @@ void content_toolitem_init()
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_tinbucket.png";
f->name = "TinBucket";
f->description = gettext("Tin Bucket");
f->liquids_pointable = true;
f->type = TT_BUCKET;
@ -890,7 +870,6 @@ void content_toolitem_init()
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_ironbucket.png";
f->name = "IronBucket";
f->description = gettext("Iron Bucket");
f->liquids_pointable = true;
f->type = TT_BUCKET;
@ -904,13 +883,106 @@ void content_toolitem_init()
content_list_add("creative",i,1,CONTENT_WATERSOURCE);
content_list_add("creative",i,1,CONTENT_LAVASOURCE);
/* KNIVES */
i = CONTENT_TOOLITEM_STONE_KNIFE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_handle_short.png^tool_head_knife_stone.png";
f->description = gettext("Stone Knife");
f->type = TT_KNIFE;
f->diginfo.uses = 32;
f->diginfo.time = 3.0;
f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_ROCK,CONTENT_TOOLITEM_STONE_KNIFE);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_COPPER_KNIFE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_handle_short.png^tool_head_knife_copper.png";
f->description = gettext("Copper Knife");
f->type = TT_KNIFE;
f->diginfo.uses = 64;
f->diginfo.time = 2.0;
f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_KNIFE);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_FLINT_KNIFE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_handle_short.png^tool_head_knife_flint.png";
f->description = gettext("Flint Knife");
f->type = TT_KNIFE;
f->diginfo.uses = 64;
f->diginfo.time = 2.0;
f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINT_KNIFE);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_BRONZE_KNIFE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_handle_short.png^tool_head_knife_bronze.png";
f->description = gettext("Bronze Knife");
f->type = TT_KNIFE;
f->diginfo.uses = 128;
f->diginfo.time = 1.5;
f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_KNIFE);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_IRON_KNIFE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_handle_short.png^tool_head_knife_iron.png";
f->description = gettext("Iron Knife");
f->type = TT_KNIFE;
f->diginfo.uses = 256;
f->diginfo.time = 1.0;
f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_KNIFE);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_KNIFE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_handle_short.png^tool_head_knife_mithril.png";
f->description = gettext("Unbound Mithril Knife");
f->type = TT_KNIFE;
f->diginfo.uses = 1024;
f->diginfo.time = 0.5;
f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_KNIFE);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_KNIFE;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_handle_short.png^tool_head_knife_mithril.png";
f->description = gettext("Mithril Knife");
f->type = TT_KNIFE;
f->param_type = CPT_ENCHANTMENT;
f->diginfo.uses = 2048;
f->diginfo.time = 0.5;
f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_KNIFE);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
/* SPECIAL TOOLS */
i = CONTENT_TOOLITEM_FIRESTARTER;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_fire_starter.png";
f->name = "FireStarter";
f->description = gettext("Fire Starter");
f->liquids_pointable = true;
f->type = TT_SPECIAL;
@ -923,8 +995,7 @@ void content_toolitem_init()
i = CONTENT_TOOLITEM_CROWBAR;
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "crowbar.png";
f->name = "crowbar";
f->texture = "tool_crowbar.png";
f->description = gettext("Crowbar");
f->type = TT_SPECIAL;
f->diginfo.level = 3;
@ -937,7 +1008,6 @@ void content_toolitem_init()
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_key.png";
f->name = "key";
f->description = gettext("Key");
f->type = TT_SPECIAL;
f->diginfo.level = 4;
@ -950,7 +1020,6 @@ void content_toolitem_init()
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mithril_key.png";
f->name = "mithrilkey";
f->description = gettext("Mithril Key");
f->type = TT_SPECIAL;
f->diginfo.level = 5;
@ -970,7 +1039,6 @@ void content_toolitem_init()
f = &g_content_toolitem_features[i];
f->content = i;
f->texture = "tool_mob_spawner.png";
f->name = "mob_spawner";
f->description = gettext("Mob Spawner");
f->type = TT_SPECIAL;
f->diginfo.level = 4;

View File

@ -15,6 +15,8 @@ enum ToolType {
TT_BUCKET,
TT_SWORD,
TT_SPEAR,
TT_KNIFE,
TT_HAMMER,
TT_CLUB
};
@ -27,8 +29,6 @@ typedef struct diginfo_s {
struct ToolItemFeatures {
content_t content;
std::string texture;
// the old 'subname'
std::string name;
// tooltip used in inventory
char* description;
// the result of cooking this item
@ -74,7 +74,6 @@ struct ToolItemFeatures {
ToolItemFeatures():
content(CONTENT_IGNORE),
texture("unknown_item.png"),
name(""),
cook_result(""),
cook_type(COOK_ANY),
crush_result(""),
@ -120,17 +119,17 @@ ToolItemFeatures & content_toolitem_features(content_t i);
ToolItemFeatures & content_toolitem_features(std::string subname);
#define CONTENT_TOOLITEM_SMALL_PICK (CONTENT_TOOLITEM_MASK | 0x01)
#define CONTENT_TOOLITEM_STONEPICK (CONTENT_TOOLITEM_MASK | 0x02)
#define CONTENT_TOOLITEM_COPPER_PICK (CONTENT_TOOLITEM_MASK | 0x02)
#define CONTENT_TOOLITEM_IRON_PICK (CONTENT_TOOLITEM_MASK | 0x03)
#define CONTENT_TOOLITEM_CREATIVEPICK (CONTENT_TOOLITEM_MASK | 0x04)
#define CONTENT_TOOLITEM_TROWEL (CONTENT_TOOLITEM_MASK | 0x05)
#define CONTENT_TOOLITEM_STONESHOVEL (CONTENT_TOOLITEM_MASK | 0x06)
#define CONTENT_TOOLITEM_COPPER_SHOVEL (CONTENT_TOOLITEM_MASK | 0x06)
#define CONTENT_TOOLITEM_IRON_SHOVEL (CONTENT_TOOLITEM_MASK | 0x07)
#define CONTENT_TOOLITEM_SMALL_AXE (CONTENT_TOOLITEM_MASK | 0x08)
#define CONTENT_TOOLITEM_STONEAXE (CONTENT_TOOLITEM_MASK | 0x09)
#define CONTENT_TOOLITEM_COPPER_AXE (CONTENT_TOOLITEM_MASK | 0x09)
#define CONTENT_TOOLITEM_IRON_AXE (CONTENT_TOOLITEM_MASK | 0x0A)
#define CONTENT_TOOLITEM_CLUB (CONTENT_TOOLITEM_MASK | 0x0B)
#define CONTENT_TOOLITEM_STONESWORD (CONTENT_TOOLITEM_MASK | 0x0C)
#define CONTENT_TOOLITEM_COPPER_SWORD (CONTENT_TOOLITEM_MASK | 0x0C)
#define CONTENT_TOOLITEM_IRON_SWORD (CONTENT_TOOLITEM_MASK | 0x0D)
#define CONTENT_TOOLITEM_IRON_SHEARS (CONTENT_TOOLITEM_MASK | 0x0E)
#define CONTENT_TOOLITEM_WBUCKET (CONTENT_TOOLITEM_MASK | 0x0F)
@ -147,15 +146,15 @@ ToolItemFeatures & content_toolitem_features(std::string subname);
#define CONTENT_TOOLITEM_FLINTAXE (CONTENT_TOOLITEM_MASK | 0x1A)
#define CONTENT_TOOLITEM_FLINTSHEARS (CONTENT_TOOLITEM_MASK | 0x1B)
#define CONTENT_TOOLITEM_KEY (CONTENT_TOOLITEM_MASK | 0x1C)
#define CONTENT_TOOLITEM_STONESPEAR (CONTENT_TOOLITEM_MASK | 0x1D)
#define CONTENT_TOOLITEM_STONE_SPEAR (CONTENT_TOOLITEM_MASK | 0x1D)
#define CONTENT_TOOLITEM_FLINTSPEAR (CONTENT_TOOLITEM_MASK | 0x1E)
#define CONTENT_TOOLITEM_IRON_SPEAR (CONTENT_TOOLITEM_MASK | 0x1F)
#define CONTENT_TOOLITEM_BOW (CONTENT_TOOLITEM_MASK | 0x20)
#define CONTENT_TOOLITEM_MITHRIL_RAW_PICK (CONTENT_TOOLITEM_MASK | 0x21)
#define CONTENT_TOOLITEM_MITHRIL_RAW_SHOVEL (CONTENT_TOOLITEM_MASK | 0x22)
#define CONTENT_TOOLITEM_MITHRIL_RAW_AXE (CONTENT_TOOLITEM_MASK | 0x23)
#define CONTENT_TOOLITEM_MITHRIL_RAW_SWORD (CONTENT_TOOLITEM_MASK | 0x24)
#define CONTENT_TOOLITEM_MITHRIL_RAW_SPEAR (CONTENT_TOOLITEM_MASK | 0x25)
#define CONTENT_TOOLITEM_BRONZE_PICK (CONTENT_TOOLITEM_MASK | 0x21)
#define CONTENT_TOOLITEM_BRONZE_SHOVEL (CONTENT_TOOLITEM_MASK | 0x22)
#define CONTENT_TOOLITEM_BRONZE_AXE (CONTENT_TOOLITEM_MASK | 0x23)
#define CONTENT_TOOLITEM_BRONZE_SWORD (CONTENT_TOOLITEM_MASK | 0x24)
#define CONTENT_TOOLITEM_BRONZE_SPEAR (CONTENT_TOOLITEM_MASK | 0x25)
#define CONTENT_TOOLITEM_MITHRIL_UNBOUND_PICK (CONTENT_TOOLITEM_MASK | 0x26)
#define CONTENT_TOOLITEM_MITHRIL_UNBOUND_SHOVEL (CONTENT_TOOLITEM_MASK | 0x27)
#define CONTENT_TOOLITEM_MITHRIL_UNBOUND_AXE (CONTENT_TOOLITEM_MASK | 0x28)
@ -168,5 +167,14 @@ ToolItemFeatures & content_toolitem_features(std::string subname);
#define CONTENT_TOOLITEM_MITHRIL_SPEAR (CONTENT_TOOLITEM_MASK | 0x2F)
#define CONTENT_TOOLITEM_MOB_SPAWNER (CONTENT_TOOLITEM_MASK | 0x30)
#define CONTENT_TOOLITEM_MITHRIL_KEY (CONTENT_TOOLITEM_MASK | 0x31)
#define CONTENT_TOOLITEM_STONE_KNIFE (CONTENT_TOOLITEM_MASK | 0x32)
#define CONTENT_TOOLITEM_COPPER_KNIFE (CONTENT_TOOLITEM_MASK | 0x33)
#define CONTENT_TOOLITEM_FLINT_KNIFE (CONTENT_TOOLITEM_MASK | 0x34)
#define CONTENT_TOOLITEM_BRONZE_KNIFE (CONTENT_TOOLITEM_MASK | 0x35)
#define CONTENT_TOOLITEM_IRON_KNIFE (CONTENT_TOOLITEM_MASK | 0x36)
#define CONTENT_TOOLITEM_MITHRIL_UNBOUND_KNIFE (CONTENT_TOOLITEM_MASK | 0x37)
#define CONTENT_TOOLITEM_MITHRIL_KNIFE (CONTENT_TOOLITEM_MASK | 0x38)
#define CONTENT_TOOLITEM_COPPER_SPEAR (CONTENT_TOOLITEM_MASK | 0x39)
#define CONTENT_TOOLITEM_COPPER_SHEARS (CONTENT_TOOLITEM_MASK | 0x3A)
#endif

View File

@ -109,12 +109,6 @@ content_t InventoryItem::info(std::istream &is, u16 *count, u16 *wear, u16 *data
is>>(*count);
is>>(*data);
c = material;
}else if(name == "ToolItem") {
std::string toolname;
std::getline(is, toolname, ' ');
is>>(*wear);
ToolItem itm(toolname, *wear, 0);
c = itm.getContent();
}else if(name == "ToolItem2") {
u16 material;
is>>material;

View File

@ -331,18 +331,10 @@ public:
class ToolItem : public InventoryItem
{
public:
ToolItem(std::string toolname, u16 wear, u16 data):
InventoryItem(1,data)
{
m_wear = wear;
m_toolname = content_toolitem_features(toolname).name;
m_content = content_toolitem_features(toolname).content;
}
ToolItem(content_t content, u16 wear, u16 data):
InventoryItem(1,data)
{
m_wear = wear;
m_toolname = content_toolitem_features(content).name;
m_content = content_toolitem_features(content).content;
}
/*
@ -400,10 +392,6 @@ public:
/*
Special methods
*/
std::string getToolName()
{
return m_toolname;
}
virtual u16 getWear()
{
return m_wear;
@ -421,7 +409,6 @@ public:
}
virtual void setWear(u16 wear) {m_wear = wear;}
private:
std::string m_toolname;
u16 m_wear;
};

View File

@ -872,6 +872,7 @@ int main(int argc, char *argv[])
// Set the window caption
device->setWindowCaption(L"Voxelands");
drawLoadingScreen(device,L"");
// Create time getter
g_timegetter = new IrrlichtTimeGetter(device);

View File

@ -413,10 +413,6 @@ struct ContentFeatures
content_t ondig_special_drop;
u16 ondig_special_drop_count;
u16 ondig_special_tool;
// for above, when dug the special tool's name has this appended to it
// used for sponge filling buckets
// if set, ondig_special_drop replaces the node, instead of being picked up
std::string ondig_special_tool_append;
// when punched, this node will replace the punched node
content_t onpunch_replace_node;
// whether onpunch replace node works within borderstone
@ -595,7 +591,6 @@ struct ContentFeatures
ondig_special_drop = CONTENT_IGNORE;
ondig_special_drop_count = 1;
ondig_special_tool = 0;
ondig_special_tool_append = "";
onpunch_replace_node = CONTENT_IGNORE;
onpunch_replace_respects_borderstone = false;
onpunch_gives_inventory = false;

View File

@ -3511,42 +3511,11 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
}else if (
selected_node_features.ondig_special_drop != CONTENT_IGNORE
&& selected_node_features.ondig_special_tool == wielded_tool_features.type
&& (
selected_node_features.liquid_type != LIQUID_NONE
|| wielded_tool_features.diginfo.level > 1
)
) {
if (selected_node_features.ondig_special_tool_append != "") {
std::string dug_s = std::string("ToolItem ");
dug_s += ((ToolItem*)wielditem)->getToolName();
dug_s += selected_node_features.ondig_special_tool_append;
dug_s += " 1";
std::istringstream is(dug_s, std::ios::binary);
item = InventoryItem::deSerialize(is);
InventoryItem *ritem = mlist->changeItem(item_i,item);
if (ritem)
delete ritem;
item = NULL;
{
MapNode n = selected_node;
n.setContent(selected_node_features.ondig_special_drop);
sendAddNode(p_under, n, 0, &far_players, 30);
{
MapEditEventIgnorer ign(&m_ignore_map_edit_events);
std::string p_name = std::string(player->getName());
m_env.getMap().addNodeAndUpdate(p_under, n, modified_blocks, p_name);
}
node_replaced = true;
}
UpdateCrafting(player->peer_id);
SendInventory(player->peer_id);
}else{
item = InventoryItem::create(
selected_node_features.ondig_special_drop,
selected_node_features.ondig_special_drop_count
);
}
item = InventoryItem::create(
selected_node_features.ondig_special_drop,
selected_node_features.ondig_special_drop_count
);
}else if (selected_node_features.liquid_type != LIQUID_NONE) {
if (selected_node_features.liquid_type == LIQUID_SOURCE && wielded_tool_features.type == TT_BUCKET) {
if (selected_node_features.damage_per_second > 0 && !wielded_tool_features.damaging_nodes_diggable) {