mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-15 03:30:53 +01:00
94 lines
3.3 KiB
C#
94 lines
3.3 KiB
C#
using SFML.System;
|
|
using SFML.Window;
|
|
using SS14.Client.Graphics;
|
|
using SS14.Client.Interfaces.Resource;
|
|
using SS14.Client.Interfaces.State;
|
|
using SS14.Client.Interfaces.UserInterface;
|
|
using SS14.Client.State.States;
|
|
using SS14.Shared.Maths;
|
|
|
|
namespace SS14.Client.UserInterface.Components
|
|
{
|
|
public class DisconnectedScreenBlocker : GuiComponent
|
|
{
|
|
private readonly Button _mainMenuButton;
|
|
private readonly Label _message;
|
|
private readonly IResourceManager _resourceManager;
|
|
private readonly IStateManager _stateManager;
|
|
private readonly IUserInterfaceManager _userInterfaceManager;
|
|
|
|
public DisconnectedScreenBlocker(IStateManager stateManager, IUserInterfaceManager userInterfaceManager,
|
|
IResourceManager resourceManager, string message = "Connection closed.")
|
|
{
|
|
_stateManager = stateManager;
|
|
_resourceManager = resourceManager;
|
|
_userInterfaceManager = userInterfaceManager;
|
|
_userInterfaceManager.DisposeAllComponents();
|
|
|
|
_message = new Label(message, "CALIBRI", _resourceManager);
|
|
_mainMenuButton = new Button("Main Menu", _resourceManager);
|
|
_mainMenuButton.Clicked += MainMenuButtonClicked;
|
|
_mainMenuButton.Label.Color = new SFML.Graphics.Color(245, 245, 245);
|
|
_message.Text.Color = new SFML.Graphics.Color(245, 245, 245);
|
|
}
|
|
|
|
private void MainMenuButtonClicked(Button sender)
|
|
{
|
|
_stateManager.RequestStateChange<MainScreen>();
|
|
}
|
|
|
|
public override void Update(float frameTime)
|
|
{
|
|
_message.Position = new Vector2i((int) (CluwneLib.CurrentRenderTarget.Size.X/2f - _message.ClientArea.Width/2f),
|
|
(int) (CluwneLib.CurrentRenderTarget.Size.Y/2f - _message.ClientArea.Height/2f) -
|
|
50);
|
|
_message.Update(frameTime);
|
|
_mainMenuButton.Position =
|
|
new Vector2i((int) (CluwneLib.CurrentRenderTarget.Size.X/2f - _message.ClientArea.Width/2f),
|
|
_message.ClientArea.Bottom() + 20);
|
|
_mainMenuButton.Update(frameTime);
|
|
}
|
|
|
|
public override void Render()
|
|
{
|
|
CluwneLib.drawRectangle(0, 0, (int)CluwneLib.CurrentRenderTarget.Size.X, (int)CluwneLib.CurrentRenderTarget.Size.Y, SFML.Graphics.Color.Black);
|
|
_message.Render();
|
|
_mainMenuButton.Render();
|
|
}
|
|
|
|
public override void Dispose()
|
|
{
|
|
_message.Dispose();
|
|
_mainMenuButton.Dispose();
|
|
base.Dispose();
|
|
}
|
|
|
|
public override bool MouseDown(MouseButtonEventArgs e)
|
|
{
|
|
_mainMenuButton.MouseDown(e);
|
|
return true;
|
|
}
|
|
|
|
public override bool MouseUp(MouseButtonEventArgs e)
|
|
{
|
|
_mainMenuButton.MouseUp(e);
|
|
return true;
|
|
}
|
|
|
|
public override void MouseMove(MouseMoveEventArgs e)
|
|
{
|
|
_mainMenuButton.MouseMove(e);
|
|
}
|
|
|
|
public override bool MouseWheelMove(MouseWheelEventArgs e)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public override bool KeyDown(KeyEventArgs e)
|
|
{
|
|
_mainMenuButton.KeyDown(e);
|
|
return true;
|
|
}
|
|
}
|
|
} |