mirror of
https://github.com/Xevion/project-cybersyn.git
synced 2025-12-08 14:08:04 -06:00
changed provider priority
This commit is contained in:
@@ -4,6 +4,7 @@ Date: 2022-1-9
|
|||||||
Changes:
|
Changes:
|
||||||
- Made the automatic allow list slightly more forgiving to stations where the last wagon would be on a curved rail
|
- Made the automatic allow list slightly more forgiving to stations where the last wagon would be on a curved rail
|
||||||
- Improved performance when fuel threshold is set to 1
|
- Improved performance when fuel threshold is set to 1
|
||||||
|
- Prioritized distance from provider to requester over distance from train to provider
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
- Fixed a bug where it was possible for a single station to be updated twice per dispatch cycle, which could cause a crash
|
- Fixed a bug where it was possible for a single station to be updated twice per dispatch cycle, which could cause a crash
|
||||||
- Fixed a crash where trains would sometimes think a destroyed depot still exists
|
- Fixed a crash where trains would sometimes think a destroyed depot still exists
|
||||||
|
|||||||
@@ -349,7 +349,7 @@ local function tick_dispatch(map_data, mod_settings)
|
|||||||
---@type uint
|
---@type uint
|
||||||
local j = 1
|
local j = 1
|
||||||
while j <= #p_stations do
|
while j <= #p_stations do
|
||||||
local p_flag, r_flag, netand, best_p_train_id, best_t_prior, best_capacity, best_t_to_p_dist, effective_count, override_threshold, p_prior, best_p_dist
|
local p_flag, r_flag, netand, best_p_train_id, best_t_prior, best_capacity, best_t_to_p_dist, effective_count, override_threshold, p_prior, best_p_to_r_dist
|
||||||
|
|
||||||
local p_station_id = p_stations[j]
|
local p_station_id = p_stations[j]
|
||||||
local p_station = stations[p_station_id]
|
local p_station = stations[p_station_id]
|
||||||
@@ -387,6 +387,11 @@ local function tick_dispatch(map_data, mod_settings)
|
|||||||
if p_prior < best_p_prior then
|
if p_prior < best_p_prior then
|
||||||
goto p_continue
|
goto p_continue
|
||||||
end
|
end
|
||||||
|
|
||||||
|
best_p_to_r_dist = p_station.entity_stop.valid and r_station.entity_stop.valid and get_dist(p_station.entity_stop, r_station.entity_stop) or INF
|
||||||
|
if p_prior == best_p_prior and best_p_to_r_dist > best_dist then
|
||||||
|
goto p_continue
|
||||||
|
end
|
||||||
if correctness < 1 then
|
if correctness < 1 then
|
||||||
correctness = 1
|
correctness = 1
|
||||||
closest_to_correct_p_station = p_station
|
closest_to_correct_p_station = p_station
|
||||||
@@ -466,15 +471,10 @@ local function tick_dispatch(map_data, mod_settings)
|
|||||||
goto p_continue
|
goto p_continue
|
||||||
end
|
end
|
||||||
|
|
||||||
best_p_dist = p_station.entity_stop.valid and r_station.entity_stop.valid and (best_t_to_p_dist + get_dist(p_station.entity_stop, r_station.entity_stop)) or INF
|
|
||||||
if p_prior == best_p_prior and best_p_dist > best_dist then
|
|
||||||
goto p_continue
|
|
||||||
end
|
|
||||||
|
|
||||||
p_station_i = j
|
p_station_i = j
|
||||||
best_train_id = best_p_train_id
|
best_train_id = best_p_train_id
|
||||||
best_p_prior = p_prior
|
best_p_prior = p_prior
|
||||||
best_dist = best_p_dist
|
best_dist = best_t_to_p_dist + best_p_to_r_dist
|
||||||
::p_continue::
|
::p_continue::
|
||||||
j = j + 1
|
j = j + 1
|
||||||
::p_continue_remove::
|
::p_continue_remove::
|
||||||
|
|||||||
Reference in New Issue
Block a user