Пример #1
0
 public MapDTO Insert(MapDTO map)
 {
     using (var context = DataAccessHelper.CreateContext())
     {
         if (context.map.SingleOrDefault(c => c.MapId.Equals(map.MapId)) == null)
         {
             Map entity = Mapper.Map<Map>(map);
             context.map.Add(entity);
             context.SaveChanges();
             return Mapper.Map<MapDTO>(entity);
         }
         else return new MapDTO();
     }
 }
Пример #2
0
        private static void CreateServerMaps()
        {
            MapDTO testingMap = new MapDTO()
            {
                MapId = 1,
                Music = 1,
                Name = "Testing-Map",
                ShopAllowed = true
            };
            List<byte> mapData = new List<byte>();

            mapData.Add(255); // x length
            mapData.Add(0); // x length
            mapData.Add(255); // y length
            mapData.Add(0); // y length

            // create map grid
            for (int i = 0; i < 255; i++)
            {
                for (int j = 0; j < 255; j++)
                {
                    // we can go everywhere
                    mapData.Add(0);
                }
            }
            testingMap.Data = mapData.ToArray();
            DAOFactory.MapDAO.Insert(testingMap);
        }
Пример #3
0
        public void ImportMaps()
        {
            string mapIdFile = $"{_folder}\\MapIDData.dat";
            string mapIdText = $"{_folder}\\_code_{System.Configuration.ConfigurationManager.AppSettings["language"]}_MapIDData.txt";
            string file = $"{_folder}\\map";
            string filePacket = $"{_folder}\\packet.txt";

            StreamReader MapId = new StreamReader(mapIdFile, Encoding.GetEncoding(1252));
            StreamReader MapIdText = new StreamReader(mapIdText, Encoding.GetEncoding(1252));
            StreamReader Packet = new StreamReader(filePacket, Encoding.GetEncoding(1252));

            Dictionary<int, string> dictionaryId = new Dictionary<int, string>();
            Dictionary<string, string> dictionaryTextId = new Dictionary<string, string>();
            Dictionary<int, int> dictionaryMusic = new Dictionary<int, int>();

            DirectoryInfo dir = new DirectoryInfo(file);
            FileInfo[] fichiers = dir.GetFiles();
            string line;
            string line2;
            int mapid;
            int i = 0;
            while ((line = MapId.ReadLine()) != null)
            {
                string[] linesave = line.Split(' ');
                if (linesave.Count() > 1)
                {
                    if (int.TryParse(linesave[0], out mapid))
                    {
                        if (!dictionaryId.ContainsKey(int.Parse(linesave[0])))
                            dictionaryId.Add(int.Parse(linesave[0]), linesave[4]);
                    }
                }
            }

            while ((line2 = MapIdText.ReadLine()) != null)
            {
                string[] linesave = line2.Split('\t');
                if (linesave.Count() > 1)
                {
                    dictionaryTextId.Add(linesave[0], linesave[1]);
                }
            }

            while ((line2 = Packet.ReadLine()) != null)
            {
                string[] linesave = line2.Split(' ');
                if (linesave.Count() > 7 && linesave[0] == "at")
                {
                    if (!dictionaryMusic.ContainsKey(int.Parse(linesave[2])))
                        dictionaryMusic.Add(int.Parse(linesave[2]), int.Parse(linesave[7]));
                }
            }

            foreach (FileInfo fichier in fichiers)
            {
                string name = "";
                int music = 0;
                if (dictionaryId.ContainsKey(int.Parse(fichier.Name)))
                    if (dictionaryTextId.ContainsKey(dictionaryId[int.Parse(fichier.Name)]))
                        name = dictionaryTextId[dictionaryId[int.Parse(fichier.Name)]];
                if (dictionaryMusic.ContainsKey(int.Parse(fichier.Name)))
                    music = dictionaryMusic[int.Parse(fichier.Name)];
                MapDTO map = new MapDTO { Name = name, Music = music, MapId = short.Parse(fichier.Name), Data = System.IO.File.ReadAllBytes(fichier.FullName) };
                if (DAOFactory.MapDAO.LoadById(map.MapId) == null)
                {
                    DAOFactory.MapDAO.Insert(map);
                    i++;
                }
            }

            Logger.Log.Info(String.Format(Language.Instance.GetMessageFromKey("MAPS_PARSED"), i));
        }
