Пример #1
0
        private static CraftListInfo GetCraftListInfoFromBytes(Stream messageData)
        {
            var craftInfo = new CraftListInfo();

            PrivDeserialize(messageData, craftInfo);

            return(craftInfo);
        }
Пример #2
0
        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);
 }