diff options
author | Singularis <singularis@volny.cz> | 2025-01-01 08:56:09 +0100 |
---|---|---|
committer | orwell <orwell@bleipb.de> | 2025-05-27 20:22:01 +0200 |
commit | 1d3e1cf073eb1edb2e50b78b6e05115fc8649174 (patch) | |
tree | db22b40fcb214d2a26007b9c6a609e4548f668cb /advtrains | |
parent | 3c9b10c52d11ac72f300e6b3d6fc77d0e2c3d23c (diff) | |
download | advtrains-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.lua | 8 | ||||
-rw-r--r-- | advtrains/wagons.lua | 8 |
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 |