Skip to content
Snippets Groups Projects
Commit 77545557 authored by paramat's avatar paramat Committed by paramat
Browse files

Boats: Prevent entering 'ignore' nodes

At world edge make boat bounce back into world by inverting speed.
At world base avoid falling into ignore by setting y velocity to 0.
parent 1e9c61f2
No related branches found
No related tags found
No related merge requests found
......@@ -172,15 +172,23 @@ function boat.on_step(self, dtime)
local new_velo
local new_acce = {x = 0, y = 0, z = 0}
if not is_water(p) then
local nodedef = minetest.registered_nodes[minetest.get_node(p).name]
if (not nodedef) or nodedef.walkable then
local nodename = minetest.get_node(p).name
local nodedef = minetest.registered_nodes[nodename]
if nodename == "ignore" then
-- at world edge bounce boat back into world
self.v = -self.v
-- at world base avoid falling into ignore
new_velo = get_velocity(self.v, self.object:getyaw(), 0)
elseif (not nodedef) or nodedef.walkable then
self.v = 0
new_acce = {x = 0, y = 1, z = 0}
new_velo = get_velocity(self.v, self.object:getyaw(),
self.object:getvelocity().y)
else
new_acce = {x = 0, y = -9.8, z = 0}
new_velo = get_velocity(self.v, self.object:getyaw(),
self.object:getvelocity().y)
end
new_velo = get_velocity(self.v, self.object:getyaw(),
self.object:getvelocity().y)
self.object:setpos(self.object:getpos())
else
p.y = p.y + 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment