private static void Server_ServerTick(object sender, ulong e) { if (AutoSave.Allow()) { WorldStorage.AutoSave(WorldStorage.SaveName, new WorldDiskSink()); } }
internal WorldController(Server s, WorldStorage storage) { this.storage = storage; s.StaticRoutes.Add(HttpMethod.POST, "/getworld2.php", this.GetWorld); s.StaticRoutes.Add(HttpMethod.POST, "/uploadworld2.php", this.UploadWorld); }
private void NewSave() { if (!string.IsNullOrWhiteSpace(SaveGameMenu.menu.SaveInputBox.Text)) { WorldStorage.SerializeWorld(SaveGameMenu.menu.SaveInputBox.Text, new WorldDiskSink()); } MenuHandler.Back(); }
private void NewSave() { if (SaveGameMenu.menu.SaveInputBox.Text != string.Empty) { WorldStorage.SerializeWorld(SaveGameMenu.menu.SaveInputBox.Text, new WorldDiskSink()); } MenuHandler.Back(); }
public static World Load(WorldStorage store) { var world = new World(); world.DayNightCycle.Time = store.Time; world.PlayerSpawnLevel = store.PlayerSpawnLevel; return(world); }
public void HandleWORLD(Socket socket, byte[] data) { new BufferReader(data) .Ignore(sizeof(int)) .ReadStringUTF8(out var worldJson); WorldStorage worldStorage = worldJson.FromJson <WorldStorage>(); World = World.Load(worldStorage); }
private void Overwrite() { int selected = SaveGameMenu.menu.SavesList.SelectedIndex; if (selected != -1) { RenderableString selectedItem = (RenderableString)SaveGameMenu.menu.SavesList.Items[selected]; WorldStorage.SerializeWorld(selectedItem.Text, new WorldDiskSink()); } MenuHandler.Back(); }
public WorldStorage Save() { var worldStorage = new WorldStorage(); worldStorage.Time = DayNightCycle.Time; worldStorage.PlayerSpawnLevel = PlayerSpawnLevel; foreach (var l in Levels) { worldStorage.Levels.Add(l.Name); } return(worldStorage); }
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()); } }
internal static void Receive(WorldTransferHeaderMessage msg) { ExpectedChunks = 0; ExpectedItemRegistries = 0; ReceivedChunks = 0; ReceivedItemRegistries = 0; SaveName = FileSystemManager.GetIOSafeTime(); WorldStorage.Initialize(SaveName); foreach (DimensionHeader item in msg.DimensionHeaders) { ExpectedChunks += item.Height * item.Width; ExpectedItemRegistries++; DirectoryInfo dirInfo = Directory.CreateDirectory(WorldStorage.DimensionSaveFolder + Path.DirectorySeparatorChar + item.ID); WorldStorage.DimensionPaths.Add(item.ID, dirInfo.FullName); WorldStorage.DimensionStorage.SerializeDimensionHeader(item, DiskSink, dirInfo.FullName); } }
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); } }
/// <summary> /// Handles when we are done receiving the world. /// </summary> private static void HandleCompletion() { WorldStorage.LoadWorld(SaveName); MagicalLifeAPI.World.Data.World.RaiseChangeCameraDimension(0); }
/// <summary> /// Handles when we are done receiving the world. /// </summary> private static void HandleCompletion() { WorldStorage.LoadWorld(SaveName); }
private void Server_ClientConnected(object sender, System.Net.Sockets.TcpClient e) { MasterLog.DebugWriteLine("Client connected: " + e.Client.RemoteEndPoint.ToString()); WorldStorage.NetSerializeWorld(WorldStorage.SaveName, new WorldNetSink(e.Client)); }
public async Task WorldDomination([Remainder] string arg = "") { Color red = new Color(255, 0, 0); Color green = new Color(0, 255, 0); Color blue = new Color(0, 0, 255); int playerCount; List <SocketUser> players; List <WorldAccount> WDplayers = new List <WorldAccount>(); string context; string [] args = arg.Split(' '); //! Seperate multiple args if (!Global.WDRunning) //! Can't have any double instances. { playerCount = 0; players = new List <SocketUser> { Capacity = 5 }; Global.WDRunning = true; Console.WriteLine("World domination beginning..."); context = ""; players.Add(Context.Message.Author); //! Make sure the game starter is added! foreach (SocketUser user in Context.Message.MentionedUsers) { players.Add(user); } playerCount = players.Count(); foreach (SocketUser u in players) { WDplayers.Add(WorldStorage.GetAccount(u)); WorldStorage.UpdateInfo(u); } Console.WriteLine($"{players.Count()} = {WDplayers.Count()}"); Console.WriteLine("Players:"); foreach (SocketUser player in players) { Console.Write($"{ UserAccounts.GetAccount(player).UserName}, "); } Global.players = players; Global.playerCount = playerCount; await UpdateGameEmbed(green, "Game starting!"); } else if (Global.WDRunning && args[0] == "close") { Global.WDRunning = false; Global.playerCount = 0; Global.players.Clear(); context = ""; await UpdateGameEmbed(red, "Game closed."); return; } else if (Global.WDRunning && args[0] == "join" && Global.playerCount < Global.players.Capacity) { Global.players.Add(Context.Message.Author); Global.playerCount = Global.players.Count(); await UpdateGameEmbed(green, $"{Context.Message.Author.Username} has joined!"); } else if (Global.WDRunning && args[0] == "action") { //! If statements for actions using args[1] and so on. If targeted, use context.message.mentionedUsers for target. if (args[1] == "fight") { string fighter1, fighter2; fighter1 = Context.Message.Author.Username; fighter2 = Context.Message.MentionedUsers.First <SocketUser>().Username; //! Broken but point is visable var embed = new EmbedBuilder(); embed.WithColor(green); embed.WithTitle("World Domination"); embed.AddField("Fight between", $"{fighter1} and {fighter2}"); embed.AddInlineField($"{fighter1} info", "Info on author's tribe"); embed.AddInlineField($"{fighter2} info", "Info on mentioned user's tribe"); embed.WithFooter($"{Global.playerCount}/{Global.players.Capacity} players", "https://i.imgur.com/9Y0vuCO.png"); await Context.Channel.SendMessageAsync("", false, embed); } } else { await Context.Channel.SendMessageAsync("Game already running!"); } }
public void run(List <string> input) { WorldStorage.SerializeWorld("Server World", new WorldDiskSink()); }
public ArenaEngine(WorldStorage worldStorage) { this.WorldStorage = worldStorage; }