private static CraftListInfo GetCraftListInfoFromBytes(Stream messageData) { var craftInfo = new CraftListInfo(); PrivDeserialize(messageData, craftInfo); return(craftInfo); }
public static void SendCraftList(ClientStructure client) { var craftDirectory = Path.Combine(ServerContext.UniverseDirectory, "Crafts"); if (!FileHandler.FolderExists(craftDirectory)) { FileHandler.FolderCreate(craftDirectory); } var players = FileHandler.GetDirectoriesInPath(craftDirectory); for (var i = 0; i < players.Length; i++) { players[i] = players[i].Substring(players[i].LastIndexOf(Path.DirectorySeparatorChar) + 1); } var newMessageData = new CraftLibraryListReplyMsgData { Players = players }; var playerCrafts = new List <KeyValuePair <string, CraftListInfo> >(); foreach (var player in players) { var playerPath = Path.Combine(craftDirectory, player); var vabPath = Path.Combine(playerPath, "VAB"); var sphPath = Path.Combine(playerPath, "SPH"); var subassemplyPath = Path.Combine(playerPath, "SUBASSEMBLY"); var vabCraftNames = new List <string>(); var sphCraftNames = new List <string>(); var subassemblyCraftNames = new List <string>(); var newPlayerCraft = new CraftListInfo { SphExists = FileHandler.FolderExists(sphPath), VabExists = FileHandler.FolderExists(vabPath), SubassemblyExists = FileHandler.FolderExists(subassemplyPath) }; if (newPlayerCraft.VabExists) { vabCraftNames.AddRange( FileHandler.GetFilesInPath(vabPath).Select(Path.GetFileNameWithoutExtension)); } if (newPlayerCraft.VabExists) { sphCraftNames.AddRange( FileHandler.GetFilesInPath(sphPath).Select(Path.GetFileNameWithoutExtension)); } if (newPlayerCraft.VabExists) { subassemblyCraftNames.AddRange( FileHandler.GetFilesInPath(subassemplyPath).Select(Path.GetFileNameWithoutExtension)); } newPlayerCraft.VabCraftNames = vabCraftNames.ToArray(); newPlayerCraft.SphCraftNames = sphCraftNames.ToArray(); newPlayerCraft.SubassemblyCraftNames = subassemblyCraftNames.ToArray(); playerCrafts.Add(new KeyValuePair <string, CraftListInfo>(player, newPlayerCraft)); } newMessageData.PlayerCrafts = playerCrafts.ToArray(); MessageQueuer.SendToClient <CraftLibrarySrvMsg>(client, newMessageData); }
private static void WriteBytesCraftListInfo(Stream messageData, CraftListInfo value) { PrivSerialize(value, messageData, true); }