From 34a3e409ab4a274fe48c9e46f87f91c5f6eef905 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 09:32:41 +0200 Subject: [PATCH 01/58] added new project for the vr engine --- RH-Engine/Program.cs | 12 ++++++++++++ RH-Engine/RH-Engine.csproj | 9 +++++++++ RH-Engine/RH-Engine.sln | 25 +++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 RH-Engine/Program.cs create mode 100644 RH-Engine/RH-Engine.csproj create mode 100644 RH-Engine/RH-Engine.sln diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs new file mode 100644 index 0000000..542eb44 --- /dev/null +++ b/RH-Engine/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace RH_Engine +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} diff --git a/RH-Engine/RH-Engine.csproj b/RH-Engine/RH-Engine.csproj new file mode 100644 index 0000000..5f86a02 --- /dev/null +++ b/RH-Engine/RH-Engine.csproj @@ -0,0 +1,9 @@ + + + + Exe + netcoreapp3.1 + RH_Engine + + + diff --git a/RH-Engine/RH-Engine.sln b/RH-Engine/RH-Engine.sln new file mode 100644 index 0000000..90896e8 --- /dev/null +++ b/RH-Engine/RH-Engine.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30503.244 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RH-Engine", "RH-Engine.csproj", "{12E8F82B-C464-4152-B4FB-FCB5E1A9FCFA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {12E8F82B-C464-4152-B4FB-FCB5E1A9FCFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12E8F82B-C464-4152-B4FB-FCB5E1A9FCFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12E8F82B-C464-4152-B4FB-FCB5E1A9FCFA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12E8F82B-C464-4152-B4FB-FCB5E1A9FCFA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C75B8E99-BE3D-496F-B2F0-03C4069493B2} + EndGlobalSection +EndGlobal From 9dd292dafcb7f9d069800abd0932620b2b97b20a Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 09:55:13 +0200 Subject: [PATCH 02/58] added stuff for connecting to vr engine --- RH-Engine/Program.cs | 36 +++++++++++++++++++++++++++++++++++- RH-Engine/RH-Engine.csproj | 4 ++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 542eb44..8a4a413 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -1,4 +1,7 @@ using System; +using System.IO; +using System.Net.Sockets; +using System.Text; namespace RH_Engine { @@ -6,7 +9,38 @@ namespace RH_Engine { static void Main(string[] args) { - Console.WriteLine("Hello World!"); + + // 0x1B,0x00,0x00,0x00 + TcpClient client = new TcpClient("145.48.6.10", 6666); + + WriteTextMessage(client, "{\"id\":\"session/list\"}"); + Console.WriteLine("got response " + ReadTextMessage(client)); + } + + + + public static void WriteTextMessage(TcpClient client, string message) + { + byte[] msg = Encoding.ASCII.GetBytes(message); + byte[] res = new byte[msg.Length + 4]; + res[0] = 0x1B; + for (int i = 1; i <= 3; i++) + { + res[i] = 0x00; + } + + Array.Copy(res, 4, msg, 0, msg.Length); + var stream = new StreamWriter(client.GetStream(), Encoding.Default); + stream.Write(res); + stream.Flush(); + } + + public static string ReadTextMessage(TcpClient client) + { + var stream = new StreamReader(client.GetStream(), Encoding.ASCII); + { + return stream.ReadLine(); + } } } } diff --git a/RH-Engine/RH-Engine.csproj b/RH-Engine/RH-Engine.csproj index 5f86a02..7d2f521 100644 --- a/RH-Engine/RH-Engine.csproj +++ b/RH-Engine/RH-Engine.csproj @@ -6,4 +6,8 @@ RH_Engine + + + + From 03dcd4c8b04331b5b7a6e3aab20be843979c8ff2 Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 16 Sep 2020 09:59:30 +0200 Subject: [PATCH 03/58] added method to get packetLength --- RH-Engine/Program.cs | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 8a4a413..63871f8 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -17,17 +17,14 @@ namespace RH_Engine Console.WriteLine("got response " + ReadTextMessage(client)); } - + public static void WriteTextMessage(TcpClient client, string message) { byte[] msg = Encoding.ASCII.GetBytes(message); byte[] res = new byte[msg.Length + 4]; - res[0] = 0x1B; - for (int i = 1; i <= 3; i++) - { - res[i] = 0x00; - } + + Array.Copy(res, 0, GetPacketLength(msg.Length), 0, 4); Array.Copy(res, 4, msg, 0, msg.Length); var stream = new StreamWriter(client.GetStream(), Encoding.Default); @@ -42,5 +39,17 @@ namespace RH_Engine return stream.ReadLine(); } } + + private static byte[] GetPacketLength(int length) + { + byte[] packetLength = new byte[4]; + + for (int i = 0; i < 4; i++) + { + packetLength[i] = (byte)(length >> (8 * i)); + } + + return packetLength; + } } } From 934507dd367096ec8b7eb4b8d00d78988e9b4a74 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 10:20:06 +0200 Subject: [PATCH 04/58] stuff --- RH-Engine/Program.cs | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 63871f8..8c2db92 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -10,10 +10,10 @@ namespace RH_Engine static void Main(string[] args) { - // 0x1B,0x00,0x00,0x00 + TcpClient client = new TcpClient("145.48.6.10", 6666); - WriteTextMessage(client, "{\"id\":\"session/list\"}"); + WriteTextMessage(client, "{\"id\" : \"session/list\"}"); Console.WriteLine("got response " + ReadTextMessage(client)); } @@ -21,22 +21,31 @@ namespace RH_Engine public static void WriteTextMessage(TcpClient client, string message) { + byte[] msg = Encoding.ASCII.GetBytes(message); byte[] res = new byte[msg.Length + 4]; Array.Copy(res, 0, GetPacketLength(msg.Length), 0, 4); Array.Copy(res, 4, msg, 0, msg.Length); - var stream = new StreamWriter(client.GetStream(), Encoding.Default); - stream.Write(res); - stream.Flush(); + var stream = new StreamWriter(client.GetStream(), Encoding.Unicode); + { + stream.Write(res); + stream.Flush(); + } + + Console.WriteLine("sent message " + message); } public static string ReadTextMessage(TcpClient client) { var stream = new StreamReader(client.GetStream(), Encoding.ASCII); { - return stream.ReadLine(); + Console.WriteLine("reading..."); + int length = stream.Read(); + Console.WriteLine(length); + + return ""; } } @@ -51,5 +60,7 @@ namespace RH_Engine return packetLength; } + + } } From b70da1148ed9d26d2453eef9121b897659d63574 Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 16 Sep 2020 10:23:35 +0200 Subject: [PATCH 05/58] added ReadPrefMessage --- RH-Engine/Program.cs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 8c2db92..bf90f8b 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -60,7 +60,28 @@ namespace RH_Engine return packetLength; } + public static string ReadPrefMessage(NetworkStream stream) + { + byte[] lengthBytes = new byte[4]; + stream.Read(lengthBytes, 0, 4); + + int length = (int)(lengthBytes[0] | (lengthBytes[1] << 8) | (lengthBytes[1] << 16) | (lengthBytes[1] << 24)); + + byte[] buffer = new byte[length]; + int totalRead = 0; + + //read bytes until stream indicates there are no more + do + { + int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); + totalRead += read; + Console.WriteLine("ReadMessage: " + read); + } while (stream.DataAvailable); + + return Encoding.ASCII.GetString(buffer, 0, totalRead); + + } } } From 7edb0ceded74810ef050150e8bc43b0d4e701003 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 10:31:24 +0200 Subject: [PATCH 06/58] fix courtesy of fabian --- RH-Engine/Program.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index bf90f8b..63662b0 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -14,6 +14,7 @@ namespace RH_Engine TcpClient client = new TcpClient("145.48.6.10", 6666); WriteTextMessage(client, "{\"id\" : \"session/list\"}"); + ReadPrefMessage(client.GetStream()); Console.WriteLine("got response " + ReadTextMessage(client)); } @@ -25,9 +26,9 @@ namespace RH_Engine byte[] msg = Encoding.ASCII.GetBytes(message); byte[] res = new byte[msg.Length + 4]; - Array.Copy(res, 0, GetPacketLength(msg.Length), 0, 4); + Array.Copy(GetPacketLength(msg.Length), 0,res, 0, 4); - Array.Copy(res, 4, msg, 0, msg.Length); + Array.Copy(msg, 0, res, 4, msg.Length); var stream = new StreamWriter(client.GetStream(), Encoding.Unicode); { stream.Write(res); @@ -35,6 +36,7 @@ namespace RH_Engine } Console.WriteLine("sent message " + message); + } public static string ReadTextMessage(TcpClient client) @@ -42,11 +44,14 @@ namespace RH_Engine var stream = new StreamReader(client.GetStream(), Encoding.ASCII); { Console.WriteLine("reading..."); + + int length = stream.Read(); Console.WriteLine(length); return ""; } + } private static byte[] GetPacketLength(int length) From 86a5ddfbc4535214474bfaece04ca6c2fdefbb90 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 11:43:03 +0200 Subject: [PATCH 07/58] thanks johan --- RH-Engine/JSONParser.cs | 23 +++++++++++++++++++++ RH-Engine/Program.cs | 46 +++++++++++++++-------------------------- 2 files changed, 40 insertions(+), 29 deletions(-) create mode 100644 RH-Engine/JSONParser.cs diff --git a/RH-Engine/JSONParser.cs b/RH-Engine/JSONParser.cs new file mode 100644 index 0000000..78b978c --- /dev/null +++ b/RH-Engine/JSONParser.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Net.Sockets; +using System.Text; +using Newtonsoft.Json; + +namespace RH_Engine +{ + class JSONParser + { + /// + /// parses the given response from the server into strings + /// + /// the message gotten from the server, without the length prefix + /// + public static string[] Parse(string msg) + { + return null; + } + + + } +} diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 63662b0..a0e9193 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -5,38 +5,28 @@ using System.Text; namespace RH_Engine { - class Program + internal class Program { - static void Main(string[] args) + private static void Main(string[] args) { - - TcpClient client = new TcpClient("145.48.6.10", 6666); - WriteTextMessage(client, "{\"id\" : \"session/list\"}"); + WriteTextMessage(client, "{\r\n\"id\" : \"session/list\"\r\n}"); ReadPrefMessage(client.GetStream()); Console.WriteLine("got response " + ReadTextMessage(client)); } - - public static void WriteTextMessage(TcpClient client, string message) { - byte[] msg = Encoding.ASCII.GetBytes(message); byte[] res = new byte[msg.Length + 4]; - Array.Copy(GetPacketLength(msg.Length), 0,res, 0, 4); - + Array.Copy(GetPacketLength(msg.Length), 0, res, 0, 4); Array.Copy(msg, 0, res, 4, msg.Length); - var stream = new StreamWriter(client.GetStream(), Encoding.Unicode); - { - stream.Write(res); - stream.Flush(); - } + + client.GetStream().Write(res); Console.WriteLine("sent message " + message); - } public static string ReadTextMessage(TcpClient client) @@ -44,18 +34,17 @@ namespace RH_Engine var stream = new StreamReader(client.GetStream(), Encoding.ASCII); { Console.WriteLine("reading..."); - - + int length = stream.Read(); Console.WriteLine(length); return ""; } - } private static byte[] GetPacketLength(int length) { + Console.WriteLine("length got: " + length); byte[] packetLength = new byte[4]; for (int i = 0; i < 4; i++) @@ -63,30 +52,29 @@ namespace RH_Engine packetLength[i] = (byte)(length >> (8 * i)); } + Console.WriteLine("packet length: " + BitConverter.ToString(packetLength)); return packetLength; } + public static string ReadPrefMessage(NetworkStream stream) { byte[] lengthBytes = new byte[4]; stream.Read(lengthBytes, 0, 4); - int length = (int)(lengthBytes[0] | (lengthBytes[1] << 8) | (lengthBytes[1] << 16) | (lengthBytes[1] << 24)); + int length = BitConverter.ToInt32(lengthBytes); byte[] buffer = new byte[length]; int totalRead = 0; //read bytes until stream indicates there are no more - do - { - int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); - totalRead += read; - Console.WriteLine("ReadMessage: " + read); - } while (stream.DataAvailable); + + int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); + totalRead += read; + Console.WriteLine("ReadMessage: " + read); + Console.WriteLine(Encoding.UTF8.GetString(buffer, 4, length - 4)); return Encoding.ASCII.GetString(buffer, 0, totalRead); - } - } -} +} \ No newline at end of file From d197d019715753eabd8ed9aadecd92562d2b116e Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 11:44:28 +0200 Subject: [PATCH 08/58] oneliner for getting length --- RH-Engine/Program.cs | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index a0e9193..ed81843 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -13,7 +13,7 @@ namespace RH_Engine WriteTextMessage(client, "{\r\n\"id\" : \"session/list\"\r\n}"); ReadPrefMessage(client.GetStream()); - Console.WriteLine("got response " + ReadTextMessage(client)); + } public static void WriteTextMessage(TcpClient client, string message) @@ -21,7 +21,7 @@ namespace RH_Engine byte[] msg = Encoding.ASCII.GetBytes(message); byte[] res = new byte[msg.Length + 4]; - Array.Copy(GetPacketLength(msg.Length), 0, res, 0, 4); + Array.Copy(BitConverter.GetBytes(msg.Length), 0, res, 0, 4); Array.Copy(msg, 0, res, 4, msg.Length); client.GetStream().Write(res); @@ -29,19 +29,6 @@ namespace RH_Engine Console.WriteLine("sent message " + message); } - public static string ReadTextMessage(TcpClient client) - { - var stream = new StreamReader(client.GetStream(), Encoding.ASCII); - { - Console.WriteLine("reading..."); - - int length = stream.Read(); - Console.WriteLine(length); - - return ""; - } - } - private static byte[] GetPacketLength(int length) { Console.WriteLine("length got: " + length); @@ -67,8 +54,6 @@ namespace RH_Engine byte[] buffer = new byte[length]; int totalRead = 0; - //read bytes until stream indicates there are no more - int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); totalRead += read; Console.WriteLine("ReadMessage: " + read); From b0dc258455a6614aff6737bea0f4da307a6db3da Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 11:47:37 +0200 Subject: [PATCH 09/58] removed offset for buffer --- RH-Engine/Program.cs | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index ed81843..71318b2 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -29,20 +29,6 @@ namespace RH_Engine Console.WriteLine("sent message " + message); } - private static byte[] GetPacketLength(int length) - { - Console.WriteLine("length got: " + length); - byte[] packetLength = new byte[4]; - - for (int i = 0; i < 4; i++) - { - packetLength[i] = (byte)(length >> (8 * i)); - } - - Console.WriteLine("packet length: " + BitConverter.ToString(packetLength)); - return packetLength; - } - public static string ReadPrefMessage(NetworkStream stream) { byte[] lengthBytes = new byte[4]; @@ -57,7 +43,7 @@ namespace RH_Engine int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); totalRead += read; Console.WriteLine("ReadMessage: " + read); - Console.WriteLine(Encoding.UTF8.GetString(buffer, 4, length - 4)); + Console.WriteLine(Encoding.UTF8.GetString(buffer)); return Encoding.ASCII.GetString(buffer, 0, totalRead); } From 758fef325e9a9ff8d6bd9a734feba2301e318efb Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 16 Sep 2020 12:11:30 +0200 Subject: [PATCH 10/58] added PC struct --- RH-Engine/Program.cs | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 71318b2..12323ab 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -1,19 +1,28 @@ using System; using System.IO; using System.Net.Sockets; +using System.Runtime.Intrinsics.X86; using System.Text; namespace RH_Engine { + internal class Program { + private static PC[] PCs = { + new PC("DESKTOP-M2CIH87", "Fabian"), + new PC("T470S", "Shinichi"), + new PC("NA", "Sem"), + new PC("NA", "Wouter"), + new PC("NA", "Ralf"), + new PC("NA", "Bart") }; private static void Main(string[] args) { TcpClient client = new TcpClient("145.48.6.10", 6666); WriteTextMessage(client, "{\r\n\"id\" : \"session/list\"\r\n}"); ReadPrefMessage(client.GetStream()); - + } public static void WriteTextMessage(TcpClient client, string message) @@ -47,5 +56,22 @@ namespace RH_Engine return Encoding.ASCII.GetString(buffer, 0, totalRead); } + + private static void CreateTunnel() + { + + } + } + + + public readonly struct PC + { + public PC(string host, string user) + { + this.host = host; + this.user = user; + } + public string host { get; } + public string user { get; } } } \ No newline at end of file From 5699f8678e12b275cafbde1d0d2cc06e3795a7f0 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 12:14:04 +0200 Subject: [PATCH 11/58] json parser stuff --- RH-Engine/JSONParser.cs | 9 +++++++++ RH-Engine/Program.cs | 9 +++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/RH-Engine/JSONParser.cs b/RH-Engine/JSONParser.cs index 78b978c..50c099d 100644 --- a/RH-Engine/JSONParser.cs +++ b/RH-Engine/JSONParser.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.IO; using System.Net.Sockets; using System.Text; using Newtonsoft.Json; @@ -15,7 +16,15 @@ namespace RH_Engine /// public static string[] Parse(string msg) { + dynamic jsonData = JsonConvert.DeserializeObject(msg); + Newtonsoft.Json.Linq.JArray data = jsonData.data; + foreach (dynamic d in data) + { + Console.WriteLine(d.clientinfo.host); + } + return null; + } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 71318b2..2bd7482 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -12,7 +12,8 @@ namespace RH_Engine TcpClient client = new TcpClient("145.48.6.10", 6666); WriteTextMessage(client, "{\r\n\"id\" : \"session/list\"\r\n}"); - ReadPrefMessage(client.GetStream()); + string result = ReadPrefMessage(client.GetStream()); + JSONParser.Parse(result); } @@ -42,10 +43,10 @@ namespace RH_Engine int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); totalRead += read; - Console.WriteLine("ReadMessage: " + read); - Console.WriteLine(Encoding.UTF8.GetString(buffer)); + //Console.WriteLine("ReadMessage: " + read); + //Console.WriteLine(Encoding.UTF8.GetString(buffer)); - return Encoding.ASCII.GetString(buffer, 0, totalRead); + return Encoding.UTF8.GetString(buffer); } } } \ No newline at end of file From ae4fd1f093c29b88b6fe037b376bc2b0e00dce38 Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 16 Sep 2020 13:10:59 +0200 Subject: [PATCH 12/58] wip WHHHHYYYYYYY NOT WORK?!?!? --- RH-Engine/JSONParser.cs | 20 +++++++++++++++++++- RH-Engine/Program.cs | 28 ++++++++++++++++------------ 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/RH-Engine/JSONParser.cs b/RH-Engine/JSONParser.cs index 50c099d..d42adb6 100644 --- a/RH-Engine/JSONParser.cs +++ b/RH-Engine/JSONParser.cs @@ -27,6 +27,24 @@ namespace RH_Engine } - + public static string GetSessionID(string msg, PC[] PCs) + { + dynamic jsonData = JsonConvert.DeserializeObject(msg); + Newtonsoft.Json.Linq.JArray data = jsonData.data; + foreach (dynamic d in data) + { + foreach(PC pc in PCs) + { + if (d.clientinfo.host == pc.host && d.clientinfo.user == pc.user) + { + return d.id; + } + } + } + + return null; + } + + } } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index da69d25..49495fb 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -9,7 +9,7 @@ namespace RH_Engine internal class Program { - private static PC[] PCs = { + private static PC[] PCs = { new PC("DESKTOP-M2CIH87", "Fabian"), new PC("T470S", "Shinichi"), new PC("NA", "Sem"), @@ -20,13 +20,11 @@ namespace RH_Engine { TcpClient client = new TcpClient("145.48.6.10", 6666); - WriteTextMessage(client, "{\r\n\"id\" : \"session/list\"\r\n}"); - string result = ReadPrefMessage(client.GetStream()); - JSONParser.Parse(result); + CreateConnection(client.GetStream()); } - public static void WriteTextMessage(TcpClient client, string message) + public static void WriteTextMessage(NetworkStream stream, string message) { byte[] msg = Encoding.ASCII.GetBytes(message); byte[] res = new byte[msg.Length + 4]; @@ -34,7 +32,7 @@ namespace RH_Engine Array.Copy(BitConverter.GetBytes(msg.Length), 0, res, 0, 4); Array.Copy(msg, 0, res, 4, msg.Length); - client.GetStream().Write(res); + stream.Write(res); Console.WriteLine("sent message " + message); } @@ -48,19 +46,25 @@ namespace RH_Engine int length = BitConverter.ToInt32(lengthBytes); byte[] buffer = new byte[length]; - int totalRead = 0; - int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); - totalRead += read; - //Console.WriteLine("ReadMessage: " + read); - //Console.WriteLine(Encoding.UTF8.GetString(buffer)); + int read = stream.Read(buffer, 0, buffer.Length); + return Encoding.UTF8.GetString(buffer); } - private static void CreateTunnel() + private static void CreateConnection(NetworkStream stream) { + //WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); + //string msg = ReadPrefMessage(stream); + //Console.WriteLine(msg); + //string id = JSONParser.GetSessionID(msg, PCs); + //Console.WriteLine(id); + WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); + string result = ReadPrefMessage(stream); + Console.WriteLine(result); + JSONParser.Parse(result); } } From 4854dcb7597d49cb05b88b3fd384972ee0fc0d80 Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 16 Sep 2020 13:39:28 +0200 Subject: [PATCH 13/58] fix re-added do while --- RH-Engine/Program.cs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 49495fb..89d5beb 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -45,12 +45,20 @@ namespace RH_Engine int length = BitConverter.ToInt32(lengthBytes); + Console.WriteLine("length is: " + length); + byte[] buffer = new byte[length]; + int totalRead = 0; - int read = stream.Read(buffer, 0, buffer.Length); + //read bytes until stream indicates there are no more + do + { + int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); + totalRead += read; + Console.WriteLine("ReadMessage: " + read); + } while (totalRead < length); - - return Encoding.UTF8.GetString(buffer); + return Encoding.UTF8.GetString(buffer, 0, totalRead); } private static void CreateConnection(NetworkStream stream) @@ -64,7 +72,7 @@ namespace RH_Engine WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); string result = ReadPrefMessage(stream); Console.WriteLine(result); - JSONParser.Parse(result); + //JSONParser.Parse(result); } } From 3307f57f3601e3e77b0923dd0b3ff1c49b65020e Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 13:48:31 +0200 Subject: [PATCH 14/58] added getting all users from response --- RH-Engine/JSONParser.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/RH-Engine/JSONParser.cs b/RH-Engine/JSONParser.cs index d42adb6..bda371c 100644 --- a/RH-Engine/JSONParser.cs +++ b/RH-Engine/JSONParser.cs @@ -10,20 +10,23 @@ namespace RH_Engine class JSONParser { /// - /// parses the given response from the server into strings + /// returns all the users from the given response /// /// the message gotten from the server, without the length prefix /// - public static string[] Parse(string msg) + public static PC[] GetUsers(string msg) { dynamic jsonData = JsonConvert.DeserializeObject(msg); Newtonsoft.Json.Linq.JArray data = jsonData.data; + PC[] res = new PC[data.Count]; + int counter = 0; foreach (dynamic d in data) { - Console.WriteLine(d.clientinfo.host); + res[counter] = new PC(d.clientinfo.host, d.clientinfo.user); + counter++; } - return null; + return res; } From 60ae9a37167beebfb5517febbd6872c410eba93c Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 13:52:52 +0200 Subject: [PATCH 15/58] finished getting all users method --- RH-Engine/JSONParser.cs | 2 +- RH-Engine/Program.cs | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/RH-Engine/JSONParser.cs b/RH-Engine/JSONParser.cs index bda371c..c822791 100644 --- a/RH-Engine/JSONParser.cs +++ b/RH-Engine/JSONParser.cs @@ -22,7 +22,7 @@ namespace RH_Engine int counter = 0; foreach (dynamic d in data) { - res[counter] = new PC(d.clientinfo.host, d.clientinfo.user); + res[counter] = new PC((string)d.clientinfo.host, (string)d.clientinfo.user); counter++; } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 89d5beb..4de2298 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -34,7 +34,7 @@ namespace RH_Engine stream.Write(res); - Console.WriteLine("sent message " + message); + //Console.WriteLine("sent message " + message); } public static string ReadPrefMessage(NetworkStream stream) @@ -45,7 +45,7 @@ namespace RH_Engine int length = BitConverter.ToInt32(lengthBytes); - Console.WriteLine("length is: " + length); + //Console.WriteLine("length is: " + length); byte[] buffer = new byte[length]; int totalRead = 0; @@ -55,7 +55,7 @@ namespace RH_Engine { int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); totalRead += read; - Console.WriteLine("ReadMessage: " + read); + //Console.WriteLine("ReadMessage: " + read); } while (totalRead < length); return Encoding.UTF8.GetString(buffer, 0, totalRead); @@ -71,8 +71,11 @@ namespace RH_Engine //Console.WriteLine(id); WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); string result = ReadPrefMessage(stream); - Console.WriteLine(result); - //JSONParser.Parse(result); + //Console.WriteLine(result); + foreach (var s in JSONParser.GetUsers(result)) + { + Console.WriteLine(s); + } } } @@ -86,5 +89,10 @@ namespace RH_Engine } public string host { get; } public string user { get; } + + public override string ToString() + { + return "PC - host:" + host + " - user:" + user; + } } } \ No newline at end of file From f292310775766b8f01755fe7cecd461e128a5f81 Mon Sep 17 00:00:00 2001 From: fabjuuuh Date: Wed, 16 Sep 2020 14:18:39 +0200 Subject: [PATCH 16/58] JsonTextWriter --- RH-Engine/CreateGraphics.cs | 55 +++++++++++++++++++++++++++++++++++++ RH-Engine/Program.cs | 3 ++ 2 files changed, 58 insertions(+) create mode 100644 RH-Engine/CreateGraphics.cs diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs new file mode 100644 index 0000000..32d748c --- /dev/null +++ b/RH-Engine/CreateGraphics.cs @@ -0,0 +1,55 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace RH_Engine +{ + class CreateGraphics + { + string sessionID; + + public CreateGraphics(string sessionID) + { + this.sessionID = sessionID; + } + + public string TerrainCommand() + { + StringBuilder sb = new StringBuilder(); + StringWriter sw = new StringWriter(sb); + + using (JsonWriter writer = new JsonTextWriter(sw)) + { + writer.Formatting = Formatting.Indented; + + writer.WriteStartObject(); + writer.WritePropertyName("id"); + writer.WriteValue("tunnel/send"); + writer.WritePropertyName("data"); + writer.WriteStartObject(); + writer.WritePropertyName("dest"); + writer.WriteValue("TODO"); + writer.WritePropertyName("data"); + writer.WriteStartObject(); + writer.WritePropertyName("id"); + writer.WriteValue("scene/terrain/add"); + writer.WritePropertyName("data"); + writer.WriteStartObject(); + writer.WritePropertyName("size"); + writer.WriteValue("[2,2]"); + writer.WritePropertyName("heights"); + writer.WriteValue("[0,0,0,0]"); + writer.WriteEndObject(); + writer.WriteEndObject(); + writer.WriteEndObject(); + writer.WriteEndObject(); + + } + + Console.WriteLine(sb.ToString()); + return sb.ToString(); + } + } +} diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 89d5beb..a890844 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -22,6 +22,9 @@ namespace RH_Engine CreateConnection(client.GetStream()); + CreateGraphics createGraphics = new CreateGraphics(""); + createGraphics.TerrainCommand(); + } public static void WriteTextMessage(NetworkStream stream, string message) From 119f6384b651ee10d54094e295bbd005301eaee0 Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 16 Sep 2020 14:18:56 +0200 Subject: [PATCH 17/58] tunnel created? --- RH-Engine/JSONParser.cs | 13 ++++++++++++- RH-Engine/Program.cs | 36 +++++++++++++++++++++++------------- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/RH-Engine/JSONParser.cs b/RH-Engine/JSONParser.cs index d42adb6..3f880fd 100644 --- a/RH-Engine/JSONParser.cs +++ b/RH-Engine/JSONParser.cs @@ -33,10 +33,11 @@ namespace RH_Engine Newtonsoft.Json.Linq.JArray data = jsonData.data; foreach (dynamic d in data) { - foreach(PC pc in PCs) + foreach (PC pc in PCs) { if (d.clientinfo.host == pc.host && d.clientinfo.user == pc.user) { + Console.WriteLine("connecting to {0}, on {1} with id {2}", pc.user, pc.host, d.id); return d.id; } } @@ -45,6 +46,16 @@ namespace RH_Engine return null; } + public static string GetTunnelID(string json) + { + dynamic jsonData = JsonConvert.DeserializeObject(json); + if (jsonData.data.status == "ok") + { + return jsonData.data.id; + } + return null; + } + } } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 89d5beb..6f9e1ae 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -10,7 +10,7 @@ namespace RH_Engine internal class Program { private static PC[] PCs = { - new PC("DESKTOP-M2CIH87", "Fabian"), + new PC("DESKTOP-M2CIH87", "F@bian"), new PC("T470S", "Shinichi"), new PC("NA", "Sem"), new PC("NA", "Wouter"), @@ -34,7 +34,7 @@ namespace RH_Engine stream.Write(res); - Console.WriteLine("sent message " + message); + //Console.WriteLine("sent message " + message); } public static string ReadPrefMessage(NetworkStream stream) @@ -50,7 +50,6 @@ namespace RH_Engine byte[] buffer = new byte[length]; int totalRead = 0; - //read bytes until stream indicates there are no more do { int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); @@ -63,16 +62,26 @@ namespace RH_Engine private static void CreateConnection(NetworkStream stream) { - //WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); - //string msg = ReadPrefMessage(stream); - //Console.WriteLine(msg); - //string id = JSONParser.GetSessionID(msg, PCs); - - //Console.WriteLine(id); WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); - string result = ReadPrefMessage(stream); - Console.WriteLine(result); - //JSONParser.Parse(result); + string id = JSONParser.GetSessionID(ReadPrefMessage(stream), PCs); + + string tunnelCreate = "{\"id\" : \"tunnel/create\", \"data\" : {\"session\" : \"" + id + "\"}}"; + + WriteTextMessage(stream, tunnelCreate); + + string tunnelResponse = ReadPrefMessage(stream); + + Console.WriteLine(tunnelResponse); + + string tunnelID = JSONParser.GetTunnelID(tunnelResponse); + Console.WriteLine("tunnelID is: " + tunnelID); + + string sceneReset = "{\"id\" : \"tunnel/send\", \"data\" : {\"dest\" : \"" + tunnelID + "\",\"data\" :{\"id\" : \"scene/reset\",\"data\" : { }}}}}"; + //string sceneReset = "{\"id\" : \"scene/reset\"}"; + + WriteTextMessage(stream, sceneReset); + + Console.WriteLine(ReadPrefMessage(stream)); } } @@ -87,4 +96,5 @@ namespace RH_Engine public string host { get; } public string user { get; } } -} \ No newline at end of file +} + From cb1ca0b671cf2c66f7334ca4eff0803389326e58 Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 16 Sep 2020 14:26:39 +0200 Subject: [PATCH 18/58] fix? --- RH-Engine/Program.cs | 100 ------------------------------------------- 1 file changed, 100 deletions(-) delete mode 100644 RH-Engine/Program.cs diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs deleted file mode 100644 index 6f9e1ae..0000000 --- a/RH-Engine/Program.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System; -using System.IO; -using System.Net.Sockets; -using System.Runtime.Intrinsics.X86; -using System.Text; - -namespace RH_Engine -{ - - internal class Program - { - private static PC[] PCs = { - new PC("DESKTOP-M2CIH87", "F@bian"), - new PC("T470S", "Shinichi"), - new PC("NA", "Sem"), - new PC("NA", "Wouter"), - new PC("NA", "Ralf"), - new PC("NA", "Bart") }; - private static void Main(string[] args) - { - TcpClient client = new TcpClient("145.48.6.10", 6666); - - CreateConnection(client.GetStream()); - - } - - public static void WriteTextMessage(NetworkStream stream, string message) - { - byte[] msg = Encoding.ASCII.GetBytes(message); - byte[] res = new byte[msg.Length + 4]; - - Array.Copy(BitConverter.GetBytes(msg.Length), 0, res, 0, 4); - Array.Copy(msg, 0, res, 4, msg.Length); - - stream.Write(res); - - //Console.WriteLine("sent message " + message); - } - - public static string ReadPrefMessage(NetworkStream stream) - { - byte[] lengthBytes = new byte[4]; - - stream.Read(lengthBytes, 0, 4); - - int length = BitConverter.ToInt32(lengthBytes); - - Console.WriteLine("length is: " + length); - - byte[] buffer = new byte[length]; - int totalRead = 0; - - do - { - int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); - totalRead += read; - Console.WriteLine("ReadMessage: " + read); - } while (totalRead < length); - - return Encoding.UTF8.GetString(buffer, 0, totalRead); - } - - private static void CreateConnection(NetworkStream stream) - { - WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); - string id = JSONParser.GetSessionID(ReadPrefMessage(stream), PCs); - - string tunnelCreate = "{\"id\" : \"tunnel/create\", \"data\" : {\"session\" : \"" + id + "\"}}"; - - WriteTextMessage(stream, tunnelCreate); - - string tunnelResponse = ReadPrefMessage(stream); - - Console.WriteLine(tunnelResponse); - - string tunnelID = JSONParser.GetTunnelID(tunnelResponse); - Console.WriteLine("tunnelID is: " + tunnelID); - - string sceneReset = "{\"id\" : \"tunnel/send\", \"data\" : {\"dest\" : \"" + tunnelID + "\",\"data\" :{\"id\" : \"scene/reset\",\"data\" : { }}}}}"; - //string sceneReset = "{\"id\" : \"scene/reset\"}"; - - WriteTextMessage(stream, sceneReset); - - Console.WriteLine(ReadPrefMessage(stream)); - } - } - - - public readonly struct PC - { - public PC(string host, string user) - { - this.host = host; - this.user = user; - } - public string host { get; } - public string user { get; } - } -} - From 5f18b3e7727204ecb6db916fd8a06d6f42f6ae0c Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 16 Sep 2020 14:28:43 +0200 Subject: [PATCH 19/58] working ish --- RH-Engine/Program.cs | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 4de2298..1d7e4d0 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -63,20 +63,28 @@ namespace RH_Engine private static void CreateConnection(NetworkStream stream) { - //WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); - //string msg = ReadPrefMessage(stream); - //Console.WriteLine(msg); - //string id = JSONParser.GetSessionID(msg, PCs); - - //Console.WriteLine(id); WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); - string result = ReadPrefMessage(stream); - //Console.WriteLine(result); - foreach (var s in JSONParser.GetUsers(result)) - { - Console.WriteLine(s); - } + string id = JSONParser.GetSessionID(ReadPrefMessage(stream), PCs); + + string tunnelCreate = "{\"id\" : \"tunnel/create\", \"data\" : {\"session\" : \"" + id + "\"}}"; + + WriteTextMessage(stream, tunnelCreate); + + string tunnelResponse = ReadPrefMessage(stream); + + Console.WriteLine(tunnelResponse); + + string tunnelID = JSONParser.GetTunnelID(tunnelResponse); + Console.WriteLine("tunnelID is: " + tunnelID); + + string sceneReset = "{\"id\" : \"tunnel/send\", \"data\" : {\"dest\" : \"" + tunnelID + "\",\"data\" :{\"id\" : \"scene/reset\",\"data\" : { }}}}}"; + //string sceneReset = "{\"id\" : \"scene/reset\"}"; + + WriteTextMessage(stream, sceneReset); + + Console.WriteLine(ReadPrefMessage(stream)); } + } From 2adfce27b0be7cf3a741d03037db3aad2bcd334a Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 14:43:19 +0200 Subject: [PATCH 20/58] added vr message class --- RH-Engine/Program.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 4de2298..10ade45 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -1,7 +1,9 @@ -using System; +using Newtonsoft.Json.Linq; +using System; using System.IO; using System.Net.Sockets; using System.Runtime.Intrinsics.X86; +using System.Security.Cryptography.X509Certificates; using System.Text; namespace RH_Engine @@ -95,4 +97,12 @@ namespace RH_Engine return "PC - host:" + host + " - user:" + user; } } + + public readonly struct VRMessage + { + public VRMessage(string id,params JObject[] data) + { + + } + } } \ No newline at end of file From 7b94cd77f92577f04b0de3552aeb111f44dca67c Mon Sep 17 00:00:00 2001 From: fabjuuuh Date: Wed, 16 Sep 2020 15:03:36 +0200 Subject: [PATCH 21/58] Shit --- RH-Engine/CreateGraphics.cs | 20 ++++++++++++++------ RH-Engine/Program.cs | 15 +++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 32d748c..c6710db 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -8,11 +8,11 @@ namespace RH_Engine { class CreateGraphics { - string sessionID; + string tunnelID; - public CreateGraphics(string sessionID) + public CreateGraphics(string tunnelID) { - this.sessionID = sessionID; + this.tunnelID = tunnelID; } public string TerrainCommand() @@ -30,7 +30,7 @@ namespace RH_Engine writer.WritePropertyName("data"); writer.WriteStartObject(); writer.WritePropertyName("dest"); - writer.WriteValue("TODO"); + writer.WriteValue(tunnelID); writer.WritePropertyName("data"); writer.WriteStartObject(); writer.WritePropertyName("id"); @@ -38,9 +38,17 @@ namespace RH_Engine writer.WritePropertyName("data"); writer.WriteStartObject(); writer.WritePropertyName("size"); - writer.WriteValue("[2,2]"); + writer.WriteStartArray(); + writer.WriteValue(2); + writer.WriteValue(2); + writer.WriteEndArray(); writer.WritePropertyName("heights"); - writer.WriteValue("[0,0,0,0]"); + writer.WriteStartArray(); + writer.WriteValue(30000000); + writer.WriteValue(2); + writer.WriteValue(4); + writer.WriteValue(7); + writer.WriteEndArray(); writer.WriteEndObject(); writer.WriteEndObject(); writer.WriteEndObject(); diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 5325fad..02dfeb6 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -22,9 +22,6 @@ namespace RH_Engine CreateConnection(client.GetStream()); - CreateGraphics createGraphics = new CreateGraphics(""); - createGraphics.TerrainCommand(); - } public static void WriteTextMessage(NetworkStream stream, string message) @@ -76,14 +73,16 @@ namespace RH_Engine string tunnelResponse = ReadPrefMessage(stream); Console.WriteLine(tunnelResponse); - + string tunnelID = JSONParser.GetTunnelID(tunnelResponse); + + CreateGraphics createGraphics = new CreateGraphics(tunnelID); + string command = createGraphics.TerrainCommand(); + + Console.WriteLine("tunnelID is: " + tunnelID); - string sceneReset = "{\"id\" : \"tunnel/send\", \"data\" : {\"dest\" : \"" + tunnelID + "\",\"data\" :{\"id\" : \"scene/reset\",\"data\" : { }}}}}"; - //string sceneReset = "{\"id\" : \"scene/reset\"}"; - - WriteTextMessage(stream, sceneReset); + WriteTextMessage(stream, command); Console.WriteLine(ReadPrefMessage(stream)); } From b9dc2b82a6f621e70870841d0288117d7e86ad6a Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 15:05:07 +0200 Subject: [PATCH 22/58] stuff --- RH-Engine/Program.cs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 41fc36b..5215995 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -105,12 +105,4 @@ namespace RH_Engine return "PC - host:" + host + " - user:" + user; } } - - public readonly struct VRMessage - { - public VRMessage(string id,params JObject[] data) - { - - } - } } \ No newline at end of file From 39e4f655b1f227196a8a0f5e1cf7023c8d8ccd55 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 15:21:07 +0200 Subject: [PATCH 23/58] change skybox --- RH-Engine/CreateGraphics.cs | 40 +++++++++++++++++++++++++++++++++++++ RH-Engine/Program.cs | 14 +++++++++---- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index c6710db..9e7c056 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -59,5 +59,45 @@ namespace RH_Engine Console.WriteLine(sb.ToString()); return sb.ToString(); } + + public string SkyboxCommand(int time) + { + if (time < 0 || time > 24) + { + throw new Exception("The time must be between 0 and 24!"); + } + StringBuilder sb = new StringBuilder(); + StringWriter sw = new StringWriter(sb); + + using (JsonWriter writer = new JsonTextWriter(sw)) + { + writer.Formatting = Formatting.Indented; + + writer.WriteStartObject(); + writer.WritePropertyName("id"); + writer.WriteValue("tunnel/send"); + writer.WritePropertyName("data"); + writer.WriteStartObject(); + writer.WritePropertyName("dest"); + writer.WriteValue(tunnelID); + writer.WritePropertyName("data"); + writer.WriteStartObject(); + writer.WritePropertyName("id"); + writer.WriteValue("scene/skybox/settime"); + writer.WritePropertyName("data"); + writer.WriteStartObject(); + writer.WritePropertyName("time"); + writer.WriteValue(time); + writer.WriteEndObject(); + writer.WriteEndObject(); + writer.WriteEndObject(); + writer.WriteEndObject(); + + } + + Console.WriteLine(sb.ToString()); + return sb.ToString(); + + } } } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 69b4780..88ba343 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -14,8 +14,8 @@ namespace RH_Engine private static PC[] PCs = { new PC("DESKTOP-M2CIH87", "Fabian"), new PC("T470S", "Shinichi"), - new PC("NA", "Sem"), - new PC("NA", "Wouter"), + new PC("DESKTOP-DHS478C", "Sem"), + new PC("DESKTOP-TV73FKO", "Wouter"), new PC("NA", "Ralf"), new PC("NA", "Bart") }; private static void Main(string[] args) @@ -36,7 +36,7 @@ namespace RH_Engine stream.Write(res); - //Console.WriteLine("sent message " + message); + Console.WriteLine("sent message " + message); } public static string ReadPrefMessage(NetworkStream stream) @@ -44,6 +44,7 @@ namespace RH_Engine byte[] lengthBytes = new byte[4]; stream.Read(lengthBytes, 0, 4); + Console.WriteLine("read message.."); int length = BitConverter.ToInt32(lengthBytes); @@ -77,9 +78,14 @@ namespace RH_Engine Console.WriteLine(tunnelResponse); string tunnelID = JSONParser.GetTunnelID(tunnelResponse); + if (tunnelID == null) + { + Console.WriteLine("could not find a valid tunnel id!"); + return; + } CreateGraphics createGraphics = new CreateGraphics(tunnelID); - string command = createGraphics.TerrainCommand(); + string command = createGraphics.SkyboxCommand(2); Console.WriteLine("tunnelID is: " + tunnelID); From 0264370b38d7e35cfe1a42a3d36796eb216ee7ce Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 15:30:49 +0200 Subject: [PATCH 24/58] stuff --- RH-Engine/CreateGraphics.cs | 2 +- RH-Engine/Program.cs | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 9e7c056..943a61c 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -95,7 +95,7 @@ namespace RH_Engine } - Console.WriteLine(sb.ToString()); + Console.WriteLine("MESSAGE TO SEND: " + sb.ToString()); return sb.ToString(); } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 88ba343..c03587a 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -12,9 +12,9 @@ namespace RH_Engine internal class Program { private static PC[] PCs = { - new PC("DESKTOP-M2CIH87", "Fabian"), - new PC("T470S", "Shinichi"), - new PC("DESKTOP-DHS478C", "Sem"), + //new PC("DESKTOP-M2CIH87", "Fabian"), + //new PC("T470S", "Shinichi"), + new PC("DESKTOP-DHS478C", "semme"), new PC("DESKTOP-TV73FKO", "Wouter"), new PC("NA", "Ralf"), new PC("NA", "Bart") }; @@ -36,7 +36,7 @@ namespace RH_Engine stream.Write(res); - Console.WriteLine("sent message " + message); + //Console.WriteLine("sent message " + message); } public static string ReadPrefMessage(NetworkStream stream) @@ -85,7 +85,7 @@ namespace RH_Engine } CreateGraphics createGraphics = new CreateGraphics(tunnelID); - string command = createGraphics.SkyboxCommand(2); + string command = createGraphics.SkyboxCommand(10); Console.WriteLine("tunnelID is: " + tunnelID); From c171f1531675c1712b7f60ab3290e9a60388e00a Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 15:34:06 +0200 Subject: [PATCH 25/58] vr message temp --- RH-Engine/VRMessage.cs | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 RH-Engine/VRMessage.cs diff --git a/RH-Engine/VRMessage.cs b/RH-Engine/VRMessage.cs new file mode 100644 index 0000000..9bad8cf --- /dev/null +++ b/RH-Engine/VRMessage.cs @@ -0,0 +1,52 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace RH_Engine +{ + class VRMessage + { + public VRMessage(string id, params JObject[] data) + { + this.Id = id; + this.Data = data; + } + + public string Id + { + get; set; + } + + public JObject[] Data + { + get;set; + } + + public string GetCommand() + { + StringBuilder sb = new StringBuilder(); + StringWriter sw = new StringWriter(sb); + + using (JsonWriter writer = new JsonTextWriter(sw)) + { + writer.WriteStartObject(); + writer.WritePropertyName("id"); + writer.WriteValue(this.Id); + writer.WritePropertyName("data"); + writer.WriteStartArray(); + foreach (JObject o in Data) + { + writer.WriteValue(o); + } + writer.WriteEndArray(); + writer.WriteEndObject(); + } + + return sb.ToString(); + + } + } +} From 5f65eb32fdb0fae65ea0276b0b6a4d8dcce6a58a Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 16:04:21 +0200 Subject: [PATCH 26/58] senior gesprek fixes --- ProftaakRH/Main.cs | 1 + RH-Engine/CreateGraphics.cs | 2 +- RH-Engine/JSONParser.cs | 3 ++- RH-Engine/Program.cs | 7 ++++--- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ProftaakRH/Main.cs b/ProftaakRH/Main.cs index 0938089..80680d7 100644 --- a/ProftaakRH/Main.cs +++ b/ProftaakRH/Main.cs @@ -13,6 +13,7 @@ namespace ProftaakRH { IDataConverter dataConverter = new DataConverter(); BLEHandler bLEHandler = new BLEHandler(dataConverter); + bLEHandler.Connect(); //BikeSimulator bikeSimulator = new BikeSimulator(dataConverter); //bikeSimulator.setResistance(bikeSimulator.GenerateResistance(1f)); //bikeSimulator.StartSimulation(); diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 943a61c..9327f93 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -60,7 +60,7 @@ namespace RH_Engine return sb.ToString(); } - public string SkyboxCommand(int time) + public string SkyboxCommand(double time) { if (time < 0 || time > 24) { diff --git a/RH-Engine/JSONParser.cs b/RH-Engine/JSONParser.cs index 248ba73..d2e167f 100644 --- a/RH-Engine/JSONParser.cs +++ b/RH-Engine/JSONParser.cs @@ -34,8 +34,9 @@ namespace RH_Engine { dynamic jsonData = JsonConvert.DeserializeObject(msg); Newtonsoft.Json.Linq.JArray data = jsonData.data; - foreach (dynamic d in data) + for (int i = data.Count-1; i >= 0; i--) { + dynamic d = data[i]; foreach (PC pc in PCs) { if (d.clientinfo.host == pc.host && d.clientinfo.user == pc.user) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index c03587a..1a6577e 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -12,8 +12,8 @@ namespace RH_Engine internal class Program { private static PC[] PCs = { - //new PC("DESKTOP-M2CIH87", "Fabian"), - //new PC("T470S", "Shinichi"), + new PC("DESKTOP-M2CIH87", "Fabian"), + new PC("T470S", "Shinichi"), new PC("DESKTOP-DHS478C", "semme"), new PC("DESKTOP-TV73FKO", "Wouter"), new PC("NA", "Ralf"), @@ -23,6 +23,7 @@ namespace RH_Engine TcpClient client = new TcpClient("145.48.6.10", 6666); CreateConnection(client.GetStream()); + Console.Read(); } @@ -85,7 +86,7 @@ namespace RH_Engine } CreateGraphics createGraphics = new CreateGraphics(tunnelID); - string command = createGraphics.SkyboxCommand(10); + string command = createGraphics.SkyboxCommand(2); Console.WriteLine("tunnelID is: " + tunnelID); From fe05f7e71dcf3e34270e31a118e3165f748e9809 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 16:28:05 +0200 Subject: [PATCH 27/58] clean --- RH-Engine/CreateGraphics.cs | 51 ++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 9327f93..ef70fd5 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -60,44 +60,37 @@ namespace RH_Engine return sb.ToString(); } - public string SkyboxCommand(double time) + public string SkyboxCommand(double timeToSet) { - if (time < 0 || time > 24) + if (timeToSet < 0 || timeToSet > 24) { throw new Exception("The time must be between 0 and 24!"); } - StringBuilder sb = new StringBuilder(); - StringWriter sw = new StringWriter(sb); - using (JsonWriter writer = new JsonTextWriter(sw)) + + object payload = new { - writer.Formatting = Formatting.Indented; + id = "scene/skybox/settime", + time = timeToSet + }; - writer.WriteStartObject(); - writer.WritePropertyName("id"); - writer.WriteValue("tunnel/send"); - writer.WritePropertyName("data"); - writer.WriteStartObject(); - writer.WritePropertyName("dest"); - writer.WriteValue(tunnelID); - writer.WritePropertyName("data"); - writer.WriteStartObject(); - writer.WritePropertyName("id"); - writer.WriteValue("scene/skybox/settime"); - writer.WritePropertyName("data"); - writer.WriteStartObject(); - writer.WritePropertyName("time"); - writer.WriteValue(time); - writer.WriteEndObject(); - writer.WriteEndObject(); - writer.WriteEndObject(); - writer.WriteEndObject(); + object packet = Payload(payload); + Console.WriteLine(JsonConvert.SerializeObject(packet)); + return JsonConvert.SerializeObject(packet); - } - - Console.WriteLine("MESSAGE TO SEND: " + sb.ToString()); - return sb.ToString(); + } + private object Payload(object message) + { + return new + { + id = "tunnel/send", + data = new + { + dest = tunnelID, + data = message, + } + }; } } } From 2e19b4af929310a1a66199d137c2db1c29267394 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 16:35:19 +0200 Subject: [PATCH 28/58] fiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiix --- RH-Engine/CreateGraphics.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index ef70fd5..7dc84a0 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -68,19 +68,22 @@ namespace RH_Engine } - object payload = new + dynamic payload = new { id = "scene/skybox/settime", - time = timeToSet + data = new { + time = timeToSet + } + }; - object packet = Payload(payload); + dynamic packet = Payload(payload); Console.WriteLine(JsonConvert.SerializeObject(packet)); return JsonConvert.SerializeObject(packet); } - private object Payload(object message) + private object Payload(dynamic message) { return new { From 189fc1844838602d64be22101caa83f1a67abb39 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 16 Sep 2020 16:36:22 +0200 Subject: [PATCH 29/58] oneliner --- RH-Engine/CreateGraphics.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 7dc84a0..533a9e0 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -76,10 +76,7 @@ namespace RH_Engine } }; - - dynamic packet = Payload(payload); - Console.WriteLine(JsonConvert.SerializeObject(packet)); - return JsonConvert.SerializeObject(packet); + return JsonConvert.SerializeObject(Payload(payload)); } From a9036e6fc2e91fb3d6e8882476b04a7324116bc2 Mon Sep 17 00:00:00 2001 From: fabjuuuh Date: Fri, 18 Sep 2020 10:50:17 +0200 Subject: [PATCH 30/58] Terrrain command changed --- RH-Engine/CreateGraphics.cs | 50 ++++++++----------------------------- 1 file changed, 10 insertions(+), 40 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 533a9e0..a15e5b7 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -15,49 +15,19 @@ namespace RH_Engine this.tunnelID = tunnelID; } - public string TerrainCommand() + public string TerrainCommand(int[] sizeAray, int[] heightsArray) { - StringBuilder sb = new StringBuilder(); - StringWriter sw = new StringWriter(sb); - - using (JsonWriter writer = new JsonTextWriter(sw)) + dynamic payload = new { - writer.Formatting = Formatting.Indented; + id = "scene/terrain/add", + data = new + { + size = sizeAray, + heights = heightsArray + } - writer.WriteStartObject(); - writer.WritePropertyName("id"); - writer.WriteValue("tunnel/send"); - writer.WritePropertyName("data"); - writer.WriteStartObject(); - writer.WritePropertyName("dest"); - writer.WriteValue(tunnelID); - writer.WritePropertyName("data"); - writer.WriteStartObject(); - writer.WritePropertyName("id"); - writer.WriteValue("scene/terrain/add"); - writer.WritePropertyName("data"); - writer.WriteStartObject(); - writer.WritePropertyName("size"); - writer.WriteStartArray(); - writer.WriteValue(2); - writer.WriteValue(2); - writer.WriteEndArray(); - writer.WritePropertyName("heights"); - writer.WriteStartArray(); - writer.WriteValue(30000000); - writer.WriteValue(2); - writer.WriteValue(4); - writer.WriteValue(7); - writer.WriteEndArray(); - writer.WriteEndObject(); - writer.WriteEndObject(); - writer.WriteEndObject(); - writer.WriteEndObject(); - - } - - Console.WriteLine(sb.ToString()); - return sb.ToString(); + }; + return JsonConvert.SerializeObject(Payload(payload)); } public string SkyboxCommand(double timeToSet) From 4782ecf53ab36f88b761c2534d1bc3ca2aff9178 Mon Sep 17 00:00:00 2001 From: fabjuuuh Date: Fri, 18 Sep 2020 11:01:27 +0200 Subject: [PATCH 31/58] Made methods for all the command still empty --- RH-Engine/CreateGraphics.cs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index a15e5b7..24023ce 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -30,6 +30,31 @@ namespace RH_Engine return JsonConvert.SerializeObject(Payload(payload)); } + public string DeleteGroundPaneCommand() + { + return ""; + } + + public string ModelCommand() + { + return ""; + } + + public string RouteCommand() + { + return ""; + } + + public string FollowRouteCommand() + { + return ""; + } + + public string RoadCommand() + { + return ""; + } + public string SkyboxCommand(double timeToSet) { if (timeToSet < 0 || timeToSet > 24) From e32d103e610dd100f8bef5e1a348bc29752a74a6 Mon Sep 17 00:00:00 2001 From: fabjuuuh Date: Fri, 18 Sep 2020 11:41:44 +0200 Subject: [PATCH 32/58] Node method --- RH-Engine/CreateGraphics.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 24023ce..0a3f127 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -15,14 +15,14 @@ namespace RH_Engine this.tunnelID = tunnelID; } - public string TerrainCommand(int[] sizeAray, int[] heightsArray) + public string TerrainCommand(int[] sizeArray, int[] heightsArray) { dynamic payload = new { id = "scene/terrain/add", data = new { - size = sizeAray, + size = sizeArray, heights = heightsArray } @@ -30,6 +30,11 @@ namespace RH_Engine return JsonConvert.SerializeObject(Payload(payload)); } + public string AddNodeCommand() + { + return ""; + } + public string DeleteGroundPaneCommand() { return ""; From 7c7b64094bce9421e9e35b4a75bdd83ee0cae204 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 18 Sep 2020 11:50:47 +0200 Subject: [PATCH 33/58] add scene/get and progress on node/delete --- RH-Engine/CreateGraphics.cs | 48 +++++++++++++++++++++++++++++++++++-- RH-Engine/Program.cs | 36 ++++++++++++++++++++++++---- 2 files changed, 78 insertions(+), 6 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 24023ce..466b654 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -30,9 +30,21 @@ namespace RH_Engine return JsonConvert.SerializeObject(Payload(payload)); } - public string DeleteGroundPaneCommand() + public string DeleteGroundPaneCommand(string uuid) { - return ""; + + dynamic payload = new + { + id = "scene/node/delete", + data = new + { + id = uuid, + + } + + }; + return JsonConvert.SerializeObject(Payload(payload)); + } public string ModelCommand() @@ -42,6 +54,18 @@ namespace RH_Engine public string RouteCommand() { + dynamic payload = new + { + id = "route/add", + data = new + { + nodes = new dynamic[] + { + pos = new int[]{ 0,0,0}, + dir = new int[]{ 5,0,-5} + } + } + }; return ""; } @@ -55,6 +79,26 @@ namespace RH_Engine return ""; } + public string GetSceneInfoCommand() + { + dynamic payload = new + { + id = "scene/get" + }; + + return JsonConvert.SerializeObject(Payload(payload)); + } + + public string ResetScene() + { + dynamic payload = new + { + id = "scene/reset" + }; + + return JsonConvert.SerializeObject(Payload(payload)); + } + public string SkyboxCommand(double timeToSet) { if (timeToSet < 0 || timeToSet > 24) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 1a6577e..655936d 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json.Linq; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using System; using System.IO; using System.Net.Sockets; @@ -23,7 +24,7 @@ namespace RH_Engine TcpClient client = new TcpClient("145.48.6.10", 6666); CreateConnection(client.GetStream()); - Console.Read(); + } @@ -86,9 +87,18 @@ namespace RH_Engine } CreateGraphics createGraphics = new CreateGraphics(tunnelID); - string command = createGraphics.SkyboxCommand(2); + //int[] heigths = new int[65536]; + //for(int i =0; i < heigths.Length; i++) + //{ + // heigths[i] = 0; + //} - + //string command = createGraphics.TerrainCommand(new int[] { 256, 256 }, heigths); + + string groundId = GetId("GroundPlane", stream, createGraphics); + Console.WriteLine(groundId); + string command = createGraphics.DeleteGroundPaneCommand(groundId); + //string command = createGraphics.ResetScene(); Console.WriteLine("tunnelID is: " + tunnelID); WriteTextMessage(stream, command); @@ -96,6 +106,24 @@ namespace RH_Engine Console.WriteLine(ReadPrefMessage(stream)); } + public static string GetId(string name, NetworkStream stream, CreateGraphics createGraphics) + { + WriteTextMessage(stream, createGraphics.GetSceneInfoCommand()); + dynamic response = JsonConvert.DeserializeObject(ReadPrefMessage(stream)); + dynamic[] children = response.data.data.data.children; + + foreach (dynamic child in children) + { + if (child.name == name) + { + return child.uuid; + } + } + + return null; + + } + } From a8494bc4d24a6f7aabb7ad1b40d48b830109bfdd Mon Sep 17 00:00:00 2001 From: shinichi Date: Fri, 18 Sep 2020 12:15:18 +0200 Subject: [PATCH 34/58] added first iteration of adding a bike --- RH-Engine/CreateGraphics.cs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 57d585d..e25d8b7 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -55,7 +55,27 @@ namespace RH_Engine public string ModelCommand() { - return ""; + string namename = "bike"; + dynamic payload = new + { + id = "scene/node/add", + data = new + { + name = namename, + components = new + { + model = new + { + file = "\\data\\NetworkEngine\\models\\bike\\bikee.fbx", + cullbackfaces = true, + animated = false, + animation = "\\data\\NetworkEngine\\models\\bike\\bike_anim.fbx" + }, + } + } + + }; + return JsonConvert.SerializeObject(Payload(payload)); } public string RouteCommand() From 9ff2eb4e68c49eb110c7f0a6c87ba6939369bab9 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 18 Sep 2020 12:18:32 +0200 Subject: [PATCH 35/58] added standard name identifiers --- RH-Engine/CreateGraphics.cs | 25 ++++++++++++------------- RH-Engine/Program.cs | 4 ++-- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 57d585d..4c9dda3 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -8,8 +8,16 @@ namespace RH_Engine { class CreateGraphics { - string tunnelID; + public const string STANDARD_HEAD = "Head"; + public const string STANDARD_GROUND = "GroundPlane"; + public const string STANDARD_SUN = "SunLight"; + public const string STANDARD_LEFTHAND = "LeftHand"; + public const string STANDARD_RIGHTHAND = "RightHand"; + + + string tunnelID; + public CreateGraphics(string tunnelID) { this.tunnelID = tunnelID; @@ -60,18 +68,6 @@ namespace RH_Engine public string RouteCommand() { - dynamic payload = new - { - id = "route/add", - data = new - { - nodes = new dynamic[] - { - pos = new int[]{ 0,0,0}, - dir = new int[]{ 5,0,-5} - } - } - }; return ""; } @@ -137,5 +133,8 @@ namespace RH_Engine } }; } + + + } } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 655936d..acb210b 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -96,7 +96,7 @@ namespace RH_Engine //string command = createGraphics.TerrainCommand(new int[] { 256, 256 }, heigths); string groundId = GetId("GroundPlane", stream, createGraphics); - Console.WriteLine(groundId); + Console.WriteLine("ground id: " + groundId); string command = createGraphics.DeleteGroundPaneCommand(groundId); //string command = createGraphics.ResetScene(); Console.WriteLine("tunnelID is: " + tunnelID); @@ -110,7 +110,7 @@ namespace RH_Engine { WriteTextMessage(stream, createGraphics.GetSceneInfoCommand()); dynamic response = JsonConvert.DeserializeObject(ReadPrefMessage(stream)); - dynamic[] children = response.data.data.data.children; + JArray children = response.data.data.data.children; foreach (dynamic child in children) { From a655646e80988383cd0bc5d43b0ca48f1c4e4dda Mon Sep 17 00:00:00 2001 From: "DESKTOP-TV73FK0\\woute" Date: Fri, 18 Sep 2020 12:30:57 +0200 Subject: [PATCH 36/58] idk --- RH-Engine/CreateGraphics.cs | 17 ++++++++++++++++- RH-Engine/Program.cs | 13 +++++++------ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 0a3f127..95e63e7 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -32,7 +32,22 @@ namespace RH_Engine public string AddNodeCommand() { - return ""; + dynamic payload = new + { + id = "scene/node/add", + data = new + { + name = "newNode", + components = new + { + terrain = new + { + smoothnormals = true + } + } + } + }; + return JsonConvert.SerializeObject(Payload(payload)); } public string DeleteGroundPaneCommand() diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 1a6577e..0091f3b 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -12,10 +12,10 @@ namespace RH_Engine internal class Program { private static PC[] PCs = { - new PC("DESKTOP-M2CIH87", "Fabian"), - new PC("T470S", "Shinichi"), - new PC("DESKTOP-DHS478C", "semme"), - new PC("DESKTOP-TV73FKO", "Wouter"), + new PC("DESKTOP-TV73FK0", "woute"), + //new PC("DESKTOP-M2CIH87", "Fabian"), + //new PC("T470S", "Shinichi"), + //new PC("DESKTOP-DHS478C", "semme"), new PC("NA", "Ralf"), new PC("NA", "Bart") }; private static void Main(string[] args) @@ -86,14 +86,15 @@ namespace RH_Engine } CreateGraphics createGraphics = new CreateGraphics(tunnelID); - string command = createGraphics.SkyboxCommand(2); Console.WriteLine("tunnelID is: " + tunnelID); - WriteTextMessage(stream, command); + WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 2, 2 }, new int[] { 1, 1, 1, 1 })); Console.WriteLine(ReadPrefMessage(stream)); + WriteTextMessage(stream, createGraphics.AddNodeCommand()); + Console.WriteLine(ReadPrefMessage(stream)); } } From e54cca454bb2e0a5c2dea1d26464e978cf1b1620 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 18 Sep 2020 12:37:02 +0200 Subject: [PATCH 37/58] added null message --- RH-Engine/Program.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index acb210b..f127687 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -95,8 +95,8 @@ namespace RH_Engine //string command = createGraphics.TerrainCommand(new int[] { 256, 256 }, heigths); - string groundId = GetId("GroundPlane", stream, createGraphics); - Console.WriteLine("ground id: " + groundId); + string groundId = GetId(CreateGraphics.STANDARD_SUN, stream, createGraphics); + Console.WriteLine("id: " + groundId); string command = createGraphics.DeleteGroundPaneCommand(groundId); //string command = createGraphics.ResetScene(); Console.WriteLine("tunnelID is: " + tunnelID); @@ -119,7 +119,7 @@ namespace RH_Engine return child.uuid; } } - + Console.WriteLine("Could not find id of " + name); return null; } From bb70d80409843e0267a89ee63f57d1283675d10a Mon Sep 17 00:00:00 2001 From: shinichi Date: Fri, 18 Sep 2020 12:50:53 +0200 Subject: [PATCH 38/58] added bike --- RH-Engine/CreateGraphics.cs | 22 ++++++++++++---------- RH-Engine/Program.cs | 23 +++++++++++++++++------ 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index c4df8a9..ceda29c 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -16,8 +16,8 @@ namespace RH_Engine - string tunnelID; - + string tunnelID; + public CreateGraphics(string tunnelID) { this.tunnelID = tunnelID; @@ -53,12 +53,12 @@ namespace RH_Engine data = new { id = uuid, - + } }; return JsonConvert.SerializeObject(Payload(payload)); - + } public string ModelCommand() @@ -74,10 +74,10 @@ namespace RH_Engine { model = new { - file = "\\data\\NetworkEngine\\models\\bike\\bikee.fbx", + file = "data\\NetworkEngine\\models\\bike\\bike.fbx", cullbackfaces = true, animated = false, - animation = "\\data\\NetworkEngine\\models\\bike\\bike_anim.fbx" + animation = "data\\NetworkEngine\\models\\bike\\bike_anim.fbx" }, } } @@ -86,6 +86,7 @@ namespace RH_Engine return JsonConvert.SerializeObject(Payload(payload)); } + public string RouteCommand() { return ""; @@ -132,10 +133,11 @@ namespace RH_Engine dynamic payload = new { id = "scene/skybox/settime", - data = new { + data = new + { time = timeToSet } - + }; return JsonConvert.SerializeObject(Payload(payload)); @@ -154,7 +156,7 @@ namespace RH_Engine }; } - - + + } } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index acb210b..98d4599 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -13,12 +13,13 @@ namespace RH_Engine internal class Program { private static PC[] PCs = { - new PC("DESKTOP-M2CIH87", "Fabian"), + //new PC("DESKTOP-M2CIH87", "Fabian"), new PC("T470S", "Shinichi"), - new PC("DESKTOP-DHS478C", "semme"), - new PC("DESKTOP-TV73FKO", "Wouter"), - new PC("NA", "Ralf"), - new PC("NA", "Bart") }; + //new PC("DESKTOP-DHS478C", "semme"), + //new PC("DESKTOP-TV73FKO", "Wouter"), + //new PC("NA", "Ralf"), + //new PC("NA", "Bart") + }; private static void Main(string[] args) { TcpClient client = new TcpClient("145.48.6.10", 6666); @@ -97,13 +98,23 @@ namespace RH_Engine string groundId = GetId("GroundPlane", stream, createGraphics); Console.WriteLine("ground id: " + groundId); - string command = createGraphics.DeleteGroundPaneCommand(groundId); + string command; + //command = createGraphics.DeleteGroundPaneCommand(groundId); //string command = createGraphics.ResetScene(); + command = createGraphics.SkyboxCommand(DateTime.Now.Millisecond % 24); Console.WriteLine("tunnelID is: " + tunnelID); WriteTextMessage(stream, command); Console.WriteLine(ReadPrefMessage(stream)); + + command = createGraphics.ModelCommand(); + + WriteTextMessage(stream, command); + + Console.WriteLine(ReadPrefMessage(stream)); + + } public static string GetId(string name, NetworkStream stream, CreateGraphics createGraphics) From c82f1e9537a61209290f53d8c66164ef12ab4be7 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 18 Sep 2020 12:53:14 +0200 Subject: [PATCH 39/58] comments --- RH-Engine/Program.cs | 46 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index f127687..d0988b9 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -106,11 +106,16 @@ namespace RH_Engine Console.WriteLine(ReadPrefMessage(stream)); } + /// + /// gets the id of the object with the given name + /// + /// the name of the object + /// the network stream to send requests to + /// the create graphics object to create all the commands + /// the uuid of the object with the given name, null otherwise. public static string GetId(string name, NetworkStream stream, CreateGraphics createGraphics) { - WriteTextMessage(stream, createGraphics.GetSceneInfoCommand()); - dynamic response = JsonConvert.DeserializeObject(ReadPrefMessage(stream)); - JArray children = response.data.data.data.children; + JArray children = GetChildren(stream, createGraphics); foreach (dynamic child in children) { @@ -124,6 +129,41 @@ namespace RH_Engine } + /// + /// gets all the children in the current scene + /// + /// the network stream to send requests to + /// the create graphics object to create all the commands + /// all the children objects in the current scene + public static JArray GetChildren(NetworkStream stream, CreateGraphics createGraphics) + { + WriteTextMessage(stream, createGraphics.GetSceneInfoCommand()); + dynamic response = JsonConvert.DeserializeObject(ReadPrefMessage(stream)); + return response.data.data.data.children; + } + + /// + /// returns all objects in the current scene, as name-uuid tuples. + /// + /// the network stream to send requests to + /// the create graphics object to create all the commands + /// an array of name-uuid tuples for each object + public static (string,string)[] GetObjectsInScene(NetworkStream stream, CreateGraphics createGraphics) + { + JArray children = GetChildren(stream, createGraphics); + (string, string)[] res = new (string, string)[children.Count]; + + int i = 0; + foreach (dynamic child in children) + { + res[i] = (child.name, child.uuid); + i++; + } + + return res; + + } + } From bc99bfd46bbe1711d0a11d2247999c7c8df8fec7 Mon Sep 17 00:00:00 2001 From: "DESKTOP-TV73FK0\\woute" Date: Fri, 18 Sep 2020 14:16:41 +0200 Subject: [PATCH 40/58] addlayer(not finished) --- RH-Engine/CreateGraphics.cs | 30 +++++++++++++++++++++++++++++- RH-Engine/Program.cs | 24 ++++++++++-------------- 2 files changed, 39 insertions(+), 15 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 96d2eca..6b37350 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -37,7 +37,35 @@ namespace RH_Engine }; return JsonConvert.SerializeObject(Payload(payload)); } - + public string AddLayer(string uid, string texture) + { + dynamic payload = new + { + id = "scene/node/addlayer", + data = new + { + id = uid, + diffuse = @"C:\Users\woute\Downloads\NetworkEngine.18.10.10.1\NetworkEngine\data\NetworkEngine\textures\terrain\adesert_cracks_d.jpg", + normal = @"C:\Users\woute\Downloads\NetworkEngine.18.10.10.1\NetworkEngine\data\NetworkEngine\textures\terrain\adesert_mntn_d.jpg", + minHeight = 0, + maxHeight = 10, + fadeDist = 1 + } + }; + return JsonConvert.SerializeObject(Payload(payload)); + } + public string UpdateTerrain() + { + dynamic payload = new + { + id = "scene/terrain/update", + data = new + { + + } + }; + return JsonConvert.SerializeObject(Payload(payload)); + } public string AddNodeCommand() { diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 87be7ad..aafdbee 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -87,30 +87,26 @@ namespace RH_Engine } CreateGraphics createGraphics = new CreateGraphics(tunnelID); -<<<<<<< HEAD - -======= - //int[] heigths = new int[65536]; - //for(int i =0; i < heigths.Length; i++) - //{ - // heigths[i] = 0; - //} - - //string command = createGraphics.TerrainCommand(new int[] { 256, 256 }, heigths); string groundId = GetId("GroundPlane", stream, createGraphics); Console.WriteLine("ground id: " + groundId); string command = createGraphics.DeleteGroundPaneCommand(groundId); - //string command = createGraphics.ResetScene(); ->>>>>>> 0e2ee807e147b30f2517a1be463f08da41a799fd + Console.WriteLine("tunnelID is: " + tunnelID); - WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 2, 2 }, new int[] { 1, 1, 1, 1 })); - + WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 256, 256 }, null)); Console.WriteLine(ReadPrefMessage(stream)); + WriteTextMessage(stream, createGraphics.AddNodeCommand()); Console.WriteLine(ReadPrefMessage(stream)); + + /*String tempID = GetId("newNode", stream, createGraphics); + WriteTextMessage(stream, createGraphics.AddLayer(tempID, "")); + Console.WriteLine(ReadPrefMessage(stream)); + + WriteTextMessage(stream, createGraphics.UpdateTerrain()); + Console.WriteLine(ReadPrefMessage(stream));*/ } public static string GetId(string name, NetworkStream stream, CreateGraphics createGraphics) From 1cda95525432a4e765e35620c0dd5a13e1dc1ece Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 18 Sep 2020 14:21:33 +0200 Subject: [PATCH 41/58] pc stuff --- RH-Engine/Program.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 2d4b2a0..077a311 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -14,8 +14,8 @@ namespace RH_Engine { private static PC[] PCs = { //new PC("DESKTOP-M2CIH87", "Fabian"), - new PC("T470S", "Shinichi"), - //new PC("DESKTOP-DHS478C", "semme"), + //new PC("T470S", "Shinichi"), + new PC("DESKTOP-DHS478C", "semme"), //new PC("DESKTOP-TV73FKO", "Wouter"), //new PC("NA", "Ralf"), //new PC("NA", "Bart") From 6e09b87f60aa9e4851804ad2d49557c6078c1eb7 Mon Sep 17 00:00:00 2001 From: shinichi Date: Fri, 18 Sep 2020 14:23:43 +0200 Subject: [PATCH 42/58] added method overloading and custom models --- RH-Engine/CreateGraphics.cs | 26 +++++++++++++++++++++----- RH-Engine/Program.cs | 8 +++++++- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index ceda29c..76cb809 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -61,9 +61,25 @@ namespace RH_Engine } - public string ModelCommand() + public string AddBikeModel() { - string namename = "bike"; + return AddModel("bike", "data\\NetworkEngine\\models\\bike\\bike.fbx", null); + } + + public string AddModel(string nodeName, string fileLocation) + { + return AddModel(nodeName, fileLocation, null); + } + + public string AddModel(string nodeName, string fileLocation, string animationLocation) + { + string namename = nodeName; + bool animatedBool = false; + if (animationLocation != null) + { + animatedBool = true; + } + dynamic payload = new { id = "scene/node/add", @@ -74,10 +90,10 @@ namespace RH_Engine { model = new { - file = "data\\NetworkEngine\\models\\bike\\bike.fbx", + file = fileLocation, cullbackfaces = true, - animated = false, - animation = "data\\NetworkEngine\\models\\bike\\bike_anim.fbx" + animated = animatedBool, + animation = animationLocation }, } } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 2d4b2a0..bc8dc89 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -108,7 +108,13 @@ namespace RH_Engine Console.WriteLine(ReadPrefMessage(stream)); - command = createGraphics.ModelCommand(); + command = createGraphics.AddBikeModel(); + + WriteTextMessage(stream, command); + + Console.WriteLine(ReadPrefMessage(stream)); + + command = createGraphics.AddModel("car", "data\\customModels\\TeslaRoadster.fbx"); WriteTextMessage(stream, command); From 1e7d679fc2219e51f169db6d8eb386f2dff3581e Mon Sep 17 00:00:00 2001 From: fabjuuuh Date: Fri, 18 Sep 2020 14:24:55 +0200 Subject: [PATCH 43/58] Yeet --- RH-Engine/Program.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 5099892..4f60804 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -13,14 +13,12 @@ namespace RH_Engine internal class Program { private static PC[] PCs = { -<<<<<<< HEAD new PC("DESKTOP-TV73FK0", "woute"), //new PC("DESKTOP-M2CIH87", "Fabian"), //new PC("T470S", "Shinichi"), //new PC("DESKTOP-DHS478C", "semme"), new PC("NA", "Ralf"), - new PC("NA", "Bart") }; -======= + new PC("NA", "Bart"), //new PC("DESKTOP-M2CIH87", "Fabian"), //new PC("T470S", "Shinichi"), new PC("DESKTOP-DHS478C", "semme"), @@ -28,7 +26,6 @@ namespace RH_Engine //new PC("NA", "Ralf"), //new PC("NA", "Bart") }; ->>>>>>> 8fd3322c63830c7f5cc7668ffd49e8203dbe1a95 private static void Main(string[] args) { TcpClient client = new TcpClient("145.48.6.10", 6666); From 3d72ed9694649630954f0c7a18851e9e7e73e787 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 18 Sep 2020 14:25:21 +0200 Subject: [PATCH 44/58] conflicts yay --- RH-Engine/Program.cs | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 5099892..de7bda8 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -13,22 +13,15 @@ namespace RH_Engine internal class Program { private static PC[] PCs = { -<<<<<<< HEAD + new PC("DESKTOP-TV73FK0", "woute"), //new PC("DESKTOP-M2CIH87", "Fabian"), //new PC("T470S", "Shinichi"), //new PC("DESKTOP-DHS478C", "semme"), new PC("NA", "Ralf"), new PC("NA", "Bart") }; -======= - //new PC("DESKTOP-M2CIH87", "Fabian"), - //new PC("T470S", "Shinichi"), - new PC("DESKTOP-DHS478C", "semme"), - //new PC("DESKTOP-TV73FKO", "Wouter"), - //new PC("NA", "Ralf"), - //new PC("NA", "Bart") - }; ->>>>>>> 8fd3322c63830c7f5cc7668ffd49e8203dbe1a95 + + private static void Main(string[] args) { TcpClient client = new TcpClient("145.48.6.10", 6666); From f1066a365e56c1628c29a12cb086def0890d33b8 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 18 Sep 2020 14:41:18 +0200 Subject: [PATCH 45/58] comments on program.cs --- RH-Engine/Program.cs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 1207577..31cd4b5 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -18,7 +18,6 @@ namespace RH_Engine //new PC("T470S", "Shinichi"), //new PC("DESKTOP-DHS478C", "semme"), new PC("NA", "Ralf"), - new PC("NA", "Bart") }; private static void Main(string[] args) { @@ -29,6 +28,11 @@ namespace RH_Engine } + /// + /// writes a message to the server + /// + /// the network stream to use + /// the message to send public static void WriteTextMessage(NetworkStream stream, string message) { byte[] msg = Encoding.ASCII.GetBytes(message); @@ -42,6 +46,11 @@ namespace RH_Engine //Console.WriteLine("sent message " + message); } + /// + /// reads a response from the server + /// + /// the network stream to use + /// the returned message from the server public static string ReadPrefMessage(NetworkStream stream) { byte[] lengthBytes = new byte[4]; @@ -66,7 +75,10 @@ namespace RH_Engine return Encoding.UTF8.GetString(buffer, 0, totalRead); } - + /// + /// connects to the server and creates the tunnel + /// + /// the network stream to use private static void CreateConnection(NetworkStream stream) { WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); @@ -180,7 +192,9 @@ namespace RH_Engine } - + /// + /// struct used to store the host pc name and user + /// public readonly struct PC { public PC(string host, string user) From b7f3f3542f1c826553f7c159fd24c96286977ed0 Mon Sep 17 00:00:00 2001 From: shinichi Date: Fri, 18 Sep 2020 14:47:33 +0200 Subject: [PATCH 46/58] various changes --- RH-Engine/CreateGraphics.cs | 2 +- RH-Engine/Program.cs | 47 +++++++++++++++++++++++-------------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 3c0c5d0..062908c 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -23,7 +23,7 @@ namespace RH_Engine this.tunnelID = tunnelID; } - public string TerrainCommand(int[] sizeArray, int[] heightsArray) + public string TerrainCommand(int[] sizeArray, float[] heightsArray) { dynamic payload = new { diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 1207577..d1ffaeb 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -13,19 +13,19 @@ namespace RH_Engine internal class Program { private static PC[] PCs = { - new PC("DESKTOP-TV73FK0", "woute"), + //new PC("DESKTOP-TV73FK0", "woute"), //new PC("DESKTOP-M2CIH87", "Fabian"), - //new PC("T470S", "Shinichi"), + new PC("T470S", "Shinichi"), //new PC("DESKTOP-DHS478C", "semme"), new PC("NA", "Ralf"), - - new PC("NA", "Bart") }; + new PC("NA", "Bart") } + ; private static void Main(string[] args) { TcpClient client = new TcpClient("145.48.6.10", 6666); CreateConnection(client.GetStream()); - + } @@ -79,7 +79,7 @@ namespace RH_Engine string tunnelResponse = ReadPrefMessage(stream); Console.WriteLine(tunnelResponse); - + string tunnelID = JSONParser.GetTunnelID(tunnelResponse); if (tunnelID == null) { @@ -90,31 +90,42 @@ namespace RH_Engine CreateGraphics createGraphics = new CreateGraphics(tunnelID); + WriteTextMessage(stream, createGraphics.ResetScene()); + + Console.WriteLine(ReadPrefMessage(stream)); + + + string groundId = GetId("GroundPlane", stream, createGraphics); Console.WriteLine("ground id: " + groundId); - string command; - command = createGraphics.SkyboxCommand(DateTime.Now.Millisecond % 24); + WriteTextMessage(stream, createGraphics.SkyboxCommand(DateTime.Now.Millisecond % 24)); + + Console.WriteLine(ReadPrefMessage(stream)); + Console.WriteLine("tunnelID is: " + tunnelID); - WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 256, 256 }, null)); + float[] heights = new float[65536]; + Random random = new Random(); + for (int i = 0; i < heights.Length; i++) + { + heights[i] = (float)random.NextDouble(); + } + + WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 256, 256 }, heights)); Console.WriteLine(ReadPrefMessage(stream)); WriteTextMessage(stream, createGraphics.AddNodeCommand()); Console.WriteLine(ReadPrefMessage(stream)); - command = createGraphics.AddBikeModel(); + WriteTextMessage(stream, createGraphics.AddBikeModel()); - WriteTextMessage(stream, command); + //Console.WriteLine(ReadPrefMessage(stream)); - Console.WriteLine(ReadPrefMessage(stream)); + //WriteTextMessage(stream, createGraphics.AddModel("car", "data\\customModels\\TeslaRoadster.fbx")); - command = createGraphics.AddModel("car", "data\\customModels\\TeslaRoadster.fbx"); - - WriteTextMessage(stream, command); - - Console.WriteLine(ReadPrefMessage(stream)); + //Console.WriteLine(ReadPrefMessage(stream)); @@ -162,7 +173,7 @@ namespace RH_Engine /// the network stream to send requests to /// the create graphics object to create all the commands /// an array of name-uuid tuples for each object - public static (string,string)[] GetObjectsInScene(NetworkStream stream, CreateGraphics createGraphics) + public static (string, string)[] GetObjectsInScene(NetworkStream stream, CreateGraphics createGraphics) { JArray children = GetChildren(stream, createGraphics); (string, string)[] res = new (string, string)[children.Count]; From 36a01772703f64bd7a4a3dd3c6525684e4fb4206 Mon Sep 17 00:00:00 2001 From: Logophilist Date: Fri, 18 Sep 2020 14:54:13 +0200 Subject: [PATCH 47/58] routecommand attempt1 --- RH-Engine/CreateGraphics.cs | 56 +++++++++++++++++++++++++++++++++++-- RH-Engine/Program.cs | 8 +++--- RH-Engine/RH-Engine.csproj | 1 + 3 files changed, 59 insertions(+), 6 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 062908c..b33c3f8 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -1,8 +1,10 @@ -using Newtonsoft.Json; +using LibNoise.Primitive; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Text; +using System.Threading; namespace RH_Engine { @@ -148,7 +150,57 @@ namespace RH_Engine public string RouteCommand() { - return ""; + ImprovedPerlin improvedPerlin = new ImprovedPerlin(0, LibNoise.NoiseQuality.Best); + + dynamic payload = new + { + id = "route/add", + data = new + { + nodes = new dynamic[] + { + new + { + pos = GetPos(0, improvedPerlin), + dir = GetDir() + }, + new + { + pos = GetPos(1, improvedPerlin), + dir = GetDir() + }, + new + { + pos = GetPos(2, improvedPerlin), + dir = GetDir() + }, + new + { + pos = GetPos(3, improvedPerlin), + dir = GetDir() + }, + new + { + pos = GetPos(4, improvedPerlin), + dir = GetDir() + } + } + } + }; + Console.WriteLine(JsonConvert.SerializeObject(Payload(payload))); + return JsonConvert.SerializeObject(Payload(payload)); + } + + private int[] GetPos(int n, ImprovedPerlin improvedPerlin) + { + return new int[] { (int)improvedPerlin.GetValue(n) * 50 * n, 0, (int)improvedPerlin.GetValue(n) * 50 }; + } + + private int[] GetDir() + { + Random rng = new Random(); + int[] dir = {rng.Next(5), rng.Next(5), rng.Next(5)}; + return dir; } public string FollowRouteCommand() diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index fe8a35f..81199ab 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -13,11 +13,11 @@ namespace RH_Engine internal class Program { private static PC[] PCs = { - //new PC("DESKTOP-TV73FK0", "woute"), //new PC("DESKTOP-M2CIH87", "Fabian"), - new PC("T470S", "Shinichi"), - //new PC("DESKTOP-DHS478C", "semme"), - new PC("NA", "Ralf"), + //new PC("T470S", "Shinichi"), + new PC("DESKTOP-DHS478C", "semme"), + //new PC("DESKTOP-TV73FKO", "Wouter"), + new PC("DESKTOP-SINMKT1", "Ralf"), new PC("NA", "Bart") }; private static void Main(string[] args) { diff --git a/RH-Engine/RH-Engine.csproj b/RH-Engine/RH-Engine.csproj index 7d2f521..bb56f7b 100644 --- a/RH-Engine/RH-Engine.csproj +++ b/RH-Engine/RH-Engine.csproj @@ -7,6 +7,7 @@ + From 6eb2ac1a8289b4cf1834455ccdb4774ff97a3648 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 18 Sep 2020 15:33:04 +0200 Subject: [PATCH 48/58] added route --- RH-Engine/CreateGraphics.cs | 37 +++++++++++++++++++++---------------- RH-Engine/Program.cs | 34 +++++++++++++++++----------------- 2 files changed, 38 insertions(+), 33 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index b33c3f8..a76fd1b 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -150,8 +150,8 @@ namespace RH_Engine public string RouteCommand() { - ImprovedPerlin improvedPerlin = new ImprovedPerlin(0, LibNoise.NoiseQuality.Best); - + ImprovedPerlin improvedPerlin = new ImprovedPerlin(4325, LibNoise.NoiseQuality.Best); + Random r = new Random(); dynamic payload = new { id = "route/add", @@ -161,45 +161,50 @@ namespace RH_Engine { new { - pos = GetPos(0, improvedPerlin), - dir = GetDir() + /*pos = GetPos(0.6f, improvedPerlin)*/ + pos = new int[] {0,0,5 }, + dir = new int[] { r.Next(20,100),0,-r.Next(20, 100) } }, new { - pos = GetPos(1, improvedPerlin), - dir = GetDir() + //pos = GetPos(1.6f, improvedPerlin), + pos = new int[] {50,0,0 }, + dir = new int[] { r.Next(20, 100),0,r.Next(20, 100) } }, new { - pos = GetPos(2, improvedPerlin), - dir = GetDir() + //pos = GetPos(2.654f, improvedPerlin), + pos = new int[] {20,0,20 }, + dir = new int[] { r.Next(20, 100),0,r.Next(20, 100) } }, new { - pos = GetPos(3, improvedPerlin), - dir = GetDir() + //pos = GetPos(3.6543f, improvedPerlin), + pos = new int[] {10,0,50 }, + dir = new int[] { -r.Next(3,7),0,r.Next(3,7) } }, new { - pos = GetPos(4, improvedPerlin), - dir = GetDir() + pos = new int[] {0,0,50 }, + dir = new int[] { -r.Next(20, 50),0,-r.Next(20, 50) } } } } }; - Console.WriteLine(JsonConvert.SerializeObject(Payload(payload))); + Console.WriteLine("route command: " + JsonConvert.SerializeObject(Payload(payload))); return JsonConvert.SerializeObject(Payload(payload)); } - private int[] GetPos(int n, ImprovedPerlin improvedPerlin) + private float[] GetPos(float n, ImprovedPerlin improvedPerlin) { - return new int[] { (int)improvedPerlin.GetValue(n) * 50 * n, 0, (int)improvedPerlin.GetValue(n) * 50 }; + float[] res = new float[] { improvedPerlin.GetValue(n) * 50, 0, improvedPerlin.GetValue(n) * 50 }; + return res; } private int[] GetDir() { Random rng = new Random(); - int[] dir = {rng.Next(5), rng.Next(5), rng.Next(5)}; + int[] dir = {rng.Next(50), 0, rng.Next(50)}; return dir; } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 81199ab..a3f054a 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -107,31 +107,31 @@ namespace RH_Engine Console.WriteLine(ReadPrefMessage(stream)); + WriteTextMessage(stream, createGraphics.RouteCommand()); + //string groundId = GetId("GroundPlane", stream, createGraphics); + //Console.WriteLine("ground id: " + groundId); - string groundId = GetId("GroundPlane", stream, createGraphics); - Console.WriteLine("ground id: " + groundId); + //WriteTextMessage(stream, createGraphics.SkyboxCommand(DateTime.Now.Millisecond % 24)); - WriteTextMessage(stream, createGraphics.SkyboxCommand(DateTime.Now.Millisecond % 24)); - - Console.WriteLine(ReadPrefMessage(stream)); + //Console.WriteLine(ReadPrefMessage(stream)); - Console.WriteLine("tunnelID is: " + tunnelID); + //Console.WriteLine("tunnelID is: " + tunnelID); - float[] heights = new float[65536]; - Random random = new Random(); - for (int i = 0; i < heights.Length; i++) - { - heights[i] = (float)random.NextDouble(); - } + //float[] heights = new float[65536]; + //Random random = new Random(); + //for (int i = 0; i < heights.Length; i++) + //{ + // heights[i] = (float)random.NextDouble(); + //} - WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 256, 256 }, heights)); - Console.WriteLine(ReadPrefMessage(stream)); + //WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 256, 256 }, heights)); + //Console.WriteLine(ReadPrefMessage(stream)); - WriteTextMessage(stream, createGraphics.AddNodeCommand()); - Console.WriteLine(ReadPrefMessage(stream)); + //WriteTextMessage(stream, createGraphics.AddNodeCommand()); + //Console.WriteLine(ReadPrefMessage(stream)); - WriteTextMessage(stream, createGraphics.AddBikeModel()); + //WriteTextMessage(stream, createGraphics.AddBikeModel()); //Console.WriteLine(ReadPrefMessage(stream)); From 17eb3b184568d91e5a71cb51390e89f0ecc2605a Mon Sep 17 00:00:00 2001 From: shinichi Date: Fri, 18 Sep 2020 15:39:30 +0200 Subject: [PATCH 49/58] added positions for models --- RH-Engine/CreateGraphics.cs | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 062908c..154e993 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -59,9 +59,9 @@ namespace RH_Engine dynamic payload = new { id = "scene/terrain/update", - data = new + data = new { - + } }; return JsonConvert.SerializeObject(Payload(payload)); @@ -87,7 +87,7 @@ namespace RH_Engine return JsonConvert.SerializeObject(Payload(payload)); } - public string DeleteGroundPaneCommand(string uuid) + public string DeleteNode(string uuid) { dynamic payload = new @@ -106,15 +106,20 @@ namespace RH_Engine public string AddBikeModel() { - return AddModel("bike", "data\\NetworkEngine\\models\\bike\\bike.fbx", null); + return AddModel("bike", "data\\NetworkEngine\\models\\bike\\bike.fbx"); } public string AddModel(string nodeName, string fileLocation) { - return AddModel(nodeName, fileLocation, null); + return AddModel(nodeName, fileLocation, null, new float[]{ 0,0,0} ,1, new float[] { 0, 0, 0 }); } - public string AddModel(string nodeName, string fileLocation, string animationLocation) + public string AddModel(string nodeName, string fileLocation, float[] positionVector, float scalar, float[] rotationVector) + { + return AddModel(nodeName, fileLocation, null, positionVector, scalar, rotationVector); + } + + public string AddModel(string nodeName, string fileLocation, string animationLocation, float[] positionVector, float scalar, float[] rotationVector) { string namename = nodeName; bool animatedBool = false; @@ -131,6 +136,13 @@ namespace RH_Engine name = namename, components = new { + transform = new + { + position = positionVector, + scale = scalar, + rotation = rotationVector + + }, model = new { file = fileLocation, @@ -202,6 +214,7 @@ namespace RH_Engine } + private object Payload(dynamic message) { return new From c69c3193d4a7bbb6fa85336c2047cc29d8016b7b Mon Sep 17 00:00:00 2001 From: shinichi Date: Fri, 18 Sep 2020 15:56:34 +0200 Subject: [PATCH 50/58] added moveTo not working --- RH-Engine/CreateGraphics.cs | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 154e993..2ce7a06 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -111,7 +111,7 @@ namespace RH_Engine public string AddModel(string nodeName, string fileLocation) { - return AddModel(nodeName, fileLocation, null, new float[]{ 0,0,0} ,1, new float[] { 0, 0, 0 }); + return AddModel(nodeName, fileLocation, null, new float[] { 0, 0, 0 }, 1, new float[] { 0, 0, 0 }); } public string AddModel(string nodeName, string fileLocation, float[] positionVector, float scalar, float[] rotationVector) @@ -157,6 +157,31 @@ namespace RH_Engine return JsonConvert.SerializeObject(Payload(payload)); } + public string MoveTo(string uuid, float[] positionVector, float rotateValue, float speedValue, float timeValue) + { + return MoveTo(uuid, "idk", positionVector, rotateValue, "linear", false, speedValue, timeValue); + } + + private string MoveTo(string uuid, string stopValue, float[] positionVector, float rotateValue, string interpolateValue, bool followHeightValue, float speedValue, float timeValue) + { + dynamic payload = new + { + id = "scene/node/moveto", + data = new + { + id = uuid, + stop = stopValue, + position = positionVector, + rotate = rotateValue, + interpolate = interpolateValue, + followheight = followHeightValue, + speed = speedValue, + time = timeValue + } + }; + return JsonConvert.SerializeObject(Payload(payload)); + } + public string RouteCommand() { From 4a745ace75511cd6ec859ef69ceca5f15e5712c8 Mon Sep 17 00:00:00 2001 From: shinichi Date: Fri, 18 Sep 2020 15:59:46 +0200 Subject: [PATCH 51/58] added getUUIDFromResponse --- RH-Engine/Program.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index a3f054a..d2770b5 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -139,6 +139,10 @@ namespace RH_Engine //Console.WriteLine(ReadPrefMessage(stream)); + //add monkey head + //WriteTextMessage(stream, createGraphics.AddModel("Face", "data\\vrlib\\rendermodels\\face\\face.obj", new float[] { 0, 3, 0 }, 10, new float[] { 0, 0, 0 })); + //string headUuid = getUUIDFormResponse(ReadPrefMessage(stream)); + } @@ -201,6 +205,12 @@ namespace RH_Engine } + public static string getUUIDFromResponse(string response) + { + dynamic JSON = JsonConvert.DeserializeObject(response); + return JSON.data.data.data.uuid; + } + } /// From 12b4b90bc5239ef38a1f8cedaf2eefcdc345ca82 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 18 Sep 2020 16:00:43 +0200 Subject: [PATCH 52/58] create route method --- RH-Engine/Program.cs | 59 +++++++++++++++----------------------------- 1 file changed, 20 insertions(+), 39 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index a3f054a..1555f9f 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -6,6 +6,7 @@ using System.Net.Sockets; using System.Runtime.Intrinsics.X86; using System.Security.Cryptography.X509Certificates; using System.Text; +using System.Threading; namespace RH_Engine { @@ -15,10 +16,11 @@ namespace RH_Engine private static PC[] PCs = { //new PC("DESKTOP-M2CIH87", "Fabian"), //new PC("T470S", "Shinichi"), - new PC("DESKTOP-DHS478C", "semme"), + new PC("DESKTOP-DHS478C", "semme") //new PC("DESKTOP-TV73FKO", "Wouter"), - new PC("DESKTOP-SINMKT1", "Ralf"), - new PC("NA", "Bart") }; + //new PC("DESKTOP-SINMKT1", "Ralf"), + //new PC("NA", "Bart") + }; private static void Main(string[] args) { TcpClient client = new TcpClient("145.48.6.10", 6666); @@ -101,44 +103,11 @@ namespace RH_Engine CreateGraphics createGraphics = new CreateGraphics(tunnelID); - - WriteTextMessage(stream, createGraphics.ResetScene()); - - Console.WriteLine(ReadPrefMessage(stream)); - - WriteTextMessage(stream, createGraphics.RouteCommand()); - //string groundId = GetId("GroundPlane", stream, createGraphics); - //Console.WriteLine("ground id: " + groundId); - - //WriteTextMessage(stream, createGraphics.SkyboxCommand(DateTime.Now.Millisecond % 24)); - - //Console.WriteLine(ReadPrefMessage(stream)); - - - //Console.WriteLine("tunnelID is: " + tunnelID); - - //float[] heights = new float[65536]; - //Random random = new Random(); - //for (int i = 0; i < heights.Length; i++) - //{ - // heights[i] = (float)random.NextDouble(); - //} - - //WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 256, 256 }, heights)); - //Console.WriteLine(ReadPrefMessage(stream)); - - //WriteTextMessage(stream, createGraphics.AddNodeCommand()); - //Console.WriteLine(ReadPrefMessage(stream)); - - //WriteTextMessage(stream, createGraphics.AddBikeModel()); - - //Console.WriteLine(ReadPrefMessage(stream)); - - //WriteTextMessage(stream, createGraphics.AddModel("car", "data\\customModels\\TeslaRoadster.fbx")); - - //Console.WriteLine(ReadPrefMessage(stream)); + Console.WriteLine("data: " + ReadPrefMessage(stream)); + //WriteTextMessage(stream, createGraphics.GetSceneInfoCommand()); + //Console.WriteLine("data: " + ReadPrefMessage(stream)); } @@ -166,6 +135,18 @@ namespace RH_Engine } + public static string CreateRoute(NetworkStream stream, CreateGraphics createGraphics) + { + WriteTextMessage(stream, createGraphics.RouteCommand()); + dynamic response = JsonConvert.DeserializeObject(ReadPrefMessage(stream)); + if (response.data.data.id == "route/add") + { + return response.data.data.data.uuid; + } + return null; + + } + /// /// gets all the children in the current scene /// From de7f667dd04ca339ae984bb7bd1cede959508a77 Mon Sep 17 00:00:00 2001 From: fabjuuuh Date: Fri, 18 Sep 2020 16:01:39 +0200 Subject: [PATCH 53/58] Terrain --- RH-Engine/CreateGraphics.cs | 2 +- RH-Engine/Program.cs | 37 +++++++++++++++++++++++-------------- RH-Engine/RH-Engine.csproj | 3 ++- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 3c0c5d0..062908c 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -23,7 +23,7 @@ namespace RH_Engine this.tunnelID = tunnelID; } - public string TerrainCommand(int[] sizeArray, int[] heightsArray) + public string TerrainCommand(int[] sizeArray, float[] heightsArray) { dynamic payload = new { diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index cc2de69..95a4b46 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json; +using LibNoise.Primitive; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.IO; @@ -13,15 +14,15 @@ namespace RH_Engine internal class Program { private static PC[] PCs = { - new PC("DESKTOP-TV73FK0", "woute"), + //new PC("DESKTOP-TV73FK0", "woute"), + new PC("DESKTOP-M2CIH87", "Fabian"), + //new PC("T470S", "Shinichi"), + //new PC("DESKTOP-DHS478C", "semme"), + //new PC("NA", "Ralf"), + //new PC("NA", "Bart"), //new PC("DESKTOP-M2CIH87", "Fabian"), //new PC("T470S", "Shinichi"), //new PC("DESKTOP-DHS478C", "semme"), - new PC("NA", "Ralf"), - new PC("NA", "Bart"), - //new PC("DESKTOP-M2CIH87", "Fabian"), - //new PC("T470S", "Shinichi"), - new PC("DESKTOP-DHS478C", "semme"), //new PC("DESKTOP-TV73FKO", "Wouter"), //new PC("NA", "Ralf"), //new PC("NA", "Bart") @@ -103,24 +104,32 @@ namespace RH_Engine command = createGraphics.SkyboxCommand(DateTime.Now.Millisecond % 24); Console.WriteLine("tunnelID is: " + tunnelID); + float x = 0f; + float[] height = new float[256*256]; + ImprovedPerlin improvedPerlin = new ImprovedPerlin(0, LibNoise.NoiseQuality.Best); + for(int i=0; i<256*256; i++) + { + height[i] = improvedPerlin.GetValue(x/10,x/10,x*100)+1; + x += 0.001f; + } - WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 256, 256 }, null)); + WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 256, 256 }, height)); Console.WriteLine(ReadPrefMessage(stream)); WriteTextMessage(stream, createGraphics.AddNodeCommand()); Console.WriteLine(ReadPrefMessage(stream)); - command = createGraphics.AddBikeModel(); + //command = createGraphics.AddBikeModel(); - WriteTextMessage(stream, command); + //WriteTextMessage(stream, command); - Console.WriteLine(ReadPrefMessage(stream)); + //Console.WriteLine(ReadPrefMessage(stream)); - command = createGraphics.AddModel("car", "data\\customModels\\TeslaRoadster.fbx"); + //command = createGraphics.AddModel("car", "data\\customModels\\TeslaRoadster.fbx"); - WriteTextMessage(stream, command); + //WriteTextMessage(stream, command); - Console.WriteLine(ReadPrefMessage(stream)); + //Console.WriteLine(ReadPrefMessage(stream)); diff --git a/RH-Engine/RH-Engine.csproj b/RH-Engine/RH-Engine.csproj index 7d2f521..0c92efb 100644 --- a/RH-Engine/RH-Engine.csproj +++ b/RH-Engine/RH-Engine.csproj @@ -1,4 +1,4 @@ - + Exe @@ -7,6 +7,7 @@ + From c837af039215d700522c04327b8ca84d899eea02 Mon Sep 17 00:00:00 2001 From: Logophilist Date: Fri, 18 Sep 2020 16:06:35 +0200 Subject: [PATCH 54/58] attempt for road on route --- RH-Engine/CreateGraphics.cs | 16 ++++++++++++++-- RH-Engine/JSONParser.cs | 9 +++++++++ RH-Engine/Program.cs | 19 ++++++++++++++----- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index c4331ba..6da32bc 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -250,9 +250,21 @@ namespace RH_Engine return ""; } - public string RoadCommand() + public string RoadCommand(string uuid_route) { - return ""; + dynamic payload = new + { + id = "scene/road/add", + data = new + { + route = uuid_route, + diffuse = "data/NetworkEngine/textures/tarmac_diffuse.png", + normal = "data/NetworkEngine/textures/tarmac_normale.png", + specular = "data/NetworkEngine/textures/tarmac_specular.png", + heightoffset = 0.01 + } + }; + return JsonConvert.SerializeObject(Payload(payload))); } public string GetSceneInfoCommand() diff --git a/RH-Engine/JSONParser.cs b/RH-Engine/JSONParser.cs index d2e167f..2f1f903 100644 --- a/RH-Engine/JSONParser.cs +++ b/RH-Engine/JSONParser.cs @@ -60,6 +60,15 @@ namespace RH_Engine return null; } + public static string GetRouteID(string json) + { + dynamic jsonData = JsonConvert.DeserializeObject(json); + if (jsonData.data.status == "ok") + { + return jsonData.data.uuid; + } + return null; + } } } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 6ae1d64..7328292 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -104,11 +104,20 @@ namespace RH_Engine CreateGraphics createGraphics = new CreateGraphics(tunnelID); WriteTextMessage(stream, createGraphics.RouteCommand()); - Console.WriteLine("data: " + ReadPrefMessage(stream)); - //WriteTextMessage(stream, createGraphics.GetSceneInfoCommand()); - //add monkey head - //WriteTextMessage(stream, createGraphics.AddModel("Face", "data\\vrlib\\rendermodels\\face\\face.obj", new float[] { 0, 3, 0 }, 10, new float[] { 0, 0, 0 })); - //string headUuid = getUUIDFormResponse(ReadPrefMessage(stream)); + + string routeResponse = ReadPrefMessage(stream); + + string routeID = JSONParser.GetTunnelID(tunnelResponse); + if (routeID == null) + { + Console.WriteLine("could not find a valid route uuid!"); + return; + } + + WriteTextMessage(stream, createGraphics.RoadCommand(routeID)); + + //string groundId = GetId("GroundPlane", stream, createGraphics); + //Console.WriteLine("ground id: " + groundId); From 92d95eb6a671fb61c54560c7776f212b6c1ebc97 Mon Sep 17 00:00:00 2001 From: fabjuuuh Date: Fri, 18 Sep 2020 16:29:26 +0200 Subject: [PATCH 55/58] Made method for terrain no longer in createconnection --- RH-Engine/Program.cs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 4206933..2d1c533 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -119,7 +119,7 @@ namespace RH_Engine WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 256, 256 }, null)); Console.WriteLine(ReadPrefMessage(stream)); - + string command; command = createGraphics.AddBikeModel(); @@ -172,6 +172,24 @@ namespace RH_Engine } + public static void CreateTerrain(NetworkStream stream, CreateGraphics createGraphics) + { + float x = 0f; + float[] height = new float[256 * 256]; + ImprovedPerlin improvedPerlin = new ImprovedPerlin(0, LibNoise.NoiseQuality.Best); + for (int i = 0; i < 256 * 256; i++) + { + height[i] = improvedPerlin.GetValue(x / 10, x / 10, x * 100) + 1; + x += 0.001f; + } + + WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 256, 256 }, height)); + Console.WriteLine(ReadPrefMessage(stream)); + + WriteTextMessage(stream, createGraphics.AddNodeCommand()); + Console.WriteLine(ReadPrefMessage(stream)); + } + /// /// gets all the children in the current scene /// From 9f675844eddf39374e264d88b72fe2f08809f439 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 18 Sep 2020 16:29:39 +0200 Subject: [PATCH 56/58] road showing --- RH-Engine/CreateGraphics.cs | 5 +++-- RH-Engine/Program.cs | 15 +++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index 6da32bc..8d6c732 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -252,6 +252,7 @@ namespace RH_Engine public string RoadCommand(string uuid_route) { + Console.WriteLine("road"); dynamic payload = new { id = "scene/road/add", @@ -261,10 +262,10 @@ namespace RH_Engine diffuse = "data/NetworkEngine/textures/tarmac_diffuse.png", normal = "data/NetworkEngine/textures/tarmac_normale.png", specular = "data/NetworkEngine/textures/tarmac_specular.png", - heightoffset = 0.01 + heightoffset = 1f } }; - return JsonConvert.SerializeObject(Payload(payload))); + return JsonConvert.SerializeObject(Payload(payload)); } public string GetSceneInfoCommand() diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 7328292..af74ca3 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -1,6 +1,7 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; +using System.Globalization; using System.IO; using System.Net.Sockets; using System.Runtime.Intrinsics.X86; @@ -103,18 +104,12 @@ namespace RH_Engine CreateGraphics createGraphics = new CreateGraphics(tunnelID); - WriteTextMessage(stream, createGraphics.RouteCommand()); - string routeResponse = ReadPrefMessage(stream); + WriteTextMessage(stream, createGraphics.ResetScene()); + ReadPrefMessage(stream); + string routeid = CreateRoute(stream, createGraphics); - string routeID = JSONParser.GetTunnelID(tunnelResponse); - if (routeID == null) - { - Console.WriteLine("could not find a valid route uuid!"); - return; - } - - WriteTextMessage(stream, createGraphics.RoadCommand(routeID)); + WriteTextMessage(stream, createGraphics.RoadCommand(routeid)); //string groundId = GetId("GroundPlane", stream, createGraphics); //Console.WriteLine("ground id: " + groundId); From 6d0439fab34b07216cbe5b28357afa4cda6bcea3 Mon Sep 17 00:00:00 2001 From: shinichi Date: Fri, 18 Sep 2020 16:31:19 +0200 Subject: [PATCH 57/58] added follow route --- RH-Engine/CreateGraphics.cs | 38 +++++++++++++++++++++++++++++++++---- RH-Engine/Program.cs | 24 ++++++++++++++--------- 2 files changed, 49 insertions(+), 13 deletions(-) diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs index c4331ba..bb2d61e 100644 --- a/RH-Engine/CreateGraphics.cs +++ b/RH-Engine/CreateGraphics.cs @@ -159,12 +159,12 @@ namespace RH_Engine return JsonConvert.SerializeObject(Payload(payload)); } - public string MoveTo(string uuid, float[] positionVector, float rotateValue, float speedValue, float timeValue) + public string MoveTo(string uuid, float[] positionVector, string rotateValue, float speedValue, float timeValue) { return MoveTo(uuid, "idk", positionVector, rotateValue, "linear", false, speedValue, timeValue); } - private string MoveTo(string uuid, string stopValue, float[] positionVector, float rotateValue, string interpolateValue, bool followHeightValue, float speedValue, float timeValue) + private string MoveTo(string uuid, string stopValue, float[] positionVector, string rotateValue, string interpolateValue, bool followHeightValue, float speedValue, float timeValue) { dynamic payload = new { @@ -184,7 +184,6 @@ namespace RH_Engine return JsonConvert.SerializeObject(Payload(payload)); } - public string RouteCommand() { ImprovedPerlin improvedPerlin = new ImprovedPerlin(4325, LibNoise.NoiseQuality.Best); @@ -232,6 +231,37 @@ namespace RH_Engine return JsonConvert.SerializeObject(Payload(payload)); } + public string RouteFollow(string routeID, string nodeID, float speedValue) + { + return RouteFollow(routeID, nodeID, speedValue, new float[] { 0, 0, 0 }); + } + + public string RouteFollow(string routeID, string nodeID, float speedValue, float[] positionOffsetVector) + { + return RouteFollow(routeID, nodeID, speedValue, 0, "XYZ", 1, true, new float[] { 0, 0, 0 }, positionOffsetVector); + } + private string RouteFollow(string routeID, string nodeID, float speedValue, float offsetValue, string rotateValue, float smoothingValue, bool followHeightValue, float[] rotateOffsetVector, float[] positionOffsetVector) + { + dynamic payload = new + { + id = "route/follow", + data = new + { + route = routeID, + node = nodeID, + speed = speedValue, + offset = offsetValue, + rotate = rotateValue, + smoothing = smoothingValue, + followHeight = followHeightValue, + rotateOffset = rotateOffsetVector, + positionOffset = positionOffsetVector + + } + }; + return JsonConvert.SerializeObject(Payload(payload)); + } + private float[] GetPos(float n, ImprovedPerlin improvedPerlin) { float[] res = new float[] { improvedPerlin.GetValue(n) * 50, 0, improvedPerlin.GetValue(n) * 50 }; @@ -241,7 +271,7 @@ namespace RH_Engine private int[] GetDir() { Random rng = new Random(); - int[] dir = {rng.Next(50), 0, rng.Next(50)}; + int[] dir = { rng.Next(50), 0, rng.Next(50) }; return dir; } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 6ae1d64..a0ad0f1 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -15,11 +15,11 @@ namespace RH_Engine { private static PC[] PCs = { //new PC("DESKTOP-M2CIH87", "Fabian"), - //new PC("T470S", "Shinichi"), - new PC("DESKTOP-DHS478C", "semme") + new PC("T470S", "Shinichi"), + //new PC("DESKTOP-DHS478C", "semme") //new PC("DESKTOP-TV73FKO", "Wouter"), //new PC("DESKTOP-SINMKT1", "Ralf"), - //new PC("NA", "Bart") + //new PC("NA", "Bart") }; private static void Main(string[] args) { @@ -103,12 +103,18 @@ namespace RH_Engine CreateGraphics createGraphics = new CreateGraphics(tunnelID); - WriteTextMessage(stream, createGraphics.RouteCommand()); - Console.WriteLine("data: " + ReadPrefMessage(stream)); - //WriteTextMessage(stream, createGraphics.GetSceneInfoCommand()); - //add monkey head - //WriteTextMessage(stream, createGraphics.AddModel("Face", "data\\vrlib\\rendermodels\\face\\face.obj", new float[] { 0, 3, 0 }, 10, new float[] { 0, 0, 0 })); - //string headUuid = getUUIDFormResponse(ReadPrefMessage(stream)); + for (int i = 0; i < 10; i++) + { + string routeUUID = CreateRoute(stream, createGraphics); + //WriteTextMessage(stream, createGraphics.GetSceneInfoCommand()); + //add monkey head + WriteTextMessage(stream, createGraphics.AddModel("Face", "data\\vrlib\\rendermodels\\face\\face.obj", new float[] { 0, 3, 0 }, 10, new float[] { 0, 0, 0 })); + string headUuid = getUUIDFromResponse(ReadPrefMessage(stream)); + + WriteTextMessage(stream, createGraphics.RouteFollow(routeUUID, headUuid, 5, new float[] { 0, 3, 0 })); + ReadPrefMessage(stream); + + } From 02b180c2465ee49d4fc7085d72cfaa72c06ffd2a Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Fri, 18 Sep 2020 16:41:05 +0200 Subject: [PATCH 58/58] clean and comment --- RH-Engine/CreateGraphics.cs | 329 ------------------------------------ RH-Engine/Program.cs | 36 ++-- 2 files changed, 23 insertions(+), 342 deletions(-) delete mode 100644 RH-Engine/CreateGraphics.cs diff --git a/RH-Engine/CreateGraphics.cs b/RH-Engine/CreateGraphics.cs deleted file mode 100644 index 8d6c732..0000000 --- a/RH-Engine/CreateGraphics.cs +++ /dev/null @@ -1,329 +0,0 @@ -using LibNoise.Primitive; -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; -using System.Threading; - -namespace RH_Engine -{ - class CreateGraphics - { - public const string STANDARD_HEAD = "Head"; - public const string STANDARD_GROUND = "GroundPlane"; - public const string STANDARD_SUN = "SunLight"; - public const string STANDARD_LEFTHAND = "LeftHand"; - public const string STANDARD_RIGHTHAND = "RightHand"; - - - - string tunnelID; - - public CreateGraphics(string tunnelID) - { - this.tunnelID = tunnelID; - } - - public string TerrainCommand(int[] sizeArray, float[] heightsArray) - { - dynamic payload = new - { - id = "scene/terrain/add", - data = new - { - size = sizeArray, - heights = heightsArray - } - - }; - return JsonConvert.SerializeObject(Payload(payload)); - } - public string AddLayer(string uid, string texture) - { - dynamic payload = new - { - id = "scene/node/addlayer", - data = new - { - id = uid, - diffuse = @"C:\Users\woute\Downloads\NetworkEngine.18.10.10.1\NetworkEngine\data\NetworkEngine\textures\terrain\adesert_cracks_d.jpg", - normal = @"C:\Users\woute\Downloads\NetworkEngine.18.10.10.1\NetworkEngine\data\NetworkEngine\textures\terrain\adesert_mntn_d.jpg", - minHeight = 0, - maxHeight = 10, - fadeDist = 1 - } - }; - return JsonConvert.SerializeObject(Payload(payload)); - } - public string UpdateTerrain() - { - dynamic payload = new - { - id = "scene/terrain/update", - data = new - { - - } - }; - return JsonConvert.SerializeObject(Payload(payload)); - } - - public string AddNodeCommand() - { - dynamic payload = new - { - id = "scene/node/add", - data = new - { - name = "newNode", - components = new - { - terrain = new - { - smoothnormals = true - } - } - } - }; - return JsonConvert.SerializeObject(Payload(payload)); - } - - public string DeleteNode(string uuid) - { - - dynamic payload = new - { - id = "scene/node/delete", - data = new - { - id = uuid, - - } - - }; - return JsonConvert.SerializeObject(Payload(payload)); - - } - - public string AddBikeModel() - { - return AddModel("bike", "data\\NetworkEngine\\models\\bike\\bike.fbx"); - } - - public string AddModel(string nodeName, string fileLocation) - { - return AddModel(nodeName, fileLocation, null, new float[] { 0, 0, 0 }, 1, new float[] { 0, 0, 0 }); - } - - public string AddModel(string nodeName, string fileLocation, float[] positionVector, float scalar, float[] rotationVector) - { - return AddModel(nodeName, fileLocation, null, positionVector, scalar, rotationVector); - } - - public string AddModel(string nodeName, string fileLocation, string animationLocation, float[] positionVector, float scalar, float[] rotationVector) - { - string namename = nodeName; - bool animatedBool = false; - if (animationLocation != null) - { - animatedBool = true; - } - - dynamic payload = new - { - id = "scene/node/add", - data = new - { - name = namename, - components = new - { - transform = new - { - position = positionVector, - scale = scalar, - rotation = rotationVector - - }, - model = new - { - file = fileLocation, - cullbackfaces = true, - animated = animatedBool, - animation = animationLocation - }, - } - } - - }; - return JsonConvert.SerializeObject(Payload(payload)); - } - - public string MoveTo(string uuid, float[] positionVector, float rotateValue, float speedValue, float timeValue) - { - return MoveTo(uuid, "idk", positionVector, rotateValue, "linear", false, speedValue, timeValue); - } - - private string MoveTo(string uuid, string stopValue, float[] positionVector, float rotateValue, string interpolateValue, bool followHeightValue, float speedValue, float timeValue) - { - dynamic payload = new - { - id = "scene/node/moveto", - data = new - { - id = uuid, - stop = stopValue, - position = positionVector, - rotate = rotateValue, - interpolate = interpolateValue, - followheight = followHeightValue, - speed = speedValue, - time = timeValue - } - }; - return JsonConvert.SerializeObject(Payload(payload)); - } - - - public string RouteCommand() - { - ImprovedPerlin improvedPerlin = new ImprovedPerlin(4325, LibNoise.NoiseQuality.Best); - Random r = new Random(); - dynamic payload = new - { - id = "route/add", - data = new - { - nodes = new dynamic[] - { - new - { - /*pos = GetPos(0.6f, improvedPerlin)*/ - pos = new int[] {0,0,5 }, - dir = new int[] { r.Next(20,100),0,-r.Next(20, 100) } - }, - new - { - //pos = GetPos(1.6f, improvedPerlin), - pos = new int[] {50,0,0 }, - dir = new int[] { r.Next(20, 100),0,r.Next(20, 100) } - }, - new - { - //pos = GetPos(2.654f, improvedPerlin), - pos = new int[] {20,0,20 }, - dir = new int[] { r.Next(20, 100),0,r.Next(20, 100) } - }, - new - { - //pos = GetPos(3.6543f, improvedPerlin), - pos = new int[] {10,0,50 }, - dir = new int[] { -r.Next(3,7),0,r.Next(3,7) } - }, - new - { - pos = new int[] {0,0,50 }, - dir = new int[] { -r.Next(20, 50),0,-r.Next(20, 50) } - } - } - } - }; - Console.WriteLine("route command: " + JsonConvert.SerializeObject(Payload(payload))); - return JsonConvert.SerializeObject(Payload(payload)); - } - - private float[] GetPos(float n, ImprovedPerlin improvedPerlin) - { - float[] res = new float[] { improvedPerlin.GetValue(n) * 50, 0, improvedPerlin.GetValue(n) * 50 }; - return res; - } - - private int[] GetDir() - { - Random rng = new Random(); - int[] dir = {rng.Next(50), 0, rng.Next(50)}; - return dir; - } - - public string FollowRouteCommand() - { - return ""; - } - - public string RoadCommand(string uuid_route) - { - Console.WriteLine("road"); - dynamic payload = new - { - id = "scene/road/add", - data = new - { - route = uuid_route, - diffuse = "data/NetworkEngine/textures/tarmac_diffuse.png", - normal = "data/NetworkEngine/textures/tarmac_normale.png", - specular = "data/NetworkEngine/textures/tarmac_specular.png", - heightoffset = 1f - } - }; - return JsonConvert.SerializeObject(Payload(payload)); - } - - public string GetSceneInfoCommand() - { - dynamic payload = new - { - id = "scene/get" - }; - - return JsonConvert.SerializeObject(Payload(payload)); - } - - public string ResetScene() - { - dynamic payload = new - { - id = "scene/reset" - }; - - return JsonConvert.SerializeObject(Payload(payload)); - } - - public string SkyboxCommand(double timeToSet) - { - if (timeToSet < 0 || timeToSet > 24) - { - throw new Exception("The time must be between 0 and 24!"); - } - - - dynamic payload = new - { - id = "scene/skybox/settime", - data = new - { - time = timeToSet - } - - }; - return JsonConvert.SerializeObject(Payload(payload)); - - } - - - private object Payload(dynamic message) - { - return new - { - id = "tunnel/send", - data = new - { - dest = tunnelID, - data = message, - } - }; - } - - - - } -} diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index b63903a..d396516 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -103,31 +103,41 @@ namespace RH_Engine return; } - CreateGraphics createGraphics = new CreateGraphics(tunnelID); + sendCommands(stream, tunnelID); - WriteTextMessage(stream, createGraphics.ResetScene()); + } + + /// + /// sends all the commands to the server + /// + /// the network stream to use + /// the tunnel id to use + private static void sendCommands(NetworkStream stream, string tunnelID) + { + Command mainCommand = new Command(tunnelID); + + + WriteTextMessage(stream, mainCommand.ResetScene()); ReadPrefMessage(stream); - string routeid = CreateRoute(stream, createGraphics); + string routeid = CreateRoute(stream, mainCommand); - WriteTextMessage(stream, createGraphics.TerrainCommand(new int[] { 256, 256 }, null)); + WriteTextMessage(stream, mainCommand.TerrainCommand(new int[] { 256, 256 }, null)); Console.WriteLine(ReadPrefMessage(stream)); string command; - command = createGraphics.AddBikeModel(); + command = mainCommand.AddBikeModel(); WriteTextMessage(stream, command); Console.WriteLine(ReadPrefMessage(stream)); - command = createGraphics.AddModel("car", "data\\customModels\\TeslaRoadster.fbx"); + command = mainCommand.AddModel("car", "data\\customModels\\TeslaRoadster.fbx"); WriteTextMessage(stream, command); Console.WriteLine(ReadPrefMessage(stream)); - - } /// @@ -137,7 +147,7 @@ namespace RH_Engine /// the network stream to send requests to /// the create graphics object to create all the commands /// the uuid of the object with the given name, null otherwise. - public static string GetId(string name, NetworkStream stream, CreateGraphics createGraphics) + public static string GetId(string name, NetworkStream stream, Command createGraphics) { JArray children = GetChildren(stream, createGraphics); @@ -153,7 +163,7 @@ namespace RH_Engine } - public static string CreateRoute(NetworkStream stream, CreateGraphics createGraphics) + public static string CreateRoute(NetworkStream stream, Command createGraphics) { WriteTextMessage(stream, createGraphics.RouteCommand()); dynamic response = JsonConvert.DeserializeObject(ReadPrefMessage(stream)); @@ -165,7 +175,7 @@ namespace RH_Engine } - public static void CreateTerrain(NetworkStream stream, CreateGraphics createGraphics) + public static void CreateTerrain(NetworkStream stream, Command createGraphics) { float x = 0f; float[] height = new float[256 * 256]; @@ -189,7 +199,7 @@ namespace RH_Engine /// the network stream to send requests to /// the create graphics object to create all the commands /// all the children objects in the current scene - public static JArray GetChildren(NetworkStream stream, CreateGraphics createGraphics) + public static JArray GetChildren(NetworkStream stream, Command createGraphics) { WriteTextMessage(stream, createGraphics.GetSceneInfoCommand()); dynamic response = JsonConvert.DeserializeObject(ReadPrefMessage(stream)); @@ -202,7 +212,7 @@ namespace RH_Engine /// the network stream to send requests to /// the create graphics object to create all the commands /// an array of name-uuid tuples for each object - public static (string, string)[] GetObjectsInScene(NetworkStream stream, CreateGraphics createGraphics) + public static (string, string)[] GetObjectsInScene(NetworkStream stream, Command createGraphics) { JArray children = GetChildren(stream, createGraphics); (string, string)[] res = new (string, string)[children.Count];