Rename Disc -> Source in asset installer.

This commit is contained in:
Paul Chote
2016-06-22 18:10:11 +01:00
parent aad17148bc
commit 7ca7e695e1
7 changed files with 48 additions and 48 deletions

View File

@@ -21,7 +21,7 @@ namespace OpenRA
{
public readonly string Title;
public readonly string[] TestFiles = { };
public readonly string[] Discs = { };
public readonly string[] Sources = { };
public readonly bool Required;
public readonly string Download;
@@ -37,14 +37,14 @@ namespace OpenRA
}
}
public class ModDisc
public class ModSource
{
public readonly string Title;
public readonly Dictionary<string, string> IDFiles;
[FieldLoader.Ignore] public readonly List<MiniYamlNode> Install;
public ModDisc(MiniYaml yaml)
public ModSource(MiniYaml yaml)
{
Title = yaml.Value;
var installNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Install");
@@ -101,18 +101,18 @@ namespace OpenRA
return downloads;
}
[FieldLoader.LoadUsing("LoadDiscs")]
public readonly Dictionary<string, ModDisc> Discs;
[FieldLoader.LoadUsing("LoadSources")]
public readonly Dictionary<string, ModSource> Sources;
static object LoadDiscs(MiniYaml yaml)
static object LoadSources(MiniYaml yaml)
{
var discs = new Dictionary<string, ModDisc>();
var discNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Discs");
if (discNode != null)
foreach (var node in discNode.Value.Nodes)
discs.Add(node.Key, new ModDisc(node.Value));
var sources = new Dictionary<string, ModSource>();
var sourceNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Sources");
if (sourceNode != null)
foreach (var node in sourceNode.Value.Nodes)
sources.Add(node.Key, new ModSource(node.Value));
return discs;
return sources;
}
}
}

View File

@@ -104,7 +104,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
.Where(v => v.DriveType == DriveType.CDRom && v.IsReady)
.Select(v => v.RootDirectory.FullName);
foreach (var kv in content.Discs)
foreach (var kv in content.Sources)
{
message = "Searching for " + kv.Value.Title;
@@ -113,7 +113,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
if (PathIsDiscMount(volume, kv.Value))
{
var packages = content.Packages.Values
.Where(p => p.Discs.Contains(kv.Key) && !p.IsInstalled())
.Where(p => p.Sources.Contains(kv.Key) && !p.IsInstalled())
.Select(p => p.Title);
// Ignore disc if content is already installed
@@ -133,8 +133,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var discTitles = content.Packages.Values
.Where(p => !p.IsInstalled())
.SelectMany(p => p.Discs)
.Select(d => content.Discs[d].Title)
.SelectMany(p => p.Sources)
.Select(d => content.Sources[d].Title)
.Distinct();
Game.RunAfterTick(() =>
@@ -145,7 +145,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
}).Start();
}
void InstallFromDisc(string path, ModContent.ModDisc disc)
void InstallFromDisc(string path, ModContent.ModSource modSource)
{
var message = "";
ShowProgressbar("Installing Content", () => message);
@@ -157,7 +157,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
try
{
foreach (var i in disc.Install)
foreach (var i in modSource.Install)
{
switch (i.Key)
{
@@ -236,7 +236,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
Game.RunAfterTick(() =>
{
ShowMessage("Installation Failed", "Refer to install.log in the logs directory for details.");
ShowBackRetry(() => InstallFromDisc(path, disc));
ShowBackRetry(() => InstallFromDisc(path, modSource));
});
}
}).Start();
@@ -351,11 +351,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic
}
}
bool PathIsDiscMount(string path, ModContent.ModDisc disc)
bool PathIsDiscMount(string path, ModContent.ModSource source)
{
try
{
foreach (var kv in disc.IDFiles)
foreach (var kv in source.IDFiles)
{
var filePath = Path.Combine(path, kv.Key);
if (!File.Exists(filePath))

View File

@@ -86,12 +86,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var requiredWidget = container.Get<LabelWidget>("REQUIRED");
requiredWidget.IsVisible = () => p.Value.Required;
var discWidget = container.Get<ImageWidget>("DISC");
var discs = p.Value.Discs.Select(s => content.Discs[s].Title).Distinct();
var discList = discs.JoinWith("\n");
var isDiscAvailable = discs.Any();
discWidget.GetTooltipText = () => discList;
discWidget.IsVisible = () => isDiscAvailable;
var sourceWidget = container.Get<ImageWidget>("DISC");
var sources = p.Value.Sources.Select(s => content.Sources[s].Title).Distinct();
var sourceList = sources.JoinWith("\n");
var isSourceAvailable = sources.Any();
sourceWidget.GetTooltipText = () => sourceList;
sourceWidget.IsVisible = () => isSourceAvailable;
var installed = p.Value.IsInstalled();
var downloadButton = container.Get<ButtonWidget>("DOWNLOAD");
@@ -115,13 +115,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var requiresDiscWidget = container.Get<LabelWidget>("REQUIRES_DISC");
requiresDiscWidget.IsVisible = () => !installed && !downloadEnabled;
if (!isDiscAvailable)
if (!isSourceAvailable)
requiresDiscWidget.GetText = () => "Manual Install";
scrollPanel.AddChild(container);
}
discAvailable = content.Packages.Values.Any(p => p.Discs.Any() && !p.IsInstalled());
discAvailable = content.Packages.Values.Any(p => p.Sources.Any() && !p.IsInstalled());
}
}
}

