Bye Bye Chrome!
This commit is contained in:
@@ -1,53 +0,0 @@
|
||||
#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.Linq;
|
||||
using OpenRA.FileFormats;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA
|
||||
{
|
||||
class Chrome
|
||||
{
|
||||
public readonly Renderer renderer;
|
||||
public readonly LineRenderer lineRenderer;
|
||||
|
||||
SpriteRenderer rgbaRenderer { get { return renderer.RgbaSpriteRenderer; } }
|
||||
SpriteRenderer shpRenderer { get { return renderer.WorldSpriteRenderer; } }
|
||||
|
||||
public Chrome(Renderer r, Manifest m)
|
||||
{
|
||||
this.renderer = r;
|
||||
lineRenderer = new LineRenderer(renderer);
|
||||
|
||||
var widgetYaml = m.ChromeLayout.Select(a => MiniYaml.FromFile(a)).Aggregate(MiniYaml.Merge);
|
||||
|
||||
if (Widget.RootWidget == null)
|
||||
{
|
||||
Widget.RootWidget = WidgetLoader.LoadWidget( widgetYaml.FirstOrDefault() );
|
||||
Widget.RootWidget.Initialize();
|
||||
Widget.RootWidget.InitDelegates();
|
||||
}
|
||||
}
|
||||
|
||||
public void Tick(World world)
|
||||
{
|
||||
Widget.RootWidget.Tick(world);
|
||||
|
||||
if (!world.GameHasStarted) return;
|
||||
if (world.LocalPlayer == null) return;
|
||||
++Widget.ticksSinceLastMove;
|
||||
}
|
||||
|
||||
public void Draw(World world) { Widget.RootWidget.Draw(world); shpRenderer.Flush(); rgbaRenderer.Flush(); lineRenderer.Flush(); }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -38,7 +38,6 @@ namespace OpenRA
|
||||
public static World world;
|
||||
internal static Viewport viewport;
|
||||
public static Controller controller;
|
||||
internal static Chrome chrome;
|
||||
internal static UserSettings Settings;
|
||||
|
||||
internal static OrderManager orderManager;
|
||||
@@ -47,7 +46,7 @@ namespace OpenRA
|
||||
|
||||
public static XRandom CosmeticRandom = new XRandom(); // not synced
|
||||
|
||||
internal static Renderer renderer;
|
||||
public static Renderer Renderer;
|
||||
static int2 clientSize;
|
||||
static string mapName;
|
||||
public static Session LobbyInfo = new Session();
|
||||
@@ -60,13 +59,13 @@ namespace OpenRA
|
||||
static internal bool scrollLeft = false;
|
||||
static internal bool scrollRight = false;
|
||||
|
||||
static void LoadModPackages(Manifest manifest)
|
||||
static void LoadModPackages()
|
||||
{
|
||||
FileSystem.UnmountAll();
|
||||
Timer.Time("reset: {0}");
|
||||
|
||||
foreach (var dir in manifest.Folders) FileSystem.Mount(dir);
|
||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
||||
foreach (var dir in Manifest.Folders) FileSystem.Mount(dir);
|
||||
foreach (var pkg in Manifest.Packages) FileSystem.Mount(pkg);
|
||||
|
||||
Timer.Time("mount temporary packages: {0}");
|
||||
}
|
||||
@@ -116,20 +115,22 @@ namespace OpenRA
|
||||
static void ChangeMods()
|
||||
{
|
||||
Timer.Time("----ChangeMods");
|
||||
var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
||||
Manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
||||
Timer.Time("manifest: {0}");
|
||||
LoadModAssemblies(manifest);
|
||||
SheetBuilder.Initialize(renderer);
|
||||
LoadModPackages(manifest);
|
||||
LoadModAssemblies(Manifest);
|
||||
SheetBuilder.Initialize(Renderer);
|
||||
LoadModPackages();
|
||||
Timer.Time("load assemblies, packages: {0}");
|
||||
packageChangePending = false;
|
||||
}
|
||||
|
||||
|
||||
public static Manifest Manifest;
|
||||
|
||||
static void LoadMap(string mapName)
|
||||
{
|
||||
Timer.Time("----LoadMap");
|
||||
SheetBuilder.Initialize(renderer);
|
||||
var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
||||
SheetBuilder.Initialize(Renderer);
|
||||
Manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
||||
Timer.Time("manifest: {0}");
|
||||
|
||||
if (!Game.AvailableMaps.ContainsKey(mapName))
|
||||
@@ -137,19 +138,16 @@ namespace OpenRA
|
||||
|
||||
var map = new Map(Game.AvailableMaps[mapName].Package);
|
||||
|
||||
viewport = new Viewport(clientSize, map.TopLeft, map.BottomRight, renderer);
|
||||
viewport = new Viewport(clientSize, map.TopLeft, map.BottomRight, Renderer);
|
||||
world = null; // trying to access the old world will NRE, rather than silently doing it wrong.
|
||||
ChromeProvider.Initialize(manifest.Chrome);
|
||||
ChromeProvider.Initialize(Manifest.Chrome);
|
||||
Timer.Time("viewport, ChromeProvider: {0}");
|
||||
world = new World(manifest, map);
|
||||
world = new World(Manifest, map);
|
||||
Timer.Time("world: {0}");
|
||||
|
||||
SequenceProvider.Initialize(manifest.Sequences);
|
||||
SequenceProvider.Initialize(Manifest.Sequences);
|
||||
Timer.Time("ChromeProv, SeqProv: {0}");
|
||||
|
||||
chrome = new Chrome(renderer, manifest);
|
||||
Timer.Time("chrome: {0}");
|
||||
|
||||
Timer.Time("----end LoadMap");
|
||||
Debug("Map change {0} -> {1}".F(Game.mapName, mapName));
|
||||
}
|
||||
@@ -281,7 +279,7 @@ namespace OpenRA
|
||||
using (new PerfSample("tick_time"))
|
||||
{
|
||||
lastTime += Settings.Timestep;
|
||||
chrome.Tick(world);
|
||||
Widget.DoTick(world);
|
||||
|
||||
orderManager.TickImmediate(world);
|
||||
|
||||
@@ -566,15 +564,16 @@ namespace OpenRA
|
||||
Log.AddChannel("sync", "syncreport.log", true, true);
|
||||
|
||||
LobbyInfo.GlobalSettings.Mods = Settings.InitialMods;
|
||||
Manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
||||
|
||||
// Load the default mod to access required files
|
||||
LoadModPackages(new Manifest(LobbyInfo.GlobalSettings.Mods));
|
||||
LoadModPackages();
|
||||
|
||||
Renderer.SheetSize = Settings.SheetSize;
|
||||
|
||||
var resolution = GetResolution(settings, Game.Settings.WindowMode);
|
||||
renderer = new Renderer(resolution, Game.Settings.WindowMode);
|
||||
resolution = renderer.Resolution;
|
||||
Renderer = new Renderer(resolution, Game.Settings.WindowMode);
|
||||
resolution = Renderer.Resolution;
|
||||
|
||||
controller = new Controller();
|
||||
clientSize = new int2(resolution);
|
||||
@@ -593,7 +592,7 @@ namespace OpenRA
|
||||
else
|
||||
JoinLocal();
|
||||
|
||||
LoadShellMap(new Manifest(LobbyInfo.GlobalSettings.Mods).ShellmapUid);
|
||||
LoadShellMap(Manifest.ShellmapUid);
|
||||
|
||||
ResetTimer();
|
||||
|
||||
@@ -620,7 +619,7 @@ namespace OpenRA
|
||||
|
||||
public static void Disconnect()
|
||||
{
|
||||
var shellmap = new Manifest(LobbyInfo.GlobalSettings.Mods).ShellmapUid;
|
||||
var shellmap = Manifest.ShellmapUid;
|
||||
LobbyInfo = new Session();
|
||||
LobbyInfo.GlobalSettings.Mods = Settings.InitialMods;
|
||||
JoinLocal();
|
||||
@@ -673,14 +672,14 @@ namespace OpenRA
|
||||
public static void InitializeEngineWithMods(string[] mods)
|
||||
{
|
||||
AppDomain.CurrentDomain.AssemblyResolve += FileSystem.ResolveAssembly;
|
||||
var manifest = new Manifest(mods);
|
||||
LoadModAssemblies(manifest);
|
||||
Manifest = new Manifest(mods);
|
||||
LoadModAssemblies(Manifest);
|
||||
|
||||
FileSystem.UnmountAll();
|
||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
||||
foreach (var folder in Manifest.Folders) FileSystem.Mount(folder);
|
||||
foreach (var pkg in Manifest.Packages) FileSystem.Mount(pkg);
|
||||
|
||||
Rules.LoadRules(manifest, new Map());
|
||||
Rules.LoadRules(Manifest, new Map());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace OpenRA.Graphics
|
||||
mod.AdjustPalette(b);
|
||||
|
||||
Texture.SetData(b);
|
||||
Game.renderer.PaletteTexture = Texture;
|
||||
Game.Renderer.PaletteTexture = Texture;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ using OpenRA.FileFormats.Graphics;
|
||||
|
||||
namespace OpenRA.Graphics
|
||||
{
|
||||
class LineRenderer
|
||||
public class LineRenderer
|
||||
{
|
||||
Renderer renderer;
|
||||
IVertexBuffer<Vertex> vertexBuffer;
|
||||
|
||||
@@ -18,7 +18,7 @@ using OpenRA.Support;
|
||||
|
||||
namespace OpenRA.Graphics
|
||||
{
|
||||
internal class Renderer
|
||||
public class Renderer
|
||||
{
|
||||
internal static int SheetSize;
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace OpenRA.Graphics
|
||||
public SpriteRenderer SpriteRenderer { get; private set; }
|
||||
public SpriteRenderer RgbaSpriteRenderer { get; private set; }
|
||||
public SpriteRenderer WorldSpriteRenderer { get; private set; }
|
||||
public LineRenderer LineRenderer { get; private set; }
|
||||
|
||||
public ITexture PaletteTexture;
|
||||
|
||||
@@ -51,6 +52,7 @@ namespace OpenRA.Graphics
|
||||
SpriteRenderer = new SpriteRenderer( this, SpriteShader );
|
||||
RgbaSpriteRenderer = new SpriteRenderer( this, RgbaSpriteShader );
|
||||
WorldSpriteRenderer = new SpriteRenderer( this, WorldSpriteShader );
|
||||
LineRenderer = new LineRenderer(this);
|
||||
|
||||
RegularFont = new SpriteFont(this, "FreeSans.ttf", 14);
|
||||
BoldFont = new SpriteFont(this, "FreeSansBold.ttf", 14);
|
||||
@@ -118,5 +120,12 @@ namespace OpenRA.Graphics
|
||||
|
||||
PerfHistory.Increment("batches", 1);
|
||||
}
|
||||
|
||||
public void Flush()
|
||||
{
|
||||
WorldSpriteRenderer.Flush();
|
||||
RgbaSpriteRenderer.Flush();
|
||||
LineRenderer.Flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ using Tao.FreeType;
|
||||
|
||||
namespace OpenRA.Graphics
|
||||
{
|
||||
class SpriteFont
|
||||
public class SpriteFont
|
||||
{
|
||||
Renderer renderer;
|
||||
int size;
|
||||
|
||||
@@ -12,7 +12,7 @@ using OpenRA.FileFormats.Graphics;
|
||||
|
||||
namespace OpenRA.Graphics
|
||||
{
|
||||
class SpriteRenderer
|
||||
public class SpriteRenderer
|
||||
{
|
||||
IVertexBuffer<Vertex> vertexBuffer;
|
||||
IIndexBuffer indexBuffer;
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace OpenRA.Graphics
|
||||
world.WorldRenderer.Draw();
|
||||
Timer.Time( "worldRenderer: {0}" );
|
||||
|
||||
Game.chrome.Draw(world);
|
||||
Widget.DoDraw(world);
|
||||
Timer.Time( "widgets: {0}" );
|
||||
|
||||
var cursorName = Widget.RootWidget.GetCursorOuter(mousePos) ?? Game.controller.ChooseCursor( world );
|
||||
|
||||
@@ -75,7 +75,6 @@
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Chrome.cs" />
|
||||
<Compile Include="Effects\RepairIndicator.cs" />
|
||||
<Compile Include="GameRules\WeaponInfo.cs" />
|
||||
<Compile Include="Group.cs" />
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace OpenRA.Traits
|
||||
|
||||
public BibLayer(Actor self, BibLayerInfo info)
|
||||
{
|
||||
spriteRenderer = Game.renderer.SpriteRenderer;
|
||||
spriteRenderer = Game.Renderer.SpriteRenderer;
|
||||
this.info = info;
|
||||
bibSprites = info.BibTypes.Select(x => SpriteSheetBuilder.LoadAllSprites(x)).ToArray();
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace OpenRA.Traits
|
||||
|
||||
public ResourceLayer()
|
||||
{
|
||||
sr = Game.renderer.SpriteRenderer;
|
||||
sr = Game.Renderer.SpriteRenderer;
|
||||
}
|
||||
|
||||
public void Render()
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace OpenRA.Traits
|
||||
|
||||
public SmudgeLayer(SmudgeLayerInfo info)
|
||||
{
|
||||
spriteRenderer = Game.renderer.SpriteRenderer;
|
||||
spriteRenderer = Game.Renderer.SpriteRenderer;
|
||||
this.Info = info;
|
||||
smudgeSprites = Info.Types.Select(x => SpriteSheetBuilder.LoadAllSprites(x)).ToArray();
|
||||
}
|
||||
|
||||
@@ -201,15 +201,15 @@ namespace OpenRA.Widgets
|
||||
var numActualRows = Math.Max((allBuildables.Length + Columns - 1) / Columns, Rows);
|
||||
|
||||
// Palette Background
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.chrome.renderer, paletteCollection, "top"), new float2(origin.X - 9, origin.Y - 9));
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "top"), new float2(origin.X - 9, origin.Y - 9));
|
||||
for (var w = 0; w < numActualRows; w++)
|
||||
WidgetUtils.DrawRGBA(
|
||||
ChromeProvider.GetImage(Game.chrome.renderer, paletteCollection,
|
||||
ChromeProvider.GetImage(Game.Renderer, paletteCollection,
|
||||
"bg-" + (w % 4).ToString()),
|
||||
new float2(origin.X - 9, origin.Y + 48 * w));
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.chrome.renderer, paletteCollection, "bottom"),
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "bottom"),
|
||||
new float2(origin.X - 9, origin.Y - 1 + 48 * numActualRows));
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.Renderer.RgbaSpriteRenderer.Flush();
|
||||
|
||||
|
||||
// Icons
|
||||
@@ -223,7 +223,7 @@ namespace OpenRA.Widgets
|
||||
|
||||
var firstOfThis = queue.AllItems(queueName).FirstOrDefault(a => a.Item == item.Name);
|
||||
|
||||
if (rect.Contains(Widget.lastMousePos.ToPoint()))
|
||||
if (rect.Contains(Widget.LastMousePos.ToPoint()))
|
||||
tooltipItem = item.Name;
|
||||
|
||||
var overlayPos = drawPos + new float2((64 - ready.Image.size.X) / 2, 2);
|
||||
@@ -275,7 +275,7 @@ namespace OpenRA.Widgets
|
||||
foreach (var ob in overlayBits)
|
||||
WidgetUtils.DrawSHP(ob.First, ob.Second);
|
||||
|
||||
Game.chrome.renderer.WorldSpriteRenderer.Flush();
|
||||
Game.Renderer.WorldSpriteRenderer.Flush();
|
||||
|
||||
// Tooltip
|
||||
if (tooltipItem != null && !paletteAnimating && paletteOpen)
|
||||
@@ -283,16 +283,16 @@ namespace OpenRA.Widgets
|
||||
new float2(Game.viewport.Width, origin.Y + numActualRows * 48 + 9).ToInt2());
|
||||
|
||||
// Palette Dock
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.chrome.renderer, paletteCollection, "dock-top"),
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "dock-top"),
|
||||
new float2(Game.viewport.Width - 14, origin.Y - 23));
|
||||
|
||||
for (int i = 0; i < numActualRows; i++)
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.chrome.renderer, paletteCollection, "dock-" + (i % 4).ToString()),
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "dock-" + (i % 4).ToString()),
|
||||
new float2(Game.viewport.Width - 14, origin.Y + 48 * i));
|
||||
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.chrome.renderer, paletteCollection, "dock-bottom"),
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "dock-bottom"),
|
||||
new float2(Game.viewport.Width - 14, origin.Y - 1 + 48 * numActualRows));
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.Renderer.RgbaSpriteRenderer.Flush();
|
||||
|
||||
return 48 * y + 9;
|
||||
}
|
||||
@@ -416,33 +416,33 @@ namespace OpenRA.Widgets
|
||||
var producing = queue.CurrentItem(groupName);
|
||||
var index = q.Key == currentTab ? 2 : (producing != null && producing.Done) ? 1 : 0;
|
||||
var race = world.LocalPlayer.Country.Race;
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.chrome.renderer,"tabs-"+tabKeys[index], race+"-"+q.Key), new float2(x, y));
|
||||
WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer,"tabs-"+tabKeys[index], race+"-"+q.Key), new float2(x, y));
|
||||
|
||||
var rect = new Rectangle((int)x,(int)y,(int)tabWidth,(int)tabHeight);
|
||||
tabs.Add(Pair.New(rect, HandleTabClick(groupName, world)));
|
||||
|
||||
if (rect.Contains(Widget.lastMousePos.ToPoint()))
|
||||
if (rect.Contains(Widget.LastMousePos.ToPoint()))
|
||||
{
|
||||
var text = CategoryNameRemaps.ContainsKey(groupName) ? CategoryNameRemaps[groupName] : groupName;
|
||||
var sz = Game.chrome.renderer.BoldFont.Measure(text);
|
||||
var sz = Game.Renderer.BoldFont.Measure(text);
|
||||
WidgetUtils.DrawPanelPartial("dialog4",
|
||||
Rectangle.FromLTRB((int)rect.Left - sz.X - 30, (int)rect.Top, (int)rect.Left - 5, (int)rect.Bottom),
|
||||
PanelSides.All);
|
||||
|
||||
Game.chrome.renderer.BoldFont.DrawText(text,
|
||||
Game.Renderer.BoldFont.DrawText(text,
|
||||
new float2(rect.Left - sz.X - 20, rect.Top + 12), Color.White);
|
||||
}
|
||||
|
||||
y += tabHeight;
|
||||
}
|
||||
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.Renderer.RgbaSpriteRenderer.Flush();
|
||||
}
|
||||
|
||||
void DrawRightAligned(string text, int2 pos, Color c)
|
||||
{
|
||||
Game.chrome.renderer.BoldFont.DrawText(text,
|
||||
pos - new int2(Game.chrome.renderer.BoldFont.Measure(text).X, 0), c);
|
||||
Game.Renderer.BoldFont.DrawText(text,
|
||||
pos - new int2(Game.Renderer.BoldFont.Measure(text).X, 0), c);
|
||||
}
|
||||
|
||||
void DrawProductionTooltip(World world, string unit, int2 pos)
|
||||
@@ -458,12 +458,12 @@ namespace OpenRA.Widgets
|
||||
var buildings = Rules.TechTree.GatherBuildings( pl );
|
||||
var canBuildThis = Rules.TechTree.CanBuild(info, pl, buildings);
|
||||
|
||||
var longDescSize = Game.chrome.renderer.RegularFont.Measure(buildable.LongDesc.Replace("\\n", "\n")).Y;
|
||||
var longDescSize = Game.Renderer.RegularFont.Measure(buildable.LongDesc.Replace("\\n", "\n")).Y;
|
||||
if (!canBuildThis) longDescSize += 8;
|
||||
|
||||
WidgetUtils.DrawPanel("dialog4", new Rectangle(Game.viewport.Width - 300, pos.Y, 300, longDescSize + 65));
|
||||
|
||||
Game.chrome.renderer.BoldFont.DrawText(
|
||||
Game.Renderer.BoldFont.DrawText(
|
||||
buildable.Description + ((buildable.Hotkey != null)? " ({0})".F(buildable.Hotkey.ToUpper()) : ""),
|
||||
p.ToInt2() + new int2(5, 5), Color.White);
|
||||
|
||||
@@ -487,7 +487,7 @@ namespace OpenRA.Widgets
|
||||
{
|
||||
var prereqs = buildable.Prerequisites
|
||||
.Select( a => Description( a ) );
|
||||
Game.chrome.renderer.RegularFont.DrawText(
|
||||
Game.Renderer.RegularFont.DrawText(
|
||||
"Requires {0}".F(string.Join(", ", prereqs.ToArray())),
|
||||
p.ToInt2(),
|
||||
Color.White);
|
||||
@@ -496,10 +496,10 @@ namespace OpenRA.Widgets
|
||||
}
|
||||
|
||||
p += new int2(0, 15);
|
||||
Game.chrome.renderer.RegularFont.DrawText(buildable.LongDesc.Replace("\\n", "\n"),
|
||||
Game.Renderer.RegularFont.DrawText(buildable.LongDesc.Replace("\\n", "\n"),
|
||||
p.ToInt2(), Color.White);
|
||||
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.Renderer.RgbaSpriteRenderer.Flush();
|
||||
}
|
||||
|
||||
bool DoBuildingHotkey(char c, World world)
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace OpenRA.Widgets
|
||||
|
||||
public override void DrawInner(World world)
|
||||
{
|
||||
var font = (Bold) ? Game.chrome.renderer.BoldFont : Game.chrome.renderer.RegularFont;
|
||||
var font = (Bold) ? Game.Renderer.BoldFont : Game.Renderer.RegularFont;
|
||||
var stateOffset = (Depressed) ? new int2(VisualHeight, VisualHeight) : new int2(0, 0);
|
||||
WidgetUtils.DrawPanel(Depressed ? "dialog3" : "dialog2", RenderBounds);
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace OpenRA.Widgets
|
||||
if (DrawBackground)
|
||||
WidgetUtils.DrawPanel("dialog3", chatLogArea);
|
||||
|
||||
var renderer = Game.chrome.renderer;
|
||||
var renderer = Game.Renderer;
|
||||
var font = renderer.RegularFont;
|
||||
|
||||
renderer.RgbaSpriteRenderer.Flush();
|
||||
|
||||
@@ -29,12 +29,12 @@ namespace OpenRA.Widgets
|
||||
if (composing)
|
||||
{
|
||||
var text = teamChat ? "Chat (Team): " : "Chat (All): ";
|
||||
var w = Game.chrome.renderer.BoldFont.Measure(text).X;
|
||||
var w = Game.Renderer.BoldFont.Measure(text).X;
|
||||
|
||||
Game.chrome.renderer.BoldFont.DrawText(text, RenderOrigin + new float2(3, 7), Color.White);
|
||||
Game.chrome.renderer.RegularFont.DrawText(content, RenderOrigin + new float2(3 + w, 7), Color.White);
|
||||
Game.Renderer.BoldFont.DrawText(text, RenderOrigin + new float2(3, 7), Color.White);
|
||||
Game.Renderer.RegularFont.DrawText(content, RenderOrigin + new float2(3 + w, 7), Color.White);
|
||||
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.Renderer.RgbaSpriteRenderer.Flush();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace OpenRA.Widgets
|
||||
|
||||
public override void DrawInner(World world)
|
||||
{
|
||||
var font = (Bold) ? Game.chrome.renderer.BoldFont : Game.chrome.renderer.RegularFont;
|
||||
var font = (Bold) ? Game.Renderer.BoldFont : Game.Renderer.RegularFont;
|
||||
var pos = RenderOrigin;
|
||||
var rect = RenderBounds;
|
||||
var check = new Rectangle(rect.Location,
|
||||
@@ -35,9 +35,9 @@ namespace OpenRA.Widgets
|
||||
|
||||
if (Checked())
|
||||
{
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.Renderer.RgbaSpriteRenderer.Flush();
|
||||
WidgetUtils.FillRectWithColor(check.InflateBy(-4,-5,-4,-5),Color.White);
|
||||
Game.chrome.lineRenderer.Flush();
|
||||
Game.Renderer.LineRenderer.Flush();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace OpenRA.Widgets
|
||||
public override void DrawInner(World world)
|
||||
{
|
||||
WidgetUtils.FillRectWithColor(RenderBounds, GetColor());
|
||||
Game.chrome.lineRenderer.Flush();
|
||||
Game.Renderer.LineRenderer.Flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace OpenRA.Widgets
|
||||
var name = GetImageName();
|
||||
var collection = GetImageCollection();
|
||||
WidgetUtils.DrawRGBA(
|
||||
ChromeProvider.GetImage(Game.chrome.renderer, collection, name),
|
||||
ChromeProvider.GetImage(Game.Renderer, collection, name),
|
||||
RenderOrigin);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace OpenRA.Widgets
|
||||
if (bg != null)
|
||||
WidgetUtils.DrawPanel(bg, RenderBounds );
|
||||
|
||||
var font = (Bold) ? Game.chrome.renderer.BoldFont : Game.chrome.renderer.RegularFont;
|
||||
var font = (Bold) ? Game.Renderer.BoldFont : Game.Renderer.RegularFont;
|
||||
var text = GetText();
|
||||
if (text == null)
|
||||
return;
|
||||
|
||||
@@ -63,13 +63,13 @@ namespace OpenRA.Widgets
|
||||
WidgetUtils.DrawPanel(downButtonBg, downButtonRect);
|
||||
WidgetUtils.DrawPanel(scrollbarBg, scrollbarRect);
|
||||
|
||||
Game.chrome.renderer.Device.EnableScissor(backgroundRect.X, backgroundRect.Y + HeaderHeight, backgroundRect.Width, backgroundRect.Height - HeaderHeight);
|
||||
Game.Renderer.Device.EnableScissor(backgroundRect.X, backgroundRect.Y + HeaderHeight, backgroundRect.Width, backgroundRect.Height - HeaderHeight);
|
||||
|
||||
foreach (var child in Children)
|
||||
child.Draw(world);
|
||||
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.chrome.renderer.Device.DisableScissor();
|
||||
Game.Renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.Renderer.Device.DisableScissor();
|
||||
}
|
||||
|
||||
public override int2 ChildOrigin { get { return RenderOrigin + new int2(0, (int)ListOffset); } }
|
||||
|
||||
@@ -73,9 +73,9 @@ namespace OpenRA.Widgets
|
||||
public override void DrawInner( World world )
|
||||
{
|
||||
if (UnownedSpawn == null)
|
||||
UnownedSpawn = ChromeProvider.GetImage(Game.chrome.renderer, "spawnpoints", "unowned");
|
||||
UnownedSpawn = ChromeProvider.GetImage(Game.Renderer, "spawnpoints", "unowned");
|
||||
if (OwnedSpawn == null)
|
||||
OwnedSpawn = ChromeProvider.GetImage(Game.chrome.renderer, "spawnpoints", "owned");
|
||||
OwnedSpawn = ChromeProvider.GetImage(Game.Renderer, "spawnpoints", "owned");
|
||||
|
||||
var map = Map();
|
||||
if( map == null ) return;
|
||||
@@ -87,7 +87,7 @@ namespace OpenRA.Widgets
|
||||
// Update image data
|
||||
var preview = PreviewCache[map];
|
||||
if( mapChooserSheet == null || mapChooserSheet.Size.Width != preview.Width || mapChooserSheet.Size.Height != preview.Height )
|
||||
mapChooserSheet = new Sheet( Game.renderer, new Size( preview.Width, preview.Height ) );
|
||||
mapChooserSheet = new Sheet( Game.Renderer, new Size( preview.Width, preview.Height ) );
|
||||
|
||||
mapChooserSheet.Texture.SetData( preview );
|
||||
mapChooserSprite = new Sprite( mapChooserSheet, new Rectangle( 0, 0, map.Width, map.Height ), TextureChannel.Alpha );
|
||||
@@ -100,7 +100,7 @@ namespace OpenRA.Widgets
|
||||
MapRect = new Rectangle(RenderBounds.X + dw, RenderBounds.Y + dh, (int)(map.Width * PreviewScale), (int)(map.Height * PreviewScale));
|
||||
}
|
||||
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.DrawSprite( mapChooserSprite,
|
||||
Game.Renderer.RgbaSpriteRenderer.DrawSprite( mapChooserSprite,
|
||||
new float2(MapRect.Location),
|
||||
"chrome",
|
||||
new float2( MapRect.Size ) );
|
||||
@@ -119,11 +119,10 @@ namespace OpenRA.Widgets
|
||||
offset = new int2(-OwnedSpawn.bounds.Width/2, -OwnedSpawn.bounds.Height/2);
|
||||
WidgetUtils.FillRectWithColor(new Rectangle(pos.X + offset.X + 2, pos.Y + offset.Y + 2, 12, 12), colors[p]);
|
||||
}
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.DrawSprite(sprite, pos + offset, "chrome");
|
||||
Game.Renderer.RgbaSpriteRenderer.DrawSprite(sprite, pos + offset, "chrome");
|
||||
}
|
||||
|
||||
Game.chrome.lineRenderer.Flush();
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.Renderer.Flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,8 +39,8 @@ namespace OpenRA.Widgets
|
||||
var digitCollection = "digits-" + world.LocalPlayer.Country.Race;
|
||||
var chromeCollection = "chrome-" + world.LocalPlayer.Country.Race;
|
||||
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.DrawSprite(
|
||||
ChromeProvider.GetImage(Game.chrome.renderer, chromeCollection, "moneybin"),
|
||||
Game.Renderer.RgbaSpriteRenderer.DrawSprite(
|
||||
ChromeProvider.GetImage(Game.Renderer, chromeCollection, "moneybin"),
|
||||
new float2(Bounds.Left, 0), "chrome");
|
||||
|
||||
// Cash
|
||||
@@ -50,8 +50,8 @@ namespace OpenRA.Widgets
|
||||
|
||||
foreach (var d in cashDigits.Reverse())
|
||||
{
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.DrawSprite(
|
||||
ChromeProvider.GetImage(Game.chrome.renderer, digitCollection, (d - '0').ToString()),
|
||||
Game.Renderer.RgbaSpriteRenderer.DrawSprite(
|
||||
ChromeProvider.GetImage(Game.Renderer, digitCollection, (d - '0').ToString()),
|
||||
new float2(x, 6), "chrome");
|
||||
x -= 14;
|
||||
}
|
||||
@@ -64,8 +64,8 @@ namespace OpenRA.Widgets
|
||||
|
||||
foreach (var d in oreDigits.Reverse())
|
||||
{
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.DrawSprite(
|
||||
ChromeProvider.GetImage(Game.chrome.renderer, digitCollection, (d - '0').ToString()),
|
||||
Game.Renderer.RgbaSpriteRenderer.DrawSprite(
|
||||
ChromeProvider.GetImage(Game.Renderer, digitCollection, (d - '0').ToString()),
|
||||
new float2(x, 6), "chrome");
|
||||
x -= 14;
|
||||
}
|
||||
|
||||
@@ -21,17 +21,17 @@ namespace OpenRA.Widgets
|
||||
|
||||
public override void DrawInner (World world)
|
||||
{
|
||||
var image = ChromeProvider.GetImage(Game.chrome.renderer, Image + "-button", GetImage());
|
||||
var image = ChromeProvider.GetImage(Game.Renderer, Image + "-button", GetImage());
|
||||
var rect = new Rectangle(RenderBounds.X, RenderBounds.Y, (int)image.size.X, (int)image.size.Y);
|
||||
|
||||
if (rect.Contains(Widget.lastMousePos.ToPoint()))
|
||||
if (rect.Contains(Widget.LastMousePos.ToPoint()))
|
||||
{
|
||||
rect = rect.InflateBy(3, 3, 3, 3);
|
||||
var pos = new int2(rect.Left, rect.Top);
|
||||
var m = pos + new int2(rect.Width, rect.Height);
|
||||
var br = pos + new int2(rect.Width, rect.Height + 20);
|
||||
|
||||
var u = Game.chrome.renderer.RegularFont.Measure(GetLongDesc().Replace("\\n", "\n"));
|
||||
var u = Game.Renderer.RegularFont.Measure(GetLongDesc().Replace("\\n", "\n"));
|
||||
|
||||
br.X -= u.X;
|
||||
br.Y += u.Y;
|
||||
@@ -53,13 +53,13 @@ namespace OpenRA.Widgets
|
||||
|
||||
pos.X = br.X + 8;
|
||||
pos.Y = m.Y + 8;
|
||||
Game.chrome.renderer.BoldFont.DrawText(GetDescription(), pos, Color.White);
|
||||
Game.Renderer.BoldFont.DrawText(GetDescription(), pos, Color.White);
|
||||
|
||||
pos += new int2(0, 20);
|
||||
Game.chrome.renderer.RegularFont.DrawText(GetLongDesc().Replace("\\n", "\n"), pos, Color.White);
|
||||
Game.Renderer.RegularFont.DrawText(GetLongDesc().Replace("\\n", "\n"), pos, Color.White);
|
||||
}
|
||||
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.DrawSprite(image, new int2(RenderBounds.X, RenderBounds.Y), "chrome");
|
||||
Game.Renderer.RgbaSpriteRenderer.DrawSprite(image, new int2(RenderBounds.X, RenderBounds.Y), "chrome");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,15 +24,15 @@ namespace OpenRA.Widgets
|
||||
float2 origin = Game.viewport.Location + new float2(rect.Right, rect.Bottom);
|
||||
float2 basis = new float2(-rect.Width / 100, -rect.Height / 100);
|
||||
|
||||
Game.chrome.lineRenderer.DrawLine(origin, origin + new float2(100, 0) * basis, Color.White, Color.White);
|
||||
Game.chrome.lineRenderer.DrawLine(origin + new float2(100, 0) * basis, origin + new float2(100, 100) * basis, Color.White, Color.White);
|
||||
Game.Renderer.LineRenderer.DrawLine(origin, origin + new float2(100, 0) * basis, Color.White, Color.White);
|
||||
Game.Renderer.LineRenderer.DrawLine(origin + new float2(100, 0) * basis, origin + new float2(100, 100) * basis, Color.White, Color.White);
|
||||
|
||||
foreach (var item in PerfHistory.items.Values)
|
||||
{
|
||||
int n = 0;
|
||||
item.Samples().Aggregate((a, b) =>
|
||||
{
|
||||
Game.chrome.lineRenderer.DrawLine(
|
||||
Game.Renderer.LineRenderer.DrawLine(
|
||||
origin + new float2(n, (float)a) * basis,
|
||||
origin + new float2(n + 1, (float)b) * basis,
|
||||
item.c, item.c);
|
||||
@@ -41,7 +41,7 @@ namespace OpenRA.Widgets
|
||||
});
|
||||
}
|
||||
|
||||
Game.chrome.lineRenderer.Flush();
|
||||
Game.Renderer.LineRenderer.Flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35,8 +35,8 @@ namespace OpenRA.Widgets
|
||||
&& resources.PowerDrained == 0)
|
||||
return;
|
||||
|
||||
var renderer = Game.chrome.renderer;
|
||||
var lineRenderer = Game.chrome.lineRenderer;
|
||||
var renderer = Game.Renderer;
|
||||
var lineRenderer = Game.Renderer.LineRenderer;
|
||||
var rgbaRenderer = renderer.RgbaSpriteRenderer;
|
||||
|
||||
// Draw bar horizontally
|
||||
|
||||
@@ -105,7 +105,7 @@ namespace OpenRA.Widgets
|
||||
|
||||
hasRadar = hasNewRadar;
|
||||
|
||||
var renderer = Game.chrome.renderer;
|
||||
var renderer = Game.Renderer;
|
||||
var rgbaRenderer = renderer.RgbaSpriteRenderer;
|
||||
|
||||
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "left"), radarOrigin, "chrome");
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace OpenRA.Widgets
|
||||
cachedFrame = frame;
|
||||
}
|
||||
|
||||
Game.chrome.renderer.WorldSpriteRenderer.DrawSprite(sprite,RenderOrigin, palette);
|
||||
Game.Renderer.WorldSpriteRenderer.DrawSprite(sprite,RenderOrigin, palette);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ namespace OpenRA.Widgets
|
||||
WidgetUtils.DrawRGBA(WidgetUtils.GetChromeImage(world,"specialbin-middle"), new float2(rectBounds.X, rectBounds.Y + i * 51));
|
||||
WidgetUtils.DrawRGBA(WidgetUtils.GetChromeImage(world,"specialbin-bottom"), new float2(rectBounds.X, rectBounds.Y + numPowers * 51));
|
||||
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.Renderer.RgbaSpriteRenderer.Flush();
|
||||
|
||||
// Hack Hack Hack
|
||||
rectBounds.Width = 69;
|
||||
@@ -92,7 +92,7 @@ namespace OpenRA.Widgets
|
||||
var drawPos = new float2(rectBounds.X + 5, y);
|
||||
var rect = new Rectangle(rectBounds.X + 5, y, 64, 48);
|
||||
|
||||
if (rect.Contains(Widget.lastMousePos.ToPoint()))
|
||||
if (rect.Contains(Widget.LastMousePos.ToPoint()))
|
||||
{
|
||||
var pos = drawPos.ToInt2();
|
||||
var tl = new int2(pos.X-3,pos.Y-3);
|
||||
@@ -100,7 +100,7 @@ namespace OpenRA.Widgets
|
||||
var br = tl + new int2(64+3+20,60);
|
||||
|
||||
if (sp.Info.LongDesc != null)
|
||||
br += Game.chrome.renderer.RegularFont.Measure(sp.Info.LongDesc.Replace("\\n", "\n"));
|
||||
br += Game.Renderer.RegularFont.Measure(sp.Info.LongDesc.Replace("\\n", "\n"));
|
||||
else
|
||||
br += new int2(300,0);
|
||||
|
||||
@@ -114,16 +114,16 @@ namespace OpenRA.Widgets
|
||||
PanelSides.Left | PanelSides.Right | PanelSides.Bottom);
|
||||
|
||||
pos += new int2(77, 5);
|
||||
Game.chrome.renderer.BoldFont.DrawText(sp.Info.Description, pos, Color.White);
|
||||
Game.Renderer.BoldFont.DrawText(sp.Info.Description, pos, Color.White);
|
||||
|
||||
pos += new int2(0,20);
|
||||
Game.chrome.renderer.BoldFont.DrawText(WorldUtils.FormatTime(sp.RemainingTime).ToString(), pos, Color.White);
|
||||
Game.chrome.renderer.BoldFont.DrawText("/ {0}".F(WorldUtils.FormatTime(sp.TotalTime)), pos + new int2(45,0), Color.White);
|
||||
Game.Renderer.BoldFont.DrawText(WorldUtils.FormatTime(sp.RemainingTime).ToString(), pos, Color.White);
|
||||
Game.Renderer.BoldFont.DrawText("/ {0}".F(WorldUtils.FormatTime(sp.TotalTime)), pos + new int2(45,0), Color.White);
|
||||
|
||||
if (sp.Info.LongDesc != null)
|
||||
{
|
||||
pos += new int2(0, 20);
|
||||
Game.chrome.renderer.RegularFont.DrawText(sp.Info.LongDesc.Replace("\\n", "\n"), pos, Color.White);
|
||||
Game.Renderer.RegularFont.DrawText(sp.Info.LongDesc.Replace("\\n", "\n"), pos, Color.White);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ namespace OpenRA.Widgets
|
||||
y += 51;
|
||||
}
|
||||
}
|
||||
Game.chrome.renderer.WorldSpriteRenderer.Flush();
|
||||
Game.Renderer.WorldSpriteRenderer.Flush();
|
||||
}
|
||||
|
||||
Action<MouseInput> HandleSupportPower(SupportPower sp)
|
||||
|
||||
@@ -108,7 +108,7 @@ namespace OpenRA.Widgets
|
||||
public override void DrawInner(World world)
|
||||
{
|
||||
int margin = 5;
|
||||
var font = (Bold) ? Game.chrome.renderer.BoldFont : Game.chrome.renderer.RegularFont;
|
||||
var font = (Bold) ? Game.Renderer.BoldFont : Game.Renderer.RegularFont;
|
||||
var cursor = (showCursor && Focused) ? "|" : "";
|
||||
var textSize = font.Measure(Text + "|");
|
||||
var pos = RenderOrigin;
|
||||
@@ -125,15 +125,15 @@ namespace OpenRA.Widgets
|
||||
if (Focused)
|
||||
textPos += new int2(Bounds.Width - 2 * margin - textSize.X, 0);
|
||||
|
||||
Game.chrome.renderer.Device.EnableScissor(pos.X + margin, pos.Y, Bounds.Width - 2 * margin, Bounds.Bottom);
|
||||
Game.Renderer.Device.EnableScissor(pos.X + margin, pos.Y, Bounds.Width - 2 * margin, Bounds.Bottom);
|
||||
}
|
||||
|
||||
font.DrawText(Text + cursor, textPos, Color.White);
|
||||
|
||||
if (textSize.X > Bounds.Width - 2 * margin)
|
||||
{
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.chrome.renderer.Device.DisableScissor();
|
||||
Game.Renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.Renderer.Device.DisableScissor();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace OpenRA.Widgets
|
||||
public override void DrawInner(World world)
|
||||
{
|
||||
var s = WorldUtils.FormatTime(Game.LocalTick);
|
||||
var f = Game.chrome.renderer.TitleFont;
|
||||
var f = Game.Renderer.TitleFont;
|
||||
var size = f.Measure(s);
|
||||
f.DrawText(s, new float2(RenderBounds.Left - size.X / 2, RenderBounds.Top - 20), Color.White);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,21 @@ namespace OpenRA.Widgets
|
||||
|
||||
public Widget() { IsVisible = () => Visible; }
|
||||
|
||||
public static Widget RootWidget = null;
|
||||
public static Widget RootWidget {
|
||||
get
|
||||
{
|
||||
if (rootWidget == null)
|
||||
{
|
||||
var widgetYaml = Game.Manifest.ChromeLayout.Select(a => MiniYaml.FromFile(a)).Aggregate(MiniYaml.Merge);
|
||||
|
||||
rootWidget = WidgetLoader.LoadWidget( widgetYaml.FirstOrDefault() );
|
||||
rootWidget.Initialize();
|
||||
rootWidget.InitDelegates();
|
||||
}
|
||||
return rootWidget;
|
||||
}
|
||||
}
|
||||
private static Widget rootWidget = null;
|
||||
|
||||
public Widget(Widget widget)
|
||||
{
|
||||
@@ -189,20 +203,20 @@ namespace OpenRA.Widgets
|
||||
|
||||
public virtual bool HandleInputInner(MouseInput mi) { return !ClickThrough; }
|
||||
|
||||
public static int ticksSinceLastMove = 0;
|
||||
public static int2 lastMousePos;
|
||||
public static int TicksSinceLastMove = 0;
|
||||
public static int2 LastMousePos;
|
||||
public bool HandleInput(World world, MouseInput mi)
|
||||
{
|
||||
if (SelectedWidget != null && SelectedWidget.HandleMouseInputOuter(mi))
|
||||
return true;
|
||||
|
||||
if (Widget.RootWidget.HandleMouseInputOuter(mi))
|
||||
if (RootWidget.HandleMouseInputOuter(mi))
|
||||
return true;
|
||||
|
||||
if (mi.Event == MouseInputEvent.Move)
|
||||
{
|
||||
lastMousePos = mi.Location;
|
||||
ticksSinceLastMove = 0;
|
||||
LastMousePos = mi.Location;
|
||||
TicksSinceLastMove = 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -308,20 +322,34 @@ namespace OpenRA.Widgets
|
||||
|
||||
public void CloseWindow()
|
||||
{
|
||||
Widget.RootWidget.GetWidget(WindowList.Pop()).Visible = false;
|
||||
RootWidget.GetWidget(WindowList.Pop()).Visible = false;
|
||||
if (WindowList.Count > 0)
|
||||
Widget.RootWidget.GetWidget(WindowList.Peek()).Visible = true;
|
||||
RootWidget.GetWidget(WindowList.Peek()).Visible = true;
|
||||
}
|
||||
|
||||
public Widget OpenWindow(string id)
|
||||
{
|
||||
if (WindowList.Count > 0)
|
||||
Widget.RootWidget.GetWidget(WindowList.Peek()).Visible = false;
|
||||
RootWidget.GetWidget(WindowList.Peek()).Visible = false;
|
||||
WindowList.Push(id);
|
||||
var window = Widget.RootWidget.GetWidget(id);
|
||||
var window = RootWidget.GetWidget(id);
|
||||
window.Visible = true;
|
||||
return window;
|
||||
}
|
||||
|
||||
public static void DoTick(World world)
|
||||
{
|
||||
RootWidget.Tick(world);
|
||||
|
||||
if (!world.GameHasStarted) return;
|
||||
if (world.LocalPlayer == null) return;
|
||||
++TicksSinceLastMove;
|
||||
}
|
||||
|
||||
public static void DoDraw(World world)
|
||||
{
|
||||
RootWidget.Draw(world);
|
||||
}
|
||||
}
|
||||
|
||||
class ContainerWidget : Widget {
|
||||
|
||||
@@ -19,17 +19,17 @@ namespace OpenRA.Widgets
|
||||
{
|
||||
public static Sprite GetChromeImage(World world, string name)
|
||||
{
|
||||
return ChromeProvider.GetImage(Game.chrome.renderer, "chrome-" + world.LocalPlayer.Country.Race, name);
|
||||
return ChromeProvider.GetImage(Game.Renderer, "chrome-" + world.LocalPlayer.Country.Race, name);
|
||||
}
|
||||
|
||||
public static void DrawRGBA(Sprite s, float2 pos)
|
||||
{
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.DrawSprite(s,pos,"chrome");
|
||||
Game.Renderer.RgbaSpriteRenderer.DrawSprite(s,pos,"chrome");
|
||||
}
|
||||
|
||||
public static void DrawSHP(Sprite s, float2 pos)
|
||||
{
|
||||
Game.chrome.renderer.WorldSpriteRenderer.DrawSprite(s,pos,"chrome");
|
||||
Game.Renderer.WorldSpriteRenderer.DrawSprite(s,pos,"chrome");
|
||||
}
|
||||
|
||||
public static void DrawPanel(string collection, Rectangle Bounds)
|
||||
@@ -55,7 +55,7 @@ namespace OpenRA.Widgets
|
||||
|
||||
public static void FillRectWithColor(Rectangle r, Color c)
|
||||
{
|
||||
Game.chrome.lineRenderer.FillRect(new RectangleF(
|
||||
Game.Renderer.LineRenderer.FillRect(new RectangleF(
|
||||
Game.viewport.Location.X + r.X,
|
||||
Game.viewport.Location.Y + r.Y,
|
||||
r.Width, r.Height), c);
|
||||
@@ -64,7 +64,7 @@ namespace OpenRA.Widgets
|
||||
public static int[] GetBorderSizes(string collection)
|
||||
{
|
||||
var images = new[] { "border-t", "border-b", "border-l", "border-r" };
|
||||
var ss = images.Select(i => ChromeProvider.GetImage(Game.chrome.renderer, "dialog4", i)).ToArray();
|
||||
var ss = images.Select(i => ChromeProvider.GetImage(Game.Renderer, "dialog4", i)).ToArray();
|
||||
return new[] { (int)ss[0].size.Y, (int)ss[1].size.Y, (int)ss[2].size.X, (int)ss[3].size.X };
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ namespace OpenRA.Widgets
|
||||
public static void DrawPanelPartial(string collection, Rectangle Bounds, PanelSides ps)
|
||||
{
|
||||
var images = new[] { "border-t", "border-b", "border-l", "border-r", "corner-tl", "corner-tr", "corner-bl", "corner-br", "background" };
|
||||
var ss = images.Select(i => ChromeProvider.GetImage(Game.chrome.renderer, collection, i)).ToArray();
|
||||
var ss = images.Select(i => ChromeProvider.GetImage(Game.Renderer, collection, i)).ToArray();
|
||||
|
||||
// Background
|
||||
FillRectWithSprite(new Rectangle(Bounds.Left + (int)ss[2].size.X,
|
||||
@@ -128,7 +128,7 @@ namespace OpenRA.Widgets
|
||||
if (ps.HasFlags(PanelSides.Right | PanelSides.Bottom))
|
||||
DrawRGBA(ss[7], new float2(Bounds.Right - ss[7].size.X, Bounds.Bottom - ss[7].size.Y));
|
||||
|
||||
Game.chrome.renderer.RgbaSpriteRenderer.Flush();
|
||||
Game.Renderer.RgbaSpriteRenderer.Flush();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,10 +24,10 @@ namespace OpenRA.Widgets
|
||||
|
||||
public override void DrawInner(World world)
|
||||
{
|
||||
if (Widget.ticksSinceLastMove < worldTooltipDelay || world == null || world.LocalPlayer == null)
|
||||
if (Widget.TicksSinceLastMove < worldTooltipDelay || world == null || world.LocalPlayer == null)
|
||||
return;
|
||||
|
||||
var actor = world.FindUnitsAtMouse(Widget.lastMousePos).FirstOrDefault();
|
||||
var actor = world.FindUnitsAtMouse(Widget.LastMousePos).FirstOrDefault();
|
||||
if (actor == null) return;
|
||||
|
||||
var text = actor.Info.Traits.Contains<ValuedInfo>()
|
||||
@@ -37,7 +37,7 @@ namespace OpenRA.Widgets
|
||||
? "" : "{0}".F(actor.Owner.PlayerName);
|
||||
var text3 = (actor.Owner == world.LocalPlayer || actor.Owner.NonCombatant)
|
||||
? "" : " ({0})".F(world.LocalPlayer.Stances[actor.Owner]);
|
||||
var renderer = Game.chrome.renderer;
|
||||
var renderer = Game.Renderer;
|
||||
|
||||
var sz = renderer.BoldFont.Measure(text);
|
||||
var sz2 = renderer.RegularFont.Measure(text2);
|
||||
@@ -51,23 +51,23 @@ namespace OpenRA.Widgets
|
||||
sz.Y += 24;
|
||||
|
||||
WidgetUtils.DrawPanel("dialog4", Rectangle.FromLTRB(
|
||||
Widget.lastMousePos.X + 20, Widget.lastMousePos.Y + 20,
|
||||
Widget.lastMousePos.X + sz.X + 20, Widget.lastMousePos.Y + sz.Y + 20));
|
||||
Widget.LastMousePos.X + 20, Widget.LastMousePos.Y + 20,
|
||||
Widget.LastMousePos.X + sz.X + 20, Widget.LastMousePos.Y + sz.Y + 20));
|
||||
|
||||
renderer.BoldFont.DrawText(text,
|
||||
new float2(Widget.lastMousePos.X + 30, Widget.lastMousePos.Y + 30), Color.White);
|
||||
new float2(Widget.LastMousePos.X + 30, Widget.LastMousePos.Y + 30), Color.White);
|
||||
|
||||
if (text2 != "")
|
||||
{
|
||||
renderer.RegularFont.DrawText(text2,
|
||||
new float2(Widget.lastMousePos.X + 65, Widget.lastMousePos.Y + 50), actor.Owner.Color);
|
||||
new float2(Widget.LastMousePos.X + 65, Widget.LastMousePos.Y + 50), actor.Owner.Color);
|
||||
|
||||
renderer.RegularFont.DrawText(text3,
|
||||
new float2(Widget.lastMousePos.X + 65 + sz2.X, Widget.lastMousePos.Y + 50), Color.White);
|
||||
new float2(Widget.LastMousePos.X + 65 + sz2.X, Widget.LastMousePos.Y + 50), Color.White);
|
||||
|
||||
WidgetUtils.DrawRGBA(
|
||||
ChromeProvider.GetImage(Game.chrome.renderer, "flags", actor.Owner.Country.Race),
|
||||
new float2(Widget.lastMousePos.X + 30, Widget.lastMousePos.Y + 50));
|
||||
ChromeProvider.GetImage(Game.Renderer, "flags", actor.Owner.Country.Race),
|
||||
new float2(Widget.LastMousePos.X + 30, Widget.LastMousePos.Y + 50));
|
||||
}
|
||||
|
||||
renderer.RgbaSpriteRenderer.Flush();
|
||||
|
||||
@@ -71,7 +71,7 @@ namespace OpenRA
|
||||
TileSet.LoadTiles();
|
||||
Timer.Time( "Tileset: {0}" );
|
||||
|
||||
WorldRenderer = new WorldRenderer(this, Game.renderer);
|
||||
WorldRenderer = new WorldRenderer(this, Game.Renderer);
|
||||
Timer.Time("renderer: {0}");
|
||||
|
||||
WorldActor = CreateActor("World", new int2(int.MaxValue, int.MaxValue), null);
|
||||
@@ -105,7 +105,7 @@ namespace OpenRA
|
||||
PathFinder = new PathFinder(this);
|
||||
Timer.Time( "hooks, pathing: {0}" );
|
||||
|
||||
Minimap = new Minimap(this, Game.renderer);
|
||||
Minimap = new Minimap(this, Game.Renderer);
|
||||
Timer.Time( "minimap: {0}" );
|
||||
|
||||
Timer.Time( "----end World.ctor" );
|
||||
|
||||
Reference in New Issue
Block a user