maj00r
93463ae7f2
Load vehicles from a JSON copy of textures.txt, rebuilt when the installation changes
2026-10-04 12:18:36 +02:00
maj00r
d1d458f8ee
Add a JSON format for the vehicle database
2026-10-04 12:18:36 +02:00
maj00r
3ddd00895f
Tell UTF-8 from 1250 without throwing, and decode timetables the same way
...
The strict decode threw on every 1250 file, hundreds of them per load.
2026-10-04 12:18:36 +02:00
maj00r
2545daeb82
Close the vehicle catalogue on release, not on the double-click press
...
Closing from DoubleTapped left the pointer captured by a dead window, and on
Windows the main window stopped taking clicks.
2026-10-04 12:18:36 +02:00
maj00r
c492c26047
fallback decode utf8 strict to win 1250
2026-10-04 12:02:50 +02:00
f7219cf705
Merge pull request #21 from maj00r/wip/pre-reinstall
...
whole these
latest
2026-09-10 12:30:08 +02:00
maj00r
5d01c8d381
List vehicles by texture name, not thumbnail name
...
The list called a vehicle something no other panel used: the detail tab, the old
starter and the sort key all name it by its texture file.
2026-09-04 23:40:29 +02:00
maj00r
10523a500a
Order the vehicle list the way the old starter did
...
It listed textures by file name and left the ordering to Delphi's Sorted, which
is AnsiCompareText - case-insensitive and locale aware, not ordinal.
2026-09-04 23:36:00 +02:00
maj00r
392d9e7b6a
Give the consist state its own section, drop the maximum amount button
...
The ready-to-go box was sitting under a heading about cargo.
2026-09-04 23:34:29 +02:00
maj00r
4840740f31
Pin the settings key to the label column width
...
A row with no label hides PART_Label, collapsing the column onto the key, so the
explanations went ragged again on every checkbox row.
2026-09-04 23:32:16 +02:00
maj00r
4047e39456
Line the settings key and description up with the row above
...
They were laid out as one run, so every explanation started wherever its key
happened to end. Key now sits under the label, explanation under the control.
2026-09-04 23:28:20 +02:00
maj00r
c0cc696dc9
Restore the three-state consist override in settings
...
Keeps the old starter's starter.batterydefault key and its three states. The
setting wins over the depot checkbox, which greys out and says so while an
override is in force.
2026-09-04 23:24:45 +02:00
maj00r
cef00c4e3c
Move the battery option to the depot as a consist property
...
It was a global preference that rewrote the trainset speed at launch, while what
it really sets is whether this consist starts prepared or cold. Now a checkbox in
the consist-scope section, acting on the consist being edited.
2026-09-04 23:17:17 +02:00
maj00r
1939493b47
Tighten the row spacing in the depot detail panels
...
5 px between readings to 2, which fits three more lines in the same panel.
2026-09-04 23:09:42 +02:00
maj00r
da1b54cf1f
Sort the browser list by the name its rows show
...
It was ordered on TextureMini while the row prints the skin name whenever the
thumbnail matches the class, so the list looked unsorted.
2026-09-04 23:05:50 +02:00
maj00r
c072898e4f
Depot: per-vehicle wagon number, model path, activation after removal
...
The number editor was pinned to the unit's first car, so every vehicle in a
multiple unit shared one number. Removing a vehicle only moved the highlight,
leaving the starting vehicle and the panels on the deleted one. Drops the tab
strip around the single configuration panel and shortens the consist row when
the thumbnails are small.
2026-09-04 23:04:09 +02:00
maj00r
88fa5a2978
Drop value wrapping, raise the detail row by one line
...
192 to 207 px, the height of one more reading. Values go back to a single
ellipsised line.
2026-09-04 22:54:15 +02:00
maj00r
f626f47ab1
Give the depot detail panel room for the whole texture tab
...
At the default 768 px window the row capped at 192 px cut off the last credit
line once values started wrapping.
2026-09-04 22:51:59 +02:00
maj00r
027dff17d9
Let read-only detail values wrap instead of ellipsising
...
In a 250-390 px panel the label column leaves little room, so operator, depot and
author names lost their ends to the ellipsis.
2026-09-04 22:48:43 +02:00
maj00r
b9f455e33d
Show vehicle and texture info when a browser entry is picked
...
The General and About texture tabs only ever described the selected consist car,
so clicking a vehicle in the list told the user nothing about it.
2026-09-04 22:29:04 +02:00
maj00r
df21ec104f
Cut the comments from the refactored code
...
Three survive: why AppServices is hand-wired, the cp1250 registration trap, and
the IsDieselEngine note carried over from Physics.cs.
2026-09-04 22:24:54 +02:00
maj00r
7849ef9729
Remove the missing-thumbnail mocking
...
Leaves the plain chain: own thumbnail, other.bmp, drawn wagon.
2026-09-04 22:19:02 +02:00
maj00r
6a21a2fd27
Temporarily make half the thumbnails act as missing
2026-09-04 22:10:25 +02:00
maj00r
b33d7697a0
Fix cp1250 decoding, log unsupported loads
...
The repositories resolved GetEncoding(1250) in their constructors, before
anything registered CodePagesEncodingProvider - reads fell back to Latin-1 and
Polish characters came out as mojibake.
2026-09-04 22:06:59 +02:00
maj00r
673cda57d7
Keep a language code the starter cannot display in eu07.ini
...
Matches the old starter: lower case, and an unknown code is left alone.
2026-09-04 21:57:08 +02:00
maj00r
27f0e97b43
Draw a stand-in for a missing thumbnail, pass the language code to eu07.ini
...
The file was getting "pl" or "en" whatever the user picked, so a simulator with
its own language file started in English.
2026-09-04 21:53:29 +02:00
maj00r
8e87eb8638
Show bare keys in settings, fix the depot detail tabs
...
Drops the vehicle counter from the General tab, and the texture tab stops
gluing "label: value" into single lines and uses the same rows as General.
2026-09-04 21:41:38 +02:00
maj00r
bce008f0ed
Stop printing a default for text-valued setting keys
...
An absent lang key does not mean English, it means follow the system language.
2026-09-04 21:36:13 +02:00
maj00r
4aec689059
Take the scenario presentation logic out of the code-behind
...
Scenery tree, fog scale, season dates and timetable lookup become their own
classes.
2026-09-04 21:26:28 +02:00
maj00r
2cbc92ad92
Wire up 7 setting descriptions that existed in the translations but were never shown
2026-09-04 21:22:19 +02:00
maj00r
e969137824
Show the eu07.ini key on every settings row
2026-09-04 21:21:14 +02:00
maj00r
964884bd56
Extract starting the simulator into StartSimulation
...
The click handler is left with asking the user things and showing the result.
2026-09-04 21:14:52 +02:00
maj00r
3c502f630d
Split Settings into model, serializer, paths and store
...
698 lines did all of it at once. The mutable CaptureFromUi callback becomes an
ISettingsCapture the settings view implements.
2026-09-04 21:13:06 +02:00
maj00r
8e5fe01104
Take the remaining I/O out of the domain and drop AppState.Instance
...
Scenery translations and load weights get repositories; AppState moves to the
application layer.
2026-09-04 21:06:23 +02:00
maj00r
0444070e12
Move rolling stock and physics into the domain
...
VehicleDatabase becomes VehicleCatalog, Physics becomes VehiclePhysics, and the
textures.txt and .fiz parsers move to Infrastructure. GameLibrary replaces the
GameData singleton.
2026-09-04 21:03:08 +02:00
maj00r
789f0dd1c9
Make Scenery a domain aggregate with no I/O
...
Parsing and loading move to Infrastructure/Sceneries. Weather becomes a value
object owning the "does this differ from the file" rule.
2026-09-04 20:53:50 +02:00
maj00r
a3137a27c4
Introduce layers, ports and a composition root
...
Ports in Application/Abstractions, adapters in Infrastructure, hand-wired
AppServices (no reflection, as PublishAot requires). Adds a test project.
2026-09-04 20:46:51 +02:00
maj00r
aef086e9f0
WIP: settings sections, shortcuts window, depot tweaks
2026-09-04 20:40:47 +02:00
maj00r
bcf266a167
4 px above the settings tab strip
2026-08-31 00:46:15 +02:00
maj00r
b48fbcf426
1.4.0.0
2026-08-31 00:44:56 +02:00
maj00r
2b17fb3c6a
join the selected tab with the panel below it
2026-08-31 00:44:56 +02:00
maj00r
8ed3765562
read rolling stock from dynamic/*/*/textures.txt, drop vehicles.json
2026-08-31 00:44:56 +02:00
maj00r
6a7255afdf
skip the optional-include regex when a scenery has no marker
2026-08-31 00:44:56 +02:00
maj00r
43a361ff89
split depot into domain and view classes
2026-08-31 00:44:48 +02:00
maj00r
04b0805703
log swallowed exceptions and missing translation keys
2026-08-31 00:44:42 +02:00
maj00r
eb304aa4c7
log avalonia warnings and write bledy.txt as it goes
2026-08-31 00:44:36 +02:00
maj00r
b5fabf79f5
compile bindings for texture base window
2026-08-30 23:03:38 +02:00
maj00r
85de34c70c
repository url fix
2026-08-30 22:34:01 +02:00
maj00r
33491262af
Merge branch 'main' into wip/pre-reinstall
2026-08-30 22:31:26 +02:00
maj00r
563a937eb9
wider migration from old starter
2026-08-30 22:29:45 +02:00