Advertisement
kaeza

Minetest: Node Metadata Editor

Jul 9th, 2013
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.04 KB | None | 0 0
  1. local esc = minetest.formspec_escape
  2.  
  3. local active_meta = { }
  4.  
  5. minetest.register_craftitem("k_random_tools:owner_change_stick", {
  6.     description = "Owner Change Stick",
  7.     inventory_image = "default_stick.png",
  8.     on_use = function(itemstack, user, pointed_thing)
  9.         if pointed_thing.type == "node" then
  10.             local meta = minetest.get_meta(pointed_thing.under)
  11.             local owner = meta:get_string("owner")
  12.             local pl = user:get_player_name()
  13.             active_meta[pl] = pointed_thing.under
  14.             minetest.show_formspec(pl, "k_random_tools:owner_editor",
  15.                 "field[owner;Owner;"..esc(owner)
  16.             )
  17.         end
  18.     end,
  19. })
  20.  
  21. minetest.register_on_player_receive_fields(function(player, formname, fields)
  22.  
  23.     if formname == "k_random_tools:owner_editor" then
  24.         local meta = minetest.get_meta(active_meta[player:get_player_name()])
  25.         local it = meta:get_string("infotext")
  26.         local pfx, oldowner, sfx = it:match("^(.*%(owned by )(.-)(%).*)")
  27.         if oldowner then
  28.             meta:set_string("infotext", pfx..fields.owner..sfx)
  29.         end
  30.         meta:set_string("owner", fields.owner)
  31.     end
  32.  
  33. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement