From 2e0b8c1684287f1195e3255d8e32062a193658f5 Mon Sep 17 00:00:00 2001 From: Yi Yang Date: Thu, 12 Sep 2024 04:52:41 +0800 Subject: [PATCH] (station) Default to shelter-2 in demo layouts (#55) --- docs/station/changelog.md | 2 + .../dovemere_2018_lib/demos/real_yard.py | 14 ++--- .../dovemere_2018_lib/demos/semi_auto.py | 15 ++--- .../dovemere_2018_lib/demos/semi_np_auto.py | 19 ++++-- .../dovemere_2018_lib/demos/side_auto.py | 16 ++--- .../dovemere_2018_lib/demos/side_np_auto.py | 11 ++-- .../demos/side_third_auto.py | 14 ++--- .../demos/side_third_np_auto.py | 15 ++--- .../dovemere_2018_lib/demos/special_aq.py | 33 +++++----- .../dovemere_2018_lib/demos/special_cp.py | 52 +++++++++++++--- .../dovemere_2018_lib/demos/special_g.py | 37 ++++++++---- .../dovemere_2018_lib/demos/special_p.py | 24 ++++++-- .../dovemere_2018_lib/demos/special_sa.py | 60 ++++++++++++++----- .../flexible_stations/semitraversable.py | 16 ++--- .../flexible_stations/side.py | 4 +- .../flexible_stations/side_third.py | 4 +- .../flexible_stations/traversable.py | 12 ++-- station/stations/dovemere_2018_lib/layouts.py | 4 +- 18 files changed, 234 insertions(+), 118 deletions(-) diff --git a/docs/station/changelog.md b/docs/station/changelog.md index 284f5ddd..967c9c66 100644 --- a/docs/station/changelog.md +++ b/docs/station/changelog.md @@ -9,6 +9,8 @@ Add snow and escalator graphics for station buildings. Designate station tiles without platforms as waypoints. +Bugfix: station templates with shelter type 2 sometimes included wrong shelter graphics. + 0.2.2 (2024-06-14) -------------------- Further fix for the climate-aware groundsprites: they didn't work with custom track NewGRFs. diff --git a/station/stations/dovemere_2018_lib/demos/real_yard.py b/station/stations/dovemere_2018_lib/demos/real_yard.py index 3bfa86c5..5bf26314 100644 --- a/station/stations/dovemere_2018_lib/demos/real_yard.py +++ b/station/stations/dovemere_2018_lib/demos/real_yard.py @@ -1,6 +1,6 @@ from station.lib import Demo -from station.stations.dovemere_2018_lib.layouts import named_tiles, platform_n, track -from station.stations.platforms import named_tiles as platform_tiles +from station.stations.dovemere_2018_lib.layouts import named_tiles, track +from station.stations.platforms import named_tiles as platform_tiles, cns_shelter_2 from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour @@ -11,7 +11,7 @@ def make_line(x, a, b, c, d): return [x] * 3 + [a] + [b] * 3 + [c] + [d] * 4 + [c.R] + [b.R] * 3 + [a.R] + [x] * 3 -c_n = make_line(platform_n, side_c_n, central_d, central_windowed_d, central_windowed_extender_d) +c_n = make_line(cns_shelter_2, side_c_shelter_2_n, central_d, central_windowed_d, central_windowed_extender_d) c_f = [x.T for x in c_n] c_empty = make_line(track, side_c_empty, central_d, central_windowed_d, central_windowed_extender_d) @@ -24,11 +24,11 @@ def make_line(x, a, b, c, d): c_empty, c_empty, c_n, - make_line(platform_n.T, side_b_f, central_d, central_windowed_d, central_windowed_extender_d), - make_line(platform_n, side_a_n, central_d, central_windowed_d, central_windowed_extender_d), + make_line(cns_shelter_2.T, side_b_shelter_2_f, central_d, central_windowed_d, central_windowed_extender_d), + make_line(cns_shelter_2, side_a_shelter_2_n, central_d, central_windowed_d, central_windowed_extender_d), make_line( - platform_tiles.concourse_side_shelter_1.T, - corner_platform, + platform_tiles.concourse_side_shelter_2.T, + corner_shelter_2_platform, front_normal_platform, front_gate_platform, front_gate_extender_platform, diff --git a/station/stations/dovemere_2018_lib/demos/semi_auto.py b/station/stations/dovemere_2018_lib/demos/semi_auto.py index 4f7c3662..bfab6adf 100644 --- a/station/stations/dovemere_2018_lib/demos/semi_auto.py +++ b/station/stations/dovemere_2018_lib/demos/semi_auto.py @@ -1,22 +1,23 @@ from station.lib import Demo -from station.stations.dovemere_2018_lib.layouts import platform_d, platform_n, concourse_tile -from station.stations.platforms import named_tiles as platform_tiles +from station.stations.dovemere_2018_lib.layouts import concourse_tile +from station.stations.platforms import named_tiles as platform_tiles, cns_shelter_2, cns_shelter_2_d from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour from station.stations.dovemere_2018_lib.flexible_stations import semitraversable from .utils import h_merge -nt = platform_tiles.concourse_side_shelter_1 +nt = platform_tiles.concourse_side_shelter_2 -row_3 = h_merge([semitraversable.demo_1(i, 3) for i in range(1, 5)], [[nt], [platform_d], [nt.T]]) +row_3 = h_merge([semitraversable.demo_1(i, 3) for i in range(1, 5)], [[nt], [cns_shelter_2_d], [nt.T]]) v_sep = [[concourse_tile] * len(row_3[0])] * 2 -row_4 = h_merge([semitraversable.demo_1(i, 4) for i in range(1, 5)], [[nt], [platform_n.T], [platform_n], [nt.T]]) +row_4 = h_merge([semitraversable.demo_1(i, 4) for i in range(1, 5)], [[nt], [cns_shelter_2.T], [cns_shelter_2], [nt.T]]) row_5 = h_merge( - [semitraversable.demo_1(i, 5) for i in range(1, 5)], [[nt], [platform_d], [platform_d], [platform_d], [nt.T]] + [semitraversable.demo_1(i, 5) for i in range(1, 5)], + [[nt], [cns_shelter_2_d], [cns_shelter_2_d], [cns_shelter_2_d], [nt.T]], ) row_6 = h_merge( [semitraversable.demo_1(i, 6) for i in range(1, 5)], - [[nt], [platform_n.T], [platform_n], [platform_n.T], [platform_n], [nt.T]], + [[nt], [cns_shelter_2.T], [cns_shelter_2], [cns_shelter_2.T], [cns_shelter_2], [nt.T]], ) semi_auto_demo = Demo( diff --git a/station/stations/dovemere_2018_lib/demos/semi_np_auto.py b/station/stations/dovemere_2018_lib/demos/semi_np_auto.py index 419e8884..c65819eb 100644 --- a/station/stations/dovemere_2018_lib/demos/semi_np_auto.py +++ b/station/stations/dovemere_2018_lib/demos/semi_np_auto.py @@ -1,5 +1,6 @@ from station.lib import Demo -from station.stations.dovemere_2018_lib.layouts import platform_d, platform_n, concourse_tile +from station.stations.dovemere_2018_lib.layouts import concourse_tile +from station.stations.platforms import cns_shelter_2, cns_shelter_2_d from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour from station.stations.dovemere_2018_lib.flexible_stations import semitraversable @@ -7,20 +8,28 @@ row_4 = h_merge( [semitraversable.demo_2(i, 4) for i in range(1, 5)], - [[concourse_tile], [platform_n], [platform_n.T], [concourse_tile]], + [[concourse_tile], [cns_shelter_2], [cns_shelter_2.T], [concourse_tile]], ) v_sep = [[concourse_tile] * len(row_4[0])] * 2 row_5 = h_merge( [semitraversable.demo_2(i, 5) for i in range(1, 5)], - [[concourse_tile], [platform_n], [platform_d], [platform_n.T], [concourse_tile]], + [[concourse_tile], [cns_shelter_2], [cns_shelter_2_d], [cns_shelter_2.T], [concourse_tile]], ) row_6 = h_merge( [semitraversable.demo_2(i, 6) for i in range(1, 5)], - [[concourse_tile], [platform_n], [platform_n.T], [platform_n], [platform_n.T], [concourse_tile]], + [[concourse_tile], [cns_shelter_2], [cns_shelter_2.T], [cns_shelter_2], [cns_shelter_2.T], [concourse_tile]], ) row_7 = h_merge( [semitraversable.demo_2(i, 7) for i in range(1, 5)], - [[concourse_tile], [platform_n], [platform_d], [platform_d], [platform_d], [platform_n.T], [concourse_tile]], + [ + [concourse_tile], + [cns_shelter_2], + [cns_shelter_2_d], + [cns_shelter_2_d], + [cns_shelter_2_d], + [cns_shelter_2.T], + [concourse_tile], + ], ) semi_np_auto_demo = Demo( diff --git a/station/stations/dovemere_2018_lib/demos/side_auto.py b/station/stations/dovemere_2018_lib/demos/side_auto.py index 07904e67..305bbbaf 100644 --- a/station/stations/dovemere_2018_lib/demos/side_auto.py +++ b/station/stations/dovemere_2018_lib/demos/side_auto.py @@ -1,17 +1,17 @@ from station.lib import Demo -from station.stations.dovemere_2018_lib.layouts import platform_n, concourse_tile -from station.stations.platforms import named_tiles as platform_tiles +from station.stations.dovemere_2018_lib.layouts import concourse_tile +from station.stations.platforms import named_tiles as platform_tiles, cns_shelter_2 from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour from station.stations.dovemere_2018_lib.flexible_stations import side from .utils import h_merge station_building = h_merge( - [side.side_station_demo(i, 1) for i in range(1, 5)], [[platform_tiles.concourse_side_shelter_1.T]] + [side.side_station_demo(i, 1) for i in range(1, 5)], [[platform_tiles.concourse_side_shelter_2.T]] )[0] n = len(station_building) station_building_2 = h_merge( - [side.side_station_demo(i, 1) for i in [5, 7]], [[platform_tiles.concourse_side_shelter_1.T]] + [side.side_station_demo(i, 1) for i in [5, 7]], [[platform_tiles.concourse_side_shelter_2.T]] )[0] assert n == len(station_building_2) @@ -19,14 +19,14 @@ "Nontraversable automatic stations", [ [x.T for x in station_building], - [platform_n.T] * n, - [platform_n] * n, + [cns_shelter_2.T] * n, + [cns_shelter_2] * n, station_building, [concourse_tile] * n, [concourse_tile] * n, [x.T for x in station_building_2], - [platform_n.T] * n, - [platform_n] * n, + [cns_shelter_2.T] * n, + [cns_shelter_2] * n, station_building_2, ], remap=get_1cc_remap(CompanyColour.BLUE), diff --git a/station/stations/dovemere_2018_lib/demos/side_np_auto.py b/station/stations/dovemere_2018_lib/demos/side_np_auto.py index b298aeeb..f328675c 100644 --- a/station/stations/dovemere_2018_lib/demos/side_np_auto.py +++ b/station/stations/dovemere_2018_lib/demos/side_np_auto.py @@ -1,5 +1,6 @@ from station.lib import Demo -from station.stations.dovemere_2018_lib.layouts import platform_n, concourse_tile +from station.stations.dovemere_2018_lib.layouts import concourse_tile +from station.stations.platforms import cns_shelter_2 from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour from station.stations.dovemere_2018_lib.flexible_stations import side @@ -14,14 +15,14 @@ "Nontraversable automatic stations (no platform)", [ [x.T for x in station_building], - [platform_n.T] * n, - [platform_n] * n, + [cns_shelter_2.T] * n, + [cns_shelter_2] * n, station_building, [concourse_tile] * n, [concourse_tile] * n, [x.T for x in station_building_2], - [platform_n.T] * n, - [platform_n] * n, + [cns_shelter_2.T] * n, + [cns_shelter_2] * n, station_building_2, ], remap=get_1cc_remap(CompanyColour.BLUE), diff --git a/station/stations/dovemere_2018_lib/demos/side_third_auto.py b/station/stations/dovemere_2018_lib/demos/side_third_auto.py index b0c35a69..1320ebdc 100644 --- a/station/stations/dovemere_2018_lib/demos/side_third_auto.py +++ b/station/stations/dovemere_2018_lib/demos/side_third_auto.py @@ -1,12 +1,12 @@ from station.lib import Demo -from station.stations.dovemere_2018_lib.layouts import platform_n, concourse_tile -from station.stations.platforms import named_tiles as platform_tiles +from station.stations.dovemere_2018_lib.layouts import concourse_tile +from station.stations.platforms import named_tiles as platform_tiles, cns_shelter_2 from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour from station.stations.dovemere_2018_lib.flexible_stations import side_third from .utils import h_merge -platform_asym = platform_tiles.cns_side_and_shelter_1 +platform_asym = platform_tiles.cns_side_and_shelter_2 station_building = h_merge([side_third.side_third_station_demo(i, 1) for i in range(1, 5)], [[platform_asym]])[0] n = len(station_building) @@ -17,14 +17,14 @@ "Traversable automatic stations", [ [x.T for x in station_building], - [platform_n.T] * n, - [platform_n] * n, + [cns_shelter_2.T] * n, + [cns_shelter_2] * n, station_building, [concourse_tile] * n, [concourse_tile] * n, [x.T for x in station_building_2], - [platform_n.T] * n, - [platform_n] * n, + [cns_shelter_2.T] * n, + [cns_shelter_2] * n, station_building_2, ], remap=get_1cc_remap(CompanyColour.BLUE), diff --git a/station/stations/dovemere_2018_lib/demos/side_third_np_auto.py b/station/stations/dovemere_2018_lib/demos/side_third_np_auto.py index 7b5ba126..6b3629e6 100644 --- a/station/stations/dovemere_2018_lib/demos/side_third_np_auto.py +++ b/station/stations/dovemere_2018_lib/demos/side_third_np_auto.py @@ -1,27 +1,28 @@ from station.lib import Demo -from station.stations.dovemere_2018_lib.layouts import platform_n, concourse_tile +from station.stations.dovemere_2018_lib.layouts import concourse_tile +from station.stations.platforms import cns_shelter_2 from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour from station.stations.dovemere_2018_lib.flexible_stations import side_third from .utils import h_merge -station_building = h_merge([side_third.side_third_station_np_demo(i, 1) for i in range(1, 5)], [[platform_n]])[0] +station_building = h_merge([side_third.side_third_station_np_demo(i, 1) for i in range(1, 5)], [[cns_shelter_2]])[0] n = len(station_building) -station_building_2 = h_merge([side_third.side_third_station_np_demo(i, 1) for i in [5, 7]], [[platform_n]])[0] +station_building_2 = h_merge([side_third.side_third_station_np_demo(i, 1) for i in [5, 7]], [[cns_shelter_2]])[0] assert n == len(station_building_2) side_third_np_auto_demo = Demo( "Traversable automatic stations", [ [x.T for x in station_building], - [platform_n.T] * n, - [platform_n] * n, + [cns_shelter_2.T] * n, + [cns_shelter_2] * n, station_building, [concourse_tile] * n, [concourse_tile] * n, [x.T for x in station_building_2], - [platform_n.T] * n, - [platform_n] * n, + [cns_shelter_2.T] * n, + [cns_shelter_2] * n, station_building_2, ], remap=get_1cc_remap(CompanyColour.BLUE), diff --git a/station/stations/dovemere_2018_lib/demos/special_aq.py b/station/stations/dovemere_2018_lib/demos/special_aq.py index 96a50feb..4c708f59 100644 --- a/station/stations/dovemere_2018_lib/demos/special_aq.py +++ b/station/stations/dovemere_2018_lib/demos/special_aq.py @@ -1,30 +1,31 @@ from station.lib import Demo from station.stations.dovemere_2018_lib.layouts import named_tiles, platform_d, platform_n +from station.stations.platforms import cns_shelter_2, cns_shelter_2_d from station.stations.platforms import named_tiles as platform_tiles from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour named_tiles.globalize() -nt = platform_tiles.concourse_side_shelter_1 +nt = platform_tiles.concourse_side_shelter_2 -rail_row = [nt.T.M, platform_n.M, platform_n.T.M, platform_d.M, platform_n.M, platform_n.T.M, nt.M] +rail_row = [nt.T.M, cns_shelter_2.M, cns_shelter_2.T.M, cns_shelter_2_d.M, cns_shelter_2.M, cns_shelter_2.T.M, nt.M] top_building = [ - corner_gate_platform.R.M, - side_a3_windowed_f.R.M, - side_a3_windowed_f.T.R.M, - side_a3_windowed_d.R.M, - side_a3_windowed_f.T.R.M, - side_a2_windowed_n.T.R.M, - corner_gate_platform.T.R.M, + corner_gate_shelter_2_platform.R.M, + side_a3_windowed_shelter_2_f.R.M, + side_a3_windowed_shelter_2_f.T.R.M, + side_a3_windowed_shelter_2_d.R.M, + side_a3_windowed_shelter_2_f.T.R.M, + side_a2_windowed_shelter_2_n.T.R.M, + corner_gate_shelter_2_platform.T.R.M, ] bottom_building = [ - corner_gate_platform.M, - side_a2_windowed_n.M, - side_a3_windowed_f.M, - side_a3_windowed_d.T.M, - side_a3_windowed_n.M, - side_a3_windowed_n.T.M, - corner_gate_platform.T.M, + corner_gate_shelter_2_platform.M, + side_a2_windowed_shelter_2_n.M, + side_a3_windowed_shelter_2_f.M, + side_a3_windowed_shelter_2_d.T.M, + side_a3_windowed_shelter_2_n.M, + side_a3_windowed_shelter_2_n.T.M, + corner_gate_shelter_2_platform.T.M, ] special_demo_aq = Demo( diff --git a/station/stations/dovemere_2018_lib/demos/special_cp.py b/station/stations/dovemere_2018_lib/demos/special_cp.py index 04b7a684..ce7712b0 100644 --- a/station/stations/dovemere_2018_lib/demos/special_cp.py +++ b/station/stations/dovemere_2018_lib/demos/special_cp.py @@ -1,22 +1,58 @@ from station.lib import Demo -from station.stations.dovemere_2018_lib.layouts import named_tiles, platform_d, platform_n -from station.stations.platforms import concourse +from station.stations.platforms import ( + cns_shelter_2_d, + cns_shelter_2, + concourse, + named_tiles as platform_shelter_2_tiles, +) +from station.stations.dovemere_2018_lib.layouts import named_tiles from station.stations.misc import default -from station.stations.platforms import named_tiles as platform_tiles from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour named_tiles.globalize() -nt = platform_tiles.concourse_side_shelter_1 +nt = platform_shelter_2_tiles.concourse_side_shelter_2 special_demo_cp = Demo( "Irregular 7×7 station layout", [ [h_end_corridor, tee.T, h_normal_corridor, turn.T.R, default, default, default], - [platform_n, v_central_n, platform_n, v_central_n, platform_d, platform_d, platform_d], - [platform_n.T, v_central_n.T, platform_n.T, v_central_n.T, platform_d, platform_d, platform_d], - [platform_n, v_central_n, platform_n, v_central_n, corner.T, front_normal.T, corner.T.R], - [nt.T, v_end_platform, nt.T, turn, double_inner_corner, central_windowed_extender_d, side_a2_windowed_d.R], + [ + cns_shelter_2, + v_central_shelter_2_n, + cns_shelter_2, + v_central_shelter_2_n, + cns_shelter_2_d, + cns_shelter_2_d, + cns_shelter_2_d, + ], + [ + cns_shelter_2.T, + v_central_shelter_2_n.T, + cns_shelter_2.T, + v_central_shelter_2_n.T, + cns_shelter_2_d, + cns_shelter_2_d, + cns_shelter_2_d, + ], + [ + cns_shelter_2, + v_central_shelter_2_n, + cns_shelter_2, + v_central_shelter_2_n, + corner.T, + front_normal.T, + corner.T.R, + ], + [ + nt.T, + v_end_shelter_2_platform, + nt.T, + turn, + double_inner_corner, + central_windowed_extender_d, + side_a2_windowed_shelter_2_d.R, + ], [concourse, concourse, concourse, concourse, v_funnel, front_normal, corner.R], [default, default, default, default, v_end_gate, default, default], ], diff --git a/station/stations/dovemere_2018_lib/demos/special_g.py b/station/stations/dovemere_2018_lib/demos/special_g.py index 6483a2aa..716aedc5 100644 --- a/station/stations/dovemere_2018_lib/demos/special_g.py +++ b/station/stations/dovemere_2018_lib/demos/special_g.py @@ -1,21 +1,38 @@ from station.lib import Demo -from station.stations.dovemere_2018_lib.layouts import named_tiles, platform_d, platform_n +from station.stations.dovemere_2018_lib.layouts import named_tiles +from station.stations.platforms import cns_brick_shelter_2_d, cns_brick_shelter_2 from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour named_tiles.globalize() -rail_near = [platform_n, v_central_n, platform_n, platform_n, platform_n, v_central_n, platform_n] +rail_near = [ + cns_brick_shelter_2, + v_central_brick_shelter_2_n, + cns_brick_shelter_2, + cns_brick_shelter_2, + cns_brick_shelter_2, + v_central_brick_shelter_2_n, + cns_brick_shelter_2, +] rail_far = [x.T for x in rail_near] -rail_both = [platform_d, v_central_d, platform_d, platform_d, platform_d, v_central_d, platform_d] +rail_both = [ + cns_brick_shelter_2_d, + v_central_brick_shelter_2_d, + cns_brick_shelter_2_d, + cns_brick_shelter_2_d, + cns_brick_shelter_2_d, + v_central_brick_shelter_2_d, + cns_brick_shelter_2_d, +] station = [ - h_end_asym_platform, - tee_platform, - h_gate_1_platform, - h_gate_extender_1_platform, - h_gate_1_platform.R, - tee_platform, - h_end_asym_platform.R, + h_end_asym_brick_shelter_2_platform, + tee_brick_platform, + h_gate_1_brick_platform, + h_gate_extender_1_brick_platform, + h_gate_1_brick_platform.R, + tee_brick_platform, + h_end_asym_brick_shelter_2_platform.R, ] special_demo_g = Demo( diff --git a/station/stations/dovemere_2018_lib/demos/special_p.py b/station/stations/dovemere_2018_lib/demos/special_p.py index dd0c9718..5c858eda 100644 --- a/station/stations/dovemere_2018_lib/demos/special_p.py +++ b/station/stations/dovemere_2018_lib/demos/special_p.py @@ -1,6 +1,6 @@ from station.lib import Demo -from station.stations.dovemere_2018_lib.layouts import named_tiles, platform_n -from station.stations.platforms import concourse +from station.stations.dovemere_2018_lib.layouts import named_tiles +from station.stations.platforms import concourse, cns_shelter_2 from station.stations.misc import default from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour @@ -8,8 +8,24 @@ named_tiles.globalize() top_half = [ [default, h_end_asym_gate.T, turn_gate.T.R, concourse, turn_gate.T, h_end_asym_gate.T.R, default], - [platform_n, platform_n, v_central_n, platform_n, v_central_n, platform_n, platform_n], - [platform_n.T, platform_n.T, v_central_n.T, platform_n.T, v_central_n.T, platform_n.T, platform_n.T], + [ + cns_shelter_2, + cns_shelter_2, + v_central_shelter_2_n, + cns_shelter_2, + v_central_shelter_2_n, + cns_shelter_2, + cns_shelter_2, + ], + [ + cns_shelter_2.T, + cns_shelter_2.T, + v_central_shelter_2_n.T, + cns_shelter_2.T, + v_central_shelter_2_n.T, + cns_shelter_2.T, + cns_shelter_2.T, + ], [ h_end_corridor, h_normal_corridor, diff --git a/station/stations/dovemere_2018_lib/demos/special_sa.py b/station/stations/dovemere_2018_lib/demos/special_sa.py index b0d9a4b2..ef9696b4 100644 --- a/station/stations/dovemere_2018_lib/demos/special_sa.py +++ b/station/stations/dovemere_2018_lib/demos/special_sa.py @@ -1,30 +1,62 @@ from station.lib import Demo -from station.stations.dovemere_2018_lib.layouts import named_tiles, platform_n -from station.stations.platforms import named_tiles as platform_tiles +from station.stations.dovemere_2018_lib.layouts import named_tiles +from station.stations.platforms import named_tiles as platform_tiles, cns_brick_shelter_1 from station.lib.utils import get_1cc_remap from agrf.graphics.palette import CompanyColour named_tiles.globalize() -nt = platform_tiles.concourse_side_shelter_1 +nt = platform_tiles.concourse_brick_side_shelter_1 special_demo_sa = Demo( "Irregular 7×7 station layout", [ [ - v_end_platform.M, - v_central_n.M, - v_central_n.T.M, - v_central_n.M, - v_central_n.T.M, + v_end_brick_platform.M, + v_central_brick_n.M, + v_central_brick_n.T.M, + v_central_brick_n.M, + v_central_brick_n.T.M, v_funnel_2.R.M, bicorner_2.T.R, ], - [nt.T.M, platform_n.M, platform_n.T.M, platform_n.M, corner.R.M, double_corner_2, v_funnel_2.R], - [nt.T.M, platform_n.M, platform_n.T.M, corner.R.M, double_corner_2, corner.R, v_central_n.T], - [nt.T.M, platform_n.M, corner.R.M, double_corner_2, corner.R, platform_n, v_central_n], - [nt.T.M, corner.R.M, double_corner_2, corner.R, platform_n.T, platform_n.T, v_central_n.T], - [corner_gate.R.M, double_corner_2, corner.R, platform_n, platform_n, platform_n, v_central_n], - [front_gate_extender_corner, corner_gate.R, nt.T, nt.T, nt.T, nt.T, v_end_platform], + [ + nt.T.M, + cns_brick_shelter_1.M, + cns_brick_shelter_1.T.M, + cns_brick_shelter_1.M, + corner.R.M, + double_corner_2, + v_funnel_2.R, + ], + [ + nt.T.M, + cns_brick_shelter_1.M, + cns_brick_shelter_1.T.M, + corner.R.M, + double_corner_2, + corner.R, + v_central_brick_n.T, + ], + [nt.T.M, cns_brick_shelter_1.M, corner.R.M, double_corner_2, corner.R, cns_brick_shelter_1, v_central_brick_n], + [ + nt.T.M, + corner.R.M, + double_corner_2, + corner.R, + cns_brick_shelter_1.T, + cns_brick_shelter_1.T, + v_central_brick_n.T, + ], + [ + corner_gate.R.M, + double_corner_2, + corner.R, + cns_brick_shelter_1, + cns_brick_shelter_1, + cns_brick_shelter_1, + v_central_brick_n, + ], + [front_gate_extender_corner, corner_gate.R, nt.T, nt.T, nt.T, nt.T, v_end_brick_platform], ], remap=get_1cc_remap(CompanyColour.PURPLE), climate="tropical", diff --git a/station/stations/dovemere_2018_lib/flexible_stations/semitraversable.py b/station/stations/dovemere_2018_lib/flexible_stations/semitraversable.py index fdab0c99..79ed1f6e 100644 --- a/station/stations/dovemere_2018_lib/flexible_stations/semitraversable.py +++ b/station/stations/dovemere_2018_lib/flexible_stations/semitraversable.py @@ -15,8 +15,9 @@ semitraversable_stations = [] for p, pclass in enumerate(platform_classes): pclass_desc = "" if pclass == "concrete" else "_" + pclass - front = make_front_row(pclass_desc + "_platform") for s, sclass in enumerate(shelter_classes): + sclass_desc = "" if sclass == "shelter_1" else "_" + sclass + front = make_front_row(pclass_desc + sclass_desc + "_platform", fallback_suffix=pclass_desc + "_platform") cb24 = make_vertical_switch( lambda t, d: 0 if t == 0 or d == 0 else {"n": 2, "f": 4, "d": 6}[determine_platform_odd(t, d)], cb24=True ) @@ -26,12 +27,11 @@ cb14 = StationTileSwitch( "T", fill_odd({0: cb14_0, 2: cb14_2[pclass][sclass], 4: cb14_4[pclass][sclass], 6: cb14_6[pclass][sclass]}) ) - if pclass == "concrete" and sclass == "shelter_1": - demo_1 = lambda r, c, cb14=cb14, cb24=cb24: cb14.demo(r, c, cb24) - demo_layout = make_demo(cb14, 4, 4, cb24) demo_layout.station_id = 0x100 + p * 0x10 + s - if p > 0 or s > 0: + if pclass == "concrete" and sclass == "shelter_2": + demo_1 = lambda r, c, cb14=cb14, cb24=cb24: cb14.demo(r, c, cb24) + else: demo_layout.notes.append("noshow") semitraversable_stations.append( AStation( @@ -64,12 +64,12 @@ cb14 = StationTileSwitch( "T", fill_odd({0: cb14_0, 2: cb14_2[pclass][sclass], 4: cb14_4[pclass][sclass], 6: cb14_6[pclass][sclass]}) ) - if pclass == "concrete" and sclass == "shelter_1": - demo_2 = lambda r, c, cb14=cb14, cb24=cb24: cb14.demo(r, c, cb24) demo_layout = make_demo(cb14, 4, 4, cb24) demo_layout.station_id = 0x200 + p * 0x10 + s - if p > 0 or s > 0: + if pclass == "concrete" and sclass == "shelter_2": + demo_2 = lambda r, c, cb14=cb14, cb24=cb24: cb14.demo(r, c, cb24) + else: demo_layout.notes.append("noshow") semitraversable_stations.append( diff --git a/station/stations/dovemere_2018_lib/flexible_stations/side.py b/station/stations/dovemere_2018_lib/flexible_stations/side.py index d51eff23..a77ff02c 100644 --- a/station/stations/dovemere_2018_lib/flexible_stations/side.py +++ b/station/stations/dovemere_2018_lib/flexible_stations/side.py @@ -37,7 +37,7 @@ def get_side_index(l, r, pclass, sclass): for p, pclass in enumerate(platform_classes): for s, sclass in enumerate(shelter_classes): - if pclass == "concrete" and sclass == "shelter_1": + if pclass == "concrete" and sclass == "shelter_2": side_station_demo = lambda r, c, cb14=cb14[pclass][sclass]: cb14.demo(r, c) demo_layout = make_demo(cb14[pclass][sclass], 4, 1) @@ -66,7 +66,7 @@ def get_side_index(l, r, pclass, sclass): for p, pclass in enumerate(platform_classes): for s, sclass in enumerate(shelter_classes): - if pclass == "concrete" and sclass == "shelter_1": + if pclass == "concrete" and sclass == "shelter_2": back_side_station_demo = lambda r, c, cb14=cb14[pclass][sclass]: cb14.T.demo(r, c) demo_layout = make_demo(cb14[pclass][sclass].T, 4, 1) diff --git a/station/stations/dovemere_2018_lib/flexible_stations/side_third.py b/station/stations/dovemere_2018_lib/flexible_stations/side_third.py index 9480c662..bfcbccee 100644 --- a/station/stations/dovemere_2018_lib/flexible_stations/side_third.py +++ b/station/stations/dovemere_2018_lib/flexible_stations/side_third.py @@ -36,7 +36,7 @@ def get_side_index(l, r, pclass, sclass): for p, pclass in enumerate(platform_classes): for s, sclass in enumerate(shelter_classes): - if pclass == "concrete" and sclass == "shelter_1": + if pclass == "concrete" and sclass == "shelter_2": side_third_station_demo = lambda r, c, cb14=cb14[pclass][sclass]: cb14.demo(r, c) demo_layout = make_demo(cb14[pclass][sclass], 4, 1) demo_layout.station_id = 0x800 + p * 0x10 + s @@ -62,7 +62,7 @@ def get_side_index(l, r, pclass, sclass): for p, pclass in enumerate(platform_classes): for s, sclass in enumerate(shelter_classes): - if pclass == "concrete" and sclass == "shelter_1": + if pclass == "concrete" and sclass == "shelter_2": back_side_third_station_demo = lambda r, c, cb14=cb14[pclass][sclass]: cb14.T.demo(r, c) demo_layout = make_demo(cb14[pclass][sclass].T, 4, 1) demo_layout.station_id = 0x900 + p * 0x10 + s diff --git a/station/stations/dovemere_2018_lib/flexible_stations/traversable.py b/station/stations/dovemere_2018_lib/flexible_stations/traversable.py index 83544155..6f3a63d6 100644 --- a/station/stations/dovemere_2018_lib/flexible_stations/traversable.py +++ b/station/stations/dovemere_2018_lib/flexible_stations/traversable.py @@ -89,11 +89,11 @@ def fill_odd(d): pclass_desc = "" if pclass == "concrete" else "_" + pclass front = make_front_row(pclass_desc + "_platform") for s, sclass in enumerate(shelter_classes): - if pclass == "concrete" and sclass == "shelter_1": - demo_1 = lambda r, c, cb14=cb14[pclass][sclass], cb24=cb24: cb14.demo(r, c, cb24) demo_layout = make_demo(cb14[pclass][sclass], 4, 4, cb24) demo_layout.station_id = 0x300 + p * 0x10 + s - if p > 0 or s > 0: + if pclass == "concrete" and sclass == "shelter_2": + demo_1 = lambda r, c, cb14=cb14[pclass][sclass], cb24=cb24: cb14.demo(r, c, cb24) + else: demo_layout.notes.append("noshow") traversable_stations.append( AStation( @@ -118,11 +118,11 @@ def fill_odd(d): pclass_desc = "" if pclass == "concrete" else "_" + pclass front = make_front_row(pclass_desc + "_platform") for s, sclass in enumerate(shelter_classes): - if pclass == "concrete" and sclass == "shelter_1": - demo_2 = lambda r, c, cb14=cb14[pclass][sclass], cb24=cb24: cb14.demo(r, c, cb24) demo_layout = make_demo(cb14[pclass][sclass], 4, 4, cb24) demo_layout.station_id = 0x400 + p * 0x10 + s - if p > 0 or s > 0: + if pclass == "concrete" and sclass == "shelter_2": + demo_2 = lambda r, c, cb14=cb14[pclass][sclass], cb24=cb24: cb14.demo(r, c, cb24) + else: demo_layout.notes.append("noshow") traversable_stations.append( AStation( diff --git a/station/stations/dovemere_2018_lib/layouts.py b/station/stations/dovemere_2018_lib/layouts.py index 063ca6da..ff2c4c3a 100644 --- a/station/stations/dovemere_2018_lib/layouts.py +++ b/station/stations/dovemere_2018_lib/layouts.py @@ -263,7 +263,7 @@ def load_central(source, symmetry, internal_category, name=None, h_pos=Normal, w cur_plat = h_pos.platform(platform_class, shelter_class) shelter_postfix = "" if shelter_class == "shelter_1" else "_" + shelter_class platform_postfix = "" if platform_class == "concrete" else "_" + platform_class - common_notes = ["noshow"] if shelter_postfix + platform_postfix != "" else [] + common_notes = ["noshow"] if shelter_postfix + platform_postfix != "_shelter_2" else [] sname = f2_name + platform_postfix + shelter_postfix register( ALayout( @@ -409,7 +409,7 @@ def load( ) for shelter_class in shelter_classes if h_pos.has_shelter else ["shelter_1"]: shelter_postfix = "" if shelter_class == "shelter_1" else "_" + shelter_class - common_notes = ["noshow"] if platform_postfix + shelter_postfix != "" else [] + common_notes = ["noshow"] if platform_postfix + shelter_postfix != "_shelter_2" else [] sname = pname + shelter_postfix if third: register(