Overhaul the RA sidebar UI.

This commit is contained in:
Paul Chote
2014-07-12 13:13:52 +12:00
parent f779606433
commit a0e5554aaa
20 changed files with 635 additions and 252 deletions

View File

@@ -540,6 +540,7 @@
<Compile Include="Widgets\Logic\Ingame\IngamePowerBarLogic.cs" /> <Compile Include="Widgets\Logic\Ingame\IngamePowerBarLogic.cs" />
<Compile Include="Widgets\Logic\Ingame\IngameSiloBarLogic.cs" /> <Compile Include="Widgets\Logic\Ingame\IngameSiloBarLogic.cs" />
<Compile Include="Widgets\Logic\Ingame\AddRaceSuffixLogic.cs" /> <Compile Include="Widgets\Logic\Ingame\AddRaceSuffixLogic.cs" />
<Compile Include="Widgets\Logic\ClassicProductionLogic.cs" />
<Compile Include="Widgets\SupportPowersWidget.cs" /> <Compile Include="Widgets\SupportPowersWidget.cs" />
<Compile Include="Widgets\Logic\SupportPowerTooltipLogic.cs" /> <Compile Include="Widgets\Logic\SupportPowerTooltipLogic.cs" />
<Compile Include="Widgets\Logic\SupportPowerBinLogic.cs" /> <Compile Include="Widgets\Logic\SupportPowerBinLogic.cs" />

View 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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,118 +1,90 @@
chrome-allies: chrome-allies.png sidebar-allies: chrome.png
specialbin-top: 0,0,30,51 background-top: 0,167,238,290
specialbin-middle: 0,51,30,51 background-iconrow: 0,457,238,47
specialbin-bottom: 0,153,30,39 background-bottom: 0,504,238,8
moneybin: 192,0,320,31 background-iconoverlay: 314,118,238,48
radar: 297,31,210,222 background-supportoverlay: 184,118,64,48
tooltip-bg: 0,288,272,136
power-allies: chrome-allies.png sidebar-button-allies: chrome.png
power-indicator: 187,4,4,7 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 sidebar-soviet: chrome.png
top: 297,288,201,9 background-top: 274,167,238,290
dock-top: 498,274,14,23 background-iconrow: 274,457,238,47
bottom: 297,489,201,9 background-bottom: 274,504,238,8
dock-bottom: 498,489,14,23 background-iconoverlay: 314,118,238,48
bg-0: 297,297,201,48 background-supportoverlay: 249,118,64,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-allies: chrome-allies.png sidebar-button-soviet: chrome.png
0: 32,0,13,17 background: 0,28,28,28
1: 45,0,13,17 sidebar-button-soviet-hover: chrome.png
2: 58,0,13,17 background: 0,0,28,28
3: 71,0,13,17 sidebar-button-soviet-pressed: chrome.png
4: 84,0,13,17 background: 0,28,28,28
5: 97,0,13,17 sidebar-button-soviet-highlighted: chrome.png
6: 110,0,13,17 background: 28,28,28,28
7: 123,0,13,17 sidebar-button-soviet-highlighted-hover: chrome.png
8: 136,0,13,17 background: 28,0,28,28
9: 149,0,13,17 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 production-icons: chrome.png
specialbin-top: 0,0,30,51 building: 384,0,16,16
specialbin-middle: 0,51,30,51 building-disabled: 384,16,16,16
specialbin-bottom: 0,153,30,39 building-alert: 384,32,16,16
moneybin: 192,0,320,31 defense: 400,0,16,16
radar: 297,31,210,222 defense-disabled: 400,16,16,16
tooltip-bg: 0,288,272,136 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 order-icons: chrome.png
power-indicator: 187,4,4,7 options: 480,0,16,16
options-disabled: 480,16,16,16
palette-soviet: chrome-soviet.png options-active: 480,32,16,16
top: 297,288,201,9 diplomacy: 464,48,16,16
dock-top: 498,274,14,23 diplomacy-disabled: 464,64,16,16
bottom: 297,489,201,9 diplomacy-active: 464,80,16,16
dock-bottom: 498,489,14,23 sell: 496,0,16,16
bg-0: 297,297,201,48 sell-disabled: 496,16,16,16
dock-0: 498,297,14,48 sell-active: 496,32,16,16
bg-1: 297,345,201,48 repair: 384,48,16,16
dock-1: 498,345,14,48 repair-disabled: 384,64,16,16
bg-2: 297,393,201,48 repair-active: 384,80,16,16
dock-2: 498,393,14,48 beacon: 400,48,16,16
bg-3: 297,441,201,48 beacon-disabled: 400,64,16,16
dock-3: 498,441,14,48 beacon-active: 400,80,16,16
power: 480,48,16,16
digits-soviet: chrome-soviet.png power-disabled: 480,64,16,16
0: 32,0,13,17 power-active: 480,80,16,16
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
# Used for the menu # Used for the menu
dialog: dialog.png dialog: dialog.png
@@ -175,20 +147,6 @@ strategic: strategic.png
enemy_owned: 32,32,32,32 enemy_owned: 32,32,32,32
player_owned: 96,0,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 flags: buttons.png
allies: 30,112,30,15 allies: 30,112,30,15
soviet: 0,112,30,15 soviet: 0,112,30,15

View File

