private PhyObject CreateBox(BoxState state) { var box = new Box(state.halfSize.X, state.halfSize.Y, state.halfSize.Z); CollidableDescription collidableDescription = new CollidableDescription(Simulation.Shapes.Add(box), 0.1f); BodyInertia bodyInertia; box.ComputeInertia(state.mass, out bodyInertia); var phy = CreateVanilla(state, collidableDescription, bodyInertia); return(phy); }
private void createFloor() { // Simulation.Statics.Add(new StaticDescription(new Vector3(0, -0.5f, 0), new CollidableDescription(Simulation.Shapes.Add(new Box(5000, 1, 5000)), 0.1f))); BoxState box = new BoxState(); box.position = new Vector3(0, 0, 0); box.uID = PhyObject.createUID(); box.mass = 0; box.quaternion = Quaternion.Identity; box.type = "QuixBox"; box.halfSize = new Vector3(5000, 1, 5000); // Create(box); }
private void CreateNewt() { BoxState state = new BoxState(); state.position = new Vector3(0, 140, 160); state.halfSize = new Vector3(10, 10, 10); state.quaternion = Quaternion.Identity; state.mass = 0; state.uID = PhyObject.createUID(); state.type = "QuixBox"; state.instantiate = true; state.mesh = "Tiles/test"; // CreateMesh(state); }
private PhyObject CreateMesh(BoxState state) { LoadModel(server.GetMesh(state.mesh), out var mesh, state.halfSize); //fs.Close(); CollidableDescription collidableDescription = new CollidableDescription(Simulation.Shapes.Add(mesh), 0.1f); mesh.ComputeClosedInertia(state.mass, out var bodyInertia); var phy = CreateVanilla(state, collidableDescription, bodyInertia); objects.Add(state.uID, phy); return(phy); }
internal void ReadCommand() { //Console.WriteLine("Read command: {0}", v); try { foreach (var item in commandsList) { JsonSerializerSettings setting = new JsonSerializerSettings(); setting.CheckAdditionalContent = false; Newtonsoft.Json.Linq.JObject message = JsonConvert.DeserializeObject <Newtonsoft.Json.Linq.JObject>((string)item, setting); string type = (string)message["type"]; switch (type) { case "create": // Console.WriteLine(message); if (message["data"]["halfSize"] != null) { BoxState ob = JsonConvert.DeserializeObject <BoxState>(((object)message["data"]).ToString()); simulator.Create(ob); } if (message["data"]["radius"] != null) { SphereState ob = JsonConvert.DeserializeObject <SphereState>(((object)message["data"]).ToString()); simulator.Create(ob); break; } break; case "createBoxes": //Console.WriteLine("Create boxes"); // simulator.boxToCreate = 10; simulator.createObjects(); break; case "gauntlet": UseGauntlet(((object)message["data"]).ToString()); break; case "move": MoveMessage j = JsonConvert.DeserializeObject <MoveMessage>(((object)message["data"]).ToString()); //objects[] Player2 onb = (Player2)simulator.users[j.client].player; // Simulation.Awakener.AwakenBody(ob.bodyHandle); onb.Move(j); break; case "rotate": MoveMessage j2 = JsonConvert.DeserializeObject <MoveMessage>(((object)message["data"]).ToString()); //objects[] Player2 onb2 = (Player2)simulator.users[j2.client].player; // Simulation.Awakener.AwakenBody(ob.bodyHandle); onb2.Rotate(j2); break; case "jump": Jump(((object)message["data"]).ToString()); break; case "shoot": Shoot(((object)message["data"]).ToString()); break; case "swipe": Swipe(((object)message["data"]).ToString()); break; case "generateMap": var map = this.simulator.server.dataBase.GetMap((string)message["data"]); this.simulator.map = map; foreach (var obj in map.objects) { //obj.ToJson(); if (obj.Contains("halfSize")) { obj["halfSize"].AsBsonDocument.Remove("__refId"); obj.Remove("_id"); var stri = JsonConvert.DeserializeObject <BoxState>(obj.ToJson()); stri.quaternion = JsonConvert.DeserializeObject <Quaternion>(obj["quat"].ToJson()); this.simulator.Create(stri); } if (obj.Contains("radius")) { // obj["radius"].AsBsonDocument.Remove("__refId"); obj.Remove("_id"); var stri = JsonConvert.DeserializeObject <SphereState>(obj.ToJson()); stri.quaternion = JsonConvert.DeserializeObject <Quaternion>(obj["quat"].ToJson()); this.simulator.Create(stri); } } break; case "close": //Console.WriteLine("Close"); simulator.Close(); break; default: QuixConsole.WriteLine("Command not registred " + type); break; } } commandsList.Clear(); } catch (InvalidOperationException e) { QuixConsole.Log("Collection was modifieded", e); } catch (JsonReaderException e) { QuixConsole.Log("Json Problem ", e); } catch (Exception e) { QuixConsole.WriteLine(e); } }