RealBadAngel
2012-12-13 b8d77627a4d28c624e63423eef317dd09c68e533
commit | author | age
1590dd 1 sonic_screwdriver_max_charge=15000
80b5f3 2       
MK 3        minetest.register_tool("technic:sonic_screwdriver", {
1590dd 4             description = "Sonic Screwdriver",
MK 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
80b5f3 9                     local pos=minetest.get_pointed_thing_position(pointed_thing,above)
MK 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
1590dd 14                     item=itemstack:to_table()
01b21d 15                         if item["metadata"]=="" or item["metadata"]=="0" then  return end 
MK 16             local charge=tonumber((item["metadata"])) 
80b5f3 17                         if charge-100>0 then
845b06 18                                 minetest.sound_play("technic_sonic_screwdriver", {pos = pos, gain = 0.3, max_hear_distance = 10,})
80b5f3 19                            local n = node.param2
MK 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;  
01b21d 36                           item["metadata"]=tostring(charge)
MK 37               set_RE_wear(item,charge,sonic_screwdriver_max_charge)
80b5f3 38                           itemstack:replace(item)
MK 39                           end
40                         return itemstack
41                         else
42                         return itemstack
43                         end
44                         end,
45          
1590dd 46     })
MK 47      
48     minetest.register_craft({
49             output = "technic:sonic_screwdriver",
50             recipe = {
14506c 51             {"technic:diamond"},
MK 52                     {"technic:battery"},
a42299 53                     {"technic:stainless_steel_ingot"}
1590dd 54             }
MK 55     })