@@ -106,21 +106,21 @@ function boat.on_step(self, dtime)
106
106
end
107
107
if ctrl .left then
108
108
if ctrl .down then
109
- self .object :setyaw (yaw - math.pi / 120 - dtime * math.pi / 120 )
109
+ self .object :setyaw (yaw - ( 1 + dtime ) * 0.03 )
110
110
else
111
- self .object :setyaw (yaw + math.pi / 120 + dtime * math.pi / 120 )
111
+ self .object :setyaw (yaw + ( 1 + dtime ) * 0.03 )
112
112
end
113
113
end
114
114
if ctrl .right then
115
115
if ctrl .down then
116
- self .object :setyaw (yaw + math.pi / 120 + dtime * math.pi / 120 )
116
+ self .object :setyaw (yaw + ( 1 + dtime ) * 0.03 )
117
117
else
118
- self .object :setyaw (yaw - math.pi / 120 - dtime * math.pi / 120 )
118
+ self .object :setyaw (yaw - ( 1 + dtime ) * 0.03 )
119
119
end
120
120
end
121
121
end
122
122
local velo = self .object :getvelocity ()
123
- if self .v == 0 and velo .x == 0 and velo .z == 0 then
123
+ if self .v == 0 and velo .x == 0 and velo .y == 0 and velo . z == 0 then
124
124
return
125
125
end
126
126
local s = get_sign (self .v )
@@ -142,8 +142,10 @@ function boat.on_step(self, dtime)
142
142
local nodedef = minetest .registered_nodes [minetest .get_node (p ).name ]
143
143
if (not nodedef ) or nodedef .walkable then
144
144
self .v = 0
145
+ new_acce = {x = 0 , y = 1 , z = 0 }
146
+ else
147
+ new_acce = {x = 0 , y = - 9.8 , z = 0 } -- freefall in air -9.81
145
148
end
146
- new_acce = {x = 0 , y = - 10 , z = 0 }
147
149
new_velo = get_velocity (self .v , self .object :getyaw (), self .object :getvelocity ().y )
148
150
else
149
151
p .y = p .y + 1
@@ -159,7 +161,7 @@ function boat.on_step(self, dtime)
159
161
new_velo = get_velocity (self .v , self .object :getyaw (), y )
160
162
else
161
163
new_acce = {x = 0 , y = 0 , z = 0 }
162
- if math.abs (self .object :getvelocity ().y ) < 1 then
164
+ if math.abs (self .object :getvelocity ().y ) <= 2 then
163
165
local pos = self .object :getpos ()
164
166
pos .y = math.floor (pos .y ) + 0.5
165
167
self .object :setpos (pos )
0 commit comments