Esempio n. 1
0
        public void run(List <string> input)
        {
            if (input.Count > 0)
            {
                WorldStorage.SaveName = input[0];
                Server.Load();

                WorldGenerationSettings wset = SettingsHandler.WorldGenerationSettings.Settings;
                Util.WriteLine("Generating world!");
                World.Initialize(wset.DimensionWidth, wset.DimensionHeight, new GrassAndDirt(0));
                Util.WriteLine("World generated!");

                Util.WriteLine("Initializing networking!");
                int port = SettingsHandler.NetworkSettings.Settings.Port;
                ServerSendRecieve.Initialize(new NetworkSettings(port));
                ServerSendRecieve.TCPServer.Server.ClientConnected    += Server_ClientConnected;
                ServerSendRecieve.TCPServer.Server.ClientDisconnected += Server_ClientDisconnected;

                Util.WriteLine("Done!");
            }
            else
            {
                Util.WriteLine("Invalid command parameters");
            }
        }
Esempio n. 2
0
        public override void HandleMessage(BaseMessage message)
        {
            WorldModifierMessage msg = (WorldModifierMessage)message;

            ServerSendRecieve.SendAllExcept(msg, msg.PlayerID);
            msg.WorldModifier.ModifyWorld();
        }
Esempio n. 3
0
        public void Run(List <string> input)
        {
            if (input.Count > 0)
            {
                World.Mode            = EngineMode.ServerOnly;
                WorldStorage.SaveName = input[0];
                Server.Load();

                WorldGenerationSettings wset = SettingsHandler.WorldGenerationSettings.Settings;
                Util.WriteLine(DedicatedServer.GeneratingWorld);
                World.Initialize(wset.DimensionWidth, wset.DimensionHeight, WorldGeneratorRegistry.Generators[0], "Main");
                Util.WriteLine(DedicatedServer.WorldGenerated);

                Util.WriteLine(DedicatedServer.InitializingNetwork);
                int port = SettingsHandler.NetworkSettings.Settings.Port;
                ServerSendRecieve.Initialize(new NetworkSettings(port));
                ServerSendRecieve.TCPServer.Server.ClientConnected    += Server_ClientConnected;
                ServerSendRecieve.TCPServer.Server.ClientDisconnected += Server_ClientDisconnected;

                Util.WriteLine(DedicatedServer.Done);
            }
            else
            {
                Util.WriteLine(DedicatedServer.InvalidCommandParameters);
            }
        }
Esempio n. 4
0
        public override void Click(MouseEventArgs e)
        {
            int port = int.Parse(HostGameMenu.menu.HostPortInputBox.Text);

            ServerSendRecieve.Initialize(new NetworkSettings(port));
            ClientSendRecieve.Initialize(new NetworkSettings(ServerSendRecieve.TCPServer.Server.GetListeningIPs()[0].ToString(), port));
            NewWorldMenu.Initialize();
            MenuHandler.Clear();
        }
Esempio n. 5
0
 /// <summary>
 /// Sends a message to the client.
 /// </summary>
 /// <param name="message"></param>
 public static void Send <T>(T message)
     where T : BaseMessage
 {
     if (NetworkSettings.Local)
     {
         ServerSendRecieve.Recieve(message);
     }
     else
     {
         TCPClient.Send <T>(message);
     }
 }
 /// <summary>
 /// Sends a message to the client.
 /// </summary>
 /// <param name="message"></param>
 public static void Send <T>(T message)
     where T : BaseMessage
 {
     if (NetworkSettings.Mode == EngineMode.ServerAndClient)
     {
         ServerSendRecieve.Recieve(message);
     }
     else
     {
         TCPClient.Send <T>(message);
     }
 }
Esempio n. 7
0
 /// <summary>
 /// Sends a message to the client.
 /// </summary>
 /// <param name="message"></param>
 public static void Send <T>(T message)
     where T : BaseMessage
 {
     MasterLog.DebugWriteLine("Sending message: " + message.GetType().FullName);
     if (NetworkSettings.Mode == EngineMode.ServerAndClient)
     {
         ServerSendRecieve.Recieve(message);
     }
     else
     {
         TCPClient.Send <T>(message);
     }
 }
