Skip to content

Commit 07e611a

Browse files
IhateTrainsCopilotCopilot
authored
More trait mappings and logging of unmapped I:R traits (#2906) #minor
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: IhateTrains <29546927+IhateTrains@users.noreply.github.com>
1 parent e3a8db3 commit 07e611a

File tree

5 files changed

+340
-24
lines changed

5 files changed

+340
-24
lines changed

ImperatorToCK3.UnitTests/Mappers/Trait/TraitMapperTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,24 @@ public void UndefinedCK3TraitsAreNotSkipped() {
122122
var ck3Traits = mapper.GetCK3TraitsForImperatorTraits(new[] { "impTrait" });
123123
ck3Traits.Should().Contain("undefined");
124124
}
125+
126+
[Fact]
127+
public void UnmappedImperatorTraitsAreLoggedUnlessExplicitlyDropped() {
128+
const string tempTestFile = "TestFiles/configurables/temp_trait_map_unmapped_logging.txt";
129+
File.WriteAllText(tempTestFile,
130+
"link = { ck3 = ck3Trait ir = mapped_trait }" +
131+
"link = { ir = dropped_trait }"
132+
);
133+
var ck3ModFS = new ModFilesystem("TestFiles/CK3/game", new List<Mod>());
134+
var mapper = new TraitMapper(tempTestFile, ck3ModFS);
135+
136+
var irModFS = new ModFilesystem("TestFiles/Imperator/game", new List<Mod>());
137+
using var output = new StringWriter();
138+
Console.SetOut(output);
139+
140+
mapper.LogUnmappedImperatorTraits(irModFS);
141+
142+
var outputString = output.ToString();
143+
Assert.Contains($"No mapping for I:R traits found in trait mappings: unmapped_trait{Environment.NewLine}", outputString);
144+
}
125145
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
mapped_trait = { }
2+
dropped_trait = { }
3+
unmapped_trait = { }

ImperatorToCK3/CK3/World.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,10 @@ public World(Imperator.World impWorld, Configuration config, Thread? irCoaExtrac
198198

199199
() => cultureMapper = new CultureMapper(imperatorRegionMapper, ck3RegionMapper, Cultures),
200200

201-
() => traitMapper = new("configurables/trait_map.txt", ModFS),
201+
() => {
202+
traitMapper = new("configurables/trait_map.txt", ModFS);
203+
traitMapper.LogUnmappedImperatorTraits(impWorld.ModFS);
204+
},
202205

203206
() => {
204207
Logger.Info("Initializing DNA factory...");

0 commit comments

Comments
 (0)