Fix new wagon positioning when wheel positions are asymmetric, and remove leftover train.debug

master
orwell96 2022-02-24 22:04:39 +01:00
parent 3cb21a80dc
commit 8beacdc508
1 changed files with 3 additions and 2 deletions

View File

@ -427,7 +427,9 @@ function wagon:on_step(dtime)
local pos2 = advtrains.path_get_interpolated(train, index2)
npos = advtrains.path_get(train, atfloor(index)) -- need npos just for node loaded check
-- calculate center of 2 positions and vdir vector
pos = advtrains.pos_median(pos1, pos2)
-- if wheel positions are asymmetric, needs to weight by the difference!
local fact = self.wheel_positions[1] / (self.wheel_positions[1]-self.wheel_positions[2])
pos = {x=pos1.x-(pos1.x-pos2.x)*fact, y=pos1.y-(pos1.y-pos2.y)*fact, z=pos1.z-(pos1.z-pos2.z)*fact}
if data.wagon_flipped then
vdir = vector.normalize(vector.subtract(pos2, pos1))
else
@ -520,7 +522,6 @@ function wagon:on_step(dtime)
if data.wagon_flipped then
oyaw = yaw + math.pi
end
train.debug = "yaw "..yaw.." oyaw "..oyaw.." flip "..(data.wagon_flipped and "yes" or "no")
--FIX: use index of the wagon, not of the train.
local velocity = train.velocity * advtrains.global_slowdown