Commit Graph

150 Commits

Author SHA1 Message Date
maj00r
9e2166065b Rework the depot browser layout and confirm a crewless start
The vehicle database panel loses its header bar and packs the search box and
the archival filter into one line, the class combo takes a full-width line of
its own with a miniature (big in the drop-down, one line when closed) and the
bulk / texture-base actions move into the Add button's drop-down. The mini
preview sits beside the texture data and stays hidden until an entry is
picked, so the list keeps the space.

Picking a class or a vehicle now fills both combos in, and a class alone is a
valid filter (it used to leave the list empty without a category). The combos
and the list are rebuilt on the next dispatcher pass, since clearing Items
from inside the SelectionChanged that asked for it throws.

Vehicle removal becomes a per-card tool next to flip / crew, the scenery and
vehicle names move into their panel headers, and the texture randomizer
dialog sizes to its content instead of clipping its last button.

Start no longer hides behind Ctrl: a consist with no crew and no passenger
says so on the button and asks for confirmation before launching.
2026-08-25 20:58:57 +02:00
maj00r
a93af4bd44 Load sceneries in parallel and skip the splash on a fast start
Scenery parsing runs on Parallel.ForEach and the reload button does it off
the UI thread. The splash window only appears when loading passes 300ms, so
a warm start goes straight to the main window. The log button moves into the
navigation row, dropping the separate caption strip; timetable and info use
the shared MonoFont family instead of a hard-coded Consolas.
2026-08-25 20:58:15 +02:00
maj00r
a15044233e Add window icon, make the title bar draggable and drop the full-screen caption button
Use the Starter icon for the window and the executable; the whole caption strip drags the window. Extending the client area makes Avalonia 12 add an extra full-screen toggle to the window chrome (which lives in its own host, so it is not reachable from the window's visual tree); it is hidden globally in App.axaml via its WindowDecorationProperties.ElementRole. Standard minimize / maximize / close are kept.
2026-08-22 23:53:01 +02:00
maj00r
13137321c1 Gate Start on crew, pick starting vehicle, loading screen and help menu
#16 and #12 Start is enabled only with crew/passenger (hold Ctrl to force); the chosen starting vehicle is carried through launch; loading-screen logo; help menu; runtime language picker.
2026-08-22 23:15:35 +02:00
maj00r
825c6f57ec Sort the warehouse and import magazyn.ini
Preset sort by name or track; import the Pascal starter/magazyn.ini warehouse.
2026-08-22 23:15:35 +02:00
maj00r
785b8c7afa Rebuild the depot consist editor
#9 category minis in the class list; #10 coupler after the last car; #11 drag and drop from the browser and consist reorder; #12 fix forced headdriver (occupancy); #13 hide archival vehicles; #14 randomise order; #15 randomise orientation; #16 pick starting vehicle; #18 collapse multi-unit sets; texture randomiser and stock database.
2026-08-22 23:15:35 +02:00
maj00r
12b06a2689 Show consist stats, keep empty trainsets and restore last scenery in Scenarios
#20 length/mass/vehicle/track status bar; #17 empty trainsets stay listed; #19 remember last scenery; #16 default starting vehicle; scenery i18n labels, attachments/includes/info tab, weather restore and reload.
2026-08-22 23:15:35 +02:00
maj00r
ce806130f7 Add hide-archival, last-scenery, HDR tone map and external-change settings
#13 HideArchivalVehicles; #19 LastScenery; HDR tonemap + framebuffer fidelity; reload eu07.ini when it changes on disk; dump missing-vehicle log on exit.
2026-08-22 23:15:34 +02:00
maj00r
2e21d416ef Track archival vehicles and multi-unit set followers in the vehicle database
#13 ResolvedArchived flag; #18 IsSetFollower hides trailing multi-unit cars; missing-asset log lines.
2026-08-22 23:15:18 +02:00
maj00r
8fad37c6e8 Parse loose vehicles, optional includes, attachments and dual weather clocks
#17 keep empty/loose consists; #19 scenery display name; two weather clocks (time + scenario.time.override) with atmo fog randomisation; scenery fault list; reload sceneries.
2026-08-22 23:15:18 +02:00
maj00r
2298d6c803 Add scenery i18n and Czech/Hungarian/Russian translations
Scenery @token strings resolve via SceneryI18n; add cz/hu/ru language files and the new UI strings for the depot and scenarios features.
2026-08-22 23:15:18 +02:00
maj00r
905d795f54 Move new domain/infra modules out of Classes into Domain/ and Infrastructure/
Consist/scenery/vehicle logic (TrainsetDisplay, TexRandomizer, SceneryI18n) goes under Domain/; the loading-screen bitmap writer under Infrastructure/, instead of the flat Classes/ bucket.
2026-08-22 23:15:18 +02:00
94c0173093 Create .net workflow 2026-08-19 13:02:09 +02:00
2b9d7c179b Merge pull request #3 from xwizard/feature/dynamic-lights-and-macos-paths
Add settings profiles, dynamic lights, macOS config paths, and fix setting defaults
2026-07-21 11:26:16 +02:00
Mateusz Włodarczyk
a3ff2787a7 Accept .exe binary name on Linux/macOS and fix AlwaysOn battery threshold
build-macos.sh ships the macOS binary as eu07.exe, so IsValidBinaryFile
must accept that extension on non-Windows too. Also fix the AlwaysOn
battery default check to use a proper near-zero epsilon instead of an
overly broad <0.2 threshold that clobbered legitimate low velocities.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 11:12:32 +02:00
Mateusz Włodarczyk
1118771486 Sync setting defaults with eu07 engine, drop dead options
Cross-checked against ../maszyna: several StarterNG defaults didn't
match the simulator's actual defaults (Globals.h), and three exposed
options never mapped to a real eu07.ini key.

- Correct defaults to match the engine: VSync=false, LiveTraction=true,
  VirtualShunting(ai.trainman)=true, DynamicLights=7 fallback,
  CabShadowsRange=0, GfxResourceSweep=true, FeedbackMode=1,
  ShadowMapResolution=2048, ReflectionsFidelity=0, Volume=50.
- Remove Post-processing (gfx.postfx.tonemapping), onboard-screen
  refresh rate (pyscreenrendererpriority), and volume-during-pause
  (sound.volume.paused) — none of these keys exist in the simulator.
- Only apply parsed UART feature tokens when eu07.ini actually has an
  uartfeature line; otherwise fall back to the engine's own defaults
  instead of all-false.
2026-07-05 19:19:06 +02:00
Mateusz Włodarczyk
c4147a2f66 Add settings profiles and expand exposed eu07.ini options
Adds save/apply named settings profiles (SettingsProfileStore), a
battery-default export option that rewrites trainset velocity on
launch, and an option to omit decorative trainsets from the exported
scenery. Also surfaces many previously-unmapped eu07.ini keys in the
Settings UI (UART/feedback port, FPS limit, shadow angle, fullscreen
windowed, ANGLE Vulkan, friction/brake sensitivity, and an Advanced
section for texture/GLES/threading tunables).
2026-07-05 18:04:07 +02:00
Mateusz Włodarczyk
211863c921 Add dynamic lights setting and fix macOS config paths
- Add DynamicLights (0–7) setting mapped to the eu07.ini dynamiclights key,
  exposed as a slider in the Graphics section of Settings.
- Fix config file paths on macOS for eu07.ini, eu07_input-keyboard.ini,
  and userpresets.json to use ~/Library/Application Support/MaSzyna/
  instead of falling through to the Linux XDG path.
2026-06-30 21:30:52 +02:00
710bfc0d10 Merge pull request #1 from dos1/shadowrange
Fix a copy'n'paste error in translation values for shadow range and FOV
2026-06-26 22:12:10 +02:00
4e40232257 Merge pull request #2 from xwizard/fix/macos-arm64-platform-target
Fix build on Apple Silicon by switching PlatformTarget from x64 to AnyCPU
2026-06-26 22:11:52 +02:00
Sebastian Krzyszkowiak
92cfb82969 Fix field of view option name and description
Cabin shadow sources range is already handled by CabShadowsRange.
This duplicated value was setting FOV instead.
2026-06-26 21:40:31 +02:00
Mateusz Włodarczyk
92c698b890 Fix build on Apple Silicon by switching PlatformTarget from x64 to AnyCPU 2026-06-26 19:10:58 +02:00
Sebastian Krzyszkowiak
b5567659a3 Fix a copy'n'paste error in translation values for shadow range
"Reflections refresh rate" got doubled.
2026-06-26 00:36:33 +02:00
34758bb21d Keybinds editor 2026-06-24 19:24:06 +02:00
5908200bc4 Fix loads, some UI improvements 2026-06-24 10:08:17 +02:00
60f61a122d Physics and linux compilation support 2026-06-24 00:33:24 +02:00
d932761786 Layout improvements, depot behavior improvements 2026-06-23 23:24:46 +02:00
1bfac8b222 Auto expand scenery tree and autoselect first vehicle 2026-06-23 18:47:18 +02:00
fe8ccbca8f Improve autoclose option so starter hides itself when simulator is running and shows back after shutting down simulator 2026-06-23 18:46:39 +02:00
b977d224e9 Complete UI rebuild 2026-06-23 18:20:09 +02:00
a7bb897fc6 Split car categories 2026-06-17 22:30:22 +02:00
b2f693113d Starter improvements
- scenery Description
- scenery mini
- extracted translations outside
- autoselect first consist on scenery selection
- autoexpand on group click
2026-06-17 22:00:01 +02:00
9be97c7bda Controls section marked as work in progress 2026-06-16 23:01:06 +02:00
abe9164912 Version binding 2026-06-16 23:00:06 +02:00
1cc0cd306a fixes for trainset generation 2026-06-16 22:19:42 +02:00
fee1106cd4 Some optimisations 2026-06-16 21:21:54 +02:00
5be2a86369 nav menu translations 2026-06-16 21:21:44 +02:00
a358651a98 Add settings parsing 2026-06-16 01:20:17 +02:00
0e82841a56 consist editor improvements 2026-06-13 00:54:37 +02:00
6dc9b77a24 Initial depot view 2026-06-11 23:01:49 +02:00
ba9c16e4c4 Added system language detection 2026-02-12 11:07:36 +01:00
dec9ab6874 Add main view translations 2026-02-12 00:50:20 +01:00
1f61b150d3 Add trainset parser 2026-02-12 00:42:51 +01:00
a9c30bbdfe LanguageManager 2026-02-11 22:39:19 +01:00
19a2ac8d59 Add scenery list parser 2026-02-11 14:40:16 +01:00
9c639a87f5 Update .gitignore 2026-02-11 14:39:56 +01:00
053be8d9fc Change start button width 2025-12-23 12:14:15 +01:00
ef74d73d5e Settings design 2025-12-23 12:14:03 +01:00
abfaa5ec4c Move Scenarios view to separate file 2025-12-23 08:56:50 +01:00
49d433e8ac Initial commit
Basic ui with placeholders
2025-12-23 08:47:36 +01:00