summaryrefslogtreecommitdiff
path: root/boost_cart/cart_entity.lua
diff options
context:
space:
mode:
Diffstat (limited to 'boost_cart/cart_entity.lua')
-rw-r--r--boost_cart/cart_entity.lua20
1 files changed, 20 insertions, 0 deletions
diff --git a/boost_cart/cart_entity.lua b/boost_cart/cart_entity.lua
index 0105cf5..69f45fb 100644
--- a/boost_cart/cart_entity.lua
+++ b/boost_cart/cart_entity.lua
@@ -307,6 +307,7 @@ function cart_entity:on_step(dtime)
self.object:set_acceleration(new_acc)
self.old_pos = vector.round(pos)
+ local old_y_dir = self.old_dir.y
if not vector.equals(dir, {x=0, y=0, z=0}) and not stop_wiggle then
self.old_dir = dir
end
@@ -351,6 +352,25 @@ function cart_entity:on_step(dtime)
anim = {x=2, y=2}
end
self.object:set_animation(anim, 1, 0)
+ if player and dir.y ~= old_y_dir then
+ local feet = {x=0, y=0, z=0}
+ local eye = {x=0, y=-4, z=0}
+ feet.y = boost_cart.old_player_model and 6 or -4.2
+ if dir.y ~= 0 then
+ -- TODO: Find a better way to calculate this
+ if boost_cart.old_player_model then
+ feet.y = 6 + 1.5
+ feet.z = -dir.y * 7
+ else
+ feet.y = -4.2 + 3
+ feet.z = -dir.y
+ end
+ eye.z = -dir.y * 10
+ end
+ player:set_attach(self.object, "", feet,
+ {x=dir.y * -45, y=0, z=0})
+ player:set_eye_offset(eye, eye)
+ end
self.object:set_velocity(vel)
if update.pos then