public uint SpawnEntity(WorldData World, SpawnEntityClientDTO dto) { uint newEntityID = this.SpawnEntity(World, dto.EntityId, dto.State, dto.hasPhysics, dto.position.x, dto.position.y, dto.position.z, dto.rotation.x, dto.rotation.y, dto.rotation.z, dto.scale.x, dto.scale.y, dto.scale.z, dto.components); return(newEntityID); }
private void Client_MessageReceived(object sender, MessageReceivedEventArgs e) { using (Message message = e.GetMessage() as Message) { WorldData World = WorldManager.clients[e.Client].World; if (message.Tag == Tags.SpawnEntityTag) { using (DarkRiftReader reader = message.GetReader()) { while (reader.Position < reader.Length) { SpawnEntityClientDTO data = reader.ReadSerializable <SpawnEntityClientDTO>(); this.SpawnEntity(World, data); } } } else if (message.Tag == Tags.SpawnProceduralShapeEntityTag) { using (DarkRiftReader reader = message.GetReader()) { while (reader.Position < reader.Length) { SpawnProceduralShapeEntityClientDTO data = reader.ReadSerializable <SpawnProceduralShapeEntityClientDTO>(); Console.WriteLine("Got spawn procedural message"); this.SpawnProceduralShapeEntity(World, data); } } } else if (message.Tag == Tags.DespawnEntityTag) { using (DarkRiftReader reader = message.GetReader()) { while (reader.Position < reader.Length) { uint id = reader.ReadUInt32(); this.DespawnEntity(World, id); } } } else if (message.Tag == Tags.SetEntityParentTag) { using (DarkRiftReader reader = message.GetReader()) { while (reader.Position < reader.Length) { SetParentDTO data = reader.ReadSerializable <SetParentDTO>(); SetParent(World, data); } } } else if (message.Tag == Tags.SetStateEntityTag) { using (DarkRiftReader reader = message.GetReader()) { while (reader.Position < reader.Length) { uint id = reader.ReadUInt32(); ushort newState = reader.ReadUInt16(); SetState(World, id, newState); } } } else if (message.Tag == Tags.TransformEntityTag) { using (DarkRiftReader reader = message.GetReader()) { while (reader.Position < reader.Length) { uint id = reader.ReadUInt32(); float x = reader.ReadSingle(); float y = reader.ReadSingle(); float z = reader.ReadSingle(); float rx = reader.ReadSingle(); float ry = reader.ReadSingle(); float rz = reader.ReadSingle(); float sx = reader.ReadSingle(); float sy = reader.ReadSingle(); float sz = reader.ReadSingle(); SetTransform(World, id, x, y, z, rx, ry, rz, sx, sy, sz); } } } else if (message.Tag == Tags.PhysicsUpdateEntityTag) { if (e.Client == WorldManager.clients[e.Client].World.PhysicsHost) { PhysicsUpdate(sender, e, WorldManager.clients[e.Client].World); } } else if (message.Tag == Tags.SetPhysicsEntityTag) { using (DarkRiftReader reader = message.GetReader()) { while (reader.Position < reader.Length) { //Console.WriteLine("recieved physmessage"); SetPhysicsDTO data = reader.ReadSerializable <SetPhysicsDTO>(); setPhysics(World, data); } } } else if (message.Tag == Tags.AddComponentTag) { using (DarkRiftReader reader = message.GetReader()) { while (reader.Position < reader.Length) { //Console.WriteLine("recieved physmessage"); AddComponentClientDTO data = reader.ReadSerializable <AddComponentClientDTO>(); addComponent(World, data); } } } else if (message.Tag == Tags.RemoveComponentTag) { using (DarkRiftReader reader = message.GetReader()) { while (reader.Position < reader.Length) { //Console.WriteLine("recieved physmessage"); RemoveComponentDTO data = reader.ReadSerializable <RemoveComponentDTO>(); removeComponent(World, data); } } } else if (message.Tag == Tags.SetComponentPropertyTag) { using (DarkRiftReader reader = message.GetReader()) { //while (reader.Position < reader.Length) //{ ComponentPropertyDTO data = reader.ReadSerializable <ComponentPropertyDTO>(); setComponentProperty(World, data); //} } } } }