Remove legacy SpriteSequenceLoader metadata plumbing.
This commit is contained in:
committed by
Gustas Kažukauskas
parent
a04cfaec78
commit
2b6977d53f
@@ -70,6 +70,8 @@ namespace OpenRA
|
||||
public readonly ImmutableArray<string> SpriteFormats = [];
|
||||
public readonly ImmutableArray<string> PackageFormats = [];
|
||||
public readonly ImmutableArray<string> VideoFormats = [];
|
||||
public readonly string SpriteSequenceFormat;
|
||||
public readonly string TerrainFormat;
|
||||
|
||||
// TODO: This should be controlled by a user-selected translation bundle!
|
||||
public readonly string FluentCulture = "en";
|
||||
@@ -81,7 +83,7 @@ namespace OpenRA
|
||||
"Sequences", "ModelSequences", "Cursors", "Chrome", "Assemblies", "ChromeLayout", "Weapons",
|
||||
"Voices", "Notifications", "Music", "FluentMessages", "TileSets", "ChromeMetrics", "Missions", "Hotkeys",
|
||||
"ServerTraits", "LoadScreen", "DefaultOrderGenerator", "SupportsMapsFrom", "SoundFormats", "SpriteFormats", "VideoFormats",
|
||||
"RequiresMods", "PackageFormats", "AllowUnusedFluentMessagesInExternalPackages", "RendererConstants"
|
||||
"SpriteSequenceFormat", "TerrainFormat", "RequiresMods", "PackageFormats", "AllowUnusedFluentMessagesInExternalPackages", "RendererConstants"
|
||||
}.ToFrozenSet();
|
||||
|
||||
public readonly FrozenDictionary<string, MiniYaml> GlobalModData;
|
||||
@@ -166,6 +168,12 @@ namespace OpenRA
|
||||
if (yaml.TryGetValue("VideoFormats", out entry))
|
||||
VideoFormats = FieldLoader.GetValue<ImmutableArray<string>>("VideoFormats", entry.Value);
|
||||
|
||||
if (yaml.TryGetValue("SpriteSequenceFormat", out entry))
|
||||
SpriteSequenceFormat = entry.Value;
|
||||
|
||||
if (yaml.TryGetValue("TerrainFormat", out entry))
|
||||
TerrainFormat = entry.Value;
|
||||
|
||||
if (yaml.TryGetValue("AllowUnusedFluentMessagesInExternalPackages", out entry))
|
||||
AllowUnusedFluentMessagesInExternalPackages =
|
||||
FieldLoader.GetValue<bool>("AllowUnusedFluentMessagesInExternalPackages", entry.Value);
|
||||
|
||||
@@ -26,28 +26,6 @@ namespace OpenRA
|
||||
{
|
||||
public interface IGlobalModData { }
|
||||
|
||||
public sealed class TerrainFormat : IGlobalModData
|
||||
{
|
||||
public readonly string Type;
|
||||
public readonly IReadOnlyDictionary<string, MiniYaml> Metadata;
|
||||
public TerrainFormat(MiniYaml yaml)
|
||||
{
|
||||
Type = yaml.Value;
|
||||
Metadata = new ReadOnlyDictionary<string, MiniYaml>(yaml.ToDictionary());
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class SpriteSequenceFormat : IGlobalModData
|
||||
{
|
||||
public readonly string Type;
|
||||
public readonly IReadOnlyDictionary<string, MiniYaml> Metadata;
|
||||
public SpriteSequenceFormat(MiniYaml yaml)
|
||||
{
|
||||
Type = yaml.Value;
|
||||
Metadata = new ReadOnlyDictionary<string, MiniYaml>(yaml.ToDictionary());
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ModData : IDisposable
|
||||
{
|
||||
public readonly Manifest Manifest;
|
||||
@@ -129,23 +107,15 @@ namespace OpenRA
|
||||
SoundLoaders = ObjectCreator.GetLoaders<ISoundLoader>(Manifest.SoundFormats, "sound");
|
||||
SpriteLoaders = ObjectCreator.GetLoaders<ISpriteLoader>(Manifest.SpriteFormats, "sprite");
|
||||
VideoLoaders = ObjectCreator.GetLoaders<IVideoLoader>(Manifest.VideoFormats, "video");
|
||||
SpriteSequenceLoader = ObjectCreator.GetLoader<ISpriteSequenceLoader>(Manifest.SpriteSequenceFormat, "sequence");
|
||||
|
||||
var terrainFormat = GetOrCreate<TerrainFormat>();
|
||||
var terrainLoader = ObjectCreator.FindType(terrainFormat.Type + "Loader");
|
||||
var terrainLoader = ObjectCreator.FindType(Manifest.TerrainFormat + "Loader");
|
||||
var terrainCtor = terrainLoader?.GetConstructor([typeof(ModData)]);
|
||||
if (terrainLoader == null || !terrainLoader.GetInterfaces().Contains(typeof(ITerrainLoader)) || terrainCtor == null)
|
||||
throw new InvalidOperationException($"Unable to find a terrain loader for type '{terrainFormat.Type}'.");
|
||||
throw new InvalidOperationException($"Unable to find a terrain loader for type '{Manifest.TerrainFormat}'.");
|
||||
|
||||
TerrainLoader = (ITerrainLoader)terrainCtor.Invoke([this]);
|
||||
|
||||
var sequenceFormat = GetOrCreate<SpriteSequenceFormat>();
|
||||
var sequenceLoader = ObjectCreator.FindType(sequenceFormat.Type + "Loader");
|
||||
var sequenceCtor = sequenceLoader?.GetConstructor([typeof(ModData)]);
|
||||
if (sequenceLoader == null || !sequenceLoader.GetInterfaces().Contains(typeof(ISpriteSequenceLoader)) || sequenceCtor == null)
|
||||
throw new InvalidOperationException($"Unable to find a sequence loader for type '{sequenceFormat.Type}'.");
|
||||
|
||||
SpriteSequenceLoader = (ISpriteSequenceLoader)sequenceCtor.Invoke([this]);
|
||||
|
||||
Hotkeys = new HotkeyManager(ModFiles, Game.Settings.Keys, Manifest);
|
||||
Cursors = ParseCursors(Manifest, DefaultFileSystem);
|
||||
|
||||
|
||||
@@ -17,9 +17,6 @@ namespace OpenRA.Mods.Cnc.Graphics
|
||||
{
|
||||
public class ClassicSpriteSequenceLoader : DefaultSpriteSequenceLoader
|
||||
{
|
||||
public ClassicSpriteSequenceLoader(ModData modData)
|
||||
: base(modData) { }
|
||||
|
||||
public override ClassicSpriteSequence CreateSequence(
|
||||
ModData modData, string tileset, SpriteCache cache, string image, string sequence, MiniYaml data, MiniYaml defaults)
|
||||
{
|
||||
|
||||
@@ -20,9 +20,6 @@ namespace OpenRA.Mods.Cnc.Graphics
|
||||
{
|
||||
public class ClassicTilesetSpecificSpriteSequenceLoader : ClassicSpriteSequenceLoader
|
||||
{
|
||||
public ClassicTilesetSpecificSpriteSequenceLoader(ModData modData)
|
||||
: base(modData) { }
|
||||
|
||||
public override ClassicTilesetSpecificSpriteSequence CreateSequence(
|
||||
ModData modData, string tileset, SpriteCache cache, string image, string sequence, MiniYaml data, MiniYaml defaults)
|
||||
{
|
||||
|
||||
@@ -24,8 +24,6 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
{
|
||||
static readonly MiniYaml NoData = new(null);
|
||||
|
||||
public DefaultSpriteSequenceLoader(ModData modData) { }
|
||||
|
||||
public virtual ISpriteSequence CreateSequence(
|
||||
ModData modData, string tileset, SpriteCache cache, string image, string sequence, MiniYaml data, MiniYaml defaults)
|
||||
{
|
||||
|
||||
@@ -19,9 +19,6 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
{
|
||||
public class TilesetSpecificSpriteSequenceLoader : DefaultSpriteSequenceLoader
|
||||
{
|
||||
public TilesetSpecificSpriteSequenceLoader(ModData modData)
|
||||
: base(modData) { }
|
||||
|
||||
public override TilesetSpecificSpriteSequence CreateSequence(
|
||||
ModData modData, string tileSet, SpriteCache cache, string image, string sequence, MiniYaml data, MiniYaml defaults)
|
||||
{
|
||||
|
||||
@@ -18,9 +18,6 @@ namespace OpenRA.Mods.D2k.Graphics
|
||||
{
|
||||
public class D2kSpriteSequenceLoader : DefaultSpriteSequenceLoader
|
||||
{
|
||||
public D2kSpriteSequenceLoader(ModData modData)
|
||||
: base(modData) { }
|
||||
|
||||
public override D2kSpriteSequence CreateSequence(
|
||||
ModData modData, string tileset, SpriteCache cache, string image, string sequence, MiniYaml data, MiniYaml defaults)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user