Fix discharge of flashlight and sonic screwdriver

These two tools wouldn't discharge all the way to zero through use,
unlike most chargeable items.

Incidentally remove a duplicate of the check_for_flashlight() function.
This commit is contained in:
Zefram 2014-04-27 18:40:21 +01:00 committed by ShadowNinja
parent db79675570
commit 5c59d97070
2 changed files with 2 additions and 27 deletions

@ -40,7 +40,7 @@ local function check_for_flashlight(player)
if not meta or not meta.charge then if not meta or not meta.charge then
return false return false
end end
if meta.charge - 2 > 0 then if meta.charge >= 2 then
meta.charge = meta.charge - 2; meta.charge = meta.charge - 2;
technic.set_RE_wear(hotbar[i], meta.charge, flashlight_max_charge) technic.set_RE_wear(hotbar[i], meta.charge, flashlight_max_charge)
hotbar[i]:set_metadata(minetest.serialize(meta)) hotbar[i]:set_metadata(minetest.serialize(meta))
@ -72,31 +72,6 @@ minetest.register_on_leaveplayer(function(player)
player_positions[player_name] = nil player_positions[player_name] = nil
end) end)
local function check_for_flashlight(player)
if player == nil then
return false
end
local inv = player:get_inventory()
local hotbar = inv:get_list("main")
for i = 1, 8 do
if hotbar[i]:get_name() == "technic:flashlight" then
local meta = minetest.deserialize(hotbar[i]:get_metadata())
if not meta or not meta.charge then
return false
end
if meta.charge - 2 > 0 then
meta.charge = meta.charge - 2;
technic.set_RE_wear(hotbar[i], meta.charge, flashlight_max_charge)
hotbar[i]:set_metadata(minetest.serialize(meta))
inv:set_stack("main", i, hotbar[i])
return true
end
end
end
return false
end
minetest.register_globalstep(function(dtime) minetest.register_globalstep(function(dtime)
for i, player in pairs(minetest.get_connected_players()) do for i, player in pairs(minetest.get_connected_players()) do
local player_name = player:get_player_name() local player_name = player:get_player_name()

@ -30,7 +30,7 @@ minetest.register_tool("technic:sonic_screwdriver", {
if not meta1 or not meta1.charge then if not meta1 or not meta1.charge then
return return
end end
if meta1.charge - 100 > 0 then if meta1.charge >= 100 then
minetest.sound_play("technic_sonic_screwdriver", minetest.sound_play("technic_sonic_screwdriver",
{pos = pos, gain = 0.3, max_hear_distance = 10}) {pos = pos, gain = 0.3, max_hear_distance = 10})
local p = node.param2 local p = node.param2