From 1d3e1cf073eb1edb2e50b78b6e05115fc8649174 Mon Sep 17 00:00:00 2001 From: Singularis Date: Wed, 1 Jan 2025 08:56:09 +0100 Subject: [advtrains] opravena chyba způsobující zasekávání kamery při jízdě vlakem některými směry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - [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 --- advtrains/helpers.lua | 8 ++++++++ advtrains/wagons.lua | 8 +++++--- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'advtrains') 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 -- cgit v1.2.3