Rename Disc -> Source in asset installer.
This commit is contained in:
@@ -21,7 +21,7 @@ namespace OpenRA
|
|||||||
{
|
{
|
||||||
public readonly string Title;
|
public readonly string Title;
|
||||||
public readonly string[] TestFiles = { };
|
public readonly string[] TestFiles = { };
|
||||||
public readonly string[] Discs = { };
|
public readonly string[] Sources = { };
|
||||||
public readonly bool Required;
|
public readonly bool Required;
|
||||||
public readonly string Download;
|
public readonly string Download;
|
||||||
|
|
||||||
@@ -37,14 +37,14 @@ namespace OpenRA
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ModDisc
|
public class ModSource
|
||||||
{
|
{
|
||||||
public readonly string Title;
|
public readonly string Title;
|
||||||
public readonly Dictionary<string, string> IDFiles;
|
public readonly Dictionary<string, string> IDFiles;
|
||||||
|
|
||||||
[FieldLoader.Ignore] public readonly List<MiniYamlNode> Install;
|
[FieldLoader.Ignore] public readonly List<MiniYamlNode> Install;
|
||||||
|
|
||||||
public ModDisc(MiniYaml yaml)
|
public ModSource(MiniYaml yaml)
|
||||||
{
|
{
|
||||||
Title = yaml.Value;
|
Title = yaml.Value;
|
||||||
var installNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Install");
|
var installNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Install");
|
||||||
@@ -101,18 +101,18 @@ namespace OpenRA
|
|||||||
return downloads;
|
return downloads;
|
||||||
}
|
}
|
||||||
|
|
||||||
[FieldLoader.LoadUsing("LoadDiscs")]
|
[FieldLoader.LoadUsing("LoadSources")]
|
||||||
public readonly Dictionary<string, ModDisc> Discs;
|
public readonly Dictionary<string, ModSource> Sources;
|
||||||
|
|
||||||
static object LoadDiscs(MiniYaml yaml)
|
static object LoadSources(MiniYaml yaml)
|
||||||
{
|
{
|
||||||
var discs = new Dictionary<string, ModDisc>();
|
var sources = new Dictionary<string, ModSource>();
|
||||||
var discNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Discs");
|
var sourceNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Sources");
|
||||||
if (discNode != null)
|
if (sourceNode != null)
|
||||||
foreach (var node in discNode.Value.Nodes)
|
foreach (var node in sourceNode.Value.Nodes)
|
||||||
discs.Add(node.Key, new ModDisc(node.Value));
|
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)
|
.Where(v => v.DriveType == DriveType.CDRom && v.IsReady)
|
||||||
.Select(v => v.RootDirectory.FullName);
|
.Select(v => v.RootDirectory.FullName);
|
||||||
|
|
||||||
foreach (var kv in content.Discs)
|
foreach (var kv in content.Sources)
|
||||||
{
|
{
|
||||||
message = "Searching for " + kv.Value.Title;
|
message = "Searching for " + kv.Value.Title;
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
if (PathIsDiscMount(volume, kv.Value))
|
if (PathIsDiscMount(volume, kv.Value))
|
||||||
{
|
{
|
||||||
var packages = content.Packages.Values
|
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);
|
.Select(p => p.Title);
|
||||||
|
|
||||||
// Ignore disc if content is already installed
|
// Ignore disc if content is already installed
|
||||||
@@ -133,8 +133,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
|
|
||||||
var discTitles = content.Packages.Values
|
var discTitles = content.Packages.Values
|
||||||
.Where(p => !p.IsInstalled())
|
.Where(p => !p.IsInstalled())
|
||||||
.SelectMany(p => p.Discs)
|
.SelectMany(p => p.Sources)
|
||||||
.Select(d => content.Discs[d].Title)
|
.Select(d => content.Sources[d].Title)
|
||||||
.Distinct();
|
.Distinct();
|
||||||
|
|
||||||
Game.RunAfterTick(() =>
|
Game.RunAfterTick(() =>
|
||||||
@@ -145,7 +145,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
}).Start();
|
}).Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
void InstallFromDisc(string path, ModContent.ModDisc disc)
|
void InstallFromDisc(string path, ModContent.ModSource modSource)
|
||||||
{
|
{
|
||||||
var message = "";
|
var message = "";
|
||||||
ShowProgressbar("Installing Content", () => message);
|
ShowProgressbar("Installing Content", () => message);
|
||||||
@@ -157,7 +157,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
foreach (var i in disc.Install)
|
foreach (var i in modSource.Install)
|
||||||
{
|
{
|
||||||
switch (i.Key)
|
switch (i.Key)
|
||||||
{
|
{
|
||||||
@@ -236,7 +236,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
Game.RunAfterTick(() =>
|
Game.RunAfterTick(() =>
|
||||||
{
|
{
|
||||||
ShowMessage("Installation Failed", "Refer to install.log in the logs directory for details.");
|
ShowMessage("Installation Failed", "Refer to install.log in the logs directory for details.");
|
||||||
ShowBackRetry(() => InstallFromDisc(path, disc));
|
ShowBackRetry(() => InstallFromDisc(path, modSource));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).Start();
|
}).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
|
try
|
||||||
{
|
{
|
||||||
foreach (var kv in disc.IDFiles)
|
foreach (var kv in source.IDFiles)
|
||||||
{
|
{
|
||||||
var filePath = Path.Combine(path, kv.Key);
|
var filePath = Path.Combine(path, kv.Key);
|
||||||
if (!File.Exists(filePath))
|
if (!File.Exists(filePath))
|
||||||
|
|||||||
@@ -86,12 +86,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
var requiredWidget = container.Get<LabelWidget>("REQUIRED");
|
var requiredWidget = container.Get<LabelWidget>("REQUIRED");
|
||||||
requiredWidget.IsVisible = () => p.Value.Required;
|
requiredWidget.IsVisible = () => p.Value.Required;
|
||||||
|
|
||||||
var discWidget = container.Get<ImageWidget>("DISC");
|
var sourceWidget = container.Get<ImageWidget>("DISC");
|
||||||
var discs = p.Value.Discs.Select(s => content.Discs[s].Title).Distinct();
|
var sources = p.Value.Sources.Select(s => content.Sources[s].Title).Distinct();
|
||||||
var discList = discs.JoinWith("\n");
|
var sourceList = sources.JoinWith("\n");
|
||||||
var isDiscAvailable = discs.Any();
|
var isSourceAvailable = sources.Any();
|
||||||
discWidget.GetTooltipText = () => discList;
|
sourceWidget.GetTooltipText = () => sourceList;
|
||||||
discWidget.IsVisible = () => isDiscAvailable;
|
sourceWidget.IsVisible = () => isSourceAvailable;
|
||||||
|
|
||||||
var installed = p.Value.IsInstalled();
|
var installed = p.Value.IsInstalled();
|
||||||
var downloadButton = container.Get<ButtonWidget>("DOWNLOAD");
|
var downloadButton = container.Get<ButtonWidget>("DOWNLOAD");
|
||||||
@@ -115,13 +115,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
|
|
||||||
var requiresDiscWidget = container.Get<LabelWidget>("REQUIRES_DISC");
|
var requiresDiscWidget = container.Get<LabelWidget>("REQUIRES_DISC");
|
||||||
requiresDiscWidget.IsVisible = () => !installed && !downloadEnabled;
|
requiresDiscWidget.IsVisible = () => !installed && !downloadEnabled;
|
||||||
if (!isDiscAvailable)
|
if (!isSourceAvailable)
|
||||||
requiresDiscWidget.GetText = () => "Manual Install";
|
requiresDiscWidget.GetText = () => "Manual Install";
|
||||||
|
|
||||||
scrollPanel.AddChild(container);
|
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:
|
Packages:
|
||||||
base: Base Game Files
|
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
|
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
|
Required: true
|
||||||
Download: basefiles
|
Download: basefiles
|
||||||
music: Base Game Music
|
music: Base Game Music
|
||||||
TestFiles: ^Content/cnc/scores.mix
|
TestFiles: ^Content/cnc/scores.mix
|
||||||
Discs: gdi95, gdi95-linux, nod95, nod95-linux
|
Sources: gdi95, gdi95-linux, nod95, nod95-linux
|
||||||
Download: music
|
Download: music
|
||||||
movies-gdi: GDI Campaign Briefings
|
movies-gdi: GDI Campaign Briefings
|
||||||
TestFiles: ^Content/cnc/movies-gdi.mix
|
TestFiles: ^Content/cnc/movies-gdi.mix
|
||||||
Discs: gdi95, gdi95-linux
|
Sources: gdi95, gdi95-linux
|
||||||
movies-nod: Nod Campaign Briefings
|
movies-nod: Nod Campaign Briefings
|
||||||
TestFiles: ^Content/cnc/movies-nod.mix
|
TestFiles: ^Content/cnc/movies-nod.mix
|
||||||
Discs: nod95, nod95-linux
|
Sources: nod95, nod95-linux
|
||||||
music-covertops: Covert Operations Music
|
music-covertops: Covert Operations Music
|
||||||
TestFiles: ^Content/cnc/scores-covertops.mix
|
TestFiles: ^Content/cnc/scores-covertops.mix
|
||||||
Discs: covertops, covertops-linux
|
Sources: covertops, covertops-linux
|
||||||
Downloads:
|
Downloads:
|
||||||
basefiles: Base Freeware Content
|
basefiles: Base Freeware Content
|
||||||
MirrorList: http://www.openra.net/packages/cnc-mirrors.txt
|
MirrorList: http://www.openra.net/packages/cnc-mirrors.txt
|
||||||
@@ -261,7 +261,7 @@ ModContent:
|
|||||||
MirrorList: http://www.openra.net/packages/cnc-music-mirrors.txt
|
MirrorList: http://www.openra.net/packages/cnc-music-mirrors.txt
|
||||||
Extract:
|
Extract:
|
||||||
^Content/cnc/scores.mix: scores.mix
|
^Content/cnc/scores.mix: scores.mix
|
||||||
Discs:
|
Sources:
|
||||||
gdi95: C&C Gold (GDI Disc, English)
|
gdi95: C&C Gold (GDI Disc, English)
|
||||||
IDFiles:
|
IDFiles:
|
||||||
DISK.WAV: 8bef9a6687c0fe0afd57c6561df58fa6e64f145d
|
DISK.WAV: 8bef9a6687c0fe0afd57c6561df58fa6e64f145d
|
||||||
|
|||||||
@@ -207,15 +207,15 @@ ModContent:
|
|||||||
Packages:
|
Packages:
|
||||||
base: Base Game Files
|
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
|
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
|
Required: true
|
||||||
Download: basefiles
|
Download: basefiles
|
||||||
music: Game Music
|
music: Game Music
|
||||||
TestFiles: ^Content/d2k/Music/AMBUSH.AUD
|
TestFiles: ^Content/d2k/Music/AMBUSH.AUD
|
||||||
Discs: d2k, d2k-linux
|
Sources: d2k, d2k-linux
|
||||||
movies: Campaign Briefings
|
movies: Campaign Briefings
|
||||||
TestFiles: ^Content/d2k/Movies/A_BR01_E.VQA
|
TestFiles: ^Content/d2k/Movies/A_BR01_E.VQA
|
||||||
Discs: d2k, d2k-linux
|
Sources: d2k, d2k-linux
|
||||||
Downloads:
|
Downloads:
|
||||||
basefiles: Base Content
|
basefiles: Base Content
|
||||||
MirrorList: http://www.openra.net/packages/d2k-103-mirrors.txt
|
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_VSEL1.AUD: GAMESFX/O_VSEL1.AUD
|
||||||
^Content/d2k/GAMESFX/O_VSEL2.AUD: GAMESFX/O_VSEL2.AUD
|
^Content/d2k/GAMESFX/O_VSEL2.AUD: GAMESFX/O_VSEL2.AUD
|
||||||
^Content/d2k/GAMESFX/O_VSEL3.AUD: GAMESFX/O_VSEL3.AUD
|
^Content/d2k/GAMESFX/O_VSEL3.AUD: GAMESFX/O_VSEL3.AUD
|
||||||
Discs:
|
Sources:
|
||||||
d2k: Dune 2000 (English)
|
d2k: Dune 2000 (English)
|
||||||
IDFiles:
|
IDFiles:
|
||||||
MUSIC/AMBUSH.AUD: bd5926a56a83bc0e49f96037e1f909014ac0772a
|
MUSIC/AMBUSH.AUD: bd5926a56a83bc0e49f96037e1f909014ac0772a
|
||||||
|
|||||||
@@ -233,22 +233,22 @@ ModContent:
|
|||||||
Packages:
|
Packages:
|
||||||
base: Base Game Files
|
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
|
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
|
Required: true
|
||||||
Download: basefiles
|
Download: basefiles
|
||||||
music: Base Game Music
|
music: Base Game Music
|
||||||
TestFiles: ^Content/ra/scores.mix
|
TestFiles: ^Content/ra/scores.mix
|
||||||
Discs: allied, allied-linux, soviet, soviet-linux
|
Sources: allied, allied-linux, soviet, soviet-linux
|
||||||
Download: music
|
Download: music
|
||||||
movies-allied: Allied Campaign Briefings
|
movies-allied: Allied Campaign Briefings
|
||||||
TestFiles: ^Content/ra/movies1.mix
|
TestFiles: ^Content/ra/movies1.mix
|
||||||
Discs: allied, allied-linux
|
Sources: allied, allied-linux
|
||||||
movies-soviet: Soviet Campaign Briefings
|
movies-soviet: Soviet Campaign Briefings
|
||||||
TestFiles: ^Content/ra/movies2.mix
|
TestFiles: ^Content/ra/movies2.mix
|
||||||
Discs: soviet, soviet-linux
|
Sources: soviet, soviet-linux
|
||||||
music-covertops: Counterstrike Music
|
music-covertops: Counterstrike Music
|
||||||
TestFiles: ^Content/ra/scores-counterstrike.mix
|
TestFiles: ^Content/ra/scores-counterstrike.mix
|
||||||
Discs: counterstrike, counterstrike-linux
|
Sources: counterstrike, counterstrike-linux
|
||||||
Downloads:
|
Downloads:
|
||||||
basefiles: Base Freeware Content
|
basefiles: Base Freeware Content
|
||||||
MirrorList: http://www.openra.net/packages/ra-mirrors.txt
|
MirrorList: http://www.openra.net/packages/ra-mirrors.txt
|
||||||
@@ -266,7 +266,7 @@ ModContent:
|
|||||||
MirrorList: http://www.openra.net/packages/ra-music-mirrors.txt
|
MirrorList: http://www.openra.net/packages/ra-music-mirrors.txt
|
||||||
Extract:
|
Extract:
|
||||||
^Content/ra/scores.mix: scores.mix
|
^Content/ra/scores.mix: scores.mix
|
||||||
Discs:
|
Sources:
|
||||||
allied: Red Alert 95 (Allied Disc, English)
|
allied: Red Alert 95 (Allied Disc, English)
|
||||||
IDFiles:
|
IDFiles:
|
||||||
eahelp.GID: 13a8a4a1e7d9d6d893c38df5a39262c4689aeba5
|
eahelp.GID: 13a8a4a1e7d9d6d893c38df5a39262c4689aeba5
|
||||||
|
|||||||
@@ -266,12 +266,12 @@ ModContent:
|
|||||||
Packages:
|
Packages:
|
||||||
base: Base Game Files
|
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
|
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
|
Required: true
|
||||||
Download: basefiles
|
Download: basefiles
|
||||||
music: Base Game Music
|
music: Base Game Music
|
||||||
TestFiles: ^Content/ts/scores.mix
|
TestFiles: ^Content/ts/scores.mix
|
||||||
Discs: tibsun, tibsun-linux
|
Sources: tibsun, tibsun-linux
|
||||||
Download: music
|
Download: music
|
||||||
Downloads:
|
Downloads:
|
||||||
basefiles: Base Freeware Content
|
basefiles: Base Freeware Content
|
||||||
@@ -295,7 +295,7 @@ ModContent:
|
|||||||
MirrorList: http://www.openra.net/packages/ts-music-mirrors.txt
|
MirrorList: http://www.openra.net/packages/ts-music-mirrors.txt
|
||||||
Extract:
|
Extract:
|
||||||
^Content/ts/scores.mix: scores.mix
|
^Content/ts/scores.mix: scores.mix
|
||||||
Discs:
|
Sources:
|
||||||
tibsun: Tiberan Sun (GDI or Nod Disc, English)
|
tibsun: Tiberan Sun (GDI or Nod Disc, English)
|
||||||
IDFiles:
|
IDFiles:
|
||||||
README.TXT: 45745c4a0c888317ec900208a426472779c42bf7
|
README.TXT: 45745c4a0c888317ec900208a426472779c42bf7
|
||||||
|
|||||||
Reference in New Issue
Block a user