mirror of
https://github.com/MaSzyna-EU07/StarterNG.git
synced 2026-11-02 12:49:12 +01:00
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.
This commit is contained in:
@@ -22,6 +22,10 @@ public sealed class VehicleInfo
|
|||||||
public string? CategoryOf(Dynamic car) =>
|
public string? CategoryOf(Dynamic car) =>
|
||||||
TextureFor(car) is { } t ? CategoryOf(t) : null;
|
TextureFor(car) is { } t ? CategoryOf(t) : null;
|
||||||
|
|
||||||
|
public VehiclePhysics? PhysicsFor(VehicleTexture texture) =>
|
||||||
|
AppServices.Current.Physics.For(texture.Directory, texture.Model)
|
||||||
|
?? AppServices.Current.Physics.For(texture.Directory, texture.Skinfile);
|
||||||
|
|
||||||
public VehiclePhysics? PhysicsFor(Dynamic car)
|
public VehiclePhysics? PhysicsFor(Dynamic car)
|
||||||
{
|
{
|
||||||
string? dbModel = TextureFor(car)?.Model;
|
string? dbModel = TextureFor(car)?.Model;
|
||||||
|
|||||||
@@ -89,6 +89,8 @@ public partial class Depot : UserControl
|
|||||||
_db, _info, _consist, _cargo, _hand,
|
_db, _info, _consist, _cargo, _hand,
|
||||||
RebuildConsist, _cards.RefreshMemberChrome, _browser.ShowTextureInfo);
|
RebuildConsist, _cards.RefreshMemberChrome, _browser.ShowTextureInfo);
|
||||||
|
|
||||||
|
_browser.TextureSelected = _details.ShowTexture;
|
||||||
|
|
||||||
Dispatcher.UIThread.Post(() =>
|
Dispatcher.UIThread.Post(() =>
|
||||||
{
|
{
|
||||||
hideArchivalCheck.IsChecked = AppServices.Current.Settings.HideArchivalVehicles;
|
hideArchivalCheck.IsChecked = AppServices.Current.Settings.HideArchivalVehicles;
|
||||||
|
|||||||
@@ -49,6 +49,8 @@ public sealed class VehicleBrowser
|
|||||||
|
|
||||||
public VehicleTexture? Selected { get; private set; }
|
public VehicleTexture? Selected { get; private set; }
|
||||||
|
|
||||||
|
public Action<VehicleTexture>? TextureSelected { get; set; }
|
||||||
|
|
||||||
private bool _suppress;
|
private bool _suppress;
|
||||||
private bool _syncingCombos;
|
private bool _syncingCombos;
|
||||||
|
|
||||||
@@ -342,6 +344,11 @@ public sealed class VehicleBrowser
|
|||||||
miniPreview.Source = _minis.Get(_db.ResolveMiniName(texture), MiniPreviewHeight);
|
miniPreview.Source = _minis.Get(_db.ResolveMiniName(texture), MiniPreviewHeight);
|
||||||
addVehicleButton.IsEnabled = true;
|
addVehicleButton.IsEnabled = true;
|
||||||
SyncCombosTo(texture);
|
SyncCombosTo(texture);
|
||||||
|
|
||||||
|
// Clicking a card in the consist also selects its texture here. The
|
||||||
|
// detail panels then belong to that car, not to the catalogue entry.
|
||||||
|
if (!_syncingCombos)
|
||||||
|
TextureSelected?.Invoke(texture);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -122,6 +122,26 @@ public sealed class VehicleDetails
|
|||||||
AddConsistLoadSection();
|
AddConsistLoadSection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ShowTexture(VehicleTexture texture)
|
||||||
|
{
|
||||||
|
generalPanel.Children.Clear();
|
||||||
|
consistTexturePanel.Children.Clear();
|
||||||
|
|
||||||
|
var inv = CultureInfo.InvariantCulture;
|
||||||
|
var physics = _info.PhysicsFor(texture);
|
||||||
|
|
||||||
|
generalPanel.Children.Add(Reading($"{App.Loc["Length"]} [m]",
|
||||||
|
physics?.Length.ToString("0.##", inv)));
|
||||||
|
generalPanel.Children.Add(Reading($"{App.Loc["Mass"]} [t]",
|
||||||
|
physics is null ? null : (physics.Mass / 1000.0).ToString("0.#", inv)));
|
||||||
|
generalPanel.Children.Add(Reading($"{App.Loc["VMax"]} [km/h]",
|
||||||
|
physics?.VMax.ToString("0", inv)));
|
||||||
|
generalPanel.Children.Add(Reading(App.Loc["Model"], texture.Model));
|
||||||
|
generalPanel.Children.Add(Reading(App.Loc["Texture"], texture.Skinfile));
|
||||||
|
|
||||||
|
_showTextureInfo(texture, consistTexturePanel);
|
||||||
|
}
|
||||||
|
|
||||||
private void BuildGeneralInfo(ConsistItem item)
|
private void BuildGeneralInfo(ConsistItem item)
|
||||||
{
|
{
|
||||||
var car = _consist.ActiveCar(item);
|
var car = _consist.ActiveCar(item);
|
||||||
|
|||||||
Reference in New Issue
Block a user