Added descriptions to ContentInstallerFileSystemLoader
(cherry picked from commit 955bf96a84af425da48963c79c43c5d3adca8cac)
This commit is contained in:
@@ -13,23 +13,28 @@ using System.Collections.Generic;
|
|||||||
|
|
||||||
namespace OpenRA.Mods.Common.FileSystem
|
namespace OpenRA.Mods.Common.FileSystem
|
||||||
{
|
{
|
||||||
|
[Desc("A file system that loads game assets installed by the user into their support directory.")]
|
||||||
public class ContentInstallerFileSystemLoader : IFileSystemLoader, IFileSystemExternalContent
|
public class ContentInstallerFileSystemLoader : IFileSystemLoader, IFileSystemExternalContent
|
||||||
{
|
{
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require]
|
||||||
|
[Desc("Mod to use for content installation.")]
|
||||||
public readonly string ContentInstallerMod = null;
|
public readonly string ContentInstallerMod = null;
|
||||||
|
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require]
|
||||||
public readonly Dictionary<string, string> Packages = null;
|
[Desc("A list of mod-provided packages. Anything required to display the initial load screen must be listed here.")]
|
||||||
|
public readonly Dictionary<string, string> SystemPackages = null;
|
||||||
|
|
||||||
|
[Desc("A list of user-installed packages. If missing (and not marked as optional), these will trigger the content installer.")]
|
||||||
public readonly Dictionary<string, string> ContentPackages = null;
|
public readonly Dictionary<string, string> ContentPackages = null;
|
||||||
|
|
||||||
public readonly Dictionary<string, string> ContentFiles = null;
|
[Desc("Files that aren't mounted as packages, but still need to trigger the content installer if missing.")]
|
||||||
|
public readonly Dictionary<string, string> RequiredContentFiles = null;
|
||||||
|
|
||||||
bool contentAvailable = true;
|
bool isContentAvailable = true;
|
||||||
|
|
||||||
public void Mount(OpenRA.FileSystem.FileSystem fileSystem, ObjectCreator objectCreator)
|
public void Mount(OpenRA.FileSystem.FileSystem fileSystem, ObjectCreator objectCreator)
|
||||||
{
|
{
|
||||||
foreach (var kv in Packages)
|
foreach (var kv in SystemPackages)
|
||||||
fileSystem.Mount(kv.Key, kv.Value);
|
fileSystem.Mount(kv.Key, kv.Value);
|
||||||
|
|
||||||
if (ContentPackages != null)
|
if (ContentPackages != null)
|
||||||
@@ -42,23 +47,23 @@ namespace OpenRA.Mods.Common.FileSystem
|
|||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
contentAvailable = false;
|
isContentAvailable = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ContentFiles != null)
|
if (RequiredContentFiles != null)
|
||||||
foreach (var kv in ContentFiles)
|
foreach (var kv in RequiredContentFiles)
|
||||||
if (!fileSystem.Exists(kv.Key))
|
if (!fileSystem.Exists(kv.Key))
|
||||||
contentAvailable = false;
|
isContentAvailable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IFileSystemExternalContent.InstallContentIfRequired(ModData modData)
|
bool IFileSystemExternalContent.InstallContentIfRequired(ModData modData)
|
||||||
{
|
{
|
||||||
if (!contentAvailable)
|
if (!isContentAvailable)
|
||||||
Game.InitializeMod(ContentInstallerMod, new Arguments());
|
Game.InitializeMod(ContentInstallerMod, new Arguments());
|
||||||
|
|
||||||
return !contentAvailable;
|
return !isContentAvailable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Metadata:
|
|||||||
PackageFormats: Mix
|
PackageFormats: Mix
|
||||||
|
|
||||||
FileSystem: ContentInstallerFileSystem
|
FileSystem: ContentInstallerFileSystem
|
||||||
Packages:
|
SystemPackages:
|
||||||
^EngineDir
|
^EngineDir
|
||||||
$cnc: cnc
|
$cnc: cnc
|
||||||
^EngineDir|mods/common: common
|
^EngineDir|mods/common: common
|
||||||
@@ -30,6 +30,7 @@ FileSystem: ContentInstallerFileSystem
|
|||||||
~content|scores-covertops.mix
|
~content|scores-covertops.mix
|
||||||
~content|transit.mix
|
~content|transit.mix
|
||||||
~content|general.mix
|
~content|general.mix
|
||||||
|
# Below are mod-provided (system) packages that need to be loaded after the content packages so they can override content assets.
|
||||||
cnc|bits/snow.mix
|
cnc|bits/snow.mix
|
||||||
cnc|bits
|
cnc|bits
|
||||||
cnc|bits/jungle
|
cnc|bits/jungle
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Metadata:
|
|||||||
PackageFormats: D2kSoundResources
|
PackageFormats: D2kSoundResources
|
||||||
|
|
||||||
FileSystem: ContentInstallerFileSystem
|
FileSystem: ContentInstallerFileSystem
|
||||||
Packages:
|
SystemPackages:
|
||||||
^EngineDir
|
^EngineDir
|
||||||
$d2k: d2k
|
$d2k: d2k
|
||||||
^EngineDir|mods/common: common
|
^EngineDir|mods/common: common
|
||||||
@@ -21,8 +21,9 @@ FileSystem: ContentInstallerFileSystem
|
|||||||
content|GAMESFX
|
content|GAMESFX
|
||||||
~content|Music
|
~content|Music
|
||||||
~content|Movies
|
~content|Movies
|
||||||
|
# Below are mod-provided (system) packages that need to be loaded after the content packages so they can override content assets.
|
||||||
d2k|bits
|
d2k|bits
|
||||||
ContentFiles:
|
RequiredContentFiles:
|
||||||
content|BLOXBASE.R16
|
content|BLOXBASE.R16
|
||||||
content|BLOXBAT.R16
|
content|BLOXBAT.R16
|
||||||
content|BLOXBGBS.R16
|
content|BLOXBGBS.R16
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Metadata:
|
|||||||
PackageFormats: Mix
|
PackageFormats: Mix
|
||||||
|
|
||||||
FileSystem: ContentInstallerFileSystem
|
FileSystem: ContentInstallerFileSystem
|
||||||
Packages:
|
SystemPackages:
|
||||||
^EngineDir
|
^EngineDir
|
||||||
$ra: ra
|
$ra: ra
|
||||||
^EngineDir|mods/common: common
|
^EngineDir|mods/common: common
|
||||||
@@ -36,9 +36,10 @@ FileSystem: ContentInstallerFileSystem
|
|||||||
~content|movies
|
~content|movies
|
||||||
~content|scores.mix
|
~content|scores.mix
|
||||||
~content|general.mix
|
~content|general.mix
|
||||||
|
# Below are mod-provided (system) packages that need to be loaded after the content packages so they can override content assets.
|
||||||
ra|bits
|
ra|bits
|
||||||
ra|bits/desert
|
ra|bits/desert
|
||||||
ContentFiles:
|
RequiredContentFiles:
|
||||||
content|expand/chrotnk1.aud
|
content|expand/chrotnk1.aud
|
||||||
content|expand/fixit1.aud
|
content|expand/fixit1.aud
|
||||||
content|expand/jburn1.aud
|
content|expand/jburn1.aud
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Metadata:
|
|||||||
PackageFormats: Mix
|
PackageFormats: Mix
|
||||||
|
|
||||||
FileSystem: ContentInstallerFileSystem
|
FileSystem: ContentInstallerFileSystem
|
||||||
Packages:
|
SystemPackages:
|
||||||
^EngineDir
|
^EngineDir
|
||||||
$ts: ts
|
$ts: ts
|
||||||
^EngineDir|mods/common: common
|
^EngineDir|mods/common: common
|
||||||
@@ -38,6 +38,7 @@ FileSystem: ContentInstallerFileSystem
|
|||||||
content|firestorm/e01vox02.mix
|
content|firestorm/e01vox02.mix
|
||||||
content|firestorm/ecache01.mix
|
content|firestorm/ecache01.mix
|
||||||
~content|firestorm/scores01.mix
|
~content|firestorm/scores01.mix
|
||||||
|
# Below are mod-provided (system) packages that need to be loaded after the content packages so they can override content assets.
|
||||||
ts|bits
|
ts|bits
|
||||||
ContentInstallerMod: ts-content
|
ContentInstallerMod: ts-content
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user