Copy the RA loadscreen for cnc
This commit is contained in:
73
OpenRA.Mods.Cnc/CncLoadScreen.cs
Normal file
73
OpenRA.Mods.Cnc/CncLoadScreen.cs
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2010 The OpenRA Developers (see AUTHORS)
|
||||||
|
* This file is part of OpenRA, which is free software. It is made
|
||||||
|
* available to you under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation. For more information,
|
||||||
|
* see LICENSE.
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using OpenRA.Support;
|
||||||
|
using OpenRA.Graphics;
|
||||||
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.Cnc
|
||||||
|
{
|
||||||
|
public class CncLoadScreen : ILoadScreen
|
||||||
|
{
|
||||||
|
static string[] Comments = new[] { "Filling Crates...", "Charging Capacitors...", "Reticulating Splines...",
|
||||||
|
"Planting Trees...", "Building Bridges...", "Aging Empires...",
|
||||||
|
"Compiling EVA...", "Constructing Pylons...", "Activating Skynet...",
|
||||||
|
"Splitting Atoms..."
|
||||||
|
};
|
||||||
|
|
||||||
|
Stopwatch lastLoadScreen = new Stopwatch();
|
||||||
|
Rectangle StripeRect;
|
||||||
|
Sprite Stripe, Logo;
|
||||||
|
float2 LogoPos;
|
||||||
|
|
||||||
|
Renderer r;
|
||||||
|
SpriteFont Font;
|
||||||
|
public void Init()
|
||||||
|
{
|
||||||
|
// Avoid standard loading mechanisms so we
|
||||||
|
// can display loadscreen as early as possible
|
||||||
|
r = Game.Renderer;
|
||||||
|
if (r == null) return;
|
||||||
|
Font = r.BoldFont;
|
||||||
|
|
||||||
|
var s = new Sheet("mods/cnc/uibits/loadscreen.png");
|
||||||
|
Logo = new Sprite(s, new Rectangle(0,0,256,256), TextureChannel.Alpha);
|
||||||
|
Stripe = new Sprite(s, new Rectangle(256,0,256,256), TextureChannel.Alpha);
|
||||||
|
StripeRect = new Rectangle(0, Renderer.Resolution.Height/2 - 128, Renderer.Resolution.Width, 256);
|
||||||
|
LogoPos = new float2(Renderer.Resolution.Width/2 - 128, Renderer.Resolution.Height/2 - 128);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void Display()
|
||||||
|
{
|
||||||
|
if (r == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Update text at most every 0.5 seconds
|
||||||
|
if (lastLoadScreen.ElapsedTime() < 0.5)
|
||||||
|
return;
|
||||||
|
|
||||||
|
lastLoadScreen.Reset();
|
||||||
|
var text = Comments.Random(Game.CosmeticRandom);
|
||||||
|
var textSize = Font.Measure(text);
|
||||||
|
|
||||||
|
r.BeginFrame(float2.Zero);
|
||||||
|
WidgetUtils.FillRectWithSprite(StripeRect, Stripe);
|
||||||
|
r.RgbaSpriteRenderer.DrawSprite(Logo, LogoPos);
|
||||||
|
Font.DrawText(text, new float2(Renderer.Resolution.Width - textSize.X - 20, Renderer.Resolution.Height - textSize.Y - 20), Color.White);
|
||||||
|
r.RgbaSpriteRenderer.Flush();
|
||||||
|
r.EndFrame();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -62,6 +62,7 @@
|
|||||||
<Compile Include="Missions\Gdi01Script.cs" />
|
<Compile Include="Missions\Gdi01Script.cs" />
|
||||||
<Compile Include="RenderGunboat.cs" />
|
<Compile Include="RenderGunboat.cs" />
|
||||||
<Compile Include="RenderCargo.cs" />
|
<Compile Include="RenderCargo.cs" />
|
||||||
|
<Compile Include="CncLoadScreen.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
||||||
|
|||||||
@@ -76,5 +76,5 @@ TileSets:
|
|||||||
mods/cnc/tilesets/temperat.yaml
|
mods/cnc/tilesets/temperat.yaml
|
||||||
mods/cnc/tilesets/snow.yaml
|
mods/cnc/tilesets/snow.yaml
|
||||||
|
|
||||||
LoadScreen: NullLoadScreen
|
LoadScreen: CncLoadScreen
|
||||||
ShellmapUid:e7b9badb3b7d49ccc773a7aa086c0ff9a1136b77
|
ShellmapUid:e7b9badb3b7d49ccc773a7aa086c0ff9a1136b77
|
||||||
|
|||||||
BIN
mods/cnc/uibits/loadscreen.png
Normal file
BIN
mods/cnc/uibits/loadscreen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
Reference in New Issue
Block a user