Line 201: |
Line 201: |
| end | | end |
| | | |
− | function ship_cgs(ship_name, ship_suffix, j) | + | function ship_cgs(ship_name, ship_suffix, j, seasonal_forms) |
| j = j or 1 | | j = j or 1 |
| ship_suffix = ship_suffix or "" | | ship_suffix = ship_suffix or "" |
Line 210: |
Line 210: |
| end | | end |
| local form_data = ship_data[ship_suffix] | | local form_data = ship_data[ship_suffix] |
− | local seasonal_forms = {} | + | seasonal_forms = seasonal_forms or {} |
| for suffix, data in pairs(ship_data) do | | for suffix, data in pairs(ship_data) do |
| if data._seasonal or data._season then | | if data._seasonal or data._season then |
Line 238: |
Line 238: |
| season_suffix = data._season_suffix, | | season_suffix = data._season_suffix, |
| }) | | }) |
− | end
| |
− | if ship_data.seasonal_order then
| |
− | table.sort(seasonal_forms, function(a, b)
| |
− | local i = U.ifind(ship_data.seasonal_order, a.suffux)
| |
− | local j = U.ifind(ship_data.seasonal_order, b.suffux)
| |
− | if i and j then
| |
− | return i < j
| |
− | else
| |
− | return a.suffix < b.suffix
| |
− | end
| |
− | end)
| |
| end | | end |
| local i = 1 | | local i = 1 |
Line 254: |
Line 243: |
| local ship_name_next, ship_suffix_next = Ship:process_ship_key(form_data._remodel_to) | | local ship_name_next, ship_suffix_next = Ship:process_ship_key(form_data._remodel_to) |
| if ship_name_next ~= ship_name then | | if ship_name_next ~= ship_name then |
− | return U.concat(forms, U.concat(seasonal_forms, ship_cgs(ship_name_next, ship_suffix_next, j + 1))) | + | return U.concat(forms, ship_cgs(ship_name_next, ship_suffix_next, j + 1, seasonal_forms)) |
| else | | else |
| local name = form_data._remodel_to | | local name = form_data._remodel_to |