Fix crashes #1

Closed
DiamondPlane wants to merge 2 commits from DiamondPlane:diamondplane-patch-1 into master
1 changed files with 16 additions and 18 deletions

View File

@ -58,7 +58,6 @@ function rocket.on_punch(self, puncher)
puncher:set_detach()
puncher:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0})
default.player_attached[name] = false
minetest.sound_stop(self.soundThrust)
end
if not self.driver then
-- Move to inventory
@ -95,7 +94,6 @@ function rocket.on_rightclick(self, clicker)
minetest.after(0.1, function()
clicker:setpos(pos)
end)
minetest.sound_stop(self.soundThrust)
elseif not self.driver then
-- Attach
local attach = clicker:get_attach()
@ -181,7 +179,6 @@ function rocket.on_step(self, dtime)
driver_objref:set_detach()
driver_objref:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0})
driver_objref:set_attach(sideways_rocket, "", {x = 0, y = 1, z = 0}, {x = 0, y = 0, z = 0})
minetest.sound_stop(self.soundThrust)
self.object:remove()
--right click after pressing A+D to go into the sideways rocket
elseif ctrl.left then
@ -279,7 +276,11 @@ function rocket.on_step(self, dtime)
atmos = ":asteriod:atmos"
end
local p1 = self.object:getpos()
if p1 == nil then
return false
else
p1.y = p1.y - 1
end
if minetest.get_node(p1).name ~= "air" and minetest.get_node(p1).name ~= vacuum and minetest.get_node(p1).name ~= atmos and self.vy < -10 then
tnt.boom(p, {
radius = 3,
@ -287,13 +288,16 @@ function rocket.on_step(self, dtime)
sound = "tnt_explode",
explode_center = false,
})
minetest.sound_stop(self.soundThrust)
self.object:remove()
driver_objref:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0})
end
local p2 = self.object:getpos()
if p2 == nil then
return false
else
p2.y = p2.y + 6
end
local p3 = self.object:getpos()
p3.y = p3.y + 4
if minetest.get_node(p2).name ~= "air" and minetest.get_node(p2).name ~= vacuum and minetest.get_node(p1).name ~= atmos and self.vy > 10 then
@ -303,7 +307,6 @@ function rocket.on_step(self, dtime)
sound = "tnt_explode",
explode_center = false,
})
minetest.sound_stop(self.soundThrust)
self.object:remove()
driver_objref:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0})
end
@ -422,7 +425,6 @@ function rocket.on_step(self, dtime)
sound = "tnt_explode",
explode_center = false,
})
minetest.sound_stop(self.soundThrust)
self.object:remove()
end
@ -437,7 +439,6 @@ function rocket.on_step(self, dtime)
sound = "tnt_explode",
explode_center = false,
})
minetest.sound_stop(self.soundThrust)
self.object:remove()
end
@ -485,7 +486,6 @@ function sideways_rocket.on_punch(self, puncher)
self.driver = nil
puncher:set_detach()
default.player_attached[name] = false
minetest.sound_stop(self.soundThrust)
end
if not self.driver then
-- Move to inventory
@ -521,7 +521,6 @@ function sideways_rocket.on_rightclick(self, clicker)
minetest.after(0.1, function()
clicker:setpos(pos)
end)
minetest.sound_stop(self.soundThrust)
elseif not self.driver then
-- Attach
local attach = clicker:get_attach()
@ -608,7 +607,6 @@ function sideways_rocket.on_step(self, dtime)
driver_objref:set_detach()
driver_objref:set_eye_offset({x=0,y=20,z=0},{x=0,y=0,z=0})
driver_objref:set_attach(rocket, "", {x = 0, y = 20, z = 0}, {x = 0, y = 0, z = 0})
minetest.sound_stop(self.soundThrust)
self.object:remove()
--right click after pressing A+D to go into the rocket
elseif ctrl.left then
@ -633,7 +631,11 @@ function sideways_rocket.on_step(self, dtime)
atmos = ":asteriod:atmos"
end
local p1 = self.object:getpos()
if p1 == nil then
return false
else
p1.x = p1.x + 2
end
local p2 = self.object:getpos()
p2.x = p2.x - 2
local p3 = self.object:getpos()
@ -641,7 +643,6 @@ function sideways_rocket.on_step(self, dtime)
local p4 = self.object:getpos()
p4.x = p4.x - 2
if minetest.get_node(p1).name ~= "air" and minetest.get_node(p1).name ~= vacuum and minetest.get_node(p1).name ~= atmos and self.v > 10 then
minetest.sound_stop(self.soundThrust)
self.object:remove()
if driver_objref then
default.player_set_animation(driver_objref, "stand" , 30)
@ -654,7 +655,6 @@ function sideways_rocket.on_step(self, dtime)
explode_center = false,
})
elseif minetest.get_node(p2).name ~= "air" and minetest.get_node(p2).name ~= vacuum and minetest.get_node(p1).name ~= atmos and self.v > 10 then
minetest.sound_stop(self.soundThrust)
self.object:remove()
if driver_objref then
default.player_set_animation(driver_objref, "stand" , 30)
@ -667,7 +667,6 @@ function sideways_rocket.on_step(self, dtime)
explode_center = false,
})
elseif minetest.get_node(p3).name ~= "air" and minetest.get_node(p3).name ~= vacuum and minetest.get_node(p1).name ~= atmos and self.v > 10 then
minetest.sound_stop(self.soundThrust)
self.object:remove()
if driver_objref then
default.player_set_animation(driver_objref, "stand" , 30)
@ -680,7 +679,6 @@ function sideways_rocket.on_step(self, dtime)
explode_center = false,
})
elseif minetest.get_node(p4).name ~= "air" and minetest.get_node(p4).name ~= vacuum and minetest.get_node(p1).name ~= atmos and self.v > 10 then
minetest.sound_stop(self.soundThrust)
self.object:remove()
if driver_objref then
default.player_set_animation(driver_objref, "stand" , 30)
@ -783,7 +781,11 @@ function sideways_rocket.on_step(self, dtime)
atmos = ":asteriod:atmos"
end
local p1 = self.object:getpos()
if p1 == nil then
return false
else
p1.x = p1.x + 2
end
local p2 = self.object:getpos()
p2.x = p2.x - 2
local p3 = self.object:getpos()
@ -791,7 +793,6 @@ function sideways_rocket.on_step(self, dtime)
local p4 = self.object:getpos()
p4.x = p4.x - 2
if minetest.get_node(p1).name ~= "air" and minetest.get_node(p1).name ~= vacuum and minetest.get_node(p1).name ~= atmos and self.v > 10 then
minetest.sound_stop(self.soundThrust)
self.object:remove()
if driver_objref then
default.player_set_animation(driver_objref, "stand" , 30)
@ -804,7 +805,6 @@ function sideways_rocket.on_step(self, dtime)
explode_center = false,
})
elseif minetest.get_node(p2).name ~= "air" and minetest.get_node(p2).name ~= vacuum and minetest.get_node(p1).name ~= atmos and self.v > 10 then
minetest.sound_stop(self.soundThrust)
self.object:remove()
if driver_objref then
default.player_set_animation(driver_objref, "stand" , 30)
@ -817,7 +817,6 @@ function sideways_rocket.on_step(self, dtime)
explode_center = false,
})
elseif minetest.get_node(p3).name ~= "air" and minetest.get_node(p3).name ~= vacuum and minetest.get_node(p1).name ~= atmos and self.v > 10 then
minetest.sound_stop(self.soundThrust)
self.object:remove()
if driver_objref then
default.player_set_animation(driver_objref, "stand" , 30)
@ -830,7 +829,6 @@ function sideways_rocket.on_step(self, dtime)
explode_center = false,
})
elseif minetest.get_node(p4).name ~= "air" and minetest.get_node(p4).name ~= vacuum and minetest.get_node(p1).name ~= atmos and self.v > 10 then
minetest.sound_stop(self.soundThrust)
self.object:remove()
if driver_objref then
default.player_set_animation(driver_objref, "stand" , 30)