From 8f1f3760f03fd25ca9912020ae607d7849cc425b Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 30 Jul 2017 19:55:36 +0200 Subject: [PATCH] Carts: Check for last pathfinder predition too Minor fix to reduce cart jitter slightly --- mods/carts/functions.lua | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/mods/carts/functions.lua b/mods/carts/functions.lua index 96a12d2b..9b7e2c65 100644 --- a/mods/carts/functions.lua +++ b/mods/carts/functions.lua @@ -159,23 +159,29 @@ function carts:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) end function carts:pathfinder(pos_, old_pos, old_dir, ctrl, pf_switch, railtype) + if vector.equals(old_pos, pos_) then + return true + end + local pos = vector.round(pos_) local pf_pos = vector.round(old_pos) local pf_dir = vector.new(old_dir) for i = 1, 3 do - if vector.equals(pf_pos, pos) then - -- Success! Cart moved on correctly - return true - end + pf_dir, pf_switch = carts:get_rail_direction( + pf_pos, pf_dir, ctrl, pf_switch, railtype) - pf_dir, pf_switch = carts:get_rail_direction(pf_pos, pf_dir, ctrl, pf_switch, railtype) if vector.equals(pf_dir, {x=0, y=0, z=0}) then -- No way forwards return false end pf_pos = vector.add(pf_pos, pf_dir) + + if vector.equals(pf_pos, pos) then + -- Success! Cart moved on correctly + return true + end end -- Cart not found return false -- 2.25.1