Move ModContent out of the engine.
This commit is contained in:
@@ -364,13 +364,8 @@ namespace OpenRA
|
|||||||
using (new PerfTimer("LoadMaps"))
|
using (new PerfTimer("LoadMaps"))
|
||||||
ModData.MapCache.LoadMaps();
|
ModData.MapCache.LoadMaps();
|
||||||
|
|
||||||
var content = ModData.Manifest.Get<ModContent>();
|
|
||||||
var isModContentInstalled = content.Packages
|
|
||||||
.Where(p => p.Value.Required)
|
|
||||||
.All(p => p.Value.TestFiles.All(f => File.Exists(Platform.ResolvePath(f))));
|
|
||||||
|
|
||||||
// Mod assets are missing!
|
// Mod assets are missing!
|
||||||
if (!isModContentInstalled)
|
if (!ModData.LoadScreen.RequiredContentIsInstalled())
|
||||||
{
|
{
|
||||||
InitializeMod("modchooser", new Arguments());
|
InitializeMod("modchooser", new Arguments());
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -224,6 +224,7 @@ namespace OpenRA
|
|||||||
{
|
{
|
||||||
void Init(ModData m, Dictionary<string, string> info);
|
void Init(ModData m, Dictionary<string, string> info);
|
||||||
void Display();
|
void Display();
|
||||||
|
bool RequiredContentIsInstalled();
|
||||||
void StartGame(Arguments args);
|
void StartGame(Arguments args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -243,7 +243,6 @@
|
|||||||
<Compile Include="Traits\ActivityUtils.cs" />
|
<Compile Include="Traits\ActivityUtils.cs" />
|
||||||
<Compile Include="FileSystem\ZipFolder.cs" />
|
<Compile Include="FileSystem\ZipFolder.cs" />
|
||||||
<Compile Include="Primitives\float3.cs" />
|
<Compile Include="Primitives\float3.cs" />
|
||||||
<Compile Include="ModContent.cs" />
|
|
||||||
<Compile Include="InstalledMods.cs" />
|
<Compile Include="InstalledMods.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ namespace OpenRA.Mods.Cnc
|
|||||||
|
|
||||||
public override void Init(ModData modData, Dictionary<string, string> info)
|
public override void Init(ModData modData, Dictionary<string, string> info)
|
||||||
{
|
{
|
||||||
|
base.Init(modData, info);
|
||||||
|
|
||||||
loadInfo = info;
|
loadInfo = info;
|
||||||
|
|
||||||
// Avoid standard loading mechanisms so we
|
// Avoid standard loading mechanisms so we
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using OpenRA.FileFormats;
|
using OpenRA.FileFormats;
|
||||||
using OpenRA.Mods.Common.Widgets.Logic;
|
using OpenRA.Mods.Common.Widgets.Logic;
|
||||||
using OpenRA.Widgets;
|
using OpenRA.Widgets;
|
||||||
@@ -21,8 +22,12 @@ namespace OpenRA.Mods.Common.LoadScreens
|
|||||||
public class BlankLoadScreen : ILoadScreen
|
public class BlankLoadScreen : ILoadScreen
|
||||||
{
|
{
|
||||||
public LaunchArguments Launch;
|
public LaunchArguments Launch;
|
||||||
|
ModData modData;
|
||||||
|
|
||||||
public virtual void Init(ModData m, Dictionary<string, string> info) { }
|
public virtual void Init(ModData modData, Dictionary<string, string> info)
|
||||||
|
{
|
||||||
|
this.modData = modData;
|
||||||
|
}
|
||||||
|
|
||||||
public virtual void Display()
|
public virtual void Display()
|
||||||
{
|
{
|
||||||
@@ -97,5 +102,13 @@ namespace OpenRA.Mods.Common.LoadScreens
|
|||||||
Dispose(true);
|
Dispose(true);
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool RequiredContentIsInstalled()
|
||||||
|
{
|
||||||
|
var content = modData.Manifest.Get<ModContent>();
|
||||||
|
return content.Packages
|
||||||
|
.Where(p => p.Value.Required)
|
||||||
|
.All(p => p.Value.TestFiles.All(f => File.Exists(Platform.ResolvePath(f))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -31,6 +31,8 @@ namespace OpenRA.Mods.Common.LoadScreens
|
|||||||
|
|
||||||
public override void Init(ModData modData, Dictionary<string, string> info)
|
public override void Init(ModData modData, Dictionary<string, string> info)
|
||||||
{
|
{
|
||||||
|
base.Init(modData, info);
|
||||||
|
|
||||||
// Avoid standard loading mechanisms so we
|
// Avoid standard loading mechanisms so we
|
||||||
// can display the loadscreen as early as possible
|
// can display the loadscreen as early as possible
|
||||||
r = Game.Renderer;
|
r = Game.Renderer;
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
|
||||||
using OpenRA.Graphics;
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Widgets;
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
@@ -58,5 +57,10 @@ namespace OpenRA.Mods.Common.LoadScreens
|
|||||||
if (sprite != null)
|
if (sprite != null)
|
||||||
sprite.Sheet.Dispose();
|
sprite.Sheet.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool RequiredContentIsInstalled()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -778,6 +778,7 @@
|
|||||||
<Compile Include="Activities\Air\FlyCircleTimed.cs" />
|
<Compile Include="Activities\Air\FlyCircleTimed.cs" />
|
||||||
<Compile Include="UtilityCommands\ListInstallShieldCabContentsCommand.cs" />
|
<Compile Include="UtilityCommands\ListInstallShieldCabContentsCommand.cs" />
|
||||||
<Compile Include="FileFormats\InstallShieldCABCompression.cs" />
|
<Compile Include="FileFormats\InstallShieldCABCompression.cs" />
|
||||||
|
<Compile Include="ModContent.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user