Refill behaviour for power tools and cans

Supply the on_refill hook for power tools and cans, to perform appropriate
charging.  This is to be used by unified_inventory's creative-mode
refill slot.
This commit is contained in:
Zefram
2014-04-30 10:49:54 +01:00
parent 0294fc8f3a
commit 00d7c9bdea
9 changed files with 34 additions and 0 deletions

View File

@ -81,6 +81,11 @@ minetest.register_tool("technic:water_can", {
return itemstack
end
end,
on_refill = function(stack)
stack:set_metadata(tostring(water_can_max_load))
set_can_wear(stack, water_can_max_load, water_can_max_load)
return stack
end,
})
minetest.register_tool("technic:lava_can", {
@ -131,5 +136,10 @@ minetest.register_tool("technic:lava_can", {
return itemstack
end
end,
on_refill = function(stack)
stack:set_metadata(tostring(lava_can_max_load))
set_can_wear(stack, lava_can_max_load, lava_can_max_load)
return stack
end,
})

View File

@ -256,6 +256,7 @@ minetest.register_tool("technic:chainsaw", {
inventory_image = "technic_chainsaw.png",
stack_max = 1,
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type ~= "node" then
return itemstack

View File

@ -14,6 +14,7 @@ minetest.register_tool("technic:flashlight", {
inventory_image = "technic_flashlight.png",
stack_max = 1,
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
})
minetest.register_craft({

View File

@ -327,6 +327,7 @@ minetest.register_tool("technic:mining_drill", {
inventory_image = "technic_mining_drill.png",
stack_max = 1,
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type ~= "node" then
return itemstack
@ -351,6 +352,7 @@ minetest.register_tool("technic:mining_drill_mk2", {
description = S("Mining Drill Mk%d"):format(2),
inventory_image = "technic_mining_drill_mk2.png",
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user, pointed_thing)
mining_drill_mk2_handler(itemstack, user, pointed_thing)
return itemstack
@ -366,6 +368,7 @@ for i = 1, 4 do
inventory_image = "technic_mining_drill_mk2.png^technic_tool_mode"..i..".png",
wield_image = "technic_mining_drill_mk2.png",
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing)
mining_drill_mk2_handler(itemstack, user, pointed_thing)
@ -378,6 +381,7 @@ minetest.register_tool("technic:mining_drill_mk3", {
description = S("Mining Drill Mk%d"):format(3),
inventory_image = "technic_mining_drill_mk3.png",
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user, pointed_thing)
mining_drill_mk3_handler(itemstack,user,pointed_thing)
return itemstack
@ -393,6 +397,7 @@ for i=1,5,1 do
inventory_image = "technic_mining_drill_mk3.png^technic_tool_mode"..i..".png",
wield_image = "technic_mining_drill_mk3.png",
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing)
mining_drill_mk3_handler(itemstack,user,pointed_thing)

View File

@ -169,6 +169,7 @@ for _, m in pairs(mining_lasers_list) do
inventory_image = "technic_mining_laser_mk"..m[1]..".png",
stack_max = 1,
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user)
local meta = minetest.deserialize(itemstack:get_metadata())
if not meta or not meta.charge then

View File

@ -8,6 +8,7 @@ minetest.register_tool("technic:sonic_screwdriver", {
description = S("Sonic Screwdriver"),
inventory_image = "technic_sonic_screwdriver.png",
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user, pointed_thing)
-- Must be pointing to facedir applicable node
if pointed_thing.type ~= "node" then