69 lines
2.4 KiB
Lua
69 lines
2.4 KiB
Lua
multiplacer = {}
|
|
|
|
dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/axis_place.lua");
|
|
dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/basic_3d_math.lua");
|
|
dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/functions.lua");
|
|
dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/settings.lua");
|
|
|
|
multiplacer.print = function(name, msg)
|
|
if multiplacer.output == "verbose" then
|
|
minetest.chat_send_player(name, msg);
|
|
else
|
|
multiplacer.output = "quiet"
|
|
end
|
|
end
|
|
|
|
minetest.register_privilege("multiplacer", {
|
|
description = "Can use the multiplacer tools",
|
|
give_to_single_player = true
|
|
})
|
|
|
|
minetest.register_tool("multiplacer:multiplacer", {
|
|
description = "multiplacer",
|
|
inventory_image = "multiplacer_multiplacer.png",
|
|
liquids_pointable = true,
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.9,
|
|
max_drop_level = 0,
|
|
groupcaps = {
|
|
crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1},
|
|
snappy = {times={[3]=0.40}, uses=0, maxlevel=1},
|
|
oddly_breakable_by_hand = {times={[1]=7.00,[2]=4.00,[3]=1.40},
|
|
uses=0, maxlevel=3}
|
|
},
|
|
damage_groups = {fleshy=1},
|
|
},
|
|
on_secondary_use = function(stack, player, pointed_thing)
|
|
local keys = player:get_player_control()
|
|
if keys["aux1"] then
|
|
local block = multiplacer.get_node(player, pointed_thing)
|
|
local meta = stack:get_meta();
|
|
meta:set_string("multiplacer:place", block);
|
|
multiplacer.print(player:get_player_name(), "Multiplacer tool set to place '"..block.."' blocks.");
|
|
return stack;
|
|
end
|
|
end,
|
|
on_place = function(stack, player, pointed_thing)
|
|
local keys = player:get_player_control()
|
|
if keys["aux1"] then
|
|
local block = multiplacer.get_node(player, pointed_thing)
|
|
local meta = stack:get_meta();
|
|
meta:set_string("multiplacer:place", block);
|
|
multiplacer.print(player:get_player_name(), "Multiplacer tool set to place '"..block.."' blocks.");
|
|
return stack;
|
|
end
|
|
return multiplacer.axis_place(stack, player, pointed_thing, true);
|
|
end,
|
|
on_use = function(stack, player, pointed_thing)
|
|
local keys = player:get_player_control()
|
|
if keys["aux1"] then
|
|
local block = multiplacer.get_node(player, pointed_thing)
|
|
local meta = stack:get_meta();
|
|
meta:set_string("multiplacer:delete", block);
|
|
multiplacer.print(player:get_player_name(), "Multiplacer tool set to delete '"..block.."' blocks.");
|
|
return stack;
|
|
end
|
|
return multiplacer.axis_place(stack, player, pointed_thing, false);
|
|
end,
|
|
})
|