mirror of
https://github.com/minetest-mods/technic.git
synced 2024-12-22 13:52:31 +01:00
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:
parent
db79675570
commit
5c59d97070
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user