RealBadAngel
2013-02-19 671ba32e5aec9e944dd54699555ebf5a6f7714b9
commit | author | age
82cba9 1 sonic_screwdriver_max_charge=15000
R 2       
3        minetest.register_tool("technic:sonic_screwdriver", {
4             description = "Sonic Screwdriver",
5             inventory_image = "technic_sonic_screwdriver.png",
6             on_use = function(itemstack, user, pointed_thing)
7                     -- Must be pointing to facedir applicable node
8                     if pointed_thing.type~="node" then return end
9                     local pos=minetest.get_pointed_thing_position(pointed_thing,above)
10                     local node=minetest.env:get_node(pos)
11                     local node_name=node.name
12                         if minetest.registered_nodes[node_name].paramtype2 == "facedir" or minetest.registered_nodes[node_name].paramtype2 == "wallmounted" then
13                     if node.param2==nil  then return end
14                     item=itemstack:to_table()
15                         if item["metadata"]=="" or item["metadata"]=="0" then  return end 
16             local charge=tonumber((item["metadata"])) 
17                         if charge-100>0 then
18                                 minetest.sound_play("technic_sonic_screwdriver", {pos = pos, gain = 0.3, max_hear_distance = 10,})
19                            local n = node.param2
20                            if minetest.registered_nodes[node_name].paramtype2 == "facedir" then
21                            n = n+1
22                    if n == 4 then n = 0 end
23                            else
24                            n = n+1
25                            if n == 6 then n = 0 end
26                            end
27                             -- hacky_swap_node, unforunatly.
28                             local meta = minetest.env:get_meta(pos)
29                             local meta0 = meta:to_table()
30                             node.param2 = n
31                             minetest.env:set_node(pos,node)
32                             meta = minetest.env:get_meta(pos)
33                             meta:from_table(meta0)
34                  
35                           charge =charge-100;  
36                           item["metadata"]=tostring(charge)
37               set_RE_wear(item,charge,sonic_screwdriver_max_charge)
38                           itemstack:replace(item)
39                           end
40                         return itemstack
41                         else
42                         return itemstack
43                         end
44                         end,
45          
46     })
47      
48     minetest.register_craft({
49             output = "technic:sonic_screwdriver",
50             recipe = {
51             {"technic:diamond"},
52                     {"technic:battery"},
53                     {"technic:stainless_steel_ingot"}
54             }
55     })