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); + + }