Exemplo n.º 1
0
        public void RegisterClient(IClient client)
        {
            if (worldManager == null)
            {
                worldManager = PluginManager.GetPluginByType <UMWorldManager>();
            }

            client.MessageReceived += Client_MessageReceived;
        }
Exemplo n.º 2
0
        public void RegisterClient(IClient client, WorldData World)
        {
            if (WorldManager == null)
            {
                WorldManager = PluginManager.GetPluginByType <UMWorldManager>();
            }

            if (WorldManager.clients[client].World.PhysicsHost == null)
            {
                this.SetPhysicsHost(client);
            }

            BroadcastEntities(client, World);
            client.MessageReceived += Client_MessageReceived;
        }
Exemplo n.º 3
0
        void LoadCommandHandler(object sender, CommandEventArgs e)
        {
            if (WorldManager == null)
            {
                WorldManager = PluginManager.GetPluginByType <UMWorldManager>();
            }


            string    filename    = e.Arguments[0] + ".json";
            WorldData loadedWorld = null;

            if (File.Exists(filename))
            {
                StreamReader reader = new StreamReader(filename);
                string       json   = reader.ReadToEnd();
                reader.Close();
                loadedWorld = JsonConvert.DeserializeObject <WorldData>(json);
            }
            else
            {
                Console.WriteLine(filename + " not found");
                return;
            }

            foreach (WorldData World in WorldManager.Worlds)
            {
                if (World.WorldName == e.Arguments[0])
                {
                    World.copyFields(loadedWorld); //Sets the fields with the loaded data.
                                                   //Rebroadcast the entities
                    foreach (IClient c in World.GetClients())
                    {
                        BroadcastEntities(c, World);
                    }

                    return;
                }
            }



            //We need to create a new world
            WorldData newWorld = new WorldData(loadedWorld.WorldName, loadedWorld.SceneEntityID, loadedWorld.SceneName);

            newWorld.copyFields(loadedWorld); //Sets the fields with the loaded data.
            WorldManager.Worlds.Add(newWorld);
        }
Exemplo n.º 4
0
        void SaveCommandHandler(object sender, CommandEventArgs e)
        {
            if (WorldManager == null)
            {
                WorldManager = PluginManager.GetPluginByType <UMWorldManager>();
            }

            foreach (WorldData World in WorldManager.Worlds)
            {
                string json = JsonConvert.SerializeObject(World);
                if (!File.Exists(World.WorldName + ".json"))
                {
                    File.Create(World.WorldName + ".json").Close();
                }
                StreamWriter writer = new StreamWriter(World.WorldName + ".json");
                writer.Write(json);
                writer.Close();
            }
        }
Exemplo n.º 5
0
        public void RegisterClient(IClient client)
        {
            if (playerManager == null)
            {
                playerManager = PluginManager.GetPluginByType <UMPlayerManager>();
            }

            if (worldManager == null)
            {
                worldManager = PluginManager.GetPluginByType <UMWorldManager>();
            }


            Console.WriteLine("Weaponmanager registered player");
            client.MessageReceived += Client_MessageReceived;

            WorldData World = worldManager.clients[client].World;

            foreach (Player p in World.players.Values)
            {
                if (p.WeaponEntityID != ushort.MaxValue)
                {
                    using (DarkRiftWriter weaponSwitchWriter = DarkRiftWriter.Create())
                    {
                        WeaponSwitchServerDTO switchData = new WeaponSwitchServerDTO();
                        switchData.playerId       = client.ID;
                        switchData.weaponEntityId = p.WeaponEntityID;
                        switchData.weaponSlot     = 0;

                        weaponSwitchWriter.Write(switchData);
                        using (Message fireStartMessage = Message.Create(Tags.WeaponSwitchTag, weaponSwitchWriter)) //Repeat the incoming tagname as all message bodies are the same
                        {
                            client.SendMessage(fireStartMessage, SendMode.Reliable);
                        }
                    }
                }
            }
        }
Exemplo n.º 6
0
        public void RegisterClient(IClient client, WorldData World)
        {
            if (WorldManager == null)
            {
                WorldManager = PluginManager.GetPluginByType <UMWorldManager>();
            }
            if (WeaponManager == null)
            {
                WeaponManager = PluginManager.GetPluginByType <UMWeaponManager>();
            }

            WorldManager.clients[client].World = World;

            client.MessageReceived += Client_MessageReceived;

            //Send exsisting players
            using (DarkRiftWriter playerWriter = DarkRiftWriter.Create())
            {
                //PlayerSpawnServerDTO spawnData = new PlayerSpawnServerDTO();
                foreach (Player player in World.players.Values)
                {
                    this.WritePlayerSpawnData(playerWriter, player);
                }


                foreach (Player player in World.AIPlayers.Values)
                {
                    this.WritePlayerSpawnData(playerWriter, player);
                }

                using (Message playerMessage = Message.Create(Tags.SpawnPlayerTag, playerWriter))
                    client.SendMessage(playerMessage, SendMode.Reliable);
            }

            //Register WeaponManager
            WeaponManager.RegisterClient(client);
        }