//========================================================================== //Save the map //========================================================================== private void SaveMap_Click(object sender, EventArgs e) { string name = nameOfMap + timesCreated + ".mxt"; if (MapNamed) { name = nameOfMap + ".mxt"; } if (!SAVING_DEBUG) { Classes.MapClass MapHandlerFiller = new Classes.MapClass() { Loger = Loger, }; MapHandlerFiller.setMapName(name); MapHandlerFiller.setTileSize(TileSize); MapHandlerFiller.setRowCount(RowCount); MapHandlerFiller.setColCount(ColCount); MapHandlerFiller.setMapImage(new Bitmap(BMP)); MapHandlerFiller.setMaxTiles(MaxTiles); MapHandlerFiller.setCollisionMap(new List <bool>(CollisionMap)); MapHandlerFiller.setOffSet(OffSet); fileManager.SaveMap(name, MapHandlerFiller); MapHandler.Add(MapHandlerFiller); } add_child_node_map(name); timesCreated++; }
//========================================================================== //Load the map //========================================================================== public void LoadMap(Classes.MapClass argument) { nameOfMap = argument.getMapName().Substring(0, argument.getMapName().Length - 4); TileSize = argument.getTileSize(); OffSet = argument.getOffSet(); RowCount = argument.getRowCount(); ColCount = argument.getColCount(); BMP = argument.getMapImage(); MaxTiles = argument.getMaxTiles(); CollisionMap = argument.getCollisionMap(); MapRectangles = argument.getRectangles(); Combination = new Bitmap((ColCount * TileSize) + 1, (RowCount * TileSize) + 1); Label l = new Label { Text = "", Location = new Point((ColCount * TileSize) + 1, (RowCount * TileSize) + 1) //784,448 is a point outside of the viewable area }; Map.Controls.Add(l); MapCreated = true; MapNamed = true; int i = 0; Graphics g = Graphics.FromImage(Combination); g.SmoothingMode = SmoothingMode.AntiAlias; foreach (bool x in CollisionMap) { if (x) { g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Red)), MapRectangles[i]); } i++; } Grid = new Bitmap((ColCount * TileSize) + 1, (RowCount * TileSize) + 1); Graphics gg = Graphics.FromImage(Grid); Pen pen = new Pen(Color.Black); gg.SmoothingMode = SmoothingMode.AntiAlias; gg.FillRectangle(new SolidBrush(Color.Transparent), 0, 0, Grid.Size.Width, Grid.Size.Height); for (int z = 0; z < RowCount; z++) { for (int j = 0; j < ColCount; j++) { gg.DrawRectangle(pen, 0 + j * TileSize, 0 + z * TileSize, TileSize, TileSize); } } Map.Invalidate(); }
//========================================================================== //Load a map to the viewer //========================================================================== public void Load_Map(Classes.MapClass TheMap) { Map.Focus(); MapImage = TheMap.getMapImage(); MaxTiles = TheMap.getMaxTiles(); TileSize = TheMap.getTileSize(); Map_Copy = (Bitmap)MapImage; MapProvided = true; Map.Focus(); Map.Invalidate(); }
//========================================================================== //Gets project files //========================================================================== public bool GetProjectFiles(ref List <Classes.MapClass> MapHandler, ref List <CodeFileClass> CodeHandler, CodeCompiler Compiler, ref List <SpriteSheet> SpriteHandler) { try { //CODE FILES int i = 0; string[] fileArray2 = Directory.GetFiles(ACFFilePath, "*.acf"); foreach (string x in fileArray2) { Loger.write(x, 0); if (x == (ACFFilePath + "code_variables.acf")) { CodeHandler.Add(new CodeFileClass(ReadACFV("code_variables.acf"), "variables", "code_variables.acf")); DataHandlerForProgram.variableFileID = i; Loger.write("Loading of code variables complete!", 0); } else { if (ReadNCompileACF(Compiler, x)) { Loger.write("Loading of code file complete!", 0); } else { Loger.write("Loading of code file failed!", 0); } } i++; } //MAPS MapHandler.Clear(); string[] fileArray = Directory.GetFiles(MapsFilePath, "*.mxt"); foreach (string x in fileArray) { Loger.write(x, 0); Classes.MapClass MapHandlerFiller = new Classes.MapClass() { Loger = Loger, }; LoadMap(x, ref MapHandlerFiller); MapHandler.Add(MapHandlerFiller); } //Sprites SpriteHandler.Clear(); string[] fileArray3 = Directory.GetFiles(SpriteFilePath, "*.csf"); foreach (string x in fileArray3) { Loger.write(x, 0); Classes.SpriteSheet SpriteSheetFiller = new Classes.SpriteSheet(); LoadSpriteSheet(x, ref SpriteSheetFiller); SpriteHandler.Add(SpriteSheetFiller); } return(true); } catch (DirectoryNotFoundException) { if (!Directory.Exists(SpriteFilePath)) { Directory.CreateDirectory(SpriteFilePath); } if (!Directory.Exists(MapsFilePath)) { Directory.CreateDirectory(MapsFilePath); } if (!Directory.Exists(ACFFilePath)) { Directory.CreateDirectory(ACFFilePath); } return(false); } catch (Exception e) { Loger.write(e.ToString(), 2); return(false); } }