101 lines
5.0 KiB
C#
101 lines
5.0 KiB
C#
using Microsoft.Xna.Framework;
|
|
using Microsoft.Xna.Framework.Graphics;
|
|
using MyMonoGame.GUI;
|
|
using System.Threading;
|
|
using System;
|
|
using Galactic_Colors_Control_Common.Protocol;
|
|
using Galactic_Colors_Control_Common;
|
|
|
|
namespace Galactic_Colors_Control_GUI.States
|
|
{
|
|
public class IndentificationState : State
|
|
{
|
|
private string username;
|
|
private Message message;
|
|
|
|
private bool locked = false;
|
|
private bool showLoading = false;
|
|
private bool showOKMessage = false;
|
|
|
|
public override void Draw(SpriteBatch spritebatch)
|
|
{
|
|
Game.singleton.background.Draw(spritebatch);
|
|
Game.singleton.GUI.Label(new MyMonoGame.Vector(Game.singleton.ScreenWidth / 2, Game.singleton.ScreenHeight / 4), "Galactic Colors Control", Game.singleton.fonts.title , new MyMonoGame.Colors(Color.White), Manager.textAlign.centerCenter);
|
|
if (showLoading)
|
|
{
|
|
Game.singleton.GUI.Box(new Rectangle(Game.singleton.ScreenWidth / 2 - 150, Game.singleton.ScreenHeight / 4 + 50, 300, 50), Game.singleton.buttonsSprites[0]);
|
|
Game.singleton.GUI.Label(new Rectangle(Game.singleton.ScreenWidth / 2 - 150, Game.singleton.ScreenHeight / 4 + 50, 300, 50), "Loading", Game.singleton.fonts.basic);
|
|
}
|
|
else
|
|
{
|
|
if (showOKMessage)
|
|
{
|
|
Game.singleton.GUI.Box(new Rectangle(Game.singleton.ScreenWidth / 2 - 150, Game.singleton.ScreenHeight / 4 + 50, 300, 150), Game.singleton.buttonsSprites[0]);
|
|
Game.singleton.GUI.Label(new MyMonoGame.Vector(Game.singleton.ScreenWidth / 2, Game.singleton.ScreenHeight / 4 + 60), message.title, Game.singleton.fonts.basic, null, Manager.textAlign.bottomCenter);
|
|
Game.singleton.GUI.Label(new MyMonoGame.Vector(Game.singleton.ScreenWidth / 2, Game.singleton.ScreenHeight / 4 + 100), message.text, Game.singleton.fonts.small, null, Manager.textAlign.bottomCenter);
|
|
if (Game.singleton.GUI.Button(new Rectangle(Game.singleton.ScreenWidth / 2 - 140, Game.singleton.ScreenHeight / 4 + 150, 280, 40), Game.singleton.buttonsSprites[0], "Ok", Game.singleton.fonts.basic)){ Game.singleton.GUI.ResetFocus(); showOKMessage = false; }
|
|
}
|
|
else
|
|
{
|
|
if (Game.singleton.GUI.TextField(new Rectangle(Game.singleton.ScreenWidth / 2 - 75, Game.singleton.ScreenHeight / 2 - 30, 150, 40), ref username, Game.singleton.fonts.basic, new MyMonoGame.Colors(Color.LightGray, Color.White), Manager.textAlign.centerCenter, "Username")) {
|
|
if (!locked)
|
|
{
|
|
locked = true;
|
|
new Thread(IdentifiacateHost).Start();
|
|
}
|
|
}
|
|
if (Game.singleton.GUI.Button(new Rectangle(Game.singleton.ScreenWidth / 2 - 75, Game.singleton.ScreenHeight / 2 + 20, 150, 40), Game.singleton.buttonsSprites[0], "Validate", Game.singleton.fonts.basic, new MyMonoGame.Colors(Color.LightGray, Color.White))) {
|
|
if (!locked)
|
|
{
|
|
locked = true;
|
|
new Thread(IdentifiacateHost).Start();
|
|
}
|
|
}
|
|
if (Game.singleton.GUI.Button(new Rectangle(Game.singleton.ScreenWidth / 2 - 75, Game.singleton.ScreenHeight / 2 + 70, 150, 40), Game.singleton.buttonsSprites[0], "Back", Game.singleton.fonts.basic, new MyMonoGame.Colors(Color.LightGray, Color.White)))
|
|
{
|
|
if (!locked)
|
|
{
|
|
locked = true;
|
|
Game.singleton.GUI.ResetFocus();
|
|
new Thread(() =>
|
|
{
|
|
while (!Utilities.DoubleTo(ref Game.singleton.background.speedX, 1, 0.1)) { Thread.Sleep(20); }
|
|
Game.singleton.gameState = new MainMenuState();
|
|
}).Start();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void IdentifiacateHost()
|
|
{
|
|
showLoading = true;
|
|
if (username != null)
|
|
{
|
|
if (username.Length > 3)
|
|
{
|
|
ResultData res = Game.singleton.client.Request(new string[2] { "connect", username });
|
|
if (res.type == ResultTypes.OK)
|
|
{
|
|
Game.singleton.gameState = new GameState(username);
|
|
}
|
|
else
|
|
{
|
|
message.title = "Error";
|
|
message.text = Common.ArrayToString(res.result);
|
|
showOKMessage = true;
|
|
}
|
|
}
|
|
}
|
|
showLoading = false;
|
|
locked = false;
|
|
}
|
|
|
|
|
|
public override void Update()
|
|
{
|
|
Game.singleton.background.Update();
|
|
}
|
|
}
|
|
} |