Пример #1
0
        private void LoadMap()
        {
            Console.Clear();
            Console.WriteLine("LoadMap() -- WIC Map Engine\nFileName: " + Global.MapEditor_CurrentMapName + "\nCurrent Operation:");

            MapTiles.Clear();
            MapObjects.Clear();
            MapBackground.Clear();

            try
            {
                string[] MapFileRead = File.ReadAllText(Global.MAP_SourceFolder + "/" + Global.MapEditor_CurrentMapName + ".map").Split('|');
                string[] MapBGData   = MapFileRead[0].Split(new[] { '\r', '\n' });
                string[] MapTileData = MapFileRead[1].Split(new[] { '\r', '\n' });
                string[] MapObjData  = MapFileRead[2].Split(new[] { '\r', '\n' });
                string[] MapMetaData = MapFileRead[3].Split(';');


                foreach (var tile in MapBGData)
                {
                    if (tile.Length < 2)
                    {
                        continue;
                    }


                    // Split Line arguments
                    string[] LineArgs       = tile.Split(';');
                    int      TileX          = Convert.ToInt32(LineArgs[0]);
                    int      TileY          = Convert.ToInt32(LineArgs[1]);
                    string[] TileProperties = LineArgs[2].Split(',');

                    MapTile ThisTile = new MapTile(TileX, TileY, TileProperties, MapBackground.Count);

                    MapBackground.Add(ThisTile);
                }

                foreach (var tile in MapTileData)
                {
                    if (tile.Length < 2)
                    {
                        continue;
                    }
                    // Split Line arguments
                    string[] LineArgs       = tile.Split(';');
                    int      TileX          = Convert.ToInt32(LineArgs[0]);
                    int      TileY          = Convert.ToInt32(LineArgs[1]);
                    string[] TileProperties = LineArgs[2].Split(',');

                    MapTile ThisTile = new MapTile(TileX, TileY, TileProperties, MapTiles.Count);

                    MapTiles.Add(ThisTile);
                }

                foreach (var tile in MapObjData)
                {
                    if (tile.Length < 2)
                    {
                        continue;
                    }

                    // Split Line arguments
                    string[] LineArgs       = tile.Split(';');
                    int      TileX          = Convert.ToInt32(LineArgs[0]);
                    int      TileY          = Convert.ToInt32(LineArgs[1]);
                    string[] TileProperties = LineArgs[2].Split(',');

                    MapTile ThisTile = new MapTile(TileX, TileY, TileProperties, MapObjects.Count);

                    MapObjects.Add(ThisTile);
                }

                List <string> LinesWitoutIt = new List <string>();
                CustomMapProperty = "";
                foreach (var MetaLine in MapMetaData)
                {
                    string[] SplitedArgs = MetaLine.Split(':');

                    switch (SplitedArgs[0])
                    {
                    case "width":
                        MapWidth = Convert.ToInt32(SplitedArgs[1]);
                        break;

                    case "height":
                        MapHeight = Convert.ToInt32(SplitedArgs[1]);
                        break;

                    default:
                        try
                        {
                            LinesWitoutIt.Add(SplitedArgs[0] + ":" + SplitedArgs[1]);
                        }
                        catch (IndexOutOfRangeException)
                        {
                        }
                        break;
                    }
                }
                foreach (var CustomProp in LinesWitoutIt)
                {
                    if (CustomProp.Contains("end"))
                    {
                        break;
                    }
                    CustomMapProperty += CustomProp + ";";
                }

                System.Console.WriteLine(CustomMapProperty);
                Console.WriteLine("Operation Completed.");
            }
            catch (IndexOutOfRangeException)
            {
                Console.WriteLine("Error while loading Mapfile: [" + Global.MapEditor_CurrentMapName + "]\nInvalid map file.");

                DialogMessage(Registry.ReadKeyValue("/editor/map_load_error_1"));
            }

            catch (FileNotFoundException)
            {
                Console.WriteLine("Error while loading Mapfile: [" + Global.MapEditor_CurrentMapName + "]\nCannot find map file.");

                DialogMessage(Registry.ReadKeyValue("/editor/map_load_error_2"));
            }

            MapHasBeenLoaded = true;
        }
Пример #2
0
 public override void SetTenantId(string tenantId)
 {
     CustomProp  = CustomProp?.Replace("%tenantid%", tenantId);
     CustomProp2 = CustomProp2?.Replace("%tenantid%", tenantId);
 }