Rename Disc -> Source in asset installer.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user