* Expose more private values of Solution and SolutionComponent Expose SolutionComponent.ContainedSolution and Solution.Contents. Both needed by ReagentDispenserComponent. * Implement IExamine for SolutionComponent Allows players to see the contents of a solution by examining the entity which contains it. * Implement ReagentDispenserComponent Adds ReagentDispenserComponent. A component which can add or remove reagents from a solution container. It's written in a general way so that it can be used for things such as the Chemical dispensers in chemistry, but also the booze and soda dispensers in the bar. The chemicals it may dispense are defined in yaml, similar to the way that vending machines define which entities they can dispense, by defining a reagent pack. * Add chemical dispenser and equipment Adds the chemical dispenser, beaker, large beaker, dropper, and a few more chemicals. * Add booze and soda dispensers. Adds the booze and soda dispensers, and a few chemicals for them to dispense. There's no drink mixing or drunkenness yet. * Update engine submodule. * Remove unneeded and commented out code Had a few WIP notes and debug code bits I forgot to remove beforehand. * Make SolutionComponent._containedSolution and it's values private again - Remove `SolutionComponent.ContainedSolution` property, replace with specific access functions to maintain safety. - Make Solution.Contents return a `ReadOnlyCollection` instead of `_contents` to prevent uncontrolled access to the Solution values. - Add `SolutionComponent.RemoveAllSolution()` * Update Content.Shared/Chemistry/Solution.cs Commits a suggestion from RemieRichards to match the coding style of the rest of the codebase. Using `IReadOnlyList` instead of `IReadOnlyCollection`. Co-Authored-By: Remie Richards <remierichards@gmail.com> * Update Content.Shared/GameObjects/Components/Chemistry/SolutionComponent.cs Commits a suggestion from RemieRichards to match the coding style of the rest of the codebase. Using `IReadOnlyList` instead of `IReadOnlyCollection`. Co-Authored-By: Remie Richards <remierichards@gmail.com> * Add import for IReadOnlyList to Shared/SolutionComponent.cs * Add documentation * Improve localization Improve use of ILocalizationManager. * Resolve ReagentDispenserWindow._localizationManager before using it Forgot to do this in the last commit, resulting in a crash. Oops. * Add SolutionCaps.FitsInDispenser. Use in ReagentDispenserComponent. Used to limit large containers like buckets or mop buckets from being placed in a dispenser. Both have large capacities (500) and weren't designed to hold certain chemicals like a beaker is, so for now they can be blocked from being put in a dispenser by giving them that flag. * Add colors to new reagents * Update engine submodule
512 lines
24 KiB
C#
512 lines
24 KiB
C#
using Content.Client.GameObjects.EntitySystems;
|
|
using Content.Client.Utility;
|
|
using Robust.Client.Graphics.Drawing;
|
|
using Robust.Client.Interfaces.ResourceManagement;
|
|
using Robust.Client.UserInterface;
|
|
using Robust.Client.UserInterface.Controls;
|
|
using Robust.Client.UserInterface.CustomControls;
|
|
using Robust.Shared.IoC;
|
|
using Robust.Shared.Maths;
|
|
|
|
namespace Content.Client.UserInterface
|
|
{
|
|
public sealed class NanoStyle
|
|
{
|
|
public const string StyleClassLabelHeading = "LabelHeading";
|
|
public const string StyleClassLabelSubText = "LabelSubText";
|
|
public const string StyleClassLabelSecondaryColor = "LabelSecondaryColor";
|
|
public const string StyleClassButtonBig = "ButtonBig";
|
|
private static readonly Color NanoGold = Color.FromHex("#A88B5E");
|
|
|
|
//Used by the APC and SMES menus
|
|
public const string StyleClassPowerStateNone = "PowerStateNone";
|
|
public const string StyleClassPowerStateLow = "PowerStateLow";
|
|
public const string StyleClassPowerStateGood = "PowerStateGood";
|
|
|
|
public Stylesheet Stylesheet { get; }
|
|
|
|
public NanoStyle()
|
|
{
|
|
var resCache = IoCManager.Resolve<IResourceCache>();
|
|
var notoSans10 = resCache.GetFont("/Nano/NotoSans/NotoSans-Regular.ttf", 10);
|
|
var notoSans12 = resCache.GetFont("/Nano/NotoSans/NotoSans-Regular.ttf", 12);
|
|
var notoSansDisplayBold14 = resCache.GetFont("/Fonts/NotoSansDisplay/NotoSansDisplay-Bold.ttf", 14);
|
|
var notoSans16 = resCache.GetFont("/Nano/NotoSans/NotoSans-Regular.ttf", 16);
|
|
var notoSansBold16 = resCache.GetFont("/Nano/NotoSans/NotoSans-Bold.ttf", 16);
|
|
var textureCloseButton = resCache.GetTexture("/Nano/cross.svg.png");
|
|
var windowHeaderTex = resCache.GetTexture("/Nano/window_header.png");
|
|
var windowHeader = new StyleBoxTexture
|
|
{
|
|
Texture = windowHeaderTex,
|
|
PatchMarginBottom = 3,
|
|
ExpandMarginBottom = 3,
|
|
};
|
|
var windowBackgroundTex = resCache.GetTexture("/Nano/window_background.png");
|
|
var windowBackground = new StyleBoxTexture
|
|
{
|
|
Texture = windowBackgroundTex,
|
|
};
|
|
windowBackground.SetPatchMargin(StyleBox.Margin.Horizontal | StyleBox.Margin.Bottom, 2);
|
|
windowBackground.SetExpandMargin(StyleBox.Margin.Horizontal | StyleBox.Margin.Bottom, 2);
|
|
|
|
var buttonNormalTex = resCache.GetTexture("/Nano/button_normal.png");
|
|
var buttonNormal = new StyleBoxTexture
|
|
{
|
|
Texture = buttonNormalTex,
|
|
};
|
|
buttonNormal.SetPatchMargin(StyleBox.Margin.All, 2);
|
|
buttonNormal.SetContentMarginOverride(StyleBox.Margin.Horizontal, 8);
|
|
|
|
var buttonHoverTex = resCache.GetTexture("/Nano/button_hover.png");
|
|
var buttonHover = new StyleBoxTexture
|
|
{
|
|
Texture = buttonHoverTex,
|
|
};
|
|
buttonHover.SetPatchMargin(StyleBox.Margin.All, 2);
|
|
buttonHover.SetContentMarginOverride(StyleBox.Margin.Horizontal, 8);
|
|
|
|
var buttonPressedTex = resCache.GetTexture("/Nano/button_pressed.png");
|
|
var buttonPressed = new StyleBoxTexture
|
|
{
|
|
Texture = buttonPressedTex,
|
|
};
|
|
buttonPressed.SetPatchMargin(StyleBox.Margin.All, 2);
|
|
buttonPressed.SetContentMarginOverride(StyleBox.Margin.Horizontal, 8);
|
|
|
|
var buttonDisabledTex = resCache.GetTexture("/Nano/button_disabled.png");
|
|
var buttonDisabled = new StyleBoxTexture
|
|
{
|
|
Texture = buttonDisabledTex,
|
|
};
|
|
buttonDisabled.SetPatchMargin(StyleBox.Margin.All, 2);
|
|
buttonDisabled.SetContentMarginOverride(StyleBox.Margin.Horizontal, 8);
|
|
|
|
var lineEditTex = resCache.GetTexture("/Nano/lineedit.png");
|
|
var lineEdit = new StyleBoxTexture
|
|
{
|
|
Texture = lineEditTex,
|
|
};
|
|
lineEdit.SetPatchMargin(StyleBox.Margin.All, 3);
|
|
lineEdit.SetContentMarginOverride(StyleBox.Margin.Horizontal, 5);
|
|
|
|
var tabContainerPanelTex = resCache.GetTexture("/Nano/tabcontainer_panel.png");
|
|
var tabContainerPanel = new StyleBoxTexture
|
|
{
|
|
Texture = tabContainerPanelTex,
|
|
};
|
|
tabContainerPanel.SetPatchMargin(StyleBox.Margin.All, 2);
|
|
|
|
var tabContainerBoxActive = new StyleBoxFlat {BackgroundColor = new Color(64, 64, 64)};
|
|
tabContainerBoxActive.SetContentMarginOverride(StyleBox.Margin.Horizontal, 5);
|
|
var tabContainerBoxInactive = new StyleBoxFlat {BackgroundColor = new Color(32, 32, 32)};
|
|
tabContainerBoxInactive.SetContentMarginOverride(StyleBox.Margin.Horizontal, 5);
|
|
|
|
var vScrollBarGrabberNormal = new StyleBoxFlat
|
|
{
|
|
BackgroundColor = Color.Gray.WithAlpha(0.35f), ContentMarginLeftOverride = 10
|
|
};
|
|
var vScrollBarGrabberHover = new StyleBoxFlat
|
|
{
|
|
BackgroundColor = new Color(140, 140, 140).WithAlpha(0.35f), ContentMarginLeftOverride = 10
|
|
};
|
|
var vScrollBarGrabberGrabbed = new StyleBoxFlat
|
|
{
|
|
BackgroundColor = new Color(160, 160, 160).WithAlpha(0.35f), ContentMarginLeftOverride = 10
|
|
};
|
|
|
|
var hScrollBarGrabberNormal = new StyleBoxFlat
|
|
{
|
|
BackgroundColor = Color.Gray.WithAlpha(0.35f), ContentMarginTopOverride = 10
|
|
};
|
|
var hScrollBarGrabberHover = new StyleBoxFlat
|
|
{
|
|
BackgroundColor = new Color(140, 140, 140).WithAlpha(0.35f), ContentMarginTopOverride = 10
|
|
};
|
|
var hScrollBarGrabberGrabbed = new StyleBoxFlat
|
|
{
|
|
BackgroundColor = new Color(160, 160, 160).WithAlpha(0.35f), ContentMarginTopOverride = 10
|
|
};
|
|
|
|
var progressBarBackground = new StyleBoxFlat
|
|
{
|
|
BackgroundColor = new Color(0.25f, 0.25f, 0.25f)
|
|
};
|
|
progressBarBackground.SetContentMarginOverride(StyleBox.Margin.Vertical, 5);
|
|
|
|
var progressBarForeground = new StyleBoxFlat
|
|
{
|
|
BackgroundColor = new Color(0.25f, 0.50f, 0.25f)
|
|
};
|
|
progressBarForeground.SetContentMarginOverride(StyleBox.Margin.Vertical, 5);
|
|
|
|
// CheckBox
|
|
var checkBoxTextureChecked = resCache.GetTexture("/Nano/checkbox_checked.svg.96dpi.png");
|
|
var checkBoxTextureUnchecked = resCache.GetTexture("/Nano/checkbox_unchecked.svg.96dpi.png");
|
|
|
|
// Tooltip box
|
|
var tooltipTexture = resCache.GetTexture("/Nano/tooltip.png");
|
|
var tooltipBox = new StyleBoxTexture
|
|
{
|
|
Texture = tooltipTexture,
|
|
};
|
|
tooltipBox.SetPatchMargin(StyleBox.Margin.All, 2);
|
|
tooltipBox.SetContentMarginOverride(StyleBox.Margin.Horizontal, 5);
|
|
|
|
// Placeholder
|
|
var placeholderTexture = resCache.GetTexture("/Nano/placeholder.png");
|
|
var placeholder = new StyleBoxTexture { Texture = placeholderTexture };
|
|
placeholder.SetPatchMargin(StyleBox.Margin.All, 24);
|
|
placeholder.SetExpandMargin(StyleBox.Margin.All, -5);
|
|
|
|
var itemListBackgroundSelected = new StyleBoxFlat {BackgroundColor = new Color(75, 75, 86)};
|
|
itemListBackgroundSelected.SetContentMarginOverride(StyleBox.Margin.Vertical, 2);
|
|
itemListBackgroundSelected.SetContentMarginOverride(StyleBox.Margin.Horizontal, 4);
|
|
var itemListItemBackgroundDisabled = new StyleBoxFlat {BackgroundColor = new Color(10, 10, 12)};
|
|
itemListItemBackgroundDisabled.SetContentMarginOverride(StyleBox.Margin.Vertical, 2);
|
|
itemListItemBackgroundDisabled.SetContentMarginOverride(StyleBox.Margin.Horizontal, 4);
|
|
var itemListItemBackground = new StyleBoxFlat {BackgroundColor = new Color(55, 55, 68)};
|
|
itemListItemBackground.SetContentMarginOverride(StyleBox.Margin.Vertical, 2);
|
|
itemListItemBackground.SetContentMarginOverride(StyleBox.Margin.Horizontal, 4);
|
|
|
|
Stylesheet = new Stylesheet(new[]
|
|
{
|
|
// Default font.
|
|
new StyleRule(
|
|
new SelectorElement(null, null, null, null),
|
|
new[]
|
|
{
|
|
new StyleProperty("font", notoSans12),
|
|
}),
|
|
|
|
// Window title.
|
|
new StyleRule(
|
|
new SelectorElement(typeof(Label), new[] {SS14Window.StyleClassWindowTitle}, null, null),
|
|
new[]
|
|
{
|
|
new StyleProperty(Label.StylePropertyFontColor, NanoGold),
|
|
new StyleProperty(Label.StylePropertyFont, notoSansDisplayBold14),
|
|
}),
|
|
// Window background.
|
|
new StyleRule(
|
|
new SelectorElement(null, new[] {SS14Window.StyleClassWindowPanel}, null, null),
|
|
new[]
|
|
{
|
|
new StyleProperty(Panel.StylePropertyPanel, windowBackground),
|
|
}),
|
|
// Window header.
|
|
new StyleRule(
|
|
new SelectorElement(typeof(Panel), new[] {SS14Window.StyleClassWindowHeader}, null, null),
|
|
new[]
|
|
{
|
|
new StyleProperty(Panel.StylePropertyPanel, windowHeader),
|
|
}),
|
|
// Window close button base texture.
|
|
new StyleRule(
|
|
new SelectorElement(typeof(TextureButton), new[] {SS14Window.StyleClassWindowCloseButton}, null,
|
|
null),
|
|
new[]
|
|
{
|
|
new StyleProperty(TextureButton.StylePropertyTexture, textureCloseButton),
|
|
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#4B596A")),
|
|
}),
|
|
// Window close button hover.
|
|
new StyleRule(
|
|
new SelectorElement(typeof(TextureButton), new[] {SS14Window.StyleClassWindowCloseButton}, null,
|
|
new [] {TextureButton.StylePseudoClassHover}),
|
|
new[]
|
|
{
|
|
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#7F3636")),
|
|
}),
|
|
// Window close button pressed.
|
|
new StyleRule(
|
|
new SelectorElement(typeof(TextureButton), new[] {SS14Window.StyleClassWindowCloseButton}, null,
|
|
new [] {TextureButton.StylePseudoClassPressed}),
|
|
new[]
|
|
{
|
|
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#753131")),
|
|
}),
|
|
|
|
// Regular buttons!
|
|
new StyleRule(
|
|
new SelectorElement(typeof(Button), null, null, new [] {Button.StylePseudoClassNormal}),
|
|
new[]
|
|
{
|
|
new StyleProperty(Button.StylePropertyStyleBox, buttonNormal),
|
|
}),
|
|
new StyleRule(
|
|
new SelectorElement(typeof(Button), null, null, new [] {Button.StylePseudoClassHover}),
|
|
new[]
|
|
{
|
|
new StyleProperty(Button.StylePropertyStyleBox, buttonHover),
|
|
}),
|
|
new StyleRule(
|
|
new SelectorElement(typeof(Button), null, null, new [] {Button.StylePseudoClassPressed}),
|
|
new[]
|
|
{
|
|
new StyleProperty(Button.StylePropertyStyleBox, buttonPressed),
|
|
}),
|
|
new StyleRule(
|
|
new SelectorElement(typeof(Button), null, null, new [] {Button.StylePseudoClassDisabled}),
|
|
new[]
|
|
{
|
|
new StyleProperty(Button.StylePropertyStyleBox, buttonDisabled),
|
|
new StyleProperty("font-color", Color.FromHex("#E5E5E581")),
|
|
}),
|
|
|
|
// Main menu: Make those buttons bigger.
|
|
new StyleRule(
|
|
new SelectorChild(
|
|
new SelectorElement(null, null, "mainMenuVBox", null),
|
|
new SelectorElement(typeof(Button), null, null, null)),
|
|
new[]
|
|
{
|
|
new StyleProperty("font", notoSansBold16),
|
|
}),
|
|
|
|
// Main menu: also make those buttons slightly more separated.
|
|
new StyleRule(new SelectorElement(typeof(BoxContainer), null, "mainMenuVBox", null),
|
|
new[]
|
|
{
|
|
new StyleProperty(BoxContainer.StylePropertySeparation, 2),
|
|
}),
|
|
|
|
// Fancy LineEdit
|
|
new StyleRule(new SelectorElement(typeof(LineEdit), null, null, null),
|
|
new[]
|
|
{
|
|
new StyleProperty(LineEdit.StylePropertyStyleBox, lineEdit),
|
|
}),
|
|
|
|
new StyleRule(
|
|
new SelectorElement(typeof(LineEdit), new[] {LineEdit.StyleClassLineEditNotEditable}, null, null),
|
|
new[]
|
|
{
|
|
new StyleProperty("font-color", new Color(192, 192, 192)),
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(LineEdit), null, null, new [] {LineEdit.StylePseudoClassPlaceholder}),
|
|
new[]
|
|
{
|
|
new StyleProperty("font-color", Color.Gray),
|
|
}),
|
|
|
|
// TabContainer
|
|
new StyleRule(new SelectorElement(typeof(TabContainer), null, null, null),
|
|
new[]
|
|
{
|
|
new StyleProperty(TabContainer.StylePropertyPanelStyleBox, tabContainerPanel),
|
|
new StyleProperty(TabContainer.StylePropertyTabStyleBox, tabContainerBoxActive),
|
|
new StyleProperty(TabContainer.StylePropertyTabStyleBoxInactive, tabContainerBoxInactive),
|
|
}),
|
|
|
|
// Scroll bars
|
|
new StyleRule(new SelectorElement(typeof(VScrollBar), null, null, null),
|
|
new[]
|
|
{
|
|
new StyleProperty(ScrollBar.StylePropertyGrabber,
|
|
vScrollBarGrabberNormal),
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(VScrollBar), null, null, new [] {ScrollBar.StylePseudoClassHover}),
|
|
new[]
|
|
{
|
|
new StyleProperty(ScrollBar.StylePropertyGrabber,
|
|
vScrollBarGrabberHover),
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(VScrollBar), null, null, new [] {ScrollBar.StylePseudoClassGrabbed}),
|
|
new[]
|
|
{
|
|
new StyleProperty(ScrollBar.StylePropertyGrabber,
|
|
vScrollBarGrabberGrabbed),
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(HScrollBar), null, null, null),
|
|
new[]
|
|
{
|
|
new StyleProperty(ScrollBar.StylePropertyGrabber,
|
|
hScrollBarGrabberNormal),
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(HScrollBar), null, null, new [] {ScrollBar.StylePseudoClassHover}),
|
|
new[]
|
|
{
|
|
new StyleProperty(ScrollBar.StylePropertyGrabber,
|
|
hScrollBarGrabberHover),
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(HScrollBar), null, null, new [] {ScrollBar.StylePseudoClassGrabbed}),
|
|
new[]
|
|
{
|
|
new StyleProperty(ScrollBar.StylePropertyGrabber,
|
|
hScrollBarGrabberGrabbed),
|
|
}),
|
|
|
|
// ProgressBar
|
|
new StyleRule(new SelectorElement(typeof(ProgressBar), null, null, null),
|
|
new[]
|
|
{
|
|
new StyleProperty(ProgressBar.StylePropertyBackground, progressBarBackground),
|
|
new StyleProperty(ProgressBar.StylePropertyForeground, progressBarForeground)
|
|
}),
|
|
|
|
// CheckBox
|
|
new StyleRule(new SelectorElement(typeof(CheckBox), null, null, null), new[]
|
|
{
|
|
new StyleProperty(CheckBox.StylePropertyIcon, checkBoxTextureUnchecked),
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(CheckBox), null, null, new [] {Button.StylePseudoClassPressed}), new[]
|
|
{
|
|
new StyleProperty(CheckBox.StylePropertyIcon, checkBoxTextureChecked),
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(CheckBox), null, null, null), new[]
|
|
{
|
|
new StyleProperty(CheckBox.StylePropertyHSeparation, 3),
|
|
}),
|
|
|
|
// Tooltip
|
|
new StyleRule(new SelectorElement(typeof(Tooltip), null, null, null), new[]
|
|
{
|
|
new StyleProperty(PanelContainer.StylePropertyPanel, tooltipBox)
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(PanelContainer), new []{"tooltipBox"}, null, null), new[]
|
|
{
|
|
new StyleProperty(PanelContainer.StylePropertyPanel, tooltipBox)
|
|
}),
|
|
|
|
// Entity tooltip
|
|
new StyleRule(
|
|
new SelectorElement(typeof(PanelContainer), new[] {ExamineSystem.StyleClassEntityTooltip}, null,
|
|
null), new[]
|
|
{
|
|
new StyleProperty(PanelContainer.StylePropertyPanel, tooltipBox)
|
|
}),
|
|
|
|
// ItemList
|
|
new StyleRule(new SelectorElement(typeof(ItemList), null, null, null), new[]
|
|
{
|
|
new StyleProperty(ItemList.StylePropertyBackground,
|
|
new StyleBoxFlat {BackgroundColor = new Color(32, 32, 40)}),
|
|
new StyleProperty(ItemList.StylePropertyItemBackground,
|
|
itemListItemBackground),
|
|
new StyleProperty(ItemList.StylePropertyDisabledItemBackground,
|
|
itemListItemBackgroundDisabled),
|
|
new StyleProperty(ItemList.StylePropertySelectedItemBackground,
|
|
itemListBackgroundSelected)
|
|
}),
|
|
|
|
// Tree
|
|
new StyleRule(new SelectorElement(typeof(Tree), null, null, null), new[]
|
|
{
|
|
new StyleProperty(Tree.StylePropertyBackground,
|
|
new StyleBoxFlat {BackgroundColor = new Color(32, 32, 40)}),
|
|
new StyleProperty(Tree.StylePropertyItemBoxSelected, new StyleBoxFlat
|
|
{
|
|
BackgroundColor = new Color(55, 55, 68),
|
|
ContentMarginLeftOverride = 4
|
|
})
|
|
}),
|
|
|
|
// Placeholder
|
|
new StyleRule(new SelectorElement(typeof(Placeholder), null, null, null), new []
|
|
{
|
|
new StyleProperty(PanelContainer.StylePropertyPanel, placeholder),
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(Label), new []{Placeholder.StyleClassPlaceholderText}, null, null), new []
|
|
{
|
|
new StyleProperty(Label.StylePropertyFont, notoSans16),
|
|
new StyleProperty(Label.StylePropertyFontColor, new Color(103, 103, 103, 128)),
|
|
}),
|
|
|
|
// Big Label
|
|
new StyleRule(new SelectorElement(typeof(Label), new []{StyleClassLabelHeading}, null, null), new []
|
|
{
|
|
new StyleProperty(Label.StylePropertyFont, notoSansBold16),
|
|
new StyleProperty(Label.StylePropertyFontColor, NanoGold),
|
|
} ),
|
|
|
|
// Small Label
|
|
new StyleRule(new SelectorElement(typeof(Label), new []{StyleClassLabelSubText}, null, null), new []
|
|
{
|
|
new StyleProperty(Label.StylePropertyFont, notoSans10),
|
|
new StyleProperty(Label.StylePropertyFontColor, Color.DarkGray),
|
|
} ),
|
|
|
|
new StyleRule(new SelectorElement(typeof(Label), new []{StyleClassLabelSecondaryColor}, null, null), new []
|
|
{
|
|
new StyleProperty(Label.StylePropertyFont, notoSans12),
|
|
new StyleProperty(Label.StylePropertyFontColor, Color.DarkGray),
|
|
} ),
|
|
|
|
// Big Button
|
|
new StyleRule(new SelectorElement(typeof(Button), new []{StyleClassButtonBig}, null, null), new []
|
|
{
|
|
new StyleProperty("font", notoSans16)
|
|
}),
|
|
|
|
//APC and SMES power state label colors
|
|
new StyleRule(new SelectorElement(typeof(Label), new []{StyleClassPowerStateNone}, null, null), new []
|
|
{
|
|
new StyleProperty(Label.StylePropertyFontColor, new Color(0.8f, 0.0f, 0.0f))
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(Label), new []{StyleClassPowerStateLow}, null, null), new []
|
|
{
|
|
new StyleProperty(Label.StylePropertyFontColor, new Color(0.9f, 0.36f, 0.0f))
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(Label), new []{StyleClassPowerStateGood}, null, null), new []
|
|
{
|
|
new StyleProperty(Label.StylePropertyFontColor, new Color(0.024f, 0.8f, 0.0f))
|
|
}),
|
|
|
|
// Those top menu buttons.
|
|
new StyleRule(
|
|
new SelectorElement(typeof(GameHud.TopButton), null, null, new [] {Button.StylePseudoClassNormal}), new []
|
|
{
|
|
new StyleProperty(Button.StylePropertyStyleBox, buttonNormal),
|
|
}),
|
|
|
|
new StyleRule(
|
|
new SelectorElement(typeof(GameHud.TopButton), null, null, new [] {Button.StylePseudoClassPressed}), new []
|
|
{
|
|
new StyleProperty(Button.StylePropertyStyleBox, buttonPressed),
|
|
}),
|
|
|
|
new StyleRule(
|
|
new SelectorElement(typeof(GameHud.TopButton), null, null, new [] {Button.StylePseudoClassHover}), new []
|
|
{
|
|
new StyleProperty(Button.StylePropertyStyleBox, buttonHover),
|
|
}),
|
|
|
|
new StyleRule(
|
|
new SelectorElement(typeof(Label), new [] {GameHud.TopButton.StyleClassLabelTopButton}, null, null), new []
|
|
{
|
|
new StyleProperty(Label.StylePropertyFont, notoSansDisplayBold14),
|
|
}),
|
|
|
|
// Targeting doll
|
|
|
|
new StyleRule(new SelectorElement(typeof(TextureButton), new []{TargetingDoll.StyleClassTargetDollZone}, null, new [] {TextureButton.StylePseudoClassNormal}), new []
|
|
{
|
|
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#F00")),
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(TextureButton), new []{TargetingDoll.StyleClassTargetDollZone}, null, new [] {TextureButton.StylePseudoClassHover}), new []
|
|
{
|
|
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#0F0")),
|
|
}),
|
|
|
|
new StyleRule(new SelectorElement(typeof(TextureButton), new []{TargetingDoll.StyleClassTargetDollZone}, null, new [] {TextureButton.StylePseudoClassPressed}), new []
|
|
{
|
|
new StyleProperty(Control.StylePropertyModulateSelf, Color.FromHex("#00F")),
|
|
}),
|
|
});
|
|
}
|
|
}
|
|
}
|