From a2aa8b8c77764e3dc399bd8732ec535f4bf40aa2 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Sat, 3 Dec 2022 13:10:18 -0500 Subject: [PATCH] fixed interface --- cybersyn/scripts/main.lua | 13 ++++++++----- cybersyn/scripts/remote-interface.lua | 9 ++++++++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/cybersyn/scripts/main.lua b/cybersyn/scripts/main.lua index 744d3d2..21ce8da 100644 --- a/cybersyn/scripts/main.lua +++ b/cybersyn/scripts/main.lua @@ -29,28 +29,31 @@ end ---@param train Train function on_failed_delivery(map_data, train_id, train) --NOTE: must either change this train's status or remove it after this call + local p_station_id = train.p_station_id + local r_station_id = train.r_station_id + local manifest = train.manifest local is_p_in_progress = train.status == STATUS_D_TO_P or train.status == STATUS_P local is_r_in_progress = is_p_in_progress or train.status == STATUS_P_TO_R or train.status == STATUS_R if is_p_in_progress then - local station = map_data.stations[train.p_station_id] - remove_manifest(map_data, station, train.manifest, 1) + local station = map_data.stations[p_station_id] + remove_manifest(map_data, station, manifest, 1) if train.status == STATUS_P then set_comb1(map_data, station, nil) unset_wagon_combs(map_data, station) end end if is_r_in_progress then - local station = map_data.stations[train.r_station_id] - remove_manifest(map_data, station, train.manifest, -1) + local station = map_data.stations[r_station_id] + remove_manifest(map_data, station, manifest, -1) if train.status == STATUS_R then set_comb1(map_data, station, nil) unset_wagon_combs(map_data, station) end end - interface_raise_train_failed_delivery(train_id, is_p_in_progress, is_r_in_progress) train.r_station_id = 0 train.p_station_id = 0 train.manifest = nil + interface_raise_train_failed_delivery(train_id, is_p_in_progress, p_station_id, is_r_in_progress, r_station_id, manifest) end diff --git a/cybersyn/scripts/remote-interface.lua b/cybersyn/scripts/remote-interface.lua index 60e559b..852cd1a 100644 --- a/cybersyn/scripts/remote-interface.lua +++ b/cybersyn/scripts/remote-interface.lua @@ -128,6 +128,7 @@ function interface_raise_train_dispatched(train_id) end ---@param train_id uint function interface_raise_train_dispatch_failed(train_id) + --this event is rare, it can only occur when a train is bypassing the depot and can't find a path to the provide station, that train is marked as unavailable but not dispatched if on_train_dispatch_failed then raise_event(on_train_dispatch_failed, { train_id = train_id, @@ -136,13 +137,19 @@ function interface_raise_train_dispatch_failed(train_id) end ---@param train_id uint ---@param was_p_in_progress boolean +---@param p_station_id uint ---@param was_r_in_progress boolean -function interface_raise_train_failed_delivery(train_id, was_p_in_progress, was_r_in_progress) +---@param r_station_id uint +---@param manifest Manifest +function interface_raise_train_failed_delivery(train_id, was_p_in_progress, p_station_id, was_r_in_progress, r_station_id, manifest) if on_train_failed_delivery then raise_event(on_train_failed_delivery, { train_id = train_id, was_p_in_progress = was_p_in_progress, + p_station_id = p_station_id, was_r_in_progress = was_r_in_progress, + r_station_id = r_station_id, + manifest = manifest, }) end end