Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
                        //}
                    }
                }
            }
        }