@@ -172,15 +172,23 @@ function boat.on_step(self, dtime)
172
172
local new_velo
173
173
local new_acce = {x = 0 , y = 0 , z = 0 }
174
174
if not is_water (p ) then
175
- local nodedef = minetest .registered_nodes [minetest .get_node (p ).name ]
176
- if (not nodedef ) or nodedef .walkable then
175
+ local nodename = minetest .get_node (p ).name
176
+ local nodedef = minetest .registered_nodes [nodename ]
177
+ if nodename == " ignore" then
178
+ -- at world edge bounce boat back into world
179
+ self .v = - self .v
180
+ -- at world base avoid falling into ignore
181
+ new_velo = get_velocity (self .v , self .object :getyaw (), 0 )
182
+ elseif (not nodedef ) or nodedef .walkable then
177
183
self .v = 0
178
184
new_acce = {x = 0 , y = 1 , z = 0 }
185
+ new_velo = get_velocity (self .v , self .object :getyaw (),
186
+ self .object :getvelocity ().y )
179
187
else
180
188
new_acce = {x = 0 , y = - 9.8 , z = 0 }
189
+ new_velo = get_velocity (self .v , self .object :getyaw (),
190
+ self .object :getvelocity ().y )
181
191
end
182
- new_velo = get_velocity (self .v , self .object :getyaw (),
183
- self .object :getvelocity ().y )
184
192
self .object :setpos (self .object :getpos ())
185
193
else
186
194
p .y = p .y + 1
0 commit comments