diff --git a/cart_entity.lua b/cart_entity.lua index 6c31a05..ba23713 100644 --- a/cart_entity.lua +++ b/cart_entity.lua @@ -143,7 +143,6 @@ end function cart_entity:on_step(dtime) local vel = self.object:getvelocity() - local update = {} if self.punched then vel = vector.add(vel, self.velocity) self.object:setvelocity(vel) @@ -153,6 +152,7 @@ function cart_entity:on_step(dtime) end local pos = self.object:getpos() + local update = {} if self.old_pos and not self.punched then local flo_pos = vector.round(pos) @@ -175,9 +175,8 @@ function cart_entity:on_step(dtime) if self.old_pos then -- Detection for "skipping" nodes - local expected_pos = vector.add(self.old_pos, self.old_dir) local found_path = boost_cart:pathfinder( - pos, expected_pos, self.old_dir, ctrl, self.old_switch, self.railtype + pos, self.old_pos, self.old_dir, ctrl, self.old_switch, self.railtype ) if not found_path then @@ -258,7 +257,7 @@ function cart_entity:on_step(dtime) acc = -0.4 end end - + -- Slow down or speed up, depending on Y direction if acc then acc = acc + dir.y * -2.5 @@ -344,7 +343,6 @@ function cart_entity:on_step(dtime) if update.pos then self.object:setpos(pos) end - update = nil end minetest.register_entity(":carts:cart", cart_entity) diff --git a/functions.lua b/functions.lua index e889623..f7c560c 100644 --- a/functions.lua +++ b/functions.lua @@ -158,9 +158,9 @@ function boost_cart:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) return {x=0, y=0, z=0} end -function boost_cart:pathfinder(pos_, expected_pos, old_dir, ctrl, pf_switch, railtype) +function boost_cart:pathfinder(pos_, old_pos, old_dir, ctrl, pf_switch, railtype) local pos = vector.round(pos_) - local pf_pos = vector.round(expected_pos) + local pf_pos = vector.round(old_pos) local pf_dir = vector.new(old_dir) for i = 1, 3 do