Esempio n. 8
0
        /// <summary>
        /// Spawns a character at a random position in the map without spawning the character in the same space as another character.
        /// </summary>
        /// <param name="playerID"></param>
        public static void SpawnRandomCharacter(Guid playerID, int dimension)
        {
            Point2D randomLocation = FindRandomLocation(dimension);

            HumanFactory humanFactory = new HumanFactory();
            Human        human        = humanFactory.GenerateHuman(randomLocation, dimension, playerID);

            World.Data.World.GetChunkByTile(dimension, randomLocation.X, randomLocation.Y).Creatures.Add(human.ID, human);

            if (World.Data.World.Mode == Networking.EngineMode.ServerOnly)
            {
                ServerSendRecieve.SendAll(new WorldModifierMessage(new LivingCreatedModifier(human)));
            }
        }
Esempio n. 9
0
        internal static void Initialize(NetworkSettings networkSettings)
        {
            NetworkSettings = networkSettings;

            if (networkSettings.Mode == EngineMode.ClientOnly)
            {
                TCPClient = new TCPClient();
                TCPClient.Start(NetworkSettings.Port, NetworkSettings.ServerIP);
            }
            else
            {
                ServerSendRecieve.Recieve(new LoginMessage());
            }
        }
Esempio n. 10
0
 /// <summary>
 /// Sends a message to the server.
 /// </summary>
 /// <param name="message"></param>
 public static void Send <T>(T message)
     where T : BaseMessage
 {
     TotalSent++;
     MasterLog.DebugWriteLine("Sent total: " + TotalSent.ToString());
     if (NetworkSettings.Mode == EngineMode.ServerAndClient)
     {
         ServerSendRecieve.Recieve(message);
     }
     else
     {
         TCPClient.Send <T>(message);
     }
 }
Esempio n. 11
0
        public override void Click(MouseEventArgs e)
        {
            ServerSendRecieve.Initialize(new MagicalLifeAPI.Networking.NetworkSettings(true));
            Server.Load();
            Client.Load();
            Server.StartGame();
            NewGameInputHandler a = new NewGameInputHandler();

            a.StartNewGame();
            BoundHandler.RemoveContainer(NewWorldMenu.NewWorldMenuM);
            MenuHandler.Clear();
            BoundHandler.HideAll();
            In_Game_GUI.InGameGUI.Initialize();
            BoundHandler.Popup(In_Game_GUI.InGameGUI.InGame);
        }
Esempio n. 12
0
        private static void TickTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (World.Data.World.Mode == EngineMode.ServerOnly)
            {
                ServerSendRecieve.SendAll(new ServerTickMessage());
            }
            else
            {
                Uni.Tick(Uni.GameTick + 1);
            }

            if (AutoSave.Allow())
            {
                WorldStorage.AutoSave(WorldStorage.SaveName, new WorldDiskSink());
            }
        }
Esempio n. 13
0
        public override void Click(MouseEventArgs e, GUIContainer container)
        {
            World.Mode = MagicalLifeAPI.Networking.EngineMode.ServerAndClient;
            Server.Load();
            ClientSendRecieve.Initialize(new MagicalLifeAPI.Networking.NetworkSettings());
            FMODUtil.RaiseEvent(EffectsTable.UIClick);
            ServerSendRecieve.Initialize(new MagicalLifeAPI.Networking.NetworkSettings());
            Client.Load();
            NewGameInputHandler a = new NewGameInputHandler();

            a.StartNewGame();
            Server.StartGame();
            BoundHandler.RemoveContainer(NewWorldMenu.NewWorldMenuM);
            MenuHandler.Clear();
            BoundHandler.HideAll();
            InGameGUI.Initialize();
            BoundHandler.Popup(InGameGUI.InGame);
        }
