44
55namespace ImperatorToCK3 . Mappers . Culture {
66 public class CultureMappingRule {
7- public CultureMappingRule ( ) { }
8- private static readonly Parser parser = new ( ) ;
9- private static CultureMappingRule mappingToReturn = new ( ) ;
10- static CultureMappingRule ( ) {
11- parser . RegisterKeyword ( "ck3" , reader => {
12- mappingToReturn . destinationCulture = ParserHelpers . GetString ( reader ) ;
13- } ) ;
14- parser . RegisterKeyword ( "imp" , reader => {
15- mappingToReturn . cultures . Add ( ParserHelpers . GetString ( reader ) ) ;
16- } ) ;
17- parser . RegisterKeyword ( "religion" , reader => {
18- mappingToReturn . religions . Add ( ParserHelpers . GetString ( reader ) ) ;
19- } ) ;
20- parser . RegisterKeyword ( "owner" , reader => {
21- mappingToReturn . owners . Add ( ParserHelpers . GetString ( reader ) ) ;
22- } ) ;
23- parser . RegisterKeyword ( "ck3Region" , reader => {
24- mappingToReturn . ck3Regions . Add ( ParserHelpers . GetString ( reader ) ) ;
25- } ) ;
26- parser . RegisterKeyword ( "impRegion" , reader => {
27- mappingToReturn . imperatorRegions . Add ( ParserHelpers . GetString ( reader ) ) ;
28- } ) ;
29- parser . RegisterKeyword ( "ck3Province" , reader => {
30- mappingToReturn . ck3Provinces . Add ( ParserHelpers . GetULong ( reader ) ) ;
31- } ) ;
32- parser . RegisterKeyword ( "impProvince" , reader => {
33- mappingToReturn . imperatorProvinces . Add ( ParserHelpers . GetULong ( reader ) ) ;
34- } ) ;
35- parser . RegisterRegex ( CommonRegexes . Catchall , ParserHelpers . IgnoreAndLogItem ) ;
36- }
377 public static CultureMappingRule Parse ( BufferedReader reader ) {
388 mappingToReturn = new CultureMappingRule ( ) ;
399 parser . ParseStream ( reader ) ;
@@ -123,11 +93,12 @@ string CK3ownerTitle
12393 ulong ck3ProvinceID ,
12494 ulong impProvinceID ,
12595 string CK3ownerTitle
126- ) {
96+ ) {
12797 // This is a non religious match. We need a mapping without any religion, so if the
12898 // mapping rule has any religious qualifiers it needs to fail.
129- if ( religions . Count > 0 )
99+ if ( religions . Count > 0 ) {
130100 return null ;
101+ }
131102
132103 // Otherwise, as usual.
133104 return Match ( impCulture , CK3religion , ck3ProvinceID , impProvinceID , CK3ownerTitle ) ;
@@ -141,5 +112,35 @@ string CK3ownerTitle
141112 private readonly SortedSet < ulong > ck3Provinces = new ( ) ;
142113 private readonly SortedSet < string > imperatorRegions = new ( ) ;
143114 private readonly SortedSet < string > ck3Regions = new ( ) ;
115+
116+ static CultureMappingRule ( ) {
117+ parser . RegisterKeyword ( "ck3" , reader => {
118+ mappingToReturn . destinationCulture = ParserHelpers . GetString ( reader ) ;
119+ } ) ;
120+ parser . RegisterKeyword ( "imp" , reader => {
121+ mappingToReturn . cultures . Add ( ParserHelpers . GetString ( reader ) ) ;
122+ } ) ;
123+ parser . RegisterKeyword ( "religion" , reader => {
124+ mappingToReturn . religions . Add ( ParserHelpers . GetString ( reader ) ) ;
125+ } ) ;
126+ parser . RegisterKeyword ( "owner" , reader => {
127+ mappingToReturn . owners . Add ( ParserHelpers . GetString ( reader ) ) ;
128+ } ) ;
129+ parser . RegisterKeyword ( "ck3Region" , reader => {
130+ mappingToReturn . ck3Regions . Add ( ParserHelpers . GetString ( reader ) ) ;
131+ } ) ;
132+ parser . RegisterKeyword ( "impRegion" , reader => {
133+ mappingToReturn . imperatorRegions . Add ( ParserHelpers . GetString ( reader ) ) ;
134+ } ) ;
135+ parser . RegisterKeyword ( "ck3Province" , reader => {
136+ mappingToReturn . ck3Provinces . Add ( ParserHelpers . GetULong ( reader ) ) ;
137+ } ) ;
138+ parser . RegisterKeyword ( "impProvince" , reader => {
139+ mappingToReturn . imperatorProvinces . Add ( ParserHelpers . GetULong ( reader ) ) ;
140+ } ) ;
141+ parser . RegisterRegex ( CommonRegexes . Catchall , ParserHelpers . IgnoreAndLogItem ) ;
142+ }
143+ private static readonly Parser parser = new ( ) ;
144+ private static CultureMappingRule mappingToReturn = new ( ) ;
144145 }
145146}
0 commit comments