mirror of
https://github.com/minetest-mods/technic.git
synced 2025-03-22 12:20:30 +01:00
Further code cleanup
This commit is contained in:
parent
6190b6cafa
commit
b179ddff65
@ -40,7 +40,7 @@ local lawn_trimmer_mode_text = {
|
|||||||
|
|
||||||
|
|
||||||
-- Mode switcher for the tool
|
-- Mode switcher for the tool
|
||||||
local function lawn_trimmer_setmode(user,itemstack)
|
local function lawn_trimmer_setmode(user, itemstack)
|
||||||
local player_name = user:get_player_name()
|
local player_name = user:get_player_name()
|
||||||
local meta = minetest.deserialize(itemstack:get_metadata())
|
local meta = minetest.deserialize(itemstack:get_metadata())
|
||||||
|
|
||||||
@ -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
|
||||||
@ -102,15 +103,14 @@ local function trim_the_lawn(itemstack, user)
|
|||||||
-- Since nodes sometimes cannot be removed, we cannot rely on repeating
|
-- Since nodes sometimes cannot be removed, we cannot rely on repeating
|
||||||
-- 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({
|
||||||
|
Loading…
x
Reference in New Issue
Block a user