@@ -4,7 +4,6 @@ Background@INGAME_OPTIONS_BG:
Width: 300 Width: 300
Height: 295 Height: 295
Logic: IngameMenuLogic Logic: IngameMenuLogic
Visible: false
Children: Children:
Label@LABEL_TITLE: Label@LABEL_TITLE:
X: (PARENT_RIGHT - WIDTH)/2 X: (PARENT_RIGHT - WIDTH)/2

View File

@@ -1,5 +1,32 @@
Container@OBSERVER_WIDGETS: Container@OBSERVER_WIDGETS:
Children: 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: Button@INGAME_STATS_BUTTON:
X: 162 X: 162
Y: 0 Y: 0

View File

@@ -3,23 +3,6 @@ Container@PLAYER_WIDGETS:
LogicKeyListener@CONTROLGROUP_KEYHANDLER: LogicKeyListener@CONTROLGROUP_KEYHANDLER:
Logic: ControlGroupLogic Logic: ControlGroupLogic
LogicTicker@SIDEBAR_TICKER: 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: Button@OBJECTIVES_BUTTON:
X: 486 X: 486
Y: 0 Y: 0
@@ -29,87 +12,327 @@ Container@PLAYER_WIDGETS:
Visible: false Visible: false
Font: Bold Font: Bold
Key: f3 Key: f3
SlidingContainer@INGAME_RADAR_BIN: Container@SUPPORT_POWERS:
X: WINDOW_RIGHT-215 Logic: SupportPowerBinLogic
Y: 0 X: 10
OpenOffset: 0,29 Y: 10
ClosedOffset: 0,-166
AnimationLength: 15
Children: Children:
Image@RADAR_BIN_BG: SupportPowers@SUPPORT_PALETTE:
ImageName: radar IconSize: 62, 46
Radar@RADAR_MINIMAP: IconSpriteOffset: -1, -1
WorldInteractionController: INTERACTION_CONTROLLER
X: 9
Width: 192
Height: 192
ResourceBar@POWERBAR:
X: 42
Y: 205
Width: 138
Height: 5
TooltipContainer: TOOLTIP_CONTAINER TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: SIMPLE_TOOLTIP ReadyText: READY
IndicatorImage: power-indicator HoldText: ON HOLD
Orientation: Horizontal Container@PALETTE_FOREGROUND:
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
Children: Children:
Image@ICON: Image@ICON_TEMPLATE:
ImageCollection: order-icons Logic: AddRaceSuffixLogic
Button@SELL_BUTTON: X:0-2
X: 3 Y:0-2
Width: 34 Width: 62
Height: 28 Height: 46
TooltipText: Sell IgnoreMouseOver: true
TooltipContainer: TOOLTIP_CONTAINER ImageCollection: sidebar
VisualHeight: 0 ImageName: background-supportoverlay
Children: Image@SIDEBAR_BACKGROUND_TOP:
Image@ICON: Logic: AddRaceSuffixLogic
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:
X: WINDOW_RIGHT - 250 X: WINDOW_RIGHT - 250
Y: 280 Y: 10
Width: 250 Width: 238
Height: 500 Height: 291
ReadyText: READY ImageCollection: sidebar
HoldText: ON HOLD ImageName: background-top
RequiresText: Requires {0} 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

View File

@@ -1,5 +1,5 @@
Container@INGAME_ROOT: Container@INGAME_ROOT:
Logic: IngameChromeLogic Logic: LoadIngamePlayerOrObserverUILogic
Children: Children:
LogicTicker@DISCONNECT_WATCHER: LogicTicker@DISCONNECT_WATCHER:
Logic: DisconnectWatcherLogic Logic: DisconnectWatcherLogic
@@ -19,41 +19,14 @@ Container@INGAME_ROOT:
Y: 0 Y: 0
Width: WINDOW_RIGHT Width: WINDOW_RIGHT
Height: WINDOW_BOTTOM 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: StrategicProgress@STRATEGIC_PROGRESS:
X: WINDOW_RIGHT/2 X: WINDOW_RIGHT/2
Y: 40 Y: 40
SupportPowerTimer@SUPPORT_POWER_TIMER: SupportPowerTimer@SUPPORT_POWER_TIMER:
X: 80 X: 80
Y: 34 Y: 10
Order: Descending Order: Descending
Container@PLAYER_ROOT: 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: Container@PERFORMANCE_INFO:
Logic: PerfDebugLogic Logic: PerfDebugLogic
Children: Children:

View File

@@ -108,3 +108,63 @@ Background@CLIENT_TOOLTIP:
Height: 10 Height: 10
Font: TinyBold 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

View File

@@ -16,7 +16,8 @@ World:
LightPaletteRotator: LightPaletteRotator:
ExcludePalettes: terrain, effect ExcludePalettes: terrain, effect
BuildingInfluence: BuildingInfluence:
ChooseBuildTabOnSelect: ProductionQueueFromSelection:
ProductionPaletteWidget: PRODUCTION_PALETTE
BridgeLayer: BridgeLayer:
Bridges: bridge1, bridge2, br1, br2, br3, sbridge1, sbridge2, sbridge3, sbridge4 Bridges: bridge1, bridge2, br1, br2, br3, sbridge1, sbridge2, sbridge3, sbridge4
CrateSpawner: 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB