Put flint before copper and bronze before iron as this is how things progressed historically.

Consistent values for uses/time/level for each material, defined in content_toolitem.h
All weapons and none core tools have a dig level of 1.
This commit is contained in:
JonnyW 2018-03-02 21:38:33 +00:00
parent 375a1ec93f
commit 617f5c91d4
3 changed files with 384 additions and 328 deletions

View File

@ -287,9 +287,9 @@ void content_toolitem_init()
f->texture = "tool_handle.png^tool_head_pick_stone.png^tool_binding_pick.png"; f->texture = "tool_handle.png^tool_head_pick_stone.png^tool_binding_pick.png";
f->description = gettext("Stone Pick"); f->description = gettext("Stone Pick");
f->type = TT_PICK; f->type = TT_PICK;
f->diginfo.uses = 32; f->diginfo.uses = STONE_USES;
f->diginfo.time = 3.0; f->diginfo.time = STONE_TIME;
f->diginfo.level = 1; f->diginfo.level = STONE_LEVEL;
{ {
content_t r[9] = { content_t r[9] = {
CONTENT_ROCK, CONTENT_ROCK, CONTENT_ROCK, CONTENT_ROCK, CONTENT_ROCK, CONTENT_ROCK,
@ -303,41 +303,41 @@ void content_toolitem_init()
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_COPPER_PICK;
f = &g_content_toolitem_features[i];
f->content = i;
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_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; i = CONTENT_TOOLITEM_FLINTPICK;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle.png^tool_head_pick_flint.png^tool_binding_pick.png"; f->texture = "tool_handle.png^tool_head_pick_flint.png^tool_binding_pick.png";
f->description = gettext("Flint Pick"); f->description = gettext("Flint Pick");
f->type = TT_PICK; f->type = TT_PICK;
f->diginfo.uses = 64; f->diginfo.uses = FLINT_USES;
f->diginfo.time = 1.5; f->diginfo.time = FLINT_TIME;
f->diginfo.level = 2; f->diginfo.level = FLINT_LEVEL;
crafting::setPickRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINTPICK); crafting::setPickRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINTPICK);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_COPPER_PICK;
f = &g_content_toolitem_features[i];
f->content = i;
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 = COPPER_USES;
f->diginfo.time = COPPER_TIME;
f->diginfo.level = COPPER_LEVEL;
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_BRONZE_PICK; i = CONTENT_TOOLITEM_BRONZE_PICK;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle.png^tool_head_pick_bronze.png^tool_binding_pick.png"; f->texture = "tool_handle.png^tool_head_pick_bronze.png^tool_binding_pick.png";
f->description = gettext("Bronze Pick"); f->description = gettext("Bronze Pick");
f->type = TT_PICK; f->type = TT_PICK;
f->diginfo.uses = 128; f->diginfo.uses = BRONZE_USES;
f->diginfo.time = 1.25; f->diginfo.time = BRONZE_TIME;
f->diginfo.level = 3; f->diginfo.level = BRONZE_LEVEL;
crafting::setPickRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_PICK); crafting::setPickRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_PICK);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -348,9 +348,9 @@ void content_toolitem_init()
f->texture = "tool_handle.png^tool_head_pick_iron.png^tool_binding_pick.png"; f->texture = "tool_handle.png^tool_head_pick_iron.png^tool_binding_pick.png";
f->description = gettext("Iron Pick"); f->description = gettext("Iron Pick");
f->type = TT_PICK; f->type = TT_PICK;
f->diginfo.uses = 256; f->diginfo.uses = IRON_USES;
f->diginfo.time = 1.0; f->diginfo.time = IRON_TIME;
f->diginfo.level = 4; f->diginfo.level = IRON_LEVEL;
crafting::setPickRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_PICK); crafting::setPickRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_PICK);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -361,9 +361,9 @@ void content_toolitem_init()
f->texture = "tool_handle.png^tool_head_pick_mithril.png^tool_binding_pick.png"; f->texture = "tool_handle.png^tool_head_pick_mithril.png^tool_binding_pick.png";
f->description = gettext("Unbound Mithril Pick"); f->description = gettext("Unbound Mithril Pick");
f->type = TT_PICK; f->type = TT_PICK;
f->diginfo.uses = 1024; f->diginfo.uses = U_MITHRIL_USES;
f->diginfo.time = 0.6; f->diginfo.time = U_MITHRIL_TIME;
f->diginfo.level = 5; f->diginfo.level = U_MITHRIL_LEVEL;
crafting::setPickRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_PICK); crafting::setPickRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_PICK);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -375,9 +375,9 @@ void content_toolitem_init()
f->description = gettext("Mithril Pick"); f->description = gettext("Mithril Pick");
f->type = TT_PICK; f->type = TT_PICK;
f->param_type = CPT_ENCHANTMENT; f->param_type = CPT_ENCHANTMENT;
f->diginfo.uses = 2048; f->diginfo.uses = E_MITHRIL_USES;
f->diginfo.time = 0.4; f->diginfo.time = E_MITHRIL_TIME;
f->diginfo.level = 6; f->diginfo.level = E_MITHRIL_LEVEL;
f->has_punch_effect = false; f->has_punch_effect = false;
crafting::setPickRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_PICK); crafting::setPickRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_PICK);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -403,49 +403,36 @@ void content_toolitem_init()
f->texture = "tool_handle.png^tool_head_shovel_stone.png^tool_binding_shovel.png"; f->texture = "tool_handle.png^tool_head_shovel_stone.png^tool_binding_shovel.png";
f->description = gettext("Stone Shovel"); f->description = gettext("Stone Shovel");
f->type = TT_SHOVEL; f->type = TT_SHOVEL;
f->diginfo.uses = 32; f->diginfo.uses = STONE_USES;
f->diginfo.time = 3.0; f->diginfo.time = STONE_TIME;
f->diginfo.level = 1; f->diginfo.level = STONE_LEVEL;
crafting::set1over1Recipe(CONTENT_ROCK,CONTENT_CRAFTITEM_STICK,i); crafting::set1over1Recipe(CONTENT_ROCK,CONTENT_CRAFTITEM_STICK,i);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_COPPER_SHOVEL;
f = &g_content_toolitem_features[i];
f->content = i;
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_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; i = CONTENT_TOOLITEM_FLINTSHOVEL;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle.png^tool_head_shovel_flint.png^tool_binding_shovel.png"; f->texture = "tool_handle.png^tool_head_shovel_flint.png^tool_binding_shovel.png";
f->description = gettext("Flint Shovel"); f->description = gettext("Flint Shovel");
f->type = TT_SHOVEL; f->type = TT_SHOVEL;
f->diginfo.uses = 128; f->diginfo.uses = FLINT_USES;
f->diginfo.time = 1.75; f->diginfo.time = FLINT_TIME;
f->diginfo.level = 2; f->diginfo.level = FLINT_LEVEL;
crafting::setShovelRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINTSHOVEL); crafting::setShovelRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINTSHOVEL);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_IRON_SHOVEL; i = CONTENT_TOOLITEM_COPPER_SHOVEL;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle.png^tool_head_shovel_iron.png^tool_binding_shovel.png"; f->texture = "tool_handle.png^tool_head_shovel_copper.png^tool_binding_shovel.png";
f->description = gettext("Iron Shovel"); f->description = gettext("Copper Shovel");
f->type = TT_SHOVEL; f->type = TT_SHOVEL;
f->diginfo.uses = 256; f->diginfo.uses = COPPER_USES;
f->diginfo.time = 1.0; f->diginfo.time = COPPER_TIME;
f->diginfo.level = 3; f->diginfo.level = COPPER_LEVEL;
crafting::setShovelRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_SHOVEL); crafting::setShovelRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_SHOVEL);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -455,22 +442,35 @@ void content_toolitem_init()
f->texture = "tool_handle.png^tool_head_shovel_bronze.png^tool_binding_shovel.png"; f->texture = "tool_handle.png^tool_head_shovel_bronze.png^tool_binding_shovel.png";
f->description = gettext("Bronze Shovel"); f->description = gettext("Bronze Shovel");
f->type = TT_SHOVEL; f->type = TT_SHOVEL;
f->diginfo.uses = 512; f->diginfo.uses = BRONZE_USES;
f->diginfo.time = 0.75; f->diginfo.time = BRONZE_TIME;
f->diginfo.level = 4; f->diginfo.level = BRONZE_LEVEL;
crafting::setShovelRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_SHOVEL); crafting::setShovelRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_SHOVEL);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_IRON_SHOVEL;
f = &g_content_toolitem_features[i];
f->content = i;
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 = IRON_USES;
f->diginfo.time = IRON_TIME;
f->diginfo.level = IRON_LEVEL;
crafting::setShovelRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_SHOVEL);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_SHOVEL; i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_SHOVEL;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle.png^tool_head_shovel_mithril.png^tool_binding_shovel.png"; f->texture = "tool_handle.png^tool_head_shovel_mithril.png^tool_binding_shovel.png";
f->description = gettext("Unbound Mithril Shovel"); f->description = gettext("Unbound Mithril Shovel");
f->type = TT_SHOVEL; f->type = TT_SHOVEL;
f->diginfo.uses = 1024; f->diginfo.uses = U_MITHRIL_USES;
f->diginfo.time = 0.6; f->diginfo.time = U_MITHRIL_TIME;
f->diginfo.level = 5; f->diginfo.level = U_MITHRIL_LEVEL;
crafting::setShovelRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_SHOVEL); crafting::setShovelRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_SHOVEL);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -482,9 +482,9 @@ void content_toolitem_init()
f->description = gettext("Mithril Shovel"); f->description = gettext("Mithril Shovel");
f->type = TT_SHOVEL; f->type = TT_SHOVEL;
f->param_type = CPT_ENCHANTMENT; f->param_type = CPT_ENCHANTMENT;
f->diginfo.uses = 2048; f->diginfo.uses = E_MITHRIL_USES;
f->diginfo.time = 0.4; f->diginfo.time = E_MITHRIL_TIME;
f->diginfo.level = 5; f->diginfo.level = E_MITHRIL_LEVEL;
crafting::setShovelRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_SHOVEL); crafting::setShovelRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_SHOVEL);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -496,9 +496,9 @@ void content_toolitem_init()
f->texture = "tool_handle.png^tool_head_axe_stone.png^tool_binding_axe.png"; f->texture = "tool_handle.png^tool_head_axe_stone.png^tool_binding_axe.png";
f->description = gettext("Stone Axe"); f->description = gettext("Stone Axe");
f->type = TT_AXE; f->type = TT_AXE;
f->diginfo.uses = 32; f->diginfo.uses = STONE_USES;
f->diginfo.time = 3.0; f->diginfo.time = STONE_TIME;
f->diginfo.level = 1; f->diginfo.level = STONE_LEVEL;
{ {
content_t r[9] = { content_t r[9] = {
CONTENT_ROCK, CONTENT_ROCK, CONTENT_IGNORE, CONTENT_ROCK, CONTENT_ROCK, CONTENT_IGNORE,
@ -513,42 +513,29 @@ void content_toolitem_init()
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_COPPER_AXE;
f = &g_content_toolitem_features[i];
f->content = i;
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_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; i = CONTENT_TOOLITEM_FLINTAXE;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle.png^tool_head_axe_flint.png^tool_binding_axe.png"; f->texture = "tool_handle.png^tool_head_axe_flint.png^tool_binding_axe.png";
f->description = gettext("Flint Axe"); f->description = gettext("Flint Axe");
f->type = TT_AXE; f->type = TT_AXE;
f->diginfo.uses = 128; f->diginfo.uses = FLINT_USES;
f->diginfo.time = 1.75; f->diginfo.time = FLINT_TIME;
f->diginfo.level = 2; f->diginfo.level = FLINT_LEVEL;
crafting::setAxeRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINTAXE); crafting::setAxeRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINTAXE);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_IRON_AXE; i = CONTENT_TOOLITEM_COPPER_AXE;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle.png^tool_head_axe_iron.png^tool_binding_axe.png"; f->texture = "tool_handle.png^tool_head_axe_copper.png^tool_binding_axe.png";
f->description = gettext("Iron Axe"); f->description = gettext("Copper Axe");
f->type = TT_AXE; f->type = TT_AXE;
f->diginfo.uses = 256; f->diginfo.uses = COPPER_USES;
f->diginfo.time = 1.0; f->diginfo.time = COPPER_TIME;
f->diginfo.level = 3; f->diginfo.level = COPPER_LEVEL;
crafting::setAxeRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_AXE); crafting::setAxeRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_AXE);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -558,22 +545,35 @@ void content_toolitem_init()
f->texture = "tool_handle.png^tool_head_axe_bronze.png^tool_binding_axe.png"; f->texture = "tool_handle.png^tool_head_axe_bronze.png^tool_binding_axe.png";
f->description = gettext("Bronze Axe"); f->description = gettext("Bronze Axe");
f->type = TT_AXE; f->type = TT_AXE;
f->diginfo.uses = 512; f->diginfo.uses = BRONZE_USES;
f->diginfo.time = 0.75; f->diginfo.time = BRONZE_TIME;
f->diginfo.level = 4; f->diginfo.level = BRONZE_LEVEL;
crafting::setAxeRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_AXE); crafting::setAxeRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_AXE);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_IRON_AXE;
f = &g_content_toolitem_features[i];
f->content = i;
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 = IRON_USES;
f->diginfo.time = IRON_TIME;
f->diginfo.level = IRON_LEVEL;
crafting::setAxeRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_AXE);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_AXE; i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_AXE;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle.png^tool_head_axe_mithril.png^tool_binding_axe.png"; f->texture = "tool_handle.png^tool_head_axe_mithril.png^tool_binding_axe.png";
f->description = gettext("Unbound Mithril Axe"); f->description = gettext("Unbound Mithril Axe");
f->type = TT_AXE; f->type = TT_AXE;
f->diginfo.uses = 1024; f->diginfo.uses = U_MITHRIL_USES;
f->diginfo.time = 0.6; f->diginfo.time = U_MITHRIL_TIME;
f->diginfo.level = 5; f->diginfo.level = U_MITHRIL_LEVEL;
crafting::setAxeRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_AXE); crafting::setAxeRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_AXE);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -585,9 +585,9 @@ void content_toolitem_init()
f->description = gettext("Mithril Axe"); f->description = gettext("Mithril Axe");
f->type = TT_AXE; f->type = TT_AXE;
f->param_type = CPT_ENCHANTMENT; f->param_type = CPT_ENCHANTMENT;
f->diginfo.uses = 2048; f->diginfo.uses = E_MITHRIL_USES;
f->diginfo.time = 0.4; f->diginfo.time = E_MITHRIL_TIME;
f->diginfo.level = 5; f->diginfo.level = E_MITHRIL_LEVEL;
crafting::setAxeRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_AXE); crafting::setAxeRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_AXE);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -613,9 +613,9 @@ void content_toolitem_init()
f->texture = "tool_bow.png"; f->texture = "tool_bow.png";
f->description = gettext("Bow"); f->description = gettext("Bow");
f->type = TT_SPECIAL; f->type = TT_SPECIAL;
f->diginfo.uses = 256; f->diginfo.uses = BOW_USES;
f->diginfo.time = 1.0; f->diginfo.time = BOW_TIME;
f->diginfo.level = 2; f->diginfo.level = BOW_LEVEL;
f->thrown_item = CONTENT_CRAFTITEM_ARROW; f->thrown_item = CONTENT_CRAFTITEM_ARROW;
{ {
content_t r[9] = { content_t r[9] = {
@ -636,49 +636,36 @@ void content_toolitem_init()
f->texture = "tool_handle_long.png^tool_head_spear_stone.png^tool_binding_spear.png"; f->texture = "tool_handle_long.png^tool_head_spear_stone.png^tool_binding_spear.png";
f->description = gettext("Stone Spear"); f->description = gettext("Stone Spear");
f->type = TT_SPEAR; f->type = TT_SPEAR;
f->diginfo.uses = 64; f->diginfo.uses = STONE_USES;
f->diginfo.time = 1.5; f->diginfo.time = STONE_TIME;
f->diginfo.level = 1; f->diginfo.level = 1;
crafting::setSpearRecipe(CONTENT_ROCK,CONTENT_TOOLITEM_STONE_SPEAR); crafting::setSpearRecipe(CONTENT_ROCK,CONTENT_TOOLITEM_STONE_SPEAR);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",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; i = CONTENT_TOOLITEM_FLINTSPEAR;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle_long.png^tool_head_spear_flint.png^tool_binding_spear.png"; f->texture = "tool_handle_long.png^tool_head_spear_flint.png^tool_binding_spear.png";
f->description = gettext("Flint Spear"); f->description = gettext("Flint Spear");
f->type = TT_SPEAR; f->type = TT_SPEAR;
f->diginfo.uses = 128; f->diginfo.uses = FLINT_USES;
f->diginfo.time = 1.75; f->diginfo.time = FLINT_TIME;
f->diginfo.level = 2; f->diginfo.level = 1;
crafting::setSpearRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINTSPEAR); crafting::setSpearRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINTSPEAR);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_IRON_SPEAR; i = CONTENT_TOOLITEM_COPPER_SPEAR;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle_long.png^tool_head_spear_iron.png^tool_binding_spear.png"; f->texture = "tool_handle_long.png^tool_head_spear_copper.png^tool_binding_spear.png";
f->description = gettext("Iron Spear"); f->description = gettext("Copper Spear");
f->type = TT_SPEAR; f->type = TT_SPEAR;
f->diginfo.uses = 256; f->diginfo.uses = COPPER_USES;
f->diginfo.time = 1.0; f->diginfo.time = COPPER_TIME;
f->diginfo.level = 3; f->diginfo.level = 1;
crafting::setSpearRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_SPEAR); crafting::setSpearRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_SPEAR);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -688,22 +675,35 @@ void content_toolitem_init()
f->texture = "tool_handle_long.png^tool_head_spear_bronze.png^tool_binding_spear.png"; f->texture = "tool_handle_long.png^tool_head_spear_bronze.png^tool_binding_spear.png";
f->description = gettext("Bronze Spear"); f->description = gettext("Bronze Spear");
f->type = TT_SPEAR; f->type = TT_SPEAR;
f->diginfo.uses = 512; f->diginfo.uses = BRONZE_USES;
f->diginfo.time = 0.75; f->diginfo.time = BRONZE_TIME;
f->diginfo.level = 4; f->diginfo.level = 1;
crafting::setSpearRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_SPEAR); crafting::setSpearRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_SPEAR);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_IRON_SPEAR;
f = &g_content_toolitem_features[i];
f->content = i;
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 = IRON_USES;
f->diginfo.time = IRON_TIME;
f->diginfo.level = 1;
crafting::setSpearRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_SPEAR);
content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0);
i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_SPEAR; i = CONTENT_TOOLITEM_MITHRIL_UNBOUND_SPEAR;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle_long.png^tool_head_spear_mithril.png^tool_binding_spear.png"; f->texture = "tool_handle_long.png^tool_head_spear_mithril.png^tool_binding_spear.png";
f->description = gettext("Unbound Mithril Spear"); f->description = gettext("Unbound Mithril Spear");
f->type = TT_SPEAR; f->type = TT_SPEAR;
f->diginfo.uses = 1024; f->diginfo.uses = U_MITHRIL_USES;
f->diginfo.time = 0.6; f->diginfo.time = U_MITHRIL_TIME;
f->diginfo.level = 5; f->diginfo.level = 1;
crafting::setSpearRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_SPEAR); crafting::setSpearRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_SPEAR);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -715,9 +715,9 @@ void content_toolitem_init()
f->description = gettext("Mithril Spear"); f->description = gettext("Mithril Spear");
f->type = TT_SPEAR; f->type = TT_SPEAR;
f->param_type = CPT_ENCHANTMENT; f->param_type = CPT_ENCHANTMENT;
f->diginfo.uses = 2048; f->diginfo.uses = E_MITHRIL_USES;
f->diginfo.time = 0.4; f->diginfo.time = E_MITHRIL_TIME;
f->diginfo.level = 5; f->diginfo.level = 1;
crafting::setSpearRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_SPEAR); crafting::setSpearRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_SPEAR);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -729,8 +729,8 @@ void content_toolitem_init()
f->texture = "tool_handle.png^tool_head_sword_copper.png^tool_binding_sword.png"; f->texture = "tool_handle.png^tool_head_sword_copper.png^tool_binding_sword.png";
f->description = gettext("Copper Sword"); f->description = gettext("Copper Sword");
f->type = TT_SWORD; f->type = TT_SWORD;
f->diginfo.uses = 64; f->diginfo.uses = COPPER_USES;
f->diginfo.time = 1.5; f->diginfo.time = COPPER_TIME;
f->diginfo.level = 1; f->diginfo.level = 1;
crafting::setSwordRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_SWORD); crafting::setSwordRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_SWORD);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -742,9 +742,9 @@ void content_toolitem_init()
f->texture = "tool_handle.png^tool_head_sword_bronze.png^tool_binding_sword.png"; f->texture = "tool_handle.png^tool_head_sword_bronze.png^tool_binding_sword.png";
f->description = gettext("Bronze Sword"); f->description = gettext("Bronze Sword");
f->type = TT_SWORD; f->type = TT_SWORD;
f->diginfo.uses = 128; f->diginfo.uses = BRONZE_USES;
f->diginfo.time = 1.5; f->diginfo.time = BRONZE_TIME;
f->diginfo.level = 4; f->diginfo.level = 1;
crafting::setSwordRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_SWORD); crafting::setSwordRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_SWORD);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -755,9 +755,9 @@ void content_toolitem_init()
f->texture = "tool_handle.png^tool_head_sword_iron.png^tool_binding_sword.png"; f->texture = "tool_handle.png^tool_head_sword_iron.png^tool_binding_sword.png";
f->description = gettext("Iron Sword"); f->description = gettext("Iron Sword");
f->type = TT_SWORD; f->type = TT_SWORD;
f->diginfo.uses = 256; f->diginfo.uses = IRON_USES;
f->diginfo.time = 1.0; f->diginfo.time = IRON_TIME;
f->diginfo.level = 3; f->diginfo.level = 1;
crafting::setSwordRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_SWORD); crafting::setSwordRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_SWORD);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -768,9 +768,9 @@ void content_toolitem_init()
f->texture = "tool_handle.png^tool_head_sword_mithril.png^tool_binding_sword.png"; f->texture = "tool_handle.png^tool_head_sword_mithril.png^tool_binding_sword.png";
f->description = gettext("Unbound Mithril Sword"); f->description = gettext("Unbound Mithril Sword");
f->type = TT_SWORD; f->type = TT_SWORD;
f->diginfo.uses = 1024; f->diginfo.uses = U_MITHRIL_USES;
f->diginfo.time = 0.6; f->diginfo.time = U_MITHRIL_TIME;
f->diginfo.level = 5; f->diginfo.level = 1;
crafting::setSwordRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_SWORD); crafting::setSwordRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_SWORD);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -782,9 +782,9 @@ void content_toolitem_init()
f->description = gettext("Mithril Sword"); f->description = gettext("Mithril Sword");
f->type = TT_SWORD; f->type = TT_SWORD;
f->param_type = CPT_ENCHANTMENT; f->param_type = CPT_ENCHANTMENT;
f->diginfo.uses = 2048; f->diginfo.uses = E_MITHRIL_USES;
f->diginfo.time = 0.4; f->diginfo.time = E_MITHRIL_TIME;
f->diginfo.level = 5; f->diginfo.level = 1;
crafting::setSwordRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_SWORD); crafting::setSwordRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_SWORD);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -796,9 +796,9 @@ void content_toolitem_init()
f->texture = "tool_flintshears.png"; f->texture = "tool_flintshears.png";
f->description = gettext("Flint Shears"); f->description = gettext("Flint Shears");
f->type = TT_SHEAR; f->type = TT_SHEAR;
f->diginfo.uses = 128; f->diginfo.uses = FLINT_USES;
f->diginfo.time = 1.5; f->diginfo.time = FLINT_TIME;
f->diginfo.level = 2; f->diginfo.level = 1;
crafting::setShearsRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINTSHEARS); crafting::setShearsRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINTSHEARS);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -809,9 +809,9 @@ void content_toolitem_init()
f->texture = "tool_copper_shears.png"; f->texture = "tool_copper_shears.png";
f->description = gettext("Copper Shears"); f->description = gettext("Copper Shears");
f->type = TT_SHEAR; f->type = TT_SHEAR;
f->diginfo.uses = 128; f->diginfo.uses = COPPER_USES;
f->diginfo.time = 1.5; f->diginfo.time = COPPER_TIME;
f->diginfo.level = 2; f->diginfo.level = 1;
crafting::setShearsRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_SHEARS); crafting::setShearsRecipe(CONTENT_CRAFTITEM_COPPER_INGOT,CONTENT_TOOLITEM_COPPER_SHEARS);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -822,9 +822,9 @@ void content_toolitem_init()
f->texture = "tool_ironshears.png"; f->texture = "tool_ironshears.png";
f->description = gettext("Iron Shears"); f->description = gettext("Iron Shears");
f->type = TT_SHEAR; f->type = TT_SHEAR;
f->diginfo.uses = 256; f->diginfo.uses = IRON_USES;
f->diginfo.time = 1.0; f->diginfo.time = IRON_TIME;
f->diginfo.level = 2; f->diginfo.level = 1;
crafting::setShearsRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_SHEARS); crafting::setShearsRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_SHEARS);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -839,8 +839,8 @@ void content_toolitem_init()
f->liquids_pointable = true; f->liquids_pointable = true;
f->type = TT_BUCKET; f->type = TT_BUCKET;
f->param_type = CPT_CONTENT; f->param_type = CPT_CONTENT;
f->diginfo.uses = 64; f->diginfo.uses = WOOD_BUCKET_USES;
f->diginfo.time = 1.5; f->diginfo.time = WOOD_BUCKET_TIME;
f->diginfo.level = 1; f->diginfo.level = 1;
f->damaging_nodes_diggable = false; f->damaging_nodes_diggable = false;
crafting::setURecipe(CONTENT_CRAFTITEM_JUNGLE_PLANK,CONTENT_TOOLITEM_WBUCKET); crafting::setURecipe(CONTENT_CRAFTITEM_JUNGLE_PLANK,CONTENT_TOOLITEM_WBUCKET);
@ -857,9 +857,9 @@ void content_toolitem_init()
f->liquids_pointable = true; f->liquids_pointable = true;
f->type = TT_BUCKET; f->type = TT_BUCKET;
f->param_type = CPT_CONTENT; f->param_type = CPT_CONTENT;
f->diginfo.uses = 128; f->diginfo.uses = TIN_BUCKET_USES;
f->diginfo.time = 1.75; f->diginfo.time = TIN_BUCKET_TIME;
f->diginfo.level = 2; f->diginfo.level = 1;
f->damaging_nodes_diggable = false; f->damaging_nodes_diggable = false;
crafting::setURecipe(CONTENT_CRAFTITEM_TIN_INGOT,CONTENT_TOOLITEM_TINBUCKET); crafting::setURecipe(CONTENT_CRAFTITEM_TIN_INGOT,CONTENT_TOOLITEM_TINBUCKET);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -874,9 +874,9 @@ void content_toolitem_init()
f->liquids_pointable = true; f->liquids_pointable = true;
f->type = TT_BUCKET; f->type = TT_BUCKET;
f->param_type = CPT_CONTENT; f->param_type = CPT_CONTENT;
f->diginfo.uses = 256; f->diginfo.uses = IRON_BUCKET_USES;
f->diginfo.time = 1.0; f->diginfo.time = IRON_BUCKET_TIME;
f->diginfo.level = 3; f->diginfo.level = 1;
crafting::setURecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_BUCKET); crafting::setURecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_BUCKET);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",i,1,0); content_list_add("creative",i,1,0);
@ -891,47 +891,47 @@ void content_toolitem_init()
f->texture = "tool_handle_short.png^tool_head_knife_stone.png"; f->texture = "tool_handle_short.png^tool_head_knife_stone.png";
f->description = gettext("Stone Knife"); f->description = gettext("Stone Knife");
f->type = TT_KNIFE; f->type = TT_KNIFE;
f->diginfo.uses = 32; f->diginfo.uses = STONE_USES;
f->diginfo.time = 3.0; f->diginfo.time = STONE_TIME;
f->diginfo.level = 1; f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_ROCK,CONTENT_TOOLITEM_STONE_KNIFE); crafting::setKnifeRecipe(CONTENT_ROCK,CONTENT_TOOLITEM_STONE_KNIFE);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",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; i = CONTENT_TOOLITEM_FLINT_KNIFE;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle_short.png^tool_head_knife_flint.png"; f->texture = "tool_handle_short.png^tool_head_knife_flint.png";
f->description = gettext("Flint Knife"); f->description = gettext("Flint Knife");
f->type = TT_KNIFE; f->type = TT_KNIFE;
f->diginfo.uses = 64; f->diginfo.uses = FLINT_USES;
f->diginfo.time = 2.0; f->diginfo.time = FLINT_TIME;
f->diginfo.level = 1; f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINT_KNIFE); crafting::setKnifeRecipe(CONTENT_CRAFTITEM_FLINT,CONTENT_TOOLITEM_FLINT_KNIFE);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
content_list_add("creative",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 = COPPER_USES;
f->diginfo.time = COPPER_TIME;
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_BRONZE_KNIFE; i = CONTENT_TOOLITEM_BRONZE_KNIFE;
f = &g_content_toolitem_features[i]; f = &g_content_toolitem_features[i];
f->content = i; f->content = i;
f->texture = "tool_handle_short.png^tool_head_knife_bronze.png"; f->texture = "tool_handle_short.png^tool_head_knife_bronze.png";
f->description = gettext("Bronze Knife"); f->description = gettext("Bronze Knife");
f->type = TT_KNIFE; f->type = TT_KNIFE;
f->diginfo.uses = 128; f->diginfo.uses = BRONZE_USES;
f->diginfo.time = 1.5; f->diginfo.time = BRONZE_TIME;
f->diginfo.level = 1; f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_KNIFE); crafting::setKnifeRecipe(CONTENT_CRAFTITEM_BRONZE_INGOT,CONTENT_TOOLITEM_BRONZE_KNIFE);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -943,8 +943,8 @@ void content_toolitem_init()
f->texture = "tool_handle_short.png^tool_head_knife_iron.png"; f->texture = "tool_handle_short.png^tool_head_knife_iron.png";
f->description = gettext("Iron Knife"); f->description = gettext("Iron Knife");
f->type = TT_KNIFE; f->type = TT_KNIFE;
f->diginfo.uses = 256; f->diginfo.uses = IRON_USES;
f->diginfo.time = 1.0; f->diginfo.time = IRON_TIME;
f->diginfo.level = 1; f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_KNIFE); crafting::setKnifeRecipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_IRON_KNIFE);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -956,8 +956,8 @@ void content_toolitem_init()
f->texture = "tool_handle_short.png^tool_head_knife_mithril.png"; f->texture = "tool_handle_short.png^tool_head_knife_mithril.png";
f->description = gettext("Unbound Mithril Knife"); f->description = gettext("Unbound Mithril Knife");
f->type = TT_KNIFE; f->type = TT_KNIFE;
f->diginfo.uses = 1024; f->diginfo.uses = U_MITHRIL_USES;
f->diginfo.time = 0.5; f->diginfo.time = U_MITHRIL_TIME;
f->diginfo.level = 1; f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_KNIFE); crafting::setKnifeRecipe(CONTENT_CRAFTITEM_MITHRIL_UNBOUND,CONTENT_TOOLITEM_MITHRIL_UNBOUND_KNIFE);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -970,8 +970,8 @@ void content_toolitem_init()
f->description = gettext("Mithril Knife"); f->description = gettext("Mithril Knife");
f->type = TT_KNIFE; f->type = TT_KNIFE;
f->param_type = CPT_ENCHANTMENT; f->param_type = CPT_ENCHANTMENT;
f->diginfo.uses = 2048; f->diginfo.uses = E_MITHRIL_USES;
f->diginfo.time = 0.5; f->diginfo.time = E_MITHRIL_TIME;
f->diginfo.level = 1; f->diginfo.level = 1;
crafting::setKnifeRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_KNIFE); crafting::setKnifeRecipe(CONTENT_CRAFTITEM_MITHRIL,CONTENT_TOOLITEM_MITHRIL_KNIFE);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -986,7 +986,7 @@ void content_toolitem_init()
f->description = gettext("Fire Starter"); f->description = gettext("Fire Starter");
f->liquids_pointable = true; f->liquids_pointable = true;
f->type = TT_SPECIAL; f->type = TT_SPECIAL;
f->diginfo.level = 3; f->diginfo.level = 1;
f->has_fire_effect = true; f->has_fire_effect = true;
crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FLINT,CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_FIRESTARTER); crafting::set1Any2Recipe(CONTENT_CRAFTITEM_FLINT,CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_FIRESTARTER);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -998,7 +998,7 @@ void content_toolitem_init()
f->texture = "tool_crowbar.png"; f->texture = "tool_crowbar.png";
f->description = gettext("Crowbar"); f->description = gettext("Crowbar");
f->type = TT_SPECIAL; f->type = TT_SPECIAL;
f->diginfo.level = 3; f->diginfo.level = 1;
f->has_rotate_effect = true; f->has_rotate_effect = true;
crafting::set1over1Recipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_CROWBAR); crafting::set1over1Recipe(CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_CRAFTITEM_IRON_INGOT,CONTENT_TOOLITEM_CROWBAR);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -1010,7 +1010,7 @@ void content_toolitem_init()
f->texture = "tool_key.png"; f->texture = "tool_key.png";
f->description = gettext("Key"); f->description = gettext("Key");
f->type = TT_SPECIAL; f->type = TT_SPECIAL;
f->diginfo.level = 4; f->diginfo.level = 1;
f->has_unlock_effect = true; f->has_unlock_effect = true;
crafting::set1To1Recipe(CONTENT_CRAFTITEM_GOLD_INGOT,CONTENT_TOOLITEM_KEY); crafting::set1To1Recipe(CONTENT_CRAFTITEM_GOLD_INGOT,CONTENT_TOOLITEM_KEY);
content_list_add("craftguide",i,1,0); content_list_add("craftguide",i,1,0);
@ -1022,7 +1022,7 @@ void content_toolitem_init()
f->texture = "tool_mithril_key.png"; f->texture = "tool_mithril_key.png";
f->description = gettext("Mithril Key"); f->description = gettext("Mithril Key");
f->type = TT_SPECIAL; f->type = TT_SPECIAL;
f->diginfo.level = 5; f->diginfo.level = 1;
f->has_unlock_effect = true; f->has_unlock_effect = true;
f->has_super_unlock_effect = true; f->has_super_unlock_effect = true;
/* this can only be crafted by server admin */ /* this can only be crafted by server admin */
@ -1041,7 +1041,7 @@ void content_toolitem_init()
f->texture = "tool_mob_spawner.png"; f->texture = "tool_mob_spawner.png";
f->description = gettext("Mob Spawner"); f->description = gettext("Mob Spawner");
f->type = TT_SPECIAL; f->type = TT_SPECIAL;
f->diginfo.level = 4; f->diginfo.level = 1;
f->param_type = CPT_DROP; f->param_type = CPT_DROP;
{ {
content_t r[9] = { content_t r[9] = {

View File

@ -177,4 +177,56 @@ ToolItemFeatures & content_toolitem_features(std::string subname);
#define CONTENT_TOOLITEM_COPPER_SPEAR (CONTENT_TOOLITEM_MASK | 0x39) #define CONTENT_TOOLITEM_COPPER_SPEAR (CONTENT_TOOLITEM_MASK | 0x39)
#define CONTENT_TOOLITEM_COPPER_SHEARS (CONTENT_TOOLITEM_MASK | 0x3A) #define CONTENT_TOOLITEM_COPPER_SHEARS (CONTENT_TOOLITEM_MASK | 0x3A)
// times are calculated as :
// Stone : 3.0
// Flint : 3.0 - 1.0 = 2.0
// Copper : 2.0 - 0.5 = 1.5
// Bronze : 1.5 - 0.4 = 1.1
// Iron : 1.1 - 0.3 = 0.8
// Mithril : 0.8 - 0.2 = 0.6 Unbound
// Mithril : 0.6 - 0.2 = 0.4 Enchanted
#define STONE_USES 32
#define STONE_TIME 3.0
#define STONE_LEVEL 1
#define FLINT_USES 64
#define FLINT_TIME 2.0
#define FLINT_LEVEL 2
#define COPPER_USES 128
#define COPPER_TIME 1.5
#define COPPER_LEVEL 2
#define BRONZE_USES 256
#define BRONZE_TIME 1.1
#define BRONZE_LEVEL 3
#define IRON_USES 512
#define IRON_TIME 0.8
#define IRON_LEVEL 4
// Unbound Mithril
#define U_MITHRIL_USES 1024
#define U_MITHRIL_TIME 0.6
#define U_MITHRIL_LEVEL 5
// Enchanted Mithril
#define E_MITHRIL_USES 2048
#define E_MITHRIL_TIME 0.4
#define E_MITHRIL_LEVEL 5
#define BOW_USES 256
#define BOW_TIME 1.0
#define BOW_LEVEL 1
#define WOOD_BUCKET_USES 64
#define WOOD_BUCKET_TIME 1.5
#define TIN_BUCKET_USES 128
#define TIN_BUCKET_TIME 1.75
#define IRON_BUCKET_USES 256
#define IRON_BUCKET_TIME 1.0
#endif #endif

View File

@ -31,164 +31,168 @@ struct MineralFeatures g_mineral_features[MINERAL_MAX+1];
MineralFeatures & mineral_features(u8 i) MineralFeatures & mineral_features(u8 i)
{ {
return g_mineral_features[i]; return g_mineral_features[i];
} }
CraftItem *getDiggedMineralItem(u8 mineral, Player *player, InventoryItem *tool) CraftItem *getDiggedMineralItem(u8 mineral, Player *player, InventoryItem *tool)
{ {
MineralFeatures m = mineral_features(mineral); MineralFeatures m = mineral_features(mineral);
if (m.dug_item == CONTENT_IGNORE) if (m.dug_item == CONTENT_IGNORE)
return NULL; return NULL;
if (content_craftitem_features(m.dug_item)->content == CONTENT_IGNORE) if (content_craftitem_features(m.dug_item)->content == CONTENT_IGNORE)
return NULL; return NULL;
if (!tool && m.min_level > 0) if (!tool && m.min_level > 0)
return NULL; return NULL;
ToolItemFeatures *t = &content_toolitem_features(tool->getContent()); ToolItemFeatures *t = &content_toolitem_features(tool->getContent());
if (t->content == CONTENT_IGNORE && m.min_level > 0) if (t->content == CONTENT_IGNORE && m.min_level > 0)
return NULL; return NULL;
if (t->diginfo.level < m.min_level) if (t->diginfo.level < m.min_level)
return NULL; return NULL;
u16 count = m.dug_count_min; u16 count = m.dug_count_min;
u16 count_max = t->diginfo.level; u16 count_max = t->diginfo.level;
u16 data = tool->getData(); u16 data = tool->getData();
if (data != 0) { if (data != 0) {
EnchantmentInfo info; EnchantmentInfo info;
while (enchantment_get(&data,&info)) { while (enchantment_get(&data,&info)) {
switch (info.type) { switch (info.type) {
case ENCHANTMENT_MORE: // amplius increases the amount given case ENCHANTMENT_MORE: // amplius increases the amount given
count += (info.level+1)/2; count += (info.level+1)/2;
count_max += info.level; count_max += info.level;
break; break;
case ENCHANTMENT_DONTBREAK: // gives no mineral case ENCHANTMENT_DONTBREAK: // gives no mineral
return NULL; return NULL;
break; break;
default:; default:;
} }
} }
} }
if (count_max > count) { if (count_max > count) {
count = myrand_range(m.dug_count_min,count_max); count = myrand_range(m.dug_count_min,count_max);
} }
if (count > m.dug_count_max) if (count > m.dug_count_max)
count = m.dug_count_max; count = m.dug_count_max;
return new CraftItem(m.dug_item, count, 0); return new CraftItem(m.dug_item, count, 0);
} }
void init_mineral() void init_mineral()
{ {
u8 i; u8 i;
MineralFeatures *f = NULL; MineralFeatures *f = NULL;
i = MINERAL_COAL; i = MINERAL_COAL;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Coal"); f->description = gettext("Coal");
f->texture = "mineral_coal.png"; f->texture = "mineral_coal.png";
f->dug_item = CONTENT_CRAFTITEM_COAL; f->dug_item = CONTENT_CRAFTITEM_COAL;
i = MINERAL_IRON; // Flint from gravel for level 2 tools
f = &mineral_features(i);
f->description = gettext("Iron");
f->texture = "mineral_iron.png";
f->dug_item = CONTENT_CRAFTITEM_IRON;
f->min_level = 2;
i = MINERAL_TIN; i = MINERAL_COPPER;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Tin"); f->description = gettext("Copper");
f->texture = "mineral_tin.png"; f->texture = "mineral_copper.png";
f->dug_item = CONTENT_CRAFTITEM_TIN; f->dug_item = CONTENT_CRAFTITEM_COPPER;
f->min_level = 2; f->dug_count_max = 4;
f->min_level = 2;
i = MINERAL_COPPER; i = MINERAL_TIN;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Copper"); f->description = gettext("Tin");
f->texture = "mineral_copper.png"; f->texture = "mineral_tin.png";
f->dug_item = CONTENT_CRAFTITEM_COPPER; f->dug_item = CONTENT_CRAFTITEM_TIN;
f->dug_count_max = 4; f->min_level = 2;
f->min_level = 2;
i = MINERAL_SILVER; // bronze for level 3 tools
f = &mineral_features(i);
f->description = gettext("Silver");
f->texture = "mineral_silver.png";
f->dug_item = CONTENT_CRAFTITEM_SILVER;
f->min_level = 3;
i = MINERAL_GOLD; i = MINERAL_IRON;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Gold"); f->description = gettext("Iron");
f->texture = "mineral_gold.png"; f->texture = "mineral_iron.png";
f->dug_item = CONTENT_CRAFTITEM_GOLD; f->dug_item = CONTENT_CRAFTITEM_IRON;
f->min_level = 3; f->min_level = 3;
i = MINERAL_QUARTZ; i = MINERAL_MITHRIL;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Quartz"); f->description = gettext("Mithril");
f->texture = "mineral_quartz.png"; f->texture = "mineral_mithril.png";
f->dug_item = CONTENT_CRAFTITEM_QUARTZ; f->dug_item = CONTENT_CRAFTITEM_MITHRIL_RAW;
f->min_level = 3; f->min_level = 4;
i = MINERAL_MITHRIL; i = MINERAL_SALT;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Mithril"); f->description = gettext("Salt");
f->texture = "mineral_mithril.png"; f->texture = "mineral_salt.png";
f->dug_item = CONTENT_CRAFTITEM_MITHRIL_RAW; f->dug_item = CONTENT_CRAFTITEM_SALT;
f->min_level = 3; f->min_level = 1;
f->dug_count_max = 2;
i = MINERAL_RUBY; i = MINERAL_SILVER;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Ruby"); f->description = gettext("Silver");
f->texture = "mineral_ruby.png"; f->texture = "mineral_silver.png";
f->dug_item = CONTENT_CRAFTITEM_RUBY; f->dug_item = CONTENT_CRAFTITEM_SILVER;
f->min_level = 3; f->min_level = 3;
f->dug_count_max = 2;
i = MINERAL_TURQUOISE; i = MINERAL_GOLD;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Turquoise"); f->description = gettext("Gold");
f->texture = "mineral_turquoise.png"; f->texture = "mineral_gold.png";
f->dug_item = CONTENT_CRAFTITEM_TURQUOISE; f->dug_item = CONTENT_CRAFTITEM_GOLD;
f->min_level = 3; f->min_level = 3;
f->dug_count_max = 2;
i = MINERAL_AMETHYST; i = MINERAL_QUARTZ;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Amethyst"); f->description = gettext("Quartz");
f->texture = "mineral_amethyst.png"; f->texture = "mineral_quartz.png";
f->dug_item = CONTENT_CRAFTITEM_AMETHYST; f->dug_item = CONTENT_CRAFTITEM_QUARTZ;
f->min_level = 3; f->min_level = 3;
f->dug_count_max = 2;
i = MINERAL_SAPPHIRE; i = MINERAL_RUBY;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Sapphire"); f->description = gettext("Ruby");
f->texture = "mineral_sapphire.png"; f->texture = "mineral_ruby.png";
f->dug_item = CONTENT_CRAFTITEM_SAPPHIRE; f->dug_item = CONTENT_CRAFTITEM_RUBY;
f->min_level = 3; f->min_level = 3;
f->dug_count_max = 2; f->dug_count_max = 2;
i = MINERAL_SUNSTONE; i = MINERAL_TURQUOISE;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Sunstone"); f->description = gettext("Turquoise");
f->texture = "mineral_sunstone.png"; f->texture = "mineral_turquoise.png";
f->dug_item = CONTENT_CRAFTITEM_SUNSTONE; f->dug_item = CONTENT_CRAFTITEM_TURQUOISE;
f->min_level = 3; f->min_level = 3;
f->dug_count_max = 2; f->dug_count_max = 2;
i = MINERAL_SALT; i = MINERAL_AMETHYST;
f = &mineral_features(i); f = &mineral_features(i);
f->description = gettext("Salt"); f->description = gettext("Amethyst");
f->texture = "mineral_salt.png"; f->texture = "mineral_amethyst.png";
f->dug_item = CONTENT_CRAFTITEM_SALT; f->dug_item = CONTENT_CRAFTITEM_AMETHYST;
f->min_level = 1; f->min_level = 3;
f->dug_count_max = 2; f->dug_count_max = 2;
i = MINERAL_SAPPHIRE;
f = &mineral_features(i);
f->description = gettext("Sapphire");
f->texture = "mineral_sapphire.png";
f->dug_item = CONTENT_CRAFTITEM_SAPPHIRE;
f->min_level = 3;
f->dug_count_max = 2;
i = MINERAL_SUNSTONE;
f = &mineral_features(i);
f->description = gettext("Sunstone");
f->texture = "mineral_sunstone.png";
f->dug_item = CONTENT_CRAFTITEM_SUNSTONE;
f->min_level = 3;
f->dug_count_max = 2;
} }