Advertisement
Guest User

Untitled

a guest
Sep 12th, 2012
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.47 KB | None | 0 0
  1.     minetest.register_tool("technic:screwdriver", {
  2.             description = "Screwdriver",
  3.             inventory_image = "technic_screwdriver.png",
  4.             on_use = function(itemstack, user, pointed_thing)
  5.                     -- Must be pointing to facedir applicable node
  6.                     if pointed_thing.type~="node" then return end
  7.             local pos=minetest.get_pointed_thing_position(pointed_thing,above)
  8.             local node=minetest.env:get_node(pos)
  9.             local node_name=node.name
  10.             if minetest.registered_nodes[node_name].paramtype2 == "facedir" or minetest.registered_nodes[node_name].paramtype2 == "wallmounted" then
  11.             if node.param2==nil  then return end
  12.                 -- Get ready to set the param2
  13.                     local n = node.param2
  14.                     if minetest.registered_nodes[node_name].paramtype2 == "facedir" then
  15.                     n = n+1
  16.                     if n == 4 then n = 0 end
  17.                     else
  18.                     n = n+1
  19.                     if n == 6 then n = 0 end
  20.                     end
  21.                     -- hacky_swap_node, unforunatly.
  22.                     local meta = minetest.env:get_meta(pos)
  23.                     local meta0 = meta:to_table()
  24.                     node.param2 = n
  25.                 minetest.env:set_node(pos,node)
  26.                     meta = minetest.env:get_meta(pos)
  27.                     meta:from_table(meta0)
  28.             local item=itemstack:to_table()
  29.             local item_wear=tonumber((item["wear"]))
  30.             item_wear=item_wear+819
  31.             if item_wear>65535 then itemstack:clear() return itemstack end
  32.             item["wear"]=tostring(item_wear)
  33.             itemstack:replace(item)
  34.             return itemstack
  35.             else
  36.             return itemstack
  37.             end
  38.         end,
  39.     })
  40.  
  41. -----------------------------
  42.  
  43.     minetest.register_tool("technic:sonic_screwdriver", {
  44.             description = "Sonic Screwdriver",
  45.             inventory_image = "technic_sonic_screwdriver.png",
  46.             on_use = function(itemstack, user, pointed_thing)
  47.                     -- Must be pointing to facedir applicable node
  48.                     if pointed_thing.type~="node" then return end
  49.             local pos=minetest.get_pointed_thing_position(pointed_thing,above)
  50.             local node=minetest.env:get_node(pos)
  51.             local node_name=node.name
  52.             if minetest.registered_nodes[node_name].paramtype2 == "facedir" or minetest.registered_nodes[node_name].paramtype2 == "wallmounted" then
  53.             if node.param2==nil  then return end
  54.                     item=itemstack:to_table()
  55.             local charge=tonumber((item["wear"]))
  56.             if charge ==0 then charge =65535 end
  57.             charge=get_RE_item_load(charge,sonic_screwdriver_max_charge)
  58.             if charge-100>0 then
  59.                 minetest.sound_play("technic_sonic_screwdriver", {pos = pos, gain = 0.5, max_hear_distance = 10,})
  60.                local n = node.param2
  61.                if minetest.registered_nodes[node_name].paramtype2 == "facedir" then
  62.                n = n+1
  63.                if n == 4 then n = 0 end
  64.                else
  65.                n = n+1
  66.                if n == 6 then n = 0 end
  67.                end
  68.                         -- hacky_swap_node, unforunatly.
  69.                     local meta = minetest.env:get_meta(pos)
  70.                 local meta0 = meta:to_table()
  71.                         node.param2 = n
  72.                 minetest.env:set_node(pos,node)
  73.                         meta = minetest.env:get_meta(pos)
  74.                     meta:from_table(meta0)
  75.          
  76.               charge =charge-100;  
  77.               charge=set_RE_item_load(charge,sonic_screwdriver_max_charge)
  78.               item["wear"]=tostring(charge)
  79.               itemstack:replace(item)
  80.               end
  81.             return itemstack
  82.             else
  83.             return itemstack
  84.             end
  85.             end,
  86.      
  87.     })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement