diff options
| author | Maciej Kasatkin <mk@realbadangel.pl> | 2012-09-13 09:14:29 +0200 | 
|---|---|---|
| committer | Maciej Kasatkin <mk@realbadangel.pl> | 2012-09-13 09:14:29 +0200 | 
| commit | 80b5f39b63a68ca61113c4266fa56e3368763a33 (patch) | |
| tree | 33c788a8ec9d814e72433c1e559c1360c788a019 /sonic_screwdriver.lua | |
| parent | 14506c477ac69150fd37c80e1571e80fc0ce34fc (diff) | |
Added NodeBreaker, Fixes to screwdrivers, added mesecons dep
Diffstat (limited to 'sonic_screwdriver.lua')
| -rw-r--r-- | sonic_screwdriver.lua | 69 | 
1 files changed, 39 insertions, 30 deletions
| diff --git a/sonic_screwdriver.lua b/sonic_screwdriver.lua index 07aa9b4..c6efc42 100644 --- a/sonic_screwdriver.lua +++ b/sonic_screwdriver.lua @@ -1,40 +1,49 @@  sonic_screwdriver_max_charge=15000 - -    minetest.register_tool("technic:sonic_screwdriver", { +       +       minetest.register_tool("technic:sonic_screwdriver", {              description = "Sonic Screwdriver",              inventory_image = "technic_sonic_screwdriver.png",              on_use = function(itemstack, user, pointed_thing)                      -- Must be pointing to facedir applicable node                      if pointed_thing.type~="node" then return end -		    local pos=minetest.get_pointed_thing_position(pointed_thing,above) -		    local node=minetest.env:get_node(pos) -		    local node_name=node.name -		    if node.param2==nil  then return end +                    local pos=minetest.get_pointed_thing_position(pointed_thing,above) +                    local node=minetest.env:get_node(pos) +                    local node_name=node.name +                        if minetest.registered_nodes[node_name].paramtype2 == "facedir" or minetest.registered_nodes[node_name].paramtype2 == "wallmounted" then +                    if node.param2==nil  then return end                      item=itemstack:to_table() -			local charge=tonumber((item["wear"]))  -			if charge ==0 then charge =65535 end -			charge=get_RE_item_load(charge,sonic_screwdriver_max_charge) -			if charge-100>0 then -			  	minetest.sound_play("technic_sonic_screwdriver", {pos = pos, gain = 0.5, max_hear_distance = 10,}) -			   local n = node.param2 -			   n = n+1 -	                   if n == 4 then n = 0 end -	                    -- hacky_swap_node, unforunatly. -		            local meta = minetest.env:get_meta(pos) -			    local meta0 = meta:to_table() -	                    node.param2 = n -			    minetest.env:set_node(pos,node) -	                    meta = minetest.env:get_meta(pos) -		            meta:from_table(meta0) -		   -			  charge =charge-100;	 -			  charge=set_RE_item_load(charge,sonic_screwdriver_max_charge) -			  item["wear"]=tostring(charge) -			  itemstack:replace(item) -			  end -			return itemstack -			end, -	   +                        local charge=tonumber((item["wear"])) +                        if charge ==0 then charge =65535 end +                        charge=get_RE_item_load(charge,sonic_screwdriver_max_charge) +                        if charge-100>0 then +                                minetest.sound_play("technic_sonic_screwdriver", {pos = pos, gain = 0.5, max_hear_distance = 10,}) +                           local n = node.param2 +                           if minetest.registered_nodes[node_name].paramtype2 == "facedir" then +                           n = n+1 +                   if n == 4 then n = 0 end +                           else +                           n = n+1 +                           if n == 6 then n = 0 end +                           end +                            -- hacky_swap_node, unforunatly. +                            local meta = minetest.env:get_meta(pos) +                            local meta0 = meta:to_table() +                            node.param2 = n +                            minetest.env:set_node(pos,node) +                            meta = minetest.env:get_meta(pos) +                            meta:from_table(meta0) +                  +                          charge =charge-100;   +                          charge=set_RE_item_load(charge,sonic_screwdriver_max_charge) +                          item["wear"]=tostring(charge) +                          itemstack:replace(item) +                          end +                        return itemstack +                        else +                        return itemstack +                        end +                        end, +               })      minetest.register_craft({ | 
