Further code cleanup

This commit is contained in:
h-v-smacker 2017-10-28 18:18:18 +03:00
parent 6190b6cafa
commit b179ddff65

View File

@ -53,8 +53,7 @@ local function lawn_trimmer_setmode(user,itemstack)
meta.mode = 0 meta.mode = 0
end end
meta.mode = meta.mode + 1 meta.mode = meta.mode % 4 + 1
if meta.mode > 4 then meta.mode = 1 end
minetest.chat_send_player(player_name, minetest.chat_send_player(player_name,
S("Lawn Trimmer Mode %d"):format(meta.mode) .. ": " S("Lawn Trimmer Mode %d"):format(meta.mode) .. ": "
@ -82,9 +81,11 @@ local function trim_the_lawn(itemstack, user)
to_player = user:get_player_name(), to_player = user:get_player_name(),
gain = 0.4, gain = 0.4,
}) })
else
return -- no charge for even a single node, aborting
end end
local pos = user:getpos() local pos = user:get_pos()
local inv = user:get_inventory() local inv = user:get_inventory()
-- Defining the area for the search needs two positions -- Defining the area for the search needs two positions
-- The tool has a limited range in the vertical axis, which is capped at +/- 1 node -- The tool has a limited range in the vertical axis, which is capped at +/- 1 node
@ -103,14 +104,13 @@ local function trim_the_lawn(itemstack, user)
-- find_node_near() and removing found nodes -- find_node_near() and removing found nodes
local found_flora = minetest.find_nodes_in_area(start_pos, end_pos, {"group:flora"}) local found_flora = minetest.find_nodes_in_area(start_pos, end_pos, {"group:flora"})
for _, f in ipairs(found_flora) do for _, f in ipairs(found_flora) do
-- Abort if no charge left for a node -- Only dig the node if not protected, otherwise skip to the next one.
if meta.charge < lawn_trimmer_charge_per_object then break end
-- Skip to the next one if this node cannot be dug
if not minetest.is_protected(f, user:get_player_name()) then if not minetest.is_protected(f, user:get_player_name()) then
meta.charge = meta.charge - lawn_trimmer_charge_per_object meta.charge = meta.charge - lawn_trimmer_charge_per_object
local node = minetest.get_node_or_nil(f) minetest.node_dig(f, minetest.get_node(f), user)
minetest.node_dig(f, node, user)
end end
-- Abort if no charge left for another node
if meta.charge < lawn_trimmer_charge_per_object then break end
end end
-- The charge won't expire in creative mode, but the tool still -- The charge won't expire in creative mode, but the tool still
@ -131,13 +131,10 @@ minetest.register_tool("technic:lawn_trimmer", {
stack_max = 1, stack_max = 1,
wear_represents = "technic_RE_charge", wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge, on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user, pointed_thing) on_use = trim_the_lawn
trim_the_lawn(itemstack, user)
return itemstack
end
}) })
for i = 1,4,1 do for i = 1, 4 do
technic.register_power_tool("technic:lawn_trimmer_" .. i, lawn_trimmer_max_charge) technic.register_power_tool("technic:lawn_trimmer_" .. i, lawn_trimmer_max_charge)
minetest.register_tool("technic:lawn_trimmer_" .. i, { minetest.register_tool("technic:lawn_trimmer_" .. i, {
description = S("Lawn Trimmer Mode %d"):format(i), description = S("Lawn Trimmer Mode %d"):format(i),
@ -146,17 +143,13 @@ for i = 1,4,1 do
wear_represents = "technic_RE_charge", wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge, on_refill = technic.refill_RE_charge,
groups = {not_in_creative_inventory = 1}, groups = {not_in_creative_inventory = 1},
on_use = function(itemstack, user, pointed_thing) on_use = trim_the_lawn
trim_the_lawn(itemstack, user)
return itemstack
end
}) })
end end
-- Provide a crafting recipe -- Provide a crafting recipe
local mesecons_button = minetest.get_modpath("mesecons_button") local trigger = minetest.get_modpath("mesecons_button") and "mesecons_button:button_off"
local trigger = mesecons_button and "mesecons_button:button_off"
or "default:mese_crystal_fragment" or "default:mese_crystal_fragment"
minetest.register_craft({ minetest.register_craft({