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"); } }
public override void HandleMessage(BaseMessage message) { WorldModifierMessage msg = (WorldModifierMessage)message; ServerSendRecieve.SendAllExcept(msg, msg.PlayerID); msg.WorldModifier.ModifyWorld(); }
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); } }
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(); }
/// <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); } }
/// <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); } }
/// <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))); } }
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()); } }
/// <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); } }
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); }
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()); } }
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); }
/// <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()); } }
/// <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(); } }
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!"); }
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!"); }
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); }
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); } }
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); } }
private void MainWorld_WorldGenerated(object sender, MagicalLifeAPI.World.WorldEventArgs e) { ServerSendRecieve.SendAll <WorldTransferMessage>(new WorldTransferMessage(e.World)); }
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); }
public override void Click(MouseEventArgs e) { ServerSendRecieve.Initialize(new NetworkSettings(int.Parse(HostGameMenu.menu.HostPortInputBox.Text))); NewWorldMenu.Initialize(); MenuHandler.Clear(); }
private static void Tick(object sender, ElapsedEventArgs e) { GameTick++; ServerSendRecieve.SendAll(new ServerTickMessage(GameTick)); RaiseServerTick(sender, GameTick); }