getAllNodes API

This commit is contained in:
arpruss 2015-10-07 11:14:10 -05:00
parent c66111abe8
commit 619d82bd8d
2 changed files with 18 additions and 0 deletions

View File

@ -521,6 +521,12 @@ function handle_world(cmd, args)
elseif cmd == "getNode" then
local node = minetest.get_node({x=tonumber(args[1]),y=tonumber(args[2]),z=-tonumber(args[3])})
return node.name .. "," .. node.param2
elseif cmd == "getAllNodes" then
local nodes = {}
for name,_ in pairs(minetest.registered_nodes) do
table.insert(nodes,name)
end
return table.concat(nodes,'|')
elseif cmd == "getBlockWithData" or cmd == "getBlock" then
local node = minetest.get_node({x=tonumber(args[1]),y=tonumber(args[2]),z=-tonumber(args[3])})
local id, meta = block.node_to_id_meta(node)

View File

@ -0,0 +1,12 @@
from mc import *
from random import choice,randint
mc = Minecraft()
nodes = mc.conn.sendReceive("world.getAllNodes").split("|")
pos = mc.player.getTilePos()
for i in range(1000):
n = choice(nodes)
if "lava" in n or "fire" in n or "water" in n: continue
mc.conn.send("world.setNode", pos.x+randint(0,29), pos.y+randint(0,29),
pos.z+randint(0,29), n)