Overhaul the RA sidebar UI.
This commit is contained in:
@@ -540,6 +540,7 @@
|
||||
<Compile Include="Widgets\Logic\Ingame\IngamePowerBarLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\Ingame\IngameSiloBarLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\Ingame\AddRaceSuffixLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\ClassicProductionLogic.cs" />
|
||||
<Compile Include="Widgets\SupportPowersWidget.cs" />
|
||||
<Compile Include="Widgets\Logic\SupportPowerTooltipLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\SupportPowerBinLogic.cs" />
|
||||
|
||||
141
OpenRA.Mods.RA/Widgets/Logic/ClassicProductionLogic.cs
Normal file
141
OpenRA.Mods.RA/Widgets/Logic/ClassicProductionLogic.cs
Normal file
@@ -0,0 +1,141 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2014 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 COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using OpenRA.Mods.RA.Widgets;
|
||||
using OpenRA.Network;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.RA.Widgets.Logic
|
||||
{
|
||||
public class ClassicProductionLogic
|
||||
{
|
||||
readonly ProductionPaletteWidget palette;
|
||||
readonly World world;
|
||||
|
||||
void SetupProductionGroupButton(OrderManager orderManager, ProductionTypeButtonWidget button)
|
||||
{
|
||||
if (button == null)
|
||||
return;
|
||||
|
||||
// Classic production queues are initialized at game start, and then never change.
|
||||
var queues = world.LocalPlayer.PlayerActor.TraitsImplementing<ProductionQueue>()
|
||||
.Where(q => q.Info.Type == button.ProductionGroup)
|
||||
.ToArray();
|
||||
|
||||
Action<bool> selectTab = reverse =>
|
||||
{
|
||||
palette.CurrentQueue = queues.FirstOrDefault(q => q.Enabled);
|
||||
};
|
||||
|
||||
button.IsDisabled = () => !queues.Any(q => q.BuildableItems().Any());
|
||||
button.OnMouseUp = mi => selectTab(mi.Modifiers.HasModifier(Modifiers.Shift));
|
||||
button.OnKeyPress = e => selectTab(e.Modifiers.HasModifier(Modifiers.Shift));
|
||||
button.OnClick = () => selectTab(false);
|
||||
button.IsHighlighted = () => queues.Contains(palette.CurrentQueue);
|
||||
|
||||
var chromeName = button.ProductionGroup.ToLowerInvariant();
|
||||
var icon = button.Get<ImageWidget>("ICON");
|
||||
icon.GetImageName = () => button.IsDisabled() ? chromeName + "-disabled" :
|
||||
queues.Any(q => q.CurrentDone) ? chromeName + "-alert" : chromeName;
|
||||
}
|
||||
|
||||
[ObjectCreator.UseCtor]
|
||||
public ClassicProductionLogic(Widget widget, OrderManager orderManager, World world)
|
||||
{
|
||||
this.world = world;
|
||||
palette = widget.Get<ProductionPaletteWidget>("PRODUCTION_PALETTE");
|
||||
|
||||
var background = widget.GetOrNull("PALETTE_BACKGROUND");
|
||||
var foreground = widget.GetOrNull("PALETTE_FOREGROUND");
|
||||
if (background != null || foreground != null)
|
||||
{
|
||||
Widget backgroundTemplate = null;
|
||||
Widget backgroundBottom = null;
|
||||
Widget foregroundTemplate = null;
|
||||
|
||||
if (background != null)
|
||||
{
|
||||
backgroundTemplate = background.Get("ROW_TEMPLATE");
|
||||
backgroundBottom = background.GetOrNull("BOTTOM_CAP");
|
||||
}
|
||||
|
||||
if (foreground != null)
|
||||
foregroundTemplate = foreground.Get("ROW_TEMPLATE");
|
||||
|
||||
Action<int, int> updateBackground = (_, icons) =>
|
||||
{
|
||||
// Minimum of four rows to make space for the production buttons.
|
||||
var rows = Math.Max(4, (icons + palette.Columns - 1) / palette.Columns);
|
||||
|
||||
if (background != null)
|
||||
{
|
||||
background.RemoveChildren();
|
||||
|
||||
var rowHeight = backgroundTemplate.Bounds.Height;
|
||||
for (var i = 0; i < rows; i++)
|
||||
{
|
||||
var row = backgroundTemplate.Clone();
|
||||
row.Bounds.Y = i * rowHeight;
|
||||
background.AddChild(row);
|
||||
}
|
||||
|
||||
if (backgroundBottom == null)
|
||||
return;
|
||||
|
||||
backgroundBottom.Bounds.Y = rows * rowHeight;
|
||||
background.AddChild(backgroundBottom);
|
||||
}
|
||||
|
||||
if (foreground != null)
|
||||
{
|
||||
foreground.RemoveChildren();
|
||||
|
||||
var rowHeight = foregroundTemplate.Bounds.Height;
|
||||
for (var i = 0; i < rows; i++)
|
||||
{
|
||||
var row = foregroundTemplate.Clone();
|
||||
row.Bounds.Y = i * rowHeight;
|
||||
foreground.AddChild(row);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
palette.OnIconCountChanged += updateBackground;
|
||||
|
||||
// Set the initial palette state
|
||||
updateBackground(0, 0);
|
||||
}
|
||||
|
||||
var typesContainer = widget.Get("PRODUCTION_TYPES");
|
||||
foreach (var i in typesContainer.Children)
|
||||
SetupProductionGroupButton(orderManager, i as ProductionTypeButtonWidget);
|
||||
|
||||
var ticker = widget.Get<LogicTickerWidget>("PRODUCTION_TICKER");
|
||||
ticker.OnTick = () =>
|
||||
{
|
||||
if (palette.CurrentQueue == null || palette.IconCount == 0)
|
||||
{
|
||||
// Select the first active tab
|
||||
foreach (var b in typesContainer.Children)
|
||||
{
|
||||
var button = b as ProductionTypeButtonWidget;
|
||||
if (button == null || button.IsDisabled())
|
||||
continue;
|
||||
|
||||
button.OnClick();
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
BIN
artsrc/ra/chrome.pxm
Normal file
BIN
artsrc/ra/chrome.pxm
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,118 +1,90 @@
|
||||
chrome-allies: chrome-allies.png
|
||||
specialbin-top: 0,0,30,51
|
||||
specialbin-middle: 0,51,30,51
|
||||
specialbin-bottom: 0,153,30,39
|
||||
moneybin: 192,0,320,31
|
||||
radar: 297,31,210,222
|
||||
tooltip-bg: 0,288,272,136
|
||||
sidebar-allies: chrome.png
|
||||
background-top: 0,167,238,290
|
||||
background-iconrow: 0,457,238,47
|
||||
background-bottom: 0,504,238,8
|
||||
background-iconoverlay: 314,118,238,48
|
||||
background-supportoverlay: 184,118,64,48
|
||||
|
||||
power-allies: chrome-allies.png
|
||||
power-indicator: 187,4,4,7
|
||||
sidebar-button-allies: chrome.png
|
||||
background: 56,28,28,28
|
||||
sidebar-button-allies-hover: chrome.png
|
||||
background: 56,0,28,28
|
||||
sidebar-button-allies-pressed: chrome.png
|
||||
background: 56,28,28,28
|
||||
sidebar-button-allies-highlighted: chrome.png
|
||||
background: 84,28,28,28
|
||||
sidebar-button-allies-highlighted-hover: chrome.png
|
||||
background: 84,0,28,28
|
||||
sidebar-button-allies-highlighted-pressed: chrome.png
|
||||
background: 84,28,28,28
|
||||
sidebar-button-allies-disabled: chrome.png
|
||||
background: 112,0,28,28
|
||||
sidebar-button-allies-highlighted-disabled: chrome.png
|
||||
background: 112,0,28,28
|
||||
|
||||
palette-allies: chrome-allies.png
|
||||
top: 297,288,201,9
|
||||
dock-top: 498,274,14,23
|
||||
bottom: 297,489,201,9
|
||||
dock-bottom: 498,489,14,23
|
||||
bg-0: 297,297,201,48
|
||||
dock-0: 498,297,14,48
|
||||
bg-1: 297,345,201,48
|
||||
dock-1: 498,345,14,48
|
||||
bg-2: 297,393,201,48
|
||||
dock-2: 498,393,14,48
|
||||
bg-3: 297,441,201,48
|
||||
dock-3: 498,441,14,48
|
||||
sidebar-soviet: chrome.png
|
||||
background-top: 274,167,238,290
|
||||
background-iconrow: 274,457,238,47
|
||||
background-bottom: 274,504,238,8
|
||||
background-iconoverlay: 314,118,238,48
|
||||
background-supportoverlay: 249,118,64,48
|
||||
|
||||
digits-allies: chrome-allies.png
|
||||
0: 32,0,13,17
|
||||
1: 45,0,13,17
|
||||
2: 58,0,13,17
|
||||
3: 71,0,13,17
|
||||
4: 84,0,13,17
|
||||
5: 97,0,13,17
|
||||
6: 110,0,13,17
|
||||
7: 123,0,13,17
|
||||
8: 136,0,13,17
|
||||
9: 149,0,13,17
|
||||
sidebar-button-soviet: chrome.png
|
||||
background: 0,28,28,28
|
||||
sidebar-button-soviet-hover: chrome.png
|
||||
background: 0,0,28,28
|
||||
sidebar-button-soviet-pressed: chrome.png
|
||||
background: 0,28,28,28
|
||||
sidebar-button-soviet-highlighted: chrome.png
|
||||
background: 28,28,28,28
|
||||
sidebar-button-soviet-highlighted-hover: chrome.png
|
||||
background: 28,0,28,28
|
||||
sidebar-button-soviet-highlighted-pressed: chrome.png
|
||||
background: 28,28,28,28
|
||||
sidebar-button-soviet-disabled: chrome.png
|
||||
background: 112,0,28,28
|
||||
sidebar-button-soviet-highlighted-disabled: chrome.png
|
||||
background: 112,0,28,28
|
||||
|
||||
chrome-soviet: chrome-soviet.png
|
||||
specialbin-top: 0,0,30,51
|
||||
specialbin-middle: 0,51,30,51
|
||||
specialbin-bottom: 0,153,30,39
|
||||
moneybin: 192,0,320,31
|
||||
radar: 297,31,210,222
|
||||
tooltip-bg: 0,288,272,136
|
||||
production-icons: chrome.png
|
||||
building: 384,0,16,16
|
||||
building-disabled: 384,16,16,16
|
||||
building-alert: 384,32,16,16
|
||||
defense: 400,0,16,16
|
||||
defense-disabled: 400,16,16,16
|
||||
defense-alert: 400,32,16,16
|
||||
infantry: 416,0,16,16
|
||||
infantry-disabled: 416,16,16,16
|
||||
infantry-alert: 416,32,16,16
|
||||
vehicle: 432,0,16,16
|
||||
vehicle-disabled: 432,16,16,16
|
||||
vehicle-alert: 432,32,16,16
|
||||
aircraft: 448,0,16,16
|
||||
aircraft-disabled: 448,16,16,16
|
||||
aircraft-alert: 448,32,16,16
|
||||
ship: 496,48,16,16
|
||||
ship-disabled: 496,64,16,16
|
||||
ship-alert: 496,80,16,16
|
||||
|
||||
power-soviet: chrome-soviet.png
|
||||
power-indicator: 187,4,4,7
|
||||
|
||||
palette-soviet: chrome-soviet.png
|
||||
top: 297,288,201,9
|
||||
dock-top: 498,274,14,23
|
||||
bottom: 297,489,201,9
|
||||
dock-bottom: 498,489,14,23
|
||||
bg-0: 297,297,201,48
|
||||
dock-0: 498,297,14,48
|
||||
bg-1: 297,345,201,48
|
||||
dock-1: 498,345,14,48
|
||||
bg-2: 297,393,201,48
|
||||
dock-2: 498,393,14,48
|
||||
bg-3: 297,441,201,48
|
||||
dock-3: 498,441,14,48
|
||||
|
||||
digits-soviet: chrome-soviet.png
|
||||
0: 32,0,13,17
|
||||
1: 45,0,13,17
|
||||
2: 58,0,13,17
|
||||
3: 71,0,13,17
|
||||
4: 84,0,13,17
|
||||
5: 97,0,13,17
|
||||
6: 110,0,13,17
|
||||
7: 123,0,13,17
|
||||
8: 136,0,13,17
|
||||
9: 149,0,13,17
|
||||
|
||||
tabs-selected: tabs.png
|
||||
allies-Building: 0,0,27,41
|
||||
allies-Defense: 0,40,27,41
|
||||
allies-Infantry: 0,80,27,41
|
||||
allies-Vehicle: 0,120,27,41
|
||||
allies-Aircraft: 162,200,27,41
|
||||
allies-Ship: 0,200,27,41
|
||||
soviet-Building: 81,0,27,41
|
||||
soviet-Defense: 81,40,27,41
|
||||
soviet-Infantry: 81,80,27,41
|
||||
soviet-Vehicle: 81,120,27,41
|
||||
soviet-Aircraft: 81,160,27,41
|
||||
soviet-Ship: 81,200,27,41
|
||||
|
||||
tabs-ready: tabs.png
|
||||
allies-Building: 27,0,27,41
|
||||
allies-Defense: 27,40,27,41
|
||||
allies-Infantry: 27,80,27,41
|
||||
allies-Vehicle: 27,120,27,41
|
||||
allies-Aircraft: 162,160,27,41
|
||||
allies-Ship: 27,200,27,41
|
||||
soviet-Building: 108,0,27,41
|
||||
soviet-Defense: 108,40,27,41
|
||||
soviet-Infantry: 108,80,27,41
|
||||
soviet-Vehicle: 108,120,27,41
|
||||
soviet-Aircraft: 108,160,27,41
|
||||
soviet-Ship: 108,200,27,41
|
||||
|
||||
tabs-normal: tabs.png
|
||||
allies-Building: 54,0,27,41
|
||||
allies-Defense: 54,40,27,41
|
||||
allies-Infantry: 54,80,27,41
|
||||
allies-Vehicle: 54,120,27,41
|
||||
allies-Aircraft: 162,120,27,41
|
||||
allies-Ship: 54,200,27,41
|
||||
soviet-Building: 135,0,27,41
|
||||
soviet-Defense: 135,40,27,41
|
||||
soviet-Infantry: 135,80,27,41
|
||||
soviet-Vehicle: 135,120,27,41
|
||||
soviet-Aircraft: 135,160,27,41
|
||||
soviet-Ship: 135,200,27,41
|
||||
order-icons: chrome.png
|
||||
options: 480,0,16,16
|
||||
options-disabled: 480,16,16,16
|
||||
options-active: 480,32,16,16
|
||||
diplomacy: 464,48,16,16
|
||||
diplomacy-disabled: 464,64,16,16
|
||||
diplomacy-active: 464,80,16,16
|
||||
sell: 496,0,16,16
|
||||
sell-disabled: 496,16,16,16
|
||||
sell-active: 496,32,16,16
|
||||
repair: 384,48,16,16
|
||||
repair-disabled: 384,64,16,16
|
||||
repair-active: 384,80,16,16
|
||||
beacon: 400,48,16,16
|
||||
beacon-disabled: 400,64,16,16
|
||||
beacon-active: 400,80,16,16
|
||||
power: 480,48,16,16
|
||||
power-disabled: 480,64,16,16
|
||||
power-active: 480,80,16,16
|
||||
|
||||
# Used for the menu
|
||||
dialog: dialog.png
|
||||
@@ -175,20 +147,6 @@ strategic: strategic.png
|
||||
enemy_owned: 32,32,32,32
|
||||
player_owned: 96,0,32,32
|
||||
|
||||
order-icons: buttons.png
|
||||
sell: 0,0,34,28
|
||||
sell-disabled: 68,0,34,28
|
||||
sell-active: 34,0,34,28
|
||||
repair: 0,28,34,28
|
||||
repair-disabled: 68,28,34,28
|
||||
repair-active: 34,28,34,28
|
||||
power: 0,56,34,28
|
||||
power-disabled: 68,56,34,28
|
||||
power-active: 34,56,34,28
|
||||
beacon: 0,84,34,28
|
||||
beacon-disabled: 68,84,34,28
|
||||
beacon-active: 34,84,34,28
|
||||
|
||||
flags: buttons.png
|
||||
allies: 30,112,30,15
|
||||
soviet: 0,112,30,15
|
||||
|
||||
@@ -4,7 +4,6 @@ Background@INGAME_OPTIONS_BG:
|
||||
Width: 300
|
||||
Height: 295
|
||||
Logic: IngameMenuLogic
|
||||
Visible: false
|
||||
Children:
|
||||
Label@LABEL_TITLE:
|
||||
X: (PARENT_RIGHT - WIDTH)/2
|
||||
|
||||
@@ -1,5 +1,32 @@
|
||||
Container@OBSERVER_WIDGETS:
|
||||
Children:
|
||||
Container@GAME_TIMER_BLOCK:
|
||||
Logic: GameTimerLogic
|
||||
X: WINDOW_RIGHT/2 - WIDTH
|
||||
Width: 100
|
||||
Height: 55
|
||||
Children:
|
||||
Label@GAME_TIMER:
|
||||
Width: PARENT_RIGHT
|
||||
Height: 15
|
||||
Align: Center
|
||||
Font: Title
|
||||
Contrast: true
|
||||
Label@GAME_TIMER_STATUS:
|
||||
Y: 35
|
||||
Width: PARENT_RIGHT
|
||||
Height: 15
|
||||
Align: Center
|
||||
Font: Bold
|
||||
Contrast: true
|
||||
Button@INGAME_OPTIONS_BUTTON:
|
||||
X: 0
|
||||
Y: 0
|
||||
Width: 160
|
||||
Height: 25
|
||||
Text: Options (ESC)
|
||||
Font: Bold
|
||||
Key: escape
|
||||
Button@INGAME_STATS_BUTTON:
|
||||
X: 162
|
||||
Y: 0
|
||||
|
||||
@@ -3,23 +3,6 @@ Container@PLAYER_WIDGETS:
|
||||
LogicKeyListener@CONTROLGROUP_KEYHANDLER:
|
||||
Logic: ControlGroupLogic
|
||||
LogicTicker@SIDEBAR_TICKER:
|
||||
Button@INGAME_DIPLOMACY_BUTTON:
|
||||
X: 162
|
||||
Y: 0
|
||||
Width: 160
|
||||
Height: 25
|
||||
Text: Diplomacy (F1)
|
||||
Font: Bold
|
||||
Key: f1
|
||||
Button@INGAME_DEBUG_BUTTON:
|
||||
X: 324
|
||||
Y: 0
|
||||
Width: 160
|
||||
Height: 25
|
||||
Text: Debug (F2)
|
||||
Visible: false
|
||||
Font: Bold
|
||||
Key: f2
|
||||
Button@OBJECTIVES_BUTTON:
|
||||
X: 486
|
||||
Y: 0
|
||||
@@ -29,87 +12,327 @@ Container@PLAYER_WIDGETS:
|
||||
Visible: false
|
||||
Font: Bold
|
||||
Key: f3
|
||||
SlidingContainer@INGAME_RADAR_BIN:
|
||||
X: WINDOW_RIGHT-215
|
||||
Y: 0
|
||||
OpenOffset: 0,29
|
||||
ClosedOffset: 0,-166
|
||||
AnimationLength: 15
|
||||
Container@SUPPORT_POWERS:
|
||||
Logic: SupportPowerBinLogic
|
||||
X: 10
|
||||
Y: 10
|
||||
Children:
|
||||
Image@RADAR_BIN_BG:
|
||||
ImageName: radar
|
||||
Radar@RADAR_MINIMAP:
|
||||
WorldInteractionController: INTERACTION_CONTROLLER
|
||||
X: 9
|
||||
Width: 192
|
||||
Height: 192
|
||||
ResourceBar@POWERBAR:
|
||||
X: 42
|
||||
Y: 205
|
||||
Width: 138
|
||||
Height: 5
|
||||
SupportPowers@SUPPORT_PALETTE:
|
||||
IconSize: 62, 46
|
||||
IconSpriteOffset: -1, -1
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
TooltipTemplate: SIMPLE_TOOLTIP
|
||||
IndicatorImage: power-indicator
|
||||
Orientation: Horizontal
|
||||
Style: Bevelled
|
||||
MoneyBin@INGAME_MONEY_BIN:
|
||||
Logic: OrderButtonsChromeLogic
|
||||
X: WINDOW_RIGHT - WIDTH
|
||||
Width: 320
|
||||
Height: 32
|
||||
Children:
|
||||
Button@BEACON_BUTTON:
|
||||
X: 3-36
|
||||
Width: 34
|
||||
Height: 28
|
||||
TooltipText: Place Beacon
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
VisualHeight: 0
|
||||
ReadyText: READY
|
||||
HoldText: ON HOLD
|
||||
Container@PALETTE_FOREGROUND:
|
||||
Children:
|
||||
Image@ICON:
|
||||
ImageCollection: order-icons
|
||||
Button@SELL_BUTTON:
|
||||
X: 3
|
||||
Width: 34
|
||||
Height: 28
|
||||
TooltipText: Sell
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
VisualHeight: 0
|
||||
Children:
|
||||
Image@ICON:
|
||||
ImageCollection: order-icons
|
||||
Button@POWER_BUTTON:
|
||||
X: 39
|
||||
Width: 34
|
||||
Height: 28
|
||||
TooltipText: Power Down
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
VisualHeight: 0
|
||||
Children:
|
||||
Image@ICON:
|
||||
ImageCollection: order-icons
|
||||
Button@REPAIR_BUTTON:
|
||||
X: 75
|
||||
Width: 34
|
||||
Height: 28
|
||||
TooltipText: Repair
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
VisualHeight: 0
|
||||
Children:
|
||||
Image@ICON:
|
||||
ImageCollection: order-icons
|
||||
SupportPowerBin@INGAME_POWERS_BIN:
|
||||
X: 0
|
||||
Y: 25
|
||||
ReadyText: READY
|
||||
HoldText: ON HOLD
|
||||
BuildPalette@INGAME_BUILD_PALETTE:
|
||||
Image@ICON_TEMPLATE:
|
||||
Logic: AddRaceSuffixLogic
|
||||
X:0-2
|
||||
Y:0-2
|
||||
Width: 62
|
||||
Height: 46
|
||||
IgnoreMouseOver: true
|
||||
ImageCollection: sidebar
|
||||
ImageName: background-supportoverlay
|
||||
Image@SIDEBAR_BACKGROUND_TOP:
|
||||
Logic: AddRaceSuffixLogic
|
||||
X: WINDOW_RIGHT - 250
|
||||
Y: 280
|
||||
Width: 250
|
||||
Height: 500
|
||||
ReadyText: READY
|
||||
HoldText: ON HOLD
|
||||
RequiresText: Requires {0}
|
||||
|
||||
Y: 10
|
||||
Width: 238
|
||||
Height: 291
|
||||
ImageCollection: sidebar
|
||||
ImageName: background-top
|
||||
ClickThrough: false
|
||||
Children:
|
||||
Container@TOP_BUTTONS:
|
||||
Logic: OrderButtonsChromeLogic
|
||||
X: 9
|
||||
Y: 7
|
||||
Children:
|
||||
Button@BEACON_BUTTON:
|
||||
Logic: AddRaceSuffixLogic
|
||||
Width: 28
|
||||
Height: 28
|
||||
Background: sidebar-button
|
||||
TooltipText: Place Beacon
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
VisualHeight: 0
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: order-icons
|
||||
Button@SELL_BUTTON:
|
||||
Logic: AddRaceSuffixLogic
|
||||
X: 32
|
||||
Width: 28
|
||||
Height: 28
|
||||
Background: sidebar-button
|
||||
TooltipText: Sell
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
VisualHeight: 0
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: order-icons
|
||||
Button@POWER_BUTTON:
|
||||
Logic: AddRaceSuffixLogic
|
||||
X: 64
|
||||
Width: 28
|
||||
Height: 28
|
||||
Background: sidebar-button
|
||||
TooltipText: Power Down
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
VisualHeight: 0
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: order-icons
|
||||
Button@REPAIR_BUTTON:
|
||||
Logic: AddRaceSuffixLogic
|
||||
X: 96
|
||||
Width: 28
|
||||
Height: 28
|
||||
Background: sidebar-button
|
||||
TooltipText: Repair
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
VisualHeight: 0
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: order-icons
|
||||
MenuButton@DEBUG_BUTTON:
|
||||
Logic: AddRaceSuffixLogic
|
||||
MenuContainer: INGAME_DEBUG_BG
|
||||
HideIngameUI: false
|
||||
Key: f2
|
||||
X: 128
|
||||
Width: 28
|
||||
Height: 28
|
||||
Background: sidebar-button
|
||||
TooltipText: Debug Menu
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
VisualHeight: 0
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: order-icons
|
||||
ImageName: options
|
||||
MenuButton@DIPLOMACY_BUTTON:
|
||||
Logic: AddRaceSuffixLogic
|
||||
MenuContainer: INGAME_DIPLOMACY_BG
|
||||
HideIngameUI: false
|
||||
Key: f1
|
||||
X: 160
|
||||
Width: 28
|
||||
Height: 28
|
||||
Background: sidebar-button
|
||||
TooltipText: Diplomacy
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
VisualHeight: 0
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: order-icons
|
||||
ImageName: diplomacy
|
||||
MenuButton@OPTIONS_BUTTON:
|
||||
Logic: AddRaceSuffixLogic
|
||||
MenuContainer: INGAME_OPTIONS_BG
|
||||
HideIngameUI: false
|
||||
Key: escape
|
||||
X: 192
|
||||
Width: 28
|
||||
Height: 28
|
||||
Background: sidebar-button
|
||||
TooltipText: Options
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
VisualHeight: 0
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: order-icons
|
||||
ImageName: options
|
||||
Container@RADAR:
|
||||
Logic: IngameRadarDisplayLogic
|
||||
Children:
|
||||
LogicTicker@RADAR_TICKER:
|
||||
ColorBlock@RADAR_FADETOBLACK:
|
||||
X: 8
|
||||
Y: 40
|
||||
Width: 222
|
||||
Height: 222
|
||||
Radar@RADAR_MINIMAP:
|
||||
WorldInteractionController: INTERACTION_CONTROLLER
|
||||
X: 9
|
||||
Y: 41
|
||||
Width: 220
|
||||
Height: 220
|
||||
Children:
|
||||
Label@CASH:
|
||||
Logic: IngameCashCounterLogic
|
||||
X: 35
|
||||
Y: 262
|
||||
Width: 100
|
||||
Height: 22
|
||||
Font: Bold
|
||||
Text: {0}
|
||||
Label@POWER:
|
||||
Logic: IngamePowerCounterLogic
|
||||
X: PARENT_RIGHT - WIDTH - 30
|
||||
Y: 262
|
||||
Width: 100
|
||||
Height: 22
|
||||
Align: Right
|
||||
Font: Bold
|
||||
Text: {0}
|
||||
Label@GAME_TIMER:
|
||||
Logic: GameTimerLogic
|
||||
Y: 263
|
||||
Width: PARENT_RIGHT
|
||||
Height: 22
|
||||
Align: Center
|
||||
Font: TinyBold
|
||||
Container@SIDEBAR_PRODUCTION:
|
||||
Logic: ClassicProductionLogic
|
||||
X: WINDOW_RIGHT - 250
|
||||
Y: 300
|
||||
Width: 238
|
||||
Height: 250
|
||||
Children:
|
||||
Container@PALETTE_BACKGROUND:
|
||||
Children:
|
||||
Image@ROW_TEMPLATE:
|
||||
Logic: AddRaceSuffixLogic
|
||||
Width: 238
|
||||
Height: 47
|
||||
ClickThrough: false
|
||||
ImageCollection: sidebar
|
||||
ImageName: background-iconrow
|
||||
Image@BOTTOM_CAP:
|
||||
Logic: AddRaceSuffixLogic
|
||||
Width: 238
|
||||
Height: 8
|
||||
ClickThrough: false
|
||||
ImageCollection: sidebar
|
||||
ImageName: background-bottom
|
||||
LogicTicker@PRODUCTION_TICKER:
|
||||
ProductionPalette@PRODUCTION_PALETTE:
|
||||
X: 42
|
||||
Y: 1
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
ReadyText: READY
|
||||
HoldText: ON HOLD
|
||||
IconSize: 62, 46
|
||||
IconMargin: 1, 1
|
||||
IconSpriteOffset: -1, -1
|
||||
Container@PALETTE_FOREGROUND:
|
||||
X: 40
|
||||
Y: 0-1
|
||||
Children:
|
||||
Image@ROW_TEMPLATE:
|
||||
Width: 238
|
||||
Height: 47
|
||||
IgnoreMouseOver: true
|
||||
ImageCollection: sidebar-soviet
|
||||
ImageName: background-iconoverlay
|
||||
Container@PRODUCTION_TYPES:
|
||||
X: 7
|
||||
Y: 2
|
||||
Width: 29
|
||||
Height: 240
|
||||
Children:
|
||||
ProductionTypeButton@BUILDING:
|
||||
Logic: AddRaceSuffixLogic
|
||||
Width: 28
|
||||
Height: 28
|
||||
VisualHeight: 0
|
||||
Background: sidebar-button
|
||||
TooltipText: Buildings
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
ProductionGroup: Building
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: production-icons
|
||||
ProductionTypeButton@DEFENSE:
|
||||
Logic: AddRaceSuffixLogic
|
||||
Y: 31
|
||||
Width: 28
|
||||
Height: 28
|
||||
VisualHeight: 0
|
||||
Background: sidebar-button
|
||||
TooltipText: Defense
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
ProductionGroup: Defense
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: production-icons
|
||||
ProductionTypeButton@INFANTRY:
|
||||
Logic: AddRaceSuffixLogic
|
||||
Y: 62
|
||||
Width: 28
|
||||
Height: 28
|
||||
VisualHeight: 0
|
||||
Background: sidebar-button
|
||||
TooltipText: Infantry
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
ProductionGroup: Infantry
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: production-icons
|
||||
ProductionTypeButton@VEHICLE:
|
||||
Logic: AddRaceSuffixLogic
|
||||
Y: 93
|
||||
Width: 28
|
||||
Height: 28
|
||||
VisualHeight: 0
|
||||
Background: sidebar-button
|
||||
TooltipText: Vehicles
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
ProductionGroup: Vehicle
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: production-icons
|
||||
ProductionTypeButton@AIRCRAFT:
|
||||
Logic: AddRaceSuffixLogic
|
||||
Y: 124
|
||||
Width: 28
|
||||
Height: 28
|
||||
VisualHeight: 0
|
||||
Background: sidebar-button
|
||||
TooltipText: Aircraft
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
ProductionGroup: Aircraft
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: production-icons
|
||||
ProductionTypeButton@AIRCRAFT:
|
||||
Logic: AddRaceSuffixLogic
|
||||
Y: 155
|
||||
Width: 28
|
||||
Height: 28
|
||||
VisualHeight: 0
|
||||
Background: sidebar-button
|
||||
TooltipText: Naval
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
ProductionGroup: Ship
|
||||
Children:
|
||||
Image@ICON:
|
||||
X: 6
|
||||
Y: 6
|
||||
ImageCollection: production-icons
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Container@INGAME_ROOT:
|
||||
Logic: IngameChromeLogic
|
||||
Logic: LoadIngamePlayerOrObserverUILogic
|
||||
Children:
|
||||
LogicTicker@DISCONNECT_WATCHER:
|
||||
Logic: DisconnectWatcherLogic
|
||||
@@ -19,41 +19,14 @@ Container@INGAME_ROOT:
|
||||
Y: 0
|
||||
Width: WINDOW_RIGHT
|
||||
Height: WINDOW_BOTTOM
|
||||
Container@GAME_TIMER_BLOCK:
|
||||
Logic: GameTimerLogic
|
||||
X: WINDOW_RIGHT/2 - WIDTH
|
||||
Width: 100
|
||||
Height: 55
|
||||
Children:
|
||||
Label@GAME_TIMER:
|
||||
Width: PARENT_RIGHT
|
||||
Height: 15
|
||||
Align: Center
|
||||
Font: Title
|
||||
Contrast: true
|
||||
Label@GAME_TIMER_STATUS:
|
||||
Y: 35
|
||||
Width: PARENT_RIGHT
|
||||
Height: 15
|
||||
Align: Center
|
||||
Font: Bold
|
||||
Contrast: true
|
||||
StrategicProgress@STRATEGIC_PROGRESS:
|
||||
X: WINDOW_RIGHT/2
|
||||
Y: 40
|
||||
SupportPowerTimer@SUPPORT_POWER_TIMER:
|
||||
X: 80
|
||||
Y: 34
|
||||
Y: 10
|
||||
Order: Descending
|
||||
Container@PLAYER_ROOT:
|
||||
Button@INGAME_OPTIONS_BUTTON:
|
||||
X: 0
|
||||
Y: 0
|
||||
Width: 160
|
||||
Height: 25
|
||||
Text: Options (ESC)
|
||||
Font: Bold
|
||||
Key: escape
|
||||
Container@PERFORMANCE_INFO:
|
||||
Logic: PerfDebugLogic
|
||||
Children:
|
||||
|
||||
@@ -108,3 +108,63 @@ Background@CLIENT_TOOLTIP:
|
||||
Height: 10
|
||||
Font: TinyBold
|
||||
|
||||
Background@PRODUCTION_TOOLTIP:
|
||||
Logic: ProductionTooltipLogic
|
||||
Background: dialog4
|
||||
Width: 200
|
||||
Height: 65
|
||||
Children:
|
||||
Label@NAME:
|
||||
X: 7
|
||||
Y: 2
|
||||
Height: 23
|
||||
Font: Bold
|
||||
Label@REQUIRES:
|
||||
X: 7
|
||||
Y: 21
|
||||
Height: 23
|
||||
Font: TinyBold
|
||||
Text: Requires {0}
|
||||
Label@DESC:
|
||||
X: 7
|
||||
Y: 41
|
||||
Height: 23
|
||||
Font: TinyBold
|
||||
VAlign: Top
|
||||
Label@COST:
|
||||
Height: 23
|
||||
Font: Bold
|
||||
Label@TIME:
|
||||
Y: 21
|
||||
Height: 23
|
||||
Font: Bold
|
||||
Label@POWER:
|
||||
Y: 41
|
||||
Height: 23
|
||||
Font: Bold
|
||||
Label@TIME:
|
||||
Y: 41
|
||||
Height: 23
|
||||
Font: Bold
|
||||
|
||||
Background@SUPPORT_POWER_TOOLTIP:
|
||||
Logic: SupportPowerTooltipLogic
|
||||
Background: dialog4
|
||||
Width: 200
|
||||
Height: 29
|
||||
Children:
|
||||
Label@NAME:
|
||||
X: 7
|
||||
Y: 2
|
||||
Height: 20
|
||||
Font: Bold
|
||||
Label@TIME:
|
||||
X: 20
|
||||
Y: 8
|
||||
Font: TinyBold
|
||||
VAlign: Top
|
||||
Label@DESC:
|
||||
X: 7
|
||||
Y: 22
|
||||
Font: TinyBold
|
||||
VAlign: Top
|
||||
@@ -16,7 +16,8 @@ World:
|
||||
LightPaletteRotator:
|
||||
ExcludePalettes: terrain, effect
|
||||
BuildingInfluence:
|
||||
ChooseBuildTabOnSelect:
|
||||
ProductionQueueFromSelection:
|
||||
ProductionPaletteWidget: PRODUCTION_PALETTE
|
||||
BridgeLayer:
|
||||
Bridges: bridge1, bridge2, br1, br2, br3, sbridge1, sbridge2, sbridge3, sbridge4
|
||||
CrateSpawner:
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 39 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 39 KiB |
BIN
mods/ra/uibits/chrome.png
Normal file
BIN
mods/ra/uibits/chrome.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 106 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 32 KiB |
Reference in New Issue
Block a user