This commit is contained in:
HybridDog 2014-02-09 12:43:01 +01:00
parent bb6dbe97f7
commit 24040bbb8c
2 changed files with 9 additions and 7 deletions

View File

@ -1,6 +1,7 @@
--license LGPLv2+
local mk1_charge = 40000
local laser_prec = 7
local mining_lasers_list = {
-- {<num>, <range of the laser shots>, <max_charge>, (math.sqrt(1+100*(range+0.4))-1)/50},
@ -42,11 +43,11 @@ local function laser_shoot(player, range, particle_texture, particle_time, sound
local playerpos=player:getpos()
local dir=player:get_look_dir()
local startpos = {x=playerpos.x, y=playerpos.y+1.6, z=playerpos.z}
local pos = {x=playerpos.x, y=playerpos.y+1.6, z=playerpos.z}
local a = vector.multiply(dir, 50)
local nodes = vector.line(vector.round(startpos), dir, range)
local nodes = vector.fine_line(pos, dir, range, laser_prec)
minetest.add_particle(startpos, dir, a, particle_time, 1, false, particle_texture)
minetest.add_particle(pos, dir, a, particle_time, 1, false, particle_texture)
for _,p in ipairs(nodes) do --minetest.after isn't necessary for a laser
laser_node(p, player)
end

View File

@ -1,4 +1,5 @@
local gun_range = 100
local gun_prec = 7
local gun_a = 200
local gun_v = 100
local shot_delay = vector.straightdelay(gun_range, gun_v, gun_a)
@ -21,18 +22,18 @@ local function shoot(player, range, particle_texture, particle_time, sound)
local playerpos=player:getpos()
local dir=player:get_look_dir()
local startpos = vector.round({x=playerpos.x, y=playerpos.y+1.6, z=playerpos.z})
local pos = {x=playerpos.x, y=playerpos.y+1.6, z=playerpos.z}
local a = vector.multiply(dir, gun_a)
local v = vector.multiply(dir, gun_v)
local nodes = vector.line(startpos, dir, range)
local nodes = vector.fine_line(pos, dir, range, gun_prec)
minetest.add_particle(startpos, v, a, particle_time, 1, false, particle_texture)
minetest.add_particle(pos, v, a, particle_time, 1, false, particle_texture)
for i,p in ipairs(nodes) do
if minetest.get_node(p).name ~= "air" then
if minetest.get_node(p).name ~= "wool:blue"
and i > 1 then
posb = nodes[i-1]
paint(posb, startpos)
paint(posb, pos)
end
break
end