Develop #10

Merged
SemvdH merged 229 commits from develop into master 2020-10-29 22:50:49 +00:00
4 changed files with 44 additions and 18 deletions
Showing only changes of commit 9ef51ddeca - Show all commits

View File

@@ -230,9 +230,9 @@ namespace ClientApp.Utils
WriteTextMessage(mainCommand.ShowRoute("showRouteFalse", false)); WriteTextMessage(mainCommand.ShowRoute("showRouteFalse", false));
}); });
}); });
setEnvironment(); setEnvironment();
} }
private void setEnvironment() private void setEnvironment()
@@ -298,7 +298,7 @@ namespace ClientApp.Utils
{ {
// TODO check if is drawn // TODO check if is drawn
}); });
SendMessageAndOnResponse(stream, mainCommand.showMessage(panelId, "message", lastMessage), "message", SendMessageAndOnResponse(mainCommand.showMessage(panelId, "message", lastMessage), "message",
(message) => (message) =>
{ {
// TODO check if is drawn // TODO check if is drawn
@@ -322,7 +322,7 @@ namespace ClientApp.Utils
ImprovedPerlin improvedPerlin = new ImprovedPerlin(0, LibNoise.NoiseQuality.Best); ImprovedPerlin improvedPerlin = new ImprovedPerlin(0, LibNoise.NoiseQuality.Best);
for (int i = 0; i < 256 * 256; i++) for (int i = 0; i < 256 * 256; i++)
{ {
height[i] = improvedPerlin.GetValue(x /10, x / 10, x * 100) / 3.5f + 1; height[i] = improvedPerlin.GetValue(x / 10, x / 10, x * 100) / 3.5f + 1;
//if (height[i] > 1.1f) //if (height[i] > 1.1f)
//{ //{

View File

@@ -128,6 +128,8 @@ namespace Util
} }
byte messageId = bytes[4]; byte messageId = bytes[4];
System.Diagnostics.Debug.WriteLine(Encoding.ASCII.GetString(bytes.Skip(5).ToArray()));
if (messageId == 0x01) if (messageId == 0x01)
{ {
dynamic json = JsonConvert.DeserializeObject(Encoding.ASCII.GetString(bytes.Skip(5).ToArray())); dynamic json = JsonConvert.DeserializeObject(Encoding.ASCII.GetString(bytes.Skip(5).ToArray()));
@@ -225,6 +227,8 @@ namespace Util
public static byte[] getNewConnectionJson(string user) public static byte[] getNewConnectionJson(string user)
{ {
if (user == null)
throw new ArgumentNullException("user null");
dynamic data = new dynamic data = new
{ {
username = user username = user

View File

@@ -97,16 +97,17 @@ namespace Server
switch (identifier) switch (identifier)
{ {
case DataParser.LOGIN: case DataParser.LOGIN:
handleLogin(payloadbytes); if (handleLogin(payloadbytes))
communication.NewLogin(this);
break; break;
case DataParser.LOGIN_DOCTOR: case DataParser.LOGIN_DOCTOR:
if (communication.doctor != null) if (communication.Doctor != null)
return; return;
if (handleLogin(payloadbytes)) if (handleLogin(payloadbytes))
{ {
communication.doctor = this; communication.Doctor = this;
Console.WriteLine("Set doctor to " + communication.doctor + " , this is " + this); Console.WriteLine("Set doctor to " + communication.Doctor + " , this is " + this);
} }
break; break;
case DataParser.START_SESSION: case DataParser.START_SESSION:
@@ -168,7 +169,6 @@ namespace Server
this.username = username; this.username = username;
sendMessage(DataParser.getLoginResponse("OK")); sendMessage(DataParser.getLoginResponse("OK"));
sendMessage(DataParser.getStartSessionJson()); sendMessage(DataParser.getStartSessionJson());
communication.NewLogin(this);
return true; return true;
} }
else else

View File

@@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO.Pipes; using System.IO.Pipes;
using System.Linq; using System.Linq;
using System.Net.Sockets; using System.Net.Sockets;
@@ -13,7 +14,24 @@ namespace Server
{ {
private TcpListener listener; private TcpListener listener;
private List<Client> clients; private List<Client> clients;
public Client doctor; private Client mDoctor;
public Client Doctor
{
get
{
return this.mDoctor;
}
set
{
this.mDoctor = value;
this.clients.ForEach((client) =>
{
var dinges = DataParser.getNewConnectionJson(client.username);
Debug.WriteLine("foreach " + Encoding.ASCII.GetString(dinges));
this.mDoctor.sendMessage(dinges);
});
}
}
public Communication(TcpListener listener) public Communication(TcpListener listener)
{ {
this.listener = listener; this.listener = listener;
@@ -34,7 +52,7 @@ namespace Server
var tcpClient = listener.EndAcceptTcpClient(ar); var tcpClient = listener.EndAcceptTcpClient(ar);
Console.WriteLine($"Client connected from {tcpClient.Client.RemoteEndPoint}"); Console.WriteLine($"Client connected from {tcpClient.Client.RemoteEndPoint}");
clients.Add(new Client(this, tcpClient)); new Client(this, tcpClient);
listener.BeginAcceptTcpClient(new AsyncCallback(OnConnect), null); listener.BeginAcceptTcpClient(new AsyncCallback(OnConnect), null);
} }
@@ -45,15 +63,19 @@ namespace Server
public void NewLogin(Client client) public void NewLogin(Client client)
{ {
if (doctor == null) clients.Add(client);
var dinges = DataParser.getNewConnectionJson(client.username);
Debug.WriteLine("new login" + Encoding.ASCII.GetString(dinges));
Doctor?.sendMessage(dinges);
}
public void LogOff(Client client)
{
if (this.Doctor == client)
{ {
doctor = client; this.Doctor = null;
} }
else this.clients.Remove(client);
{
doctor.sendMessage(DataParser.getNewConnectionJson(client.username));
}
} }
} }
} }