diff options
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/chatcommands.lua | 20 | ||||
-rw-r--r-- | builtin/falling.lua | 15 | ||||
-rw-r--r-- | builtin/misc_register.lua | 12 |
3 files changed, 37 insertions, 10 deletions
diff --git a/builtin/chatcommands.lua b/builtin/chatcommands.lua index 4b09f7b2b..9f14749f4 100644 --- a/builtin/chatcommands.lua +++ b/builtin/chatcommands.lua @@ -665,3 +665,23 @@ minetest.register_chatcommand("clearobjects", { minetest.chat_send_all("*** Cleared all objects.") end, }) + +minetest.register_chatcommand("msg", { + params = "<name> <message>", + description = "Send a private message", + privs = {shout=true}, + func = function(name, param) + local found, _, sendto, message = param:find("^([^%s]+)%s(.+)$") + if found then + if minetest.env:get_player_by_name(sendto) then + minetest.log("action", "PM from "..name.." to "..sendto..": "..message) + minetest.chat_send_player(sendto, "PM from "..name..": "..message) + minetest.chat_send_player(name, "Message sent") + else + minetest.chat_send_player(name, "The player "..sendto.." is not online") + end + else + minetest.chat_send_player(name, "Invalid usage, see /help msg") + end + end, +}) diff --git a/builtin/falling.lua b/builtin/falling.lua index 1c09f9856..f6491991b 100644 --- a/builtin/falling.lua +++ b/builtin/falling.lua @@ -142,7 +142,7 @@ end -- Some common functions -- -function nodeupdate_single(p) +function nodeupdate_single(p, delay) n = minetest.env:get_node(p) if minetest.get_node_group(n.name, "falling_node") ~= 0 then p_bottom = {x=p.x, y=p.y-1, z=p.z} @@ -151,9 +151,13 @@ function nodeupdate_single(p) if minetest.registered_nodes[n_bottom.name] and (not minetest.registered_nodes[n_bottom.name].walkable or minetest.registered_nodes[n_bottom.name].buildable_to) then - minetest.env:remove_node(p) - spawn_falling_node(p, n.name) - nodeupdate(p) + if delay then + minetest.after(0.1, nodeupdate_single, {x=p.x, y=p.y, z=p.z}, false) + else + minetest.env:remove_node(p) + spawn_falling_node(p, n.name) + nodeupdate(p) + end end end @@ -174,8 +178,7 @@ function nodeupdate(p) for x = -1,1 do for y = -1,1 do for z = -1,1 do - p2 = {x=p.x+x, y=p.y+y, z=p.z+z} - nodeupdate_single(p2) + nodeupdate_single({x=p.x+x, y=p.y+y, z=p.z+z}, not (x==0 and y==0 and z==0)) end end end diff --git a/builtin/misc_register.lua b/builtin/misc_register.lua index f9c06a02a..4041fb9e2 100644 --- a/builtin/misc_register.lua +++ b/builtin/misc_register.lua @@ -103,6 +103,10 @@ function minetest.register_item(name, itemdef) -- Apply defaults and add to registered_* table if itemdef.type == "node" then + -- Use the nodebox as selection box if it's not set manually + if itemdef.drawtype == "nodebox" and not itemdef.selection_box then + itemdef.selection_box = itemdef.node_box + end setmetatable(itemdef, {__index = minetest.nodedef_default}) minetest.registered_nodes[itemdef.name] = itemdef elseif itemdef.type == "craft" then @@ -249,8 +253,8 @@ minetest.register_item(":unknown", { minetest.register_node(":air", { description = "Air (you hacker you!)", - inventory_image = "unknown_block.png", - wield_image = "unknown_block.png", + inventory_image = "unknown_node.png", + wield_image = "unknown_node.png", drawtype = "airlike", paramtype = "light", sunlight_propagates = true, @@ -265,8 +269,8 @@ minetest.register_node(":air", { minetest.register_node(":ignore", { description = "Ignore (you hacker you!)", - inventory_image = "unknown_block.png", - wield_image = "unknown_block.png", + inventory_image = "unknown_node.png", + wield_image = "unknown_node.png", drawtype = "airlike", paramtype = "none", sunlight_propagates = false, |