From 90013bc6d3e104147447eb9f459200ed764135c2 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 27 Apr 2025 14:28:37 +0100 Subject: [PATCH] Migrate tileset names to Fluent. --- OpenRA.Mods.Common/Lint/CheckFluentReferences.cs | 15 ++++++++++++--- OpenRA.Mods.Common/Terrain/DefaultTerrain.cs | 1 + mods/cnc/fluent/cnc.ftl | 6 ++++++ mods/cnc/tilesets/desert.yaml | 2 +- mods/cnc/tilesets/snow.yaml | 2 +- mods/cnc/tilesets/temperat.yaml | 2 +- mods/cnc/tilesets/winter.yaml | 2 +- mods/d2k/fluent/d2k.ftl | 3 +++ mods/d2k/tilesets/arrakis.yaml | 2 +- mods/ra/fluent/ra.ftl | 6 ++++++ mods/ra/tilesets/desert.yaml | 2 +- mods/ra/tilesets/interior.yaml | 2 +- mods/ra/tilesets/snow.yaml | 2 +- mods/ra/tilesets/temperat.yaml | 2 +- mods/ts/fluent/ts.ftl | 4 ++++ mods/ts/tilesets/snow.yaml | 2 +- mods/ts/tilesets/temperate.yaml | 2 +- 17 files changed, 43 insertions(+), 14 deletions(-) diff --git a/OpenRA.Mods.Common/Lint/CheckFluentReferences.cs b/OpenRA.Mods.Common/Lint/CheckFluentReferences.cs index 496f7029e7..86c84beef6 100644 --- a/OpenRA.Mods.Common/Lint/CheckFluentReferences.cs +++ b/OpenRA.Mods.Common/Lint/CheckFluentReferences.cs @@ -231,6 +231,9 @@ namespace OpenRA.Mods.Common.Lint static (Keys UsedKeys, List TestedFields) GetUsedFluentKeysInMod(ModData modData) { + const BindingFlags ConstBinding = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static; + const BindingFlags InstanceBinding = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance; + var usedKeys = GetUsedFluentKeysInRuleset(modData.DefaultRules); var testedFields = new List(); testedFields.AddRange( @@ -256,15 +259,21 @@ namespace OpenRA.Mods.Common.Lint [resource.Value], (obj, field) => $"`ResourceRenderer.ResourceTypes.{resource.Key}.{field.Name}` in rules yaml"); - const BindingFlags Binding = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static; - var constFields = modData.ObjectCreator.GetTypes().SelectMany(modType => modType.GetFields(Binding)).Where(f => f.IsLiteral); + foreach (var terrainInfo in modData.DefaultTerrainInfo.Values) + GetUsedFluentKeys( + usedKeys, testedFields, + terrainInfo.GetType().GetFields(InstanceBinding), + [terrainInfo], + (obj, field) => $"`{field.ReflectedType.Name}.{field.Name}`"); + + var constFields = modData.ObjectCreator.GetTypes().SelectMany(modType => modType.GetFields(ConstBinding)).Where(f => f.IsLiteral); GetUsedFluentKeys( usedKeys, testedFields, constFields, [(object)null], (obj, field) => $"`{field.ReflectedType.Name}.{field.Name}`"); - var modMetadataFields = typeof(ModMetadata).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); + var modMetadataFields = typeof(ModMetadata).GetFields(InstanceBinding); GetUsedFluentKeys( usedKeys, testedFields, modMetadataFields, diff --git a/OpenRA.Mods.Common/Terrain/DefaultTerrain.cs b/OpenRA.Mods.Common/Terrain/DefaultTerrain.cs index e71a12da61..1771af0819 100644 --- a/OpenRA.Mods.Common/Terrain/DefaultTerrain.cs +++ b/OpenRA.Mods.Common/Terrain/DefaultTerrain.cs @@ -68,6 +68,7 @@ namespace OpenRA.Mods.Common.Terrain public class DefaultTerrain : ITemplatedTerrainInfo, ITerrainInfoNotifyMapCreated { + [FluentReference] public readonly string Name; public readonly string Id; public readonly Size TileSize = new(24, 24); diff --git a/mods/cnc/fluent/cnc.ftl b/mods/cnc/fluent/cnc.ftl index 51f49060d1..0435971f0a 100644 --- a/mods/cnc/fluent/cnc.ftl +++ b/mods/cnc/fluent/cnc.ftl @@ -4,3 +4,9 @@ mod-windowtitle = OpenRA - Tiberian Dawn ## CncLoadScreen loadscreen-loading = Loading + +## Tilesets +tileset-desert = Desert +tileset-snow = Snow +tileset-temperat = Temperate +tileset-winter = Winter diff --git a/mods/cnc/tilesets/desert.yaml b/mods/cnc/tilesets/desert.yaml index dd01015fbf..f34576644f 100644 --- a/mods/cnc/tilesets/desert.yaml +++ b/mods/cnc/tilesets/desert.yaml @@ -1,5 +1,5 @@ General: - Name: Desert + Name: tileset-desert Id: DESERT EditorTemplateOrder: Terrain, Debris, Road, Cliffs, Beach, River, Bridge HeightDebugColors: 880000 diff --git a/mods/cnc/tilesets/snow.yaml b/mods/cnc/tilesets/snow.yaml index 224751ac44..25f113646a 100644 --- a/mods/cnc/tilesets/snow.yaml +++ b/mods/cnc/tilesets/snow.yaml @@ -1,5 +1,5 @@ General: - Name: Snow + Name: tileset-snow Id: SNOW EditorTemplateOrder: Terrain, Debris, Road, Cliffs, Beach, River, Bridge HeightDebugColors: 880000 diff --git a/mods/cnc/tilesets/temperat.yaml b/mods/cnc/tilesets/temperat.yaml index b8e330347a..7b4371211a 100644 --- a/mods/cnc/tilesets/temperat.yaml +++ b/mods/cnc/tilesets/temperat.yaml @@ -1,5 +1,5 @@ General: - Name: Temperate + Name: tileset-temperat Id: TEMPERAT EditorTemplateOrder: Terrain, Debris, Road, Cliffs, Beach, River, Bridge HeightDebugColors: AA0000 diff --git a/mods/cnc/tilesets/winter.yaml b/mods/cnc/tilesets/winter.yaml index 9d9de1b644..b970aec1ab 100644 --- a/mods/cnc/tilesets/winter.yaml +++ b/mods/cnc/tilesets/winter.yaml @@ -1,5 +1,5 @@ General: - Name: Winter + Name: tileset-winter Id: WINTER EditorTemplateOrder: Terrain, Debris, Road, Cliffs, Beach, River, Bridge HeightDebugColors: 880000 diff --git a/mods/d2k/fluent/d2k.ftl b/mods/d2k/fluent/d2k.ftl index a57fcae31a..a0f9edf944 100644 --- a/mods/d2k/fluent/d2k.ftl +++ b/mods/d2k/fluent/d2k.ftl @@ -4,3 +4,6 @@ mod-windowtitle = OpenRA - Dune 2000 ## LogoStripLoadScreen loadscreen-loading = Filling Crates..., Breeding Sandworms..., Fuelling carryalls..., Deploying harvesters..., Preparing thopters..., Summoning mentats... + +## Tilesets +tileset-arrakis = Arrakis diff --git a/mods/d2k/tilesets/arrakis.yaml b/mods/d2k/tilesets/arrakis.yaml index b1161f9b3a..8126399f7a 100644 --- a/mods/d2k/tilesets/arrakis.yaml +++ b/mods/d2k/tilesets/arrakis.yaml @@ -1,5 +1,5 @@ General: - Name: Arrakis + Name: tileset-arrakis Id: ARRAKIS TileSize: 32, 32 SheetSize: 1024 diff --git a/mods/ra/fluent/ra.ftl b/mods/ra/fluent/ra.ftl index 717ee88d1f..9741849b33 100644 --- a/mods/ra/fluent/ra.ftl +++ b/mods/ra/fluent/ra.ftl @@ -4,3 +4,9 @@ mod-windowtitle = OpenRA - Red Alert ## LogoStripeLoadScreen loadscreen-loading = Filling Crates..., Charging Capacitors..., Reticulating Splines..., Planting Trees..., Building Bridges..., Aging Empires..., Compiling EVA..., Constructing Pylons..., Activating Skynet..., Splitting Atoms... + +## Tilesets +tileset-desert = Desert +tileset-snow = Snow +tileset-temperat = Temperate +tileset-interior = Interior diff --git a/mods/ra/tilesets/desert.yaml b/mods/ra/tilesets/desert.yaml index 8e6cedbf67..eddb8796a8 100644 --- a/mods/ra/tilesets/desert.yaml +++ b/mods/ra/tilesets/desert.yaml @@ -1,5 +1,5 @@ General: - Name: Desert + Name: tileset-desert Id: DESERT EditorTemplateOrder: Terrain, Debris, Road, Cliffs, Water Cliffs, Beach, River, Bridge HeightDebugColors: 880000 diff --git a/mods/ra/tilesets/interior.yaml b/mods/ra/tilesets/interior.yaml index e6c2efdd18..21159b202a 100644 --- a/mods/ra/tilesets/interior.yaml +++ b/mods/ra/tilesets/interior.yaml @@ -1,5 +1,5 @@ General: - Name: Interior + Name: tileset-interior Id: INTERIOR EditorTemplateOrder: Floor, Wall HeightDebugColors: 880000 diff --git a/mods/ra/tilesets/snow.yaml b/mods/ra/tilesets/snow.yaml index 68d4c7ef5a..887ec0365e 100644 --- a/mods/ra/tilesets/snow.yaml +++ b/mods/ra/tilesets/snow.yaml @@ -1,5 +1,5 @@ General: - Name: Snow + Name: tileset-snow Id: SNOW EditorTemplateOrder: Terrain, Debris, Road, Cliffs, Water Cliffs, Beach, River, Bridge HeightDebugColors: 880000 diff --git a/mods/ra/tilesets/temperat.yaml b/mods/ra/tilesets/temperat.yaml index 6921ded09c..170e30d9f6 100644 --- a/mods/ra/tilesets/temperat.yaml +++ b/mods/ra/tilesets/temperat.yaml @@ -1,5 +1,5 @@ General: - Name: Temperate + Name: tileset-temperat Id: TEMPERAT SheetSize: 1024 EditorTemplateOrder: Terrain, Debris, Road, Cliffs, Water Cliffs, Beach, River, Bridge diff --git a/mods/ts/fluent/ts.ftl b/mods/ts/fluent/ts.ftl index 338437dd33..8db515dd60 100644 --- a/mods/ts/fluent/ts.ftl +++ b/mods/ts/fluent/ts.ftl @@ -4,3 +4,7 @@ mod-windowtitle = OpenRA - Tiberian Sun ## LogoStripeLoadScreen loadscreen-loading = Updating EVA installation..., Changing perspective... + +## Tilesets +tileset-snow = Snow +tileset-temperate = Temperate diff --git a/mods/ts/tilesets/snow.yaml b/mods/ts/tilesets/snow.yaml index 2ca52434c3..901407bd61 100644 --- a/mods/ts/tilesets/snow.yaml +++ b/mods/ts/tilesets/snow.yaml @@ -1,5 +1,5 @@ General: - Name: Snow + Name: tileset-snow Id: SNOW TileSize: 48, 24 HeightDebugColors: 00000080, 00004480, 00008880, 0000CC80, 0000FF80, 4400CC80, 88008880, CC004480, FF110080, FF550080, FF990080, FFDD0080, DDFF0080, 99FF0080, 55FF0080, 11FF0080 diff --git a/mods/ts/tilesets/temperate.yaml b/mods/ts/tilesets/temperate.yaml index 75e9960322..ac50f69812 100644 --- a/mods/ts/tilesets/temperate.yaml +++ b/mods/ts/tilesets/temperate.yaml @@ -1,5 +1,5 @@ General: - Name: Temperate + Name: tileset-temperate Id: TEMPERATE TileSize: 48, 24 HeightDebugColors: 00000080, 00004480, 00008880, 0000CC80, 0000FF80, 4400CC80, 88008880, CC004480, FF110080, FF550080, FF990080, FFDD0080, DDFF0080, 99FF0080, 55FF0080, 11FF0080