From 01b21d49af04f9b3251c5edfb759995dc45d5110 Mon Sep 17 00:00:00 2001
From: Maciej Kasatkin <mk@realbadangel.pl>
Date: Sun, 28 Oct 2012 20:03:36 +0100
Subject: [PATCH] update

---
 mining_laser_mk1.lua |   42 +++++++++++++++++++++++++++++++++---------
 1 files changed, 33 insertions(+), 9 deletions(-)

diff --git a/mining_laser_mk1.lua b/mining_laser_mk1.lua
index 76aaee8..a206bb4 100644
--- a/mining_laser_mk1.lua
+++ b/mining_laser_mk1.lua
@@ -1,17 +1,42 @@
 laser_mk1_max_charge=40000
-
 local laser_shoot = function(itemstack, player, pointed_thing)
+				local laser_straight_mode=0
 				local playerpos=player:getpos()
 				local dir=player:get_look_dir()
+				if pointed_thing.type=="node" then  
+					pos=minetest.get_pointed_thing_position(pointed_thing, above)
+					local node = minetest.env:get_node(pos)
+					if node.name~="ignore" then
+					minetest.node_dig(pos,node,player)
+					end
+					laser_straight_mode=1
+					end				
+				
 				direction_y=math.abs(math.floor(dir.y*100))
-				print (direction_y)
 				if direction_y>50 then entity_name="technic:laser_beam_entityV"
 					else entity_name="technic:laser_beam_entity" end
-				local obj=minetest.env:add_entity({x=playerpos.x,y=playerpos.y+1.6,z=playerpos.z},entity_name)
+				
+				if laser_straight_mode==1  then
+					pos1=minetest.get_pointed_thing_position(pointed_thing, under)
+					pos1.x=math.floor(pos1.x) 
+					pos1.y=math.floor(pos1.y)
+					pos1.z=math.floor(pos1.z)
+					obj=minetest.env:add_entity(pos1,entity_name)
+				else
+				obj=minetest.env:add_entity({x=playerpos.x,y=playerpos.y+1.6,z=playerpos.z},entity_name)
+				end
 				if obj:get_luaentity().player == nil then
 					obj:get_luaentity().player = player
 				end
-				obj:setvelocity({x=dir.x*10, y=dir.y*10, z=dir.z*10})
+				if laser_straight_mode==1 and direction_y<50 then
+					obj:setvelocity({x=dir.x*8, y=0, z=dir.z*8})
+				else if laser_straight_mode==1 and direction_y>50 then
+					obj:setvelocity({x=0, y=dir.y*8, z=dir.z*8})
+					end
+				end
+				if laser_straight_mode==0 then
+					obj:setvelocity({x=dir.x*8, y=dir.y*8, z=dir.z*8})
+					end
 				obj:setacceleration({x=0, y=0, z=0})
 				obj:setyaw(player:get_look_yaw()+math.pi)
 				if obj:get_luaentity().player == nil then
@@ -29,14 +54,13 @@
 	stack_max = 1,
 	on_use = function(itemstack, user, pointed_thing)
 		item=itemstack:to_table()
-		local charge=tonumber((item["wear"])) 
-		if charge ==0 then charge =65535 end
-		charge=get_RE_item_load(charge,laser_mk1_max_charge)
+		if item["metadata"]=="" or item["metadata"]=="0" then  return end 
+		local charge=tonumber((item["metadata"])) 
 		if charge-400>0 then
 		 laser_shoot(item, user, pointed_thing)
 		 charge =charge-400;	
-		charge=set_RE_item_load(charge,laser_mk1_max_charge)
-		item["wear"]=tostring(charge)
+		item["metadata"]=tostring(charge)
+		charge=set_RE_wear(item,charge,laser_mk1_max_charge)
 		itemstack:replace(item)
 		end
 		return itemstack

--
Gitblit v1.8.0