aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--advtrains/trainlogic.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/advtrains/trainlogic.lua b/advtrains/trainlogic.lua
index bf17133..1406080 100644
--- a/advtrains/trainlogic.lua
+++ b/advtrains/trainlogic.lua
@@ -454,8 +454,16 @@ function advtrains.train_step_b(id, train, dtime)
end
--- 4. move train ---
-
+ local oi = train.index
train.index=train.index and train.index+((train.velocity/(train.path_dist[math.floor(train.index)] or 1))*dtime) or 0
+ if train.index ~= train.index then -- This is a check whether index is "NaN" https://stackoverflow.com/questions/37753694/lua-check-if-a-number-value-is-nan
+ atwarn("Index of train is NaN!")
+ advtrains.path_print(train, atwarn)
+ atwarn("Calculation index=",oi,"+(",train.velocity,"/",train.path_dist[math.floor(train.index)],"*",dtime)
+ advtrains.path_invalidate(train)
+ train.wait_for_path = true
+ return
+ end
recalc_end_index(train)
end