aboutsummaryrefslogtreecommitdiff
path: root/advtrains
diff options
context:
space:
mode:
authorSingularis <singularis@volny.cz>2025-01-01 08:56:09 +0100
committerorwell <orwell@bleipb.de>2025-05-27 20:22:01 +0200
commit1d3e1cf073eb1edb2e50b78b6e05115fc8649174 (patch)
treedb22b40fcb214d2a26007b9c6a609e4548f668cb /advtrains
parent3c9b10c52d11ac72f300e6b3d6fc77d0e2c3d23c (diff)
downloadadvtrains-1d3e1cf073eb1edb2e50b78b6e05115fc8649174.tar.gz
advtrains-1d3e1cf073eb1edb2e50b78b6e05115fc8649174.tar.bz2
advtrains-1d3e1cf073eb1edb2e50b78b6e05115fc8649174.zip
[advtrains] opravena chyba způsobující zasekávání kamery při jízdě vlakem některými směry
- [advtrains_line_automation] opraven pád serveru při zobrazení posledních jízd na lince za určitých okolností - [advtrains_line_automation] příkaz /vlaky nově bere v úvahu i zpoždění na příjezdu do následující zastávky - [ch_containers] vývoj
Diffstat (limited to 'advtrains')
-rw-r--r--advtrains/helpers.lua8
-rw-r--r--advtrains/wagons.lua8
2 files changed, 13 insertions, 3 deletions
diff --git a/advtrains/helpers.lua b/advtrains/helpers.lua
index db5023b..33950ec 100644
--- a/advtrains/helpers.lua
+++ b/advtrains/helpers.lua
@@ -516,3 +516,11 @@ function advtrains.after_place_signal(pos, placer, itemstack, pointed_thing)
node.param2 = n[2]
advtrains.ndb.swap_node(pos, node)
end
+
+function advtrains.yaw_equals(yaw1, yaw2)
+ if yaw1 ~= nil and yaw2 ~= nil then
+ return math.abs(yaw2 - yaw1) < 1.0e-9
+ else
+ return yaw1 == yaw2
+ end
+end
diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua
index 3ecd60d..02e0709 100644
--- a/advtrains/wagons.lua
+++ b/advtrains/wagons.lua
@@ -562,18 +562,20 @@ function wagon:on_step(dtime)
end
end
+ local wagon_yaw_changed = not advtrains.yaw_equals(self.old_yaw, oyaw)
+
if not self.old_velocity_vector
or not vector.equals(velocityvec, self.old_velocity_vector)
or not self.old_acceleration_vector
or not vector.equals(accelerationvec, self.old_acceleration_vector)
- or self.old_yaw~=oyaw
+ or wagon_yaw_changed
or updatepct_timer_elapsed then--only send update packet if something changed
self.object:set_pos(pos)
self.object:set_velocity(velocityvec)
self.object:set_acceleration(accelerationvec)
- if #self.seats > 0 and self.old_yaw ~= oyaw then
+ if #self.seats > 0 and wagon_yaw_changed then
if not self.player_yaw then
self.player_yaw = {}
end
@@ -592,7 +594,7 @@ function wagon:on_step(dtime)
end
end
self.turning = true
- elseif self.old_yaw == oyaw then
+ elseif not wagon_yaw_changed then
-- train is no longer turning
self.turning = false
end