View File

@@ -228,22 +228,22 @@ ModContent:
Packages:
base: Base Game Files
TestFiles: ^Content/cnc/conquer.mix, ^Content/cnc/desert.mix, ^Content/cnc/sounds.mix, ^Content/cnc/speech.mix, ^Content/cnc/temperat.mix, ^Content/cnc/tempicnh.mix, ^Content/cnc/winter.mix
Discs: gdi95, gdi95-linux, nod95, nod95-linux
Sources: gdi95, gdi95-linux, nod95, nod95-linux
Required: true
Download: basefiles
music: Base Game Music
TestFiles: ^Content/cnc/scores.mix
Discs: gdi95, gdi95-linux, nod95, nod95-linux
Sources: gdi95, gdi95-linux, nod95, nod95-linux
Download: music
movies-gdi: GDI Campaign Briefings
TestFiles: ^Content/cnc/movies-gdi.mix
Discs: gdi95, gdi95-linux
Sources: gdi95, gdi95-linux
movies-nod: Nod Campaign Briefings
TestFiles: ^Content/cnc/movies-nod.mix
Discs: nod95, nod95-linux
Sources: nod95, nod95-linux
music-covertops: Covert Operations Music
TestFiles: ^Content/cnc/scores-covertops.mix
Discs: covertops, covertops-linux
Sources: covertops, covertops-linux
Downloads:
basefiles: Base Freeware Content
MirrorList: http://www.openra.net/packages/cnc-mirrors.txt
@@ -261,7 +261,7 @@ ModContent:
MirrorList: http://www.openra.net/packages/cnc-music-mirrors.txt
Extract:
^Content/cnc/scores.mix: scores.mix
Discs:
Sources:
gdi95: C&C Gold (GDI Disc, English)
IDFiles:
DISK.WAV: 8bef9a6687c0fe0afd57c6561df58fa6e64f145d

View File

@@ -207,15 +207,15 @@ ModContent:
Packages:
base: Base Game Files
TestFiles: ^Content/d2k/BLOXBASE.R8, ^Content/d2k/BLOXBAT.R8, ^Content/d2k/BLOXBGBS.R8, ^Content/d2k/BLOXICE.R8, ^Content/d2k/BLOXTREE.R8, ^Content/d2k/BLOXWAST.R8, ^Content/d2k/DATA.R8, ^Content/d2k/SOUND.RS, ^Content/d2k/PALETTE.BIN
Discs: d2k, d2k-linux
Sources: d2k, d2k-linux
Required: true
Download: basefiles
music: Game Music
TestFiles: ^Content/d2k/Music/AMBUSH.AUD
Discs: d2k, d2k-linux
Sources: d2k, d2k-linux
movies: Campaign Briefings
TestFiles: ^Content/d2k/Movies/A_BR01_E.VQA
Discs: d2k, d2k-linux
Sources: d2k, d2k-linux
Downloads:
basefiles: Base Content
MirrorList: http://www.openra.net/packages/d2k-103-mirrors.txt
@@ -481,7 +481,7 @@ ModContent:
^Content/d2k/GAMESFX/O_VSEL1.AUD: GAMESFX/O_VSEL1.AUD
^Content/d2k/GAMESFX/O_VSEL2.AUD: GAMESFX/O_VSEL2.AUD
^Content/d2k/GAMESFX/O_VSEL3.AUD: GAMESFX/O_VSEL3.AUD
Discs:
Sources:
d2k: Dune 2000 (English)
IDFiles:
MUSIC/AMBUSH.AUD: bd5926a56a83bc0e49f96037e1f909014ac0772a

View File

@@ -233,22 +233,22 @@ ModContent:
Packages:
base: Base Game Files
TestFiles: ^Content/ra/allies.mix, ^Content/ra/conquer.mix, ^Content/ra/interior.mix, ^Content/ra/redalert.mix, ^Content/ra/russian.mix, ^Content/ra/snow.mix, ^Content/ra/sounds.mix, ^Content/ra/temperat.mix
Discs: allied, allied-linux, soviet, soviet-linux
Sources: allied, allied-linux, soviet, soviet-linux
Required: true
Download: basefiles
music: Base Game Music
TestFiles: ^Content/ra/scores.mix
Discs: allied, allied-linux, soviet, soviet-linux
Sources: allied, allied-linux, soviet, soviet-linux
Download: music
movies-allied: Allied Campaign Briefings
TestFiles: ^Content/ra/movies1.mix
Discs: allied, allied-linux
Sources: allied, allied-linux
movies-soviet: Soviet Campaign Briefings
TestFiles: ^Content/ra/movies2.mix
Discs: soviet, soviet-linux
Sources: soviet, soviet-linux
music-covertops: Counterstrike Music
TestFiles: ^Content/ra/scores-counterstrike.mix
Discs: counterstrike, counterstrike-linux
Sources: counterstrike, counterstrike-linux
Downloads:
basefiles: Base Freeware Content
MirrorList: http://www.openra.net/packages/ra-mirrors.txt
@@ -266,7 +266,7 @@ ModContent:
MirrorList: http://www.openra.net/packages/ra-music-mirrors.txt
Extract:
^Content/ra/scores.mix: scores.mix
Discs:
Sources:
allied: Red Alert 95 (Allied Disc, English)
IDFiles:
eahelp.GID: 13a8a4a1e7d9d6d893c38df5a39262c4689aeba5

View File

@@ -266,12 +266,12 @@ ModContent:
Packages:
base: Base Game Files
TestFiles: ^Content/ts/cache.mix, ^Content/ts/conquer.mix, ^Content/ts/isosnow.mix, ^Content/ts/isotemp.mix, ^Content/ts/local.mix, ^Content/ts/sidec01.mix, ^Content/ts/sidec02.mix, ^Content/ts/sno.mix, ^Content/ts/snow.mix, ^Content/ts/sounds.mix, ^Content/ts/speech01.mix, ^Content/ts/tem.mix, ^Content/ts/temperat.mix
Discs: tibsun, tibsun-linux
Sources: tibsun, tibsun-linux
Required: true
Download: basefiles
music: Base Game Music
TestFiles: ^Content/ts/scores.mix
Discs: tibsun, tibsun-linux
Sources: tibsun, tibsun-linux
Download: music
Downloads:
basefiles: Base Freeware Content
@@ -295,7 +295,7 @@ ModContent:
MirrorList: http://www.openra.net/packages/ts-music-mirrors.txt
Extract:
^Content/ts/scores.mix: scores.mix
Discs:
Sources:
tibsun: Tiberan Sun (GDI or Nod Disc, English)
IDFiles:
README.TXT: 45745c4a0c888317ec900208a426472779c42bf7