Esempio n. 14
0
        /// <summary>
        /// Handles sending out sync messages to keep the other clients and the server appraised of the added item.
        /// </summary>
        /// <param name="item"></param>
        /// <param name="mapLocation"></param>
        /// <param name="dimension"></param>
        private static void NetworkAdd(Item item, Point2D mapLocation, int dimension)
        {
            switch (World.Data.World.Mode)
            {
            case Networking.EngineMode.ServerOnly:
                ServerSendRecieve.SendAll(new WorldModifierMessage(new ItemCreatedModifier(item, mapLocation, dimension)));
                break;

            case Networking.EngineMode.ClientOnly:
                ClientSendRecieve.Send(new WorldModifierMessage(new ItemCreatedModifier(item, mapLocation, dimension)));
                break;

            case Networking.EngineMode.ServerAndClient:
                break;

            default:
                throw new InvalidOperationException("Unexpected Mode for the World: " + World.Data.World.Mode.ToString());
            }
        }
Esempio n. 15
0
        /// <summary>
        /// Handles sending out sync messages to keep the other clients and the server appraised of the added item.
        /// </summary>
        /// <param name="item"></param>
        /// <param name="mapLocation"></param>
        /// <param name="dimension"></param>
        private static void NetworkAdd(Item item, Point2D mapLocation, int dimension)
        {
            switch (World.Data.World.Mode)
            {
            case Networking.EngineMode.ServerOnly:
                ServerSendRecieve.SendAll(new WorldModifierMessage(new ItemCreatedModifier(item, mapLocation, dimension)));
                break;

            case Networking.EngineMode.ClientOnly:
                ClientSendRecieve.Send(new WorldModifierMessage(new ItemCreatedModifier(item, mapLocation, dimension)));
                break;

            case Networking.EngineMode.ServerAndClient:
                break;

            default:
                throw new Error.InternalExceptions.UnexpectedEnumMemberException();
            }
        }
Esempio n. 16
0
        public void run(List <string> input)
        {
            Server.Load(EngineMode.ServerOnly);

            WorldGenerationSettings wset = SettingsHandler.WorldGenerationSettings.GetSettings();

            Util.WriteLine("Generating world!");
            World.Initialize(wset.DimensionWidth, wset.DimensionHeight, new StoneSprinkle(0));
            Util.WriteLine("World generated!");

            Util.WriteLine("Initializing networking!");
            int port = SettingsHandler.NetworkSettings.GetSettings().Port;

            ServerSendRecieve.Initialize(new NetworkSettings(port));

            Util.WriteLine("Done!");
            Server.StartGame();
            Util.WriteLine("Game started!");
        }
Esempio n. 17
0
        public void run(List <string> input)
        {
            Server.Load();

            WorldGenerationSettings wset = SettingsHandler.WorldGenerationSettings.Settings;

            Util.WriteLine("Generating world!");
            World.Initialize(wset.DimensionWidth, wset.DimensionHeight, new GrassAndDirt(0));
            Util.WriteLine("World generated!");

            Util.WriteLine("Initializing networking!");
            int port = SettingsHandler.NetworkSettings.Settings.Port;

            ServerSendRecieve.Initialize(new NetworkSettings(port));
            ServerSendRecieve.TCPServer.Server.ClientConnected    += Server_ClientConnected;
            ServerSendRecieve.TCPServer.Server.ClientDisconnected += Server_ClientDisconnected;

            Util.WriteLine("Done!");
        }
Esempio n. 18
0
        private void NewWorldNextButton_ClickEvent(object sender, Reusable.Event.ClickEventArgs e)
        {
            World.Mode = MagicalLifeAPI.Networking.EngineMode.ServerAndClient;
            Server.Load();
            ClientSendRecieve.Initialize(new MagicalLifeAPI.Networking.NetworkSettings(MagicalLifeAPI.Networking.EngineMode.ServerAndClient));
            FMODUtil.RaiseEvent(SoundsTable.UIClick);
            //FMODUtil.RaiseEvent(SoundsTable.Ambience);
            ServerSendRecieve.Initialize(new MagicalLifeAPI.Networking.NetworkSettings(MagicalLifeAPI.Networking.EngineMode.ServerAndClient));
            Client.Load();
            NewGameInputHandler a = new NewGameInputHandler();

            a.StartNewGame();
            Server.StartGame();
            RenderInfo.Camera2D.InitializeForDimension(0);
            BoundHandler.RemoveContainer(NewWorldMenu.NewWorldMenuM);
            MenuHandler.Clear();
            BoundHandler.HideAll();
            InGameGUI.Initialize();
            BoundHandler.Popup(InGameGUI.InGame);
        }
Esempio n. 19
0
        public override void Click(MouseEventArgs e, GUIContainer container)
        {
            int selected = LoadGameMenu.Menu.SaveSelectListBox.SelectedIndex;

            if (selected != -1)
            {
                FMODUtil.RaiseEvent(SoundsTable.UIClick);
                World.Mode = MagicalLifeAPI.Networking.EngineMode.ServerAndClient;
                RenderableString selectedItem = (RenderableString)LoadGameMenu.Menu.SaveSelectListBox.Items[selected];
                WorldStorage.LoadWorld(selectedItem.Text);

                Server.Load();
                ClientSendRecieve.Initialize(new MagicalLifeAPI.Networking.NetworkSettings(MagicalLifeAPI.Networking.EngineMode.ServerAndClient));
                ServerSendRecieve.Initialize(new MagicalLifeAPI.Networking.NetworkSettings(MagicalLifeAPI.Networking.EngineMode.ServerAndClient));
                Client.Load();
                Server.StartGame();
                BoundHandler.RemoveContainer(LoadGameMenu.Menu);
                MenuHandler.Clear();
                BoundHandler.HideAll();
                InGameGUI.Initialize();
                BoundHandler.Popup(InGameGUI.InGame);
            }
        }
Esempio n. 20
0
        private void LoadSaveButton_ClickEvent(object sender, Reusable.Event.ClickEventArgs e)
        {
            int selected = LoadGameMenu.Menu.SaveSelectListBox.SelectedIndex;

            if (selected != -1)
            {
                FMODUtil.RaiseEvent(SoundsTable.UIClick);
                World.Mode = MagicalLifeAPI.Networking.EngineMode.ServerAndClient;
                RenderableString selectedItem = (RenderableString)LoadGameMenu.Menu.SaveSelectListBox.Items[selected];
                WorldStorage.LoadWorld(selectedItem.Text);

                Server.Load();
                ClientSendRecieve.Initialize(new MagicalLifeAPI.Networking.NetworkSettings(MagicalLifeAPI.Networking.EngineMode.ServerAndClient));
                ServerSendRecieve.Initialize(new MagicalLifeAPI.Networking.NetworkSettings(MagicalLifeAPI.Networking.EngineMode.ServerAndClient));
                Client.Load();
                Server.StartGame();
                BoundHandler.RemoveContainer(LoadGameMenu.Menu);
                MenuHandler.Clear();
                BoundHandler.HideAll();
                InGameGUI.Initialize();
                BoundHandler.Popup(InGameGUI.InGame);
                RenderInfo.Camera2D.InitializeForDimension(0);
            }
        }
Esempio n. 21
0
 private void MainWorld_WorldGenerated(object sender, MagicalLifeAPI.World.WorldEventArgs e)
 {
     ServerSendRecieve.SendAll <WorldTransferMessage>(new WorldTransferMessage(e.World));
 }
Esempio n. 22
0
 private void StartJob(Job job, Living living)
 {
     living.Task = job;
     MasterLog.DebugWriteLine("Dependency ID before: " + job.Dependencies.ElementAt(0).Key.ToString());
     ServerSendRecieve.Send(new JobAssignedMessage(living, job), this.PlayerID);
 }
Esempio n. 23
0
 public override void Click(MouseEventArgs e)
 {
     ServerSendRecieve.Initialize(new NetworkSettings(int.Parse(HostGameMenu.menu.HostPortInputBox.Text)));
     NewWorldMenu.Initialize();
     MenuHandler.Clear();
 }
Esempio n. 24
0
 private static void Tick(object sender, ElapsedEventArgs e)
 {
     GameTick++;
     ServerSendRecieve.SendAll(new ServerTickMessage(GameTick));
     RaiseServerTick(sender, GameTick);
 }