123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- local S = minetest.get_translator("basic_tools")
- --helper functions
- do_nothing = function() end
- local function wear_out(itemstack, user)
- local wear = itemstack:get_wear()
- wear = wear + 0x100 --255 uses
- --numbers with prefix 0x are in hexadecimal if you didn't know
- if wear < 0xFFFF
- then
- itemstack:set_wear(wear)
- return itemstack
- else
- minetest.sound_play(generic_media.tool_breaks_default(), {object = user})
- return ItemStack(itemstack:get_name() .. "_broken")
- end
- end
- local function repair(itemstack)
- local wear = itemstack:get_wear()
- wear = wear - 0x4000
- if wear <= 0
- then
- itemstack:set_wear(0)
- else
- itemstack:set_wear(wear)
- end
- return ItemStack(nil)
- end
- local broken_color = "#FF9090"
- local repair_helpstr = "\n" .. S("Use an anvil to repair")
- --shovel
- ------------------------------------------------------------------------
- minetest.register_craftitem("basic_tools:shovel_broken",
- {
- description = minetest.colorize(broken_color,
- S("Broken Shovel") .. repair_helpstr),
- inventory_image = "basic_tools_shovel_broken.png",
- groups = {shovel = 1, broken_tool = 1},
- stack_max = 1,
- wield_scale = {x = 2, y = 2, z = 1},
- tool_capabilities =
- {
- full_punch_interval = 2,
- max_drop_level = 3,
- groupcaps =
- {
- crumbly =
- {
- maxlevel = 3,
- times = {4 , 3.5, 3},
- }
- },
- damage_groups =
- {
- fleshy = 1
- }
- },
- on_drop = do_nothing,
- })
- minetest.register_tool("basic_tools:shovel",
- {
- description = S("Shovel"),
- inventory_image = "basic_tools_shovel.png",
- groups = {shovel = 1, tool = 1},
- stack_max = 1,
- wield_scale = {x = 2, y = 2, z = 1},
- tool_capabilities =
- {
- full_punch_interval = 2,
- max_drop_level = 3,
- groupcaps =
- {
- crumbly =
- {
- maxlevel = 3,
- times = {1.5 , 1, 0.4},
- }
- },
- damage_groups =
- {
- fleshy = 1
- }
- },
- after_use = wear_out,
- on_drop = do_nothing,
- })
- minetest.register_alias("shovel", "basic_tools:shovel")
- minetest.register_alias("broken_shovel", "basic_tools:shovel_broken")
- give_initial_stuff.add("shovel")
- repairing_anvils.register_recipe("broken_shovel", "shovel 1 65500")
- repairing_anvils.register_recipe("shovel", repair)
- --pickaxe
- ------------------------------------------------------------------------
- minetest.register_craftitem("basic_tools:pickaxe_broken",
- {
- description = minetest.colorize(broken_color,
- S("Broken Pickaxe") .. repair_helpstr),
- inventory_image = "basic_tools_pickaxe_broken.png",
- groups = {shovel = 1, broken_tool = 1},
- stack_max = 1,
- wield_scale = {x = 2, y = 2, z = 1},
- tool_capabilities =
- {
- full_punch_interval = 2,
- max_drop_level = 3,
- groupcaps =
- {
- cracky =
- {
- maxlevel = 3,
- times = {5 , 4, 3.5},
- }
- },
- damage_groups =
- {
- fleshy = 1
- }
- },
- on_drop = do_nothing,
- })
- minetest.register_tool("basic_tools:pickaxe",
- {
- description = S("Pickaxe"),
- inventory_image = "basic_tools_pickaxe.png",
- groups = {pickaxe = 1, tool = 1},
- stack_max = 1,
- wield_scale = {x = 2, y = 2, z = 1},
- tool_capabilities =
- {
- full_punch_interval = 2,
- max_drop_level = 3,
- groupcaps =
- {
- cracky =
- {
- maxlevel = 3,
- times = {3 , 2, 1.4},
- }
- },
- damage_groups =
- {
- fleshy = 1
- }
- },
- after_use = wear_out,
- on_drop = do_nothing,
- })
- minetest.register_alias("pickaxe", "basic_tools:pickaxe")
- minetest.register_alias("broken_pickaxe", "basic_tools:pickaxe_broken")
- give_initial_stuff.add("pickaxe")
- repairing_anvils.register_recipe("broken_pickaxe", "pickaxe 1 65500")
- repairing_anvils.register_recipe("pickaxe", repair)
- --axe
- ------------------------------------------------------------------------
- minetest.register_craftitem("basic_tools:axe_broken",
- {
- description = minetest.colorize(broken_color,
- S("Broken Axe") .. repair_helpstr),
- inventory_image = "basic_tools_axe_broken.png",
- groups = {shovel = 1, broken_tool = 1},
- stack_max = 1,
- wield_scale = {x = 2, y = 2, z = 1},
- tool_capabilities =
- {
- full_punch_interval = 2,
- max_drop_level = 3,
- groupcaps =
- {
- choppy =
- {
- maxlevel = 3,
- times = {4 , 3.5, 3},
- }
- },
- damage_groups =
- {
- fleshy = 1
- }
- },
- on_drop = do_nothing,
- })
- minetest.register_tool("basic_tools:axe",
- {
- description = S("Axe"),
- inventory_image = "basic_tools_axe.png",
- groups = {shovel = 1, tool = 1},
- stack_max = 1,
- wield_scale = {x = 2, y = 2, z = 1},
- tool_capabilities =
- {
- full_punch_interval = 2,
- max_drop_level = 3,
- groupcaps =
- {
- choppy =
- {
- maxlevel = 3,
- times = {2 , 1.5, 0.8},
- }
- },
- damage_groups =
- {
- fleshy = 1
- }
- },
- after_use = wear_out,
- on_drop = do_nothing,
- })
- minetest.register_alias("axe", "basic_tools:axe")
- minetest.register_alias("broken_axe", "basic_tools:axe_broken")
- give_initial_stuff.add("axe")
- repairing_anvils.register_recipe("broken_axe", "axe 1 65500")
- repairing_anvils.register_recipe("axe", repair)
|