示例#1
0
        public static MissionHubServer AddMission(this MissionHubServer s, ActiveMission m, bool insertTop = false, bool preventRegistryChange = false, int desiredIndex = -1)
        {
            if (insertTop && desiredIndex <= -1)
            {
                desiredIndex = 0;
            }
            s.contractRegistryNumber += Utils.getRandomByte() + 1;
            s.listingMissions.Add(string.Concat(s.contractRegistryNumber), m);
            var item = new FileEntry(MissionSerializer.generateMissionFile(m, s.contractRegistryNumber, s.groupName), "Contract#" + s.contractRegistryNumber);

            if (insertTop || desiredIndex >= 0)
            {
                s.listingsFolder.files.Insert(desiredIndex, item);
            }
            else
            {
                s.listingsFolder.files.Add(item);
            }
            var inst = m as Instance;

            if (inst != null)
            {
                inst.MissionComputer = s.comp;
            }
            return(s);
        }
示例#2
0
        public static IList <string> GetMisFileText(Mission mission)
        {
            if (mission is null)
            {
                throw new ArgumentNullException(nameof(mission));
            }

            var multipleRecords = MissionSerializer.GetMultipleRecords(mission);
            var writer          = new RecordWriter(multipleRecords);

            return(writer.GetTextLines());
        }
示例#3
0
        public static Mission ReadMisFile(IList <string> lines)
        {
            var tokens = GetTokens(lines);

            return(MissionSerializer.GetMission(TokenParser.ParseTokens(tokens)));
        }
示例#4
0
        public static Mission ReadMisFile(string path)
        {
            var tokens = GetTokens(path);

            return(MissionSerializer.GetMission(TokenParser.ParseTokens(tokens)));
        }