mirror of
https://github.com/MaSzyna-EU07/StarterNG.git
synced 2026-11-13 09:40:10 +01:00
fix: a dot in a model name is part of the name, not an extension
The 9-107 and 9-110 coal wagons (9-107.13.fiz and the like) found no physics, so no load could be set on them.
This commit is contained in:
@@ -65,6 +65,19 @@ public class PhysicsAndAssetsTests
|
|||||||
Assert.Equal(125, physics.VMax);
|
Assert.Equal(125, physics.VMax);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void A_dot_in_the_model_name_is_part_of_the_name()
|
||||||
|
{
|
||||||
|
// As in the game: cd/9-107_v1 holds 9-107.13.fiz, 9-107.6.fiz and more.
|
||||||
|
var installation = new TestInstallation(new InMemoryFileSystem()
|
||||||
|
.WithFile(Fiz("cd", "9-107_v1", "9-107.13"), "Load: LoadAccepted=coal MaxLoad=58")
|
||||||
|
.WithFile(Fiz("cd", "9-107_v1", "9-107.6"), "Load: LoadAccepted=coal MaxLoad=55"));
|
||||||
|
|
||||||
|
Assert.Equal(58, installation.Physics.For("cd/9-107_v1/", "9-107.13")!.MaxLoad);
|
||||||
|
Assert.Equal(55, installation.Physics.For("cd/9-107_v1/", "9-107.6")!.MaxLoad);
|
||||||
|
Assert.Equal(58, installation.Physics.For("cd/9-107_v1/", "9-107.13.e3d")!.MaxLoad);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void A_dumb_variant_stands_in_when_the_model_has_no_fiz_of_its_own()
|
public void A_dumb_variant_stands_in_when_the_model_has_no_fiz_of_its_own()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public sealed class FizPhysicsRepository : IPhysicsRepository
|
|||||||
if (string.IsNullOrEmpty(model))
|
if (string.IsNullOrEmpty(model))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
string name = Path.GetFileNameWithoutExtension(model);
|
string name = Path.GetFileName(model);
|
||||||
if (name.Length == 0)
|
if (name.Length == 0)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
@@ -60,7 +60,10 @@ public sealed class FizPhysicsRepository : IPhysicsRepository
|
|||||||
if (_cache.TryGetValue(key, out var cached))
|
if (_cache.TryGetValue(key, out var cached))
|
||||||
return cached;
|
return cached;
|
||||||
|
|
||||||
var physics = Read(folder, name);
|
// The name as written first: in 9-107.13 the dot is part of the name, not an extension.
|
||||||
|
string bare = Path.GetFileNameWithoutExtension(name);
|
||||||
|
var physics = Read(folder, name)
|
||||||
|
?? (bare.Length > 0 && bare != name ? Read(folder, bare) : null);
|
||||||
_cache[key] = physics;
|
_cache[key] = physics;
|
||||||
return physics;
|
return physics;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user