mirror of
https://github.com/MaSzyna-EU07/StarterNG.git
synced 2026-11-11 16:57:11 +01:00
Black box: the queries of the user's train worked out once a read, lights as the driver checks them
- The stations, the signals passed, the horn points, the couplings, the consists and the timetable progress of the user's train are kept until a read adds something; the views asked for them every frame, which on a long session with many trains took the window down. A read that adds nothing no longer counts as a change. - The lights are checked against the lamps the vehicles at the ends have (written by the simulator from now on), as its driver checks them: Pc 1 without the upper headlight, with the auxiliary lamps, Pc 5 with the rear-end signals. Only while the user drives: the autopilot's lights are its own. - A train off the platform counts at both ends: its head past the stop point as well as its tail before the platform's end. - A recording without the couplings keeps the timetable for any vehicle of the user. - A signal passed at danger is ringed on the map only once it was. - In the tapes window a black box opens on a click or Enter, not when the arrow keys go over it. - The viewer's screenshot of a window not laid out saves nothing and still closes.
This commit is contained in:
@@ -6,6 +6,7 @@ using System.Threading.Tasks;
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Controls.Primitives;
|
||||
using Avalonia.Input;
|
||||
using Avalonia.Layout;
|
||||
using Avalonia.Media;
|
||||
using Avalonia.Media.Imaging;
|
||||
@@ -105,14 +106,19 @@ public sealed class HaslerTapeWindow : Window
|
||||
ToolTip.SetTip(_startClock, App.Loc["HaslerStartClockTip"]);
|
||||
|
||||
ScrollViewer.SetHorizontalScrollBarVisibility(_list, ScrollBarVisibility.Disabled);
|
||||
_list.KeyDown += async (_, e) =>
|
||||
{
|
||||
if (e.Key == Key.Enter && _list.SelectedItem is TreeViewItem { Tag: BlackBoxRecording box })
|
||||
{
|
||||
e.Handled = true;
|
||||
await OpenBlackBoxAsync(box);
|
||||
}
|
||||
};
|
||||
_list.SelectionChanged += async (_, _) =>
|
||||
{
|
||||
// A black box opens in a window of its own; the tape shown stays.
|
||||
if (_list.SelectedItem is TreeViewItem { Tag: BlackBoxRecording box })
|
||||
{
|
||||
await OpenBlackBoxAsync(box);
|
||||
// A black box opens in a window of its own on a click or Enter, not when the arrows go over it; the tape shown stays.
|
||||
if (_list.SelectedItem is TreeViewItem { Tag: BlackBoxRecording })
|
||||
return;
|
||||
}
|
||||
// A session stands for its first tape, the player's own if it has one.
|
||||
if (_list.SelectedItem is TreeViewItem { Tag: TapeSession } session)
|
||||
session.IsExpanded = true;
|
||||
|
||||
Reference in New Issue
Block a user