diff --git a/node_gallery/init.lua b/node_gallery/init.lua index afc67f3..5d51113 100644 --- a/node_gallery/init.lua +++ b/node_gallery/init.lua @@ -1,12 +1,26 @@ local length = 50 -local function generate_gallery(pos) +local function generate_gallery(pos,place_func) local i=1 for n,node in pairs(minetest.registered_nodes) do - minetest.set_node(vector.add(pos,vector.new(i % length,math.ceil(i / length),0)),{name=n}) + place_func(vector.add(pos,vector.new(i % length,math.ceil(i / length),0)),{name=n}) i = i + 1 end end +local nodenames={} +local itemnames={} +minetest.register_on_mods_loaded(function() + for n,node in pairs(minetest.registered_nodes) do + if not n:find("meshhand") then + table.insert(nodenames,n) + end + end + for n,node in pairs(minetest.registered_items) do + if not n:find("meshhand") then + table.insert(itemnames,n) + end + end +end) local function generate_gallery_cube(pos) local i=1 local j=1 @@ -34,7 +48,9 @@ minetest.register_chatcommand("gallery",{ privs={debug=true}, func=function(name,p) local pl=minetest.get_player_by_name(name) - generate_gallery(vector.add(pl:get_pos(),vector.new(0,0,5))) + generate_gallery(vector.add(pl:get_pos(),vector.new(0,0,5)),function(pos,node) + minetest.set_node(pos,node) + end) end}) minetest.register_chatcommand("gallerycube",{ @@ -44,3 +60,63 @@ minetest.register_chatcommand("gallerycube",{ local pl=minetest.get_player_by_name(name) generate_gallery_cube(vector.add(pl:get_pos(),vector.new(0,0,5))) end}) + +math.randomseed(os.clock()) + +local a = 10 + +minetest.register_chatcommand("test_signs",{ + description="Generates a wall of signs", + privs={debug=true}, + func=function(name,p) + local pl=minetest.get_player_by_name(name) + local pos = pl:get_pos() + if p and tonumber(p) then a = p end + local i=1 + for i=1,a do + local fp = vector.add(pos,vector.new(i % length,math.ceil(i / length),0)) + minetest.set_node(fp,{name="mcl_signs:standing_sign_warped_hyphae_wood"}) + local m = minetest.get_meta(fp) + m:set_string("text","test\n"..fp.x..fp.y..fp.z) + m:set_string("mcl_signs:text_color","#00FF00") + i = i + 1 + end +end}) + +minetest.register_chatcommand("test_iframes",{ + description="Generates a wall itemframes", + privs={debug=true}, + func=function(name,p) + local pl=minetest.get_player_by_name(name) + local pos = pl:get_pos() + if p and tonumber(p) then a = p end + local i=1 + for i=1,a do + local l = 20 + local fp = vector.add(pos,vector.new(i % l,math.ceil(i / l),0)) + minetest.set_node(fp,{name="mcl_itemframes:item_frame"}) + local m = minetest.get_meta(fp) + local inv = m:get_inventory() + local n = itemnames[math.random(#itemnames)] + local nn = minetest.get_node(fp) + inv:set_stack("main",1,ItemStack(n)) + m:set_string("roll",math.random(0,7)) + --mcl_itemframes.update_item_entity(fp, nn,nn.param2) + i = i + 1 + end +end}) + +minetest.register_chatcommand("iframes_gallery",{ + description="Generates a wall of itemframes of all nodes", + privs={debug=true}, + func=function(name,p) + local pl=minetest.get_player_by_name(name) + local pos = pl:get_pos() + generate_gallery(vector.add(pl:get_pos(),vector.new(0,0,5)),function(p,node) + minetest.set_node(p,{name="mcl_itemframes:item_frame"}) + local m = minetest.get_meta(p) + local inv = m:get_inventory(p) + inv:set_stack("main",1,ItemStack(itemnames[math.random(#itemnames)])) + m:set_string("roll",math.random(0,7)) + end) +end}) diff --git a/node_gallery/mod.conf b/node_gallery/mod.conf index e6b1970..2c6bf68 100644 --- a/node_gallery/mod.conf +++ b/node_gallery/mod.conf @@ -1 +1,2 @@ name=node_gallery +depends = mcl_structures, mcl_itemframes