Доработка лобби, адекватное скрытие блоков лобби.

This commit is contained in:
VigersRay 2024-09-16 19:02:09 +03:00
parent 81eb672e8c
commit 9757ae628b
8 changed files with 130 additions and 110 deletions

View file

@ -72,10 +72,14 @@
<BoxContainer Orientation="Vertical" Name="ServersHubBox" VerticalExpand="True"
VerticalAlignment="Bottom" Access="Public">
<controls:StripeBack>
<BoxContainer Orientation="Horizontal" Name="ServersHubHeader" MouseFilter="Pass" >
<BoxContainer Orientation="Horizontal" Name="ServersHubHeader" >
<Label HorizontalExpand="True" Name="ServersHubHeaderLabel" Access="Public"
Text="Сейчас играет: 0/0" VAlign="Center" StyleClasses="LabelHeading"
Align="Center"/>
<TextureRect Name="ServersHubHider" VerticalAlignment="Center" SetSize="25 25"
Stretch="KeepAspectCentered" Margin="5 1" MouseFilter="Pass"
HorizontalAlignment="Right" Access="Public">
</TextureRect>
</BoxContainer>
</controls:StripeBack>
<BoxContainer Orientation="Vertical" Name="ServersHubContent" HorizontalExpand="True"
@ -89,9 +93,13 @@
MaxWidth="530" VerticalAlignment="Bottom">
<BoxContainer Orientation="Vertical" VerticalExpand="True" VerticalAlignment="Stretch">
<controls:StripeBack VerticalAlignment="Top">
<BoxContainer Orientation="Horizontal" Name="ChangelogHeader" MouseFilter="Pass">
<BoxContainer Orientation="Horizontal" Name="ChangelogHeader">
<Label HorizontalExpand="True" Text="{Loc 'changelog-lobby-window-title'}"
VAlign="Center" StyleClasses="LabelHeading" Align="Center"/>
<TextureRect Name="ChangelogHider" VerticalAlignment="Center" SetSize="25 25"
Stretch="KeepAspectCentered" Margin="5 1" MouseFilter="Pass"
HorizontalAlignment="Right" Access="Public">
</TextureRect>
</BoxContainer>
</controls:StripeBack>
<BoxContainer Orientation="Vertical" MinHeight="200" MaxHeight="250" Name="ChangelogContent" VerticalExpand="True"
@ -114,7 +122,8 @@
<BoxContainer Orientation="Vertical" HorizontalExpand="True" HorizontalAlignment="Right">
<PanelContainer Name="RightPanel" MinWidth="500" StyleClasses="AngleRect" VerticalExpand="True"
VerticalAlignment="Stretch" HorizontalExpand="True">
<BoxContainer Orientation="Vertical" VerticalExpand="True" HorizontalExpand="True" VerticalAlignment="Top">
<BoxContainer Orientation="Vertical" VerticalExpand="True" HorizontalExpand="True"
VerticalAlignment="Stretch" SeparationOverride="4">
<BoxContainer Orientation="Horizontal" HorizontalExpand="True" Margin="3 3 3 3"
HorizontalAlignment="Right" SizeFlagsStretchRatio="1">
<Button Name="AHelpButton" Access="Public" Text="{Loc 'ui-lobby-ahelp-button'}"
@ -125,11 +134,16 @@
<Button Name="LeaveButton" Access="Public" Text="{Loc 'ui-lobby-leave-button'}"
StyleClasses="ButtonBig"/>
</BoxContainer>
<BoxContainer Orientation="Vertical" HorizontalExpand="True" VerticalAlignment="Top">
<BoxContainer Orientation="Vertical" HorizontalExpand="True" VerticalAlignment="Top"
SizeFlagsStretchRatio="2">
<controls:StripeBack>
<BoxContainer Orientation="Horizontal" Name="ServerInfoHeader" MouseFilter="Pass">
<BoxContainer Orientation="Horizontal" Name="ServerInfoHeader">
<Label HorizontalExpand="True" Text="{Loc 'ui-lobby-server-info-block'}"
VAlign="Center" StyleClasses="LabelHeading" Align="Center"/>
<TextureRect Name="ServerInfoHider" VerticalAlignment="Center" SetSize="25 25"
Stretch="KeepAspectCentered" Margin="5 1" MouseFilter="Pass"
HorizontalAlignment="Right" Access="Public">
</TextureRect>
</BoxContainer>
</controls:StripeBack>
<BoxContainer Orientation="Vertical" Name="ServerInfoContent" >
@ -140,11 +154,15 @@
</BoxContainer>
</BoxContainer>
<BoxContainer Orientation="Vertical" HorizontalExpand="True" HorizontalAlignment="Stretch"
VerticalExpand="True" VerticalAlignment="Top" >
<controls:StripeBack Name="CharacterInfoHeader" MouseFilter="Pass">
VerticalAlignment="Top" SizeFlagsStretchRatio="2">
<controls:StripeBack Name="CharacterInfoHeader">
<BoxContainer Orientation="Horizontal">
<Label HorizontalExpand="True" Text="{Loc 'lobby-character-preview-panel-header'}"
VAlign="Center" StyleClasses="LabelHeading" Align="Center"/>
<TextureRect Name="CharacterInfoHider" VerticalAlignment="Center" SetSize="25 25"
Stretch="KeepAspectCentered" Margin="5 1" MouseFilter="Pass"
HorizontalAlignment="Right" Access="Public">
</TextureRect>
</BoxContainer>
</controls:StripeBack>
<BoxContainer Orientation="Vertical" Name="CharacterInfoContent" MinHeight="180">
@ -152,15 +170,23 @@
HorizontalAlignment="Stretch" Access="Public" />
</BoxContainer>
</BoxContainer>
<BoxContainer Orientation="Vertical" HorizontalExpand="True" VerticalExpand="True" VerticalAlignment="Top">
<controls:StripeBack Name="ChatHeader" MouseFilter="Pass">
<BoxContainer Orientation="Vertical" HorizontalExpand="True" VerticalExpand="True"
VerticalAlignment="Stretch" SizeFlagsStretchRatio="5">
<controls:StripeBack Name="ChatHeader">
<BoxContainer Orientation="Horizontal">
<Label HorizontalExpand="True" Text="{Loc 'hud-chatbox-channel-Chat'}"
VAlign="Center" StyleClasses="LabelHeading" Align="Center"/>
<TextureRect Name="ChatHider" VerticalAlignment="Center" SetSize="25 25"
Stretch="KeepAspectCentered" Margin="5 1" MouseFilter="Pass"
HorizontalAlignment="Right" Access="Public">
</TextureRect>
</BoxContainer>
</controls:StripeBack>
<BoxContainer Name="ChatContent" MinHeight="450" MaxHeight="450" HorizontalExpand="True" VerticalExpand="True" VerticalAlignment="Top">
<widgets:ChatBox Name="Chat" MinHeight="450" MaxHeight="450" VerticalAlignment="Top" Access="Public" HorizontalExpand="True" VerticalExpand="True" Margin="3 3 3 3" />
<BoxContainer Name="ChatContent" VerticalAlignment="Stretch" HorizontalExpand="True"
VerticalExpand="True">
<widgets:ChatBox Name="Chat" VerticalAlignment="Stretch"
Access="Public" HorizontalExpand="True" VerticalExpand="True"
Margin="3 3 3 3"/>
</BoxContainer>
</BoxContainer>
</BoxContainer>

View file

@ -2,13 +2,11 @@ using Content.Client.Message;
using Content.Client.UserInterface.Systems.EscapeMenu;
using Robust.Client.AutoGenerated;
using Robust.Client.Console;
using Robust.Client.State;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Random;
using Robust.Shared.Timing;
using System.Numerics;
using Content.Client._Sunrise.ServersHub;
using Content.Client.Parallax.Managers;
using Content.Client.Resources;
using Content.Shared._Sunrise.SunriseCCVars;
@ -16,7 +14,6 @@ using Robust.Client.Graphics;
using Robust.Client.ResourceManagement;
using Robust.Shared.Configuration;
using Robust.Shared.Input;
using Content.Shared._Sunrise.SunriseCCVars; // Sunrise
namespace Content.Client.Lobby.UI
{
@ -24,7 +21,6 @@ namespace Content.Client.Lobby.UI
public sealed partial class LobbyGui : UIScreen
{
[Dependency] private readonly IClientConsoleHost _consoleHost = default!;
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly IParallaxManager _parallaxManager = default!;
[Dependency] private readonly IRobustRandom _random = default!;
@ -33,6 +29,13 @@ namespace Content.Client.Lobby.UI
public string LobbyParalax = "FastSpace"; // Sunrise-edit
[ViewVariables(VVAccess.ReadWrite)] public Vector2 Offset { get; set; } // Sunrise-edit
public const string DefaultIconExpanded = "/Textures/Interface/Nano/inverted_triangle.svg.png";
public const string DefaultIconCollapsed = "/Textures/Interface/Nano/top_triangle.svg.png";
public const string StylePropertyIconExpanded = "IconExpanded";
public const string StylePropertyIconCollapsed = "IconCollapsed";
public Texture? IconExpanded;
public Texture? IconCollapsed;
private readonly StyleBoxTexture _back;
@ -48,47 +51,52 @@ namespace Content.Client.Lobby.UI
LeaveButton.OnPressed += _ => _consoleHost.ExecuteCommand("disconnect");
OptionsButton.OnPressed += _ => UserInterfaceManager.GetUIController<OptionsUIController>().ToggleWindow();
ChatHeader.OnKeyBindUp += args =>
// Sunrise-start
ChatHider.OnKeyBindUp += args =>
{
if (args.Function != EngineKeyFunctions.Use)
return;
ChatContent.Visible = !ChatContent.Visible;
ChatHider.Texture = ChatContent.Visible ? IconExpanded : IconCollapsed;
};
ServerInfoHeader.OnKeyBindUp += args =>
ServerInfoHider.OnKeyBindUp += args =>
{
if (args.Function != EngineKeyFunctions.Use)
return;
ServerInfoContent.Visible = !ServerInfoContent.Visible;
ServerInfoHider.Texture = ServerInfoContent.Visible ? IconExpanded : IconCollapsed;
};
CharacterInfoHeader.OnKeyBindUp += args =>
CharacterInfoHider.OnKeyBindUp += args =>
{
if (args.Function != EngineKeyFunctions.Use)
return;
CharacterInfoContent.Visible = !CharacterInfoContent.Visible;
CharacterInfoHider.Texture = CharacterInfoContent.Visible ? IconExpanded : IconCollapsed;
};
ServersHubHeader.OnKeyBindUp += args =>
ServersHubHider.OnKeyBindUp += args =>
{
if (args.Function != EngineKeyFunctions.Use)
return;
ServersHubContent.Visible = !ServersHubContent.Visible;
ServersHubHider.Texture = ServersHubContent.Visible ? IconExpanded : IconCollapsed;
};
ChangelogHeader.OnKeyBindUp += args =>
ChangelogHider.OnKeyBindUp += args =>
{
if (args.Function != EngineKeyFunctions.Use)
return;
ChangelogContent.Visible = !ChangelogContent.Visible;
ChangelogHider.Texture = ChangelogContent.Visible ? IconExpanded : IconCollapsed;
};
// Sunrise-start
Offset = new Vector2(_random.Next(0, 1000), _random.Next(0, 1000));
_parallaxManager.LoadParallaxByName(LobbyParalax);
@ -123,9 +131,27 @@ namespace Content.Client.Lobby.UI
Chat.SetChatOpacity();
ServerName.Text = Loc.GetString("ui-lobby-cfgwelcome", ("name", _configurationManager.GetCVar(SunriseCCVars.ServerName)));
LoadIcons();
// Sunrise-end
}
private void LoadIcons()
{
if (!TryGetStyleProperty(StylePropertyIconExpanded, out IconExpanded))
IconExpanded = _resourceCache.GetTexture(DefaultIconExpanded);
if (!TryGetStyleProperty(StylePropertyIconCollapsed, out IconCollapsed))
{
IconCollapsed = _resourceCache.GetTexture(DefaultIconCollapsed);
}
ServersHubHider.Texture = ServersHubContent.Visible ? IconExpanded : IconCollapsed;
ChangelogHider.Texture = ChangelogContent.Visible ? IconExpanded : IconCollapsed;
ServerInfoHider.Texture = ServerInfoContent.Visible ? IconExpanded : IconCollapsed;
CharacterInfoHider.Texture = CharacterInfoContent.Visible ? IconExpanded : IconCollapsed;
ChatHider.Texture = ChatContent.Visible ? IconExpanded : IconCollapsed;
}
private void OnServersHubEnableChanged(bool enable)
{
SetServersHubEnable(enable);

View file

@ -3389,3 +3389,19 @@
type: Remove
id: 256
time: '2024-09-16T13:38:08.555769+00:00'
- author: VigersRay
changes:
- message: "\u0414\u043E\u0440\u0430\u0431\u043E\u0442\u0430\u043D \u0438\u043D\u0442\
\u0435\u0440\u0444\u0435\u0439\u0441 \u043B\u043E\u0431\u0431\u0438, \u0442\u0435\
\u043F\u0435\u0440\u044C \u043E\u043D \u043C\u0430\u0448\u0442\u0430\u0431\u0438\
\u0440\u0443\u0435\u0442\u0441\u044F \u043F\u043E\u0434 \u043B\u044E\u0431\u044B\
\u0435 \u043C\u043E\u043D\u0438\u0442\u043E\u0440\u044B."
type: Tweak
- message: "\u0421\u043A\u0440\u044B\u0442\u0438\u0435 \u0431\u043B\u043E\u043A\u043E\
\u0432 \u043B\u043E\u0431\u0431\u0438 \u0442\u0435\u043F\u0435\u0440\u044C \u0440\
\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043E \u0447\u0435\u0440\
\u0435\u0437 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435\
\ \u043A\u043D\u043E\u043F\u043A\u0438 \u0432 \u0443\u0433\u043B\u0443."
type: Tweak
id: 257
time: '2024-09-16T16:02:01.332732+00:00'

View file

@ -1,91 +1,22 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="26"
height="26"
viewBox="0 0 6.8791659 6.8791669"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="slider_outline.svg"
inkscape:export-filename="/home/pj/Projects/space-station-14/Resources/Textures/Interface/Nano/slider_outline.svg.96dpi.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
inkscape:cx="15.376173"
inkscape:cy="11.073013"
inkscape:document-units="px"
inkscape:current-layer="g3446"
showgrid="false"
inkscape:pagecheckerboard="true"
units="px"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1043"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1">
<sodipodi:guide
position="4.2333332,5.7880559"
orientation="1,0"
id="guide5429"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="7.3198434,4.2333332"
orientation="0,1"
id="guide5431"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-2.074635,-286.42231)">
<g
id="g3446"
inkscape:label="Charge Bar"
transform="translate(13.249331,26.983438)">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m -11.174696,259.43888 v 4.23333 l 2.6458332,2.64583 h 4.2333332 v -4.23333 l -2.6458332,-2.64583 z m 0.529297,0.52734 h 3.4834139 l 2.3371585,2.33724 v 3.48528 h -3.4833332 l -2.3372392,-2.33689 z"
id="rect1684-3-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccc" />
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg" viewBox="0 0 26 26">
<defs>
<style>
.cls-1 {
fill: #fff;
}
</style>
</defs>
<!-- Generator: Adobe Illustrator 28.7.1, SVG Export Plug-In . SVG Version: 1.2.0 Build 142) -->
<g>
<g id="svg8" inkscape:export-filename="/home/pj/Projects/space-station-14/Resources/Textures/Interface/Nano/slider_outline.svg.96dpi.png" inkscape:export-xdpi="96" inkscape:version="0.92.4 5da689c313, 2019-01-14">
<sodipodi:namedview id="base" bordercolor="#666666" borderopacity="1.0" inkscape:current-layer="g3446" inkscape:cx="15.376173" inkscape:cy="11.073013" inkscape:document-units="px" inkscape:guide-bbox="true" inkscape:pagecheckerboard="true" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:snap-page="true" inkscape:window-height="1043" inkscape:window-maximized="1" inkscape:window-width="1920" inkscape:window-x="0" inkscape:window-y="0" inkscape:zoom="22.627417" pagecolor="#ffffff" showgrid="false" showguides="true" units="px">
<sodipodi:guide id="guide5429" inkscape:color="rgb(0,0,255)" inkscape:label="" inkscape:locked="false" orientation="1,0" position="4.2333332,5.7880559"/>
<sodipodi:guide id="guide5431" inkscape:color="rgb(0,0,255)" inkscape:label="" inkscape:locked="false" orientation="0,1" position="7.3198434,4.2333332"/>
</sodipodi:namedview>
<g id="g3446" inkscape:label="Charge Bar">
<path id="rect1684-3-3" class="cls-1" d="M5.8,0C2.6,0,0,2.6,0,5.8v14.4C0,23.4,2.6,26,5.8,26h14.4c3.2,0,5.8-2.6,5.8-5.8V5.8C26,2.6,23.4,0,20.2,0h-4.2s-10.2,0-10.2,0ZM2,7.8c0-3.2,2.6-5.8,5.8-5.8h10.4c3.2,0,5.8,2.6,5.8,5.8v10.4c0,3.2-2.6,5.8-5.8,5.8H7.8c-3.2,0-5.8-2.6-5.8-5.8V7.8Z" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccc"/>
</g>
</g>
</g>
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 B

After

Width:  |  Height:  |  Size: 258 B

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg" viewBox="0 0 12 8">
<defs>
<style>
.cls-1 {
fill: #fffcff;
}
</style>
</defs>
<!-- Generator: Adobe Illustrator 28.7.1, SVG Export Plug-In . SVG Version: 1.2.0 Build 142) -->
<g>
<g id="svg5650" inkscape:export-filename="H:\Code\GitHub\space-station-14\Resources\Nano\inverted_triangle.svg.png" inkscape:export-xdpi="96" inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<sodipodi:namedview id="base" bordercolor="#666666" borderopacity="1.0" inkscape:current-layer="layer1" inkscape:cx="8.8993386" inkscape:cy="4.276435" inkscape:document-units="px" inkscape:pagecheckerboard="true" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:snap-bbox="true" inkscape:snap-global="false" inkscape:snap-page="true" inkscape:window-height="961" inkscape:window-maximized="1" inkscape:window-width="1280" inkscape:window-x="1432" inkscape:window-y="-2" inkscape:zoom="31.678384" pagecolor="#ffffff" showgrid="false" units="px"/>
<g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1">
<path id="path6203" class="cls-1" d="M0,8h12L6,0,0,8Z" inkscape:export-xdpi="96" inkscape:export-ydpi="96" inkscape:flatsided="true" inkscape:randomized="0" inkscape:rounded="0" inkscape:transform-center-y="1.3333296" sodipodi:arg1="0.52359878" sodipodi:arg2="1.5707963" sodipodi:cx="10.316734" sodipodi:cy="291.04364" sodipodi:r1="8.2837381" sodipodi:r2="4.1418691" sodipodi:sides="3" sodipodi:type="star"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

View file

@ -0,0 +1,2 @@
sample:
filter: true