Пример #4
0
        public void ImportMaps()
        {
            string fileMapIdDat = $"{_folder}\\MapIDData.dat";
            string fileMapIdLang = $"{_folder}\\_code_{System.Configuration.ConfigurationManager.AppSettings["language"]}_MapIDData.txt";
            string folderMap = $"{_folder}\\map";
            List<MapDTO> maps = new List<MapDTO>();
            Dictionary<int, string> dictionaryId = new Dictionary<int, string>();
            Dictionary<string, string> dictionaryIdLang = new Dictionary<string, string>();
            Dictionary<int, int> dictionaryMusic = new Dictionary<int, int>();

            string line;
            int i = 0;
            using (StreamReader mapIdStream = new StreamReader(fileMapIdDat, Encoding.GetEncoding(1252)))
            {
                while ((line = mapIdStream.ReadLine()) != null)
                {
                    string[] linesave = line.Split(' ');
                    if (linesave.Length <= 1)
                    {
                        continue;
                    }
                    int mapid;
                    if (!int.TryParse(linesave[0], out mapid))
                    {
                        continue;
                    }
                    if (!dictionaryId.ContainsKey(mapid))
                    {
                        dictionaryId.Add(mapid, linesave[4]);
                    }
                }
                mapIdStream.Close();
            }

            using (StreamReader mapIdLangStream = new StreamReader(fileMapIdLang, Encoding.GetEncoding(1252)))
            {
                while ((line = mapIdLangStream.ReadLine()) != null)
                {
                    string[] linesave = line.Split('\t');
                    if (linesave.Length <= 1 || dictionaryIdLang.ContainsKey(linesave[0]))
                    {
                        continue;
                    }
                    dictionaryIdLang.Add(linesave[0], linesave[1]);
                }
                mapIdLangStream.Close();
            }

            foreach (string[] linesave in _packetList.Where(o => o[0].Equals("at")))
            {
                if (linesave.Length <= 7 || linesave[0] != "at")
                {
                    continue;
                }
                if (dictionaryMusic.ContainsKey(int.Parse(linesave[2])))
                {
                    continue;
                }
                dictionaryMusic.Add(int.Parse(linesave[2]), int.Parse(linesave[7]));
            }

            foreach (FileInfo file in new DirectoryInfo(folderMap).GetFiles())
            {
                string name = String.Empty;
                int music = 0;

                if (dictionaryId.ContainsKey(int.Parse(file.Name)) && dictionaryIdLang.ContainsKey(dictionaryId[int.Parse(file.Name)]))
                {
                    name = dictionaryIdLang[dictionaryId[int.Parse(file.Name)]];
                }
                if (dictionaryMusic.ContainsKey(int.Parse(file.Name)))
                {
                    music = dictionaryMusic[int.Parse(file.Name)];
                }
                MapDTO map = new MapDTO
                {
                    Name = name,
                    Music = music,
                    MapId = short.Parse(file.Name),
                    Data = File.ReadAllBytes(file.FullName),
                    ShopAllowed = short.Parse(file.Name) == 147
                };
                if (DAOFactory.MapDAO.LoadById(map.MapId) != null)
                {
                    continue; // Map already exists in list
                }
                maps.Add(map);
                i++;
            }
            DAOFactory.MapDAO.Insert(maps);
            Logger.Log.Info(String.Format(Language.Instance.GetMessageFromKey("MAPS_PARSED"), i));
        }