public static bool SetCurrentDir(string[] args) { var configBuilder = new ConfigurationBuilder().AddCommandLine(args, new Dictionary <string, string> { { Settings.DirArgs.Alias, Settings.DirArgs.Name.Replace("--", "") } }); var config = configBuilder.Build(); var ds = new DirSettings(); config.Bind(ds); if (!string.IsNullOrEmpty(ds.Dir)) { CurrentDir = Path.Join(CurrentDir, ds.Dir); } var dir = Path.GetFullPath(CurrentDir); if (!Directory.Exists(dir)) { DumpError($"Directory {dir} does not exists!"); return(false); } WriteLine("", "Using dir: "); WriteLine(ConsoleColor.Cyan, " " + dir); return(true); }
// Need to code this next private void AutoEdge(Point pt) { Point tilePt = pt;//GetNearestTilePoint(pt); Map.Tile.EdgeTile.Direction EdgeDir; //tilePt = GetNearestTilePoint(tilePt); int x = 0; // Holding marker int y = 0; // Holding marker Point temTile = tilePt; // Tile location reset temTile = tilePt; temTile.X += x; temTile.Y += y; Map.Tile tesTile = Map.Tiles[tilePt]; Map.Tile.EdgeTile.Direction Edir = Map.Tile.EdgeTile.Direction.South; Map.Tile.EdgeTile.Direction dir1; Map.Tile.EdgeTile.Direction dir2; Map.Tile.EdgeTile.Direction dir3; DirSettings DirSetting = new DirSettings(); DirSetting.Clear(); Random random = new Random(); int variation = 0; /////////////////////////////////////////////////////////////////////// // // East Direction If Statement // /////////////////////////////////////////////////////////////////////// dir1 = Map.Tile.EdgeTile.Direction.East; dir2 = Map.Tile.EdgeTile.Direction.North; dir3 = Map.Tile.EdgeTile.Direction.South; if (IsTileFromDir(tilePt, dir1)) { bool done = false; Map.Tile te1 = Map.Tiles[GetTileFromDir(tilePt, dir1)]; if (tesTile.Graphic != te1.Graphic && !IsOnIgnore(te1.Graphic)) { if (IsTileFromDir(tilePt, dir2) && !DirSetting.NE && !DirSetting.SE && !DirSetting.NW && !done) { Map.Tile te2 = Map.Tiles[GetTileFromDir(tilePt, dir2)]; if (te1.Graphic == te2.Graphic) { DirSetting.NE = true; Edir = Map.Tile.EdgeTile.Direction.NE_Sides; done = true; } } if (IsTileFromDir(tilePt, dir3) && !DirSetting.SE && !DirSetting.NE && !DirSetting.SW && !done) { Map.Tile te2 = Map.Tiles[GetTileFromDir(tilePt, dir3)]; if (te1.Graphic == te2.Graphic) { DirSetting.SE = true; Edir = Map.Tile.EdgeTile.Direction.SE_Sides; done = true; } } if( !done && !DirSetting.NE && !DirSetting.SE ) { int num = random.Next(3); switch (num) { case 0: Edir = Map.Tile.EdgeTile.Direction.East_D; break; case 1: Edir = Map.Tile.EdgeTile.Direction.East_E; break; default: Edir = dir1; break; } DirSetting.E = true; done = true; } if (done) { Map.Tiles[tilePt].EdgeTiles.Add(new Map.Tile.EdgeTile( te1.graphicId, GetEdgeVariation(cboAutoEdge.Text,te1.Variation), Edir, (byte)cboAutoEdge.SelectedIndex)); } } } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// // // North Direction If Statement // /////////////////////////////////////////////////////////////////////// dir1 = Map.Tile.EdgeTile.Direction.North; dir2 = Map.Tile.EdgeTile.Direction.West; dir3 = Map.Tile.EdgeTile.Direction.East; if (IsTileFromDir(tilePt, dir1)) { bool done = false; Map.Tile te1 = Map.Tiles[GetTileFromDir(tilePt, dir1)]; if (tesTile.Graphic != te1.Graphic && !IsOnIgnore(te1.Graphic)) { if (IsTileFromDir(tilePt, dir2) && !DirSetting.NW && !DirSetting.NE && !DirSetting.SW && !done) { Map.Tile te2 = Map.Tiles[GetTileFromDir(tilePt, dir2)]; if (te1.Graphic == te2.Graphic) { DirSetting.NW = true; Edir = Map.Tile.EdgeTile.Direction.NW_Sides; done = true; } } if (IsTileFromDir(tilePt, dir3) && !DirSetting.NE && !DirSetting.NW && !DirSetting.SE && !done) { Map.Tile te2 = Map.Tiles[GetTileFromDir(tilePt, dir3)]; if (te1.Graphic == te2.Graphic) { DirSetting.NE = true; Edir = Map.Tile.EdgeTile.Direction.NE_Sides; done = true; } } if( !done && !DirSetting.NE && !DirSetting.NW) { int num = random.Next(3); switch (num) { case 0: Edir = Map.Tile.EdgeTile.Direction.North_08; break; case 1: Edir = Map.Tile.EdgeTile.Direction.North_0A; break; default: Edir = dir1; break; } DirSetting.N = true; done = true; } if (done) { Map.Tiles[tilePt].EdgeTiles.Add(new Map.Tile.EdgeTile( te1.graphicId, GetEdgeVariation(cboAutoEdge.Text, te1.Variation), Edir, (byte)cboAutoEdge.SelectedIndex)); } } } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// // // West Direction If Statement // /////////////////////////////////////////////////////////////////////// dir1 = Map.Tile.EdgeTile.Direction.West; dir2 = Map.Tile.EdgeTile.Direction.South; dir3 = Map.Tile.EdgeTile.Direction.North; if (IsTileFromDir(tilePt, dir1)) { bool done = false; Map.Tile te1 = Map.Tiles[GetTileFromDir(tilePt, dir1)]; if (tesTile.Graphic != te1.Graphic && !IsOnIgnore(te1.Graphic)) { if (IsTileFromDir(tilePt, dir2) && !DirSetting.NW && !DirSetting.SW && !DirSetting.SE && !done) { Map.Tile te2 = Map.Tiles[GetTileFromDir(tilePt, dir2)]; if (te1.Graphic == te2.Graphic) { DirSetting.SW = true; Edir = Map.Tile.EdgeTile.Direction.SW_Sides; done = true; } } if (IsTileFromDir(tilePt, dir3) && !DirSetting.NW && !DirSetting.NE && !DirSetting.SW && !done) { Map.Tile te2 = Map.Tiles[GetTileFromDir(tilePt, dir3)]; if (te1.Graphic == te2.Graphic) { DirSetting.NW = true; Edir = Map.Tile.EdgeTile.Direction.NW_Sides; done = true; } } if (!done && !DirSetting.NW && !DirSetting.SW) { int num = random.Next(3); switch (num) { case 0: Edir = Map.Tile.EdgeTile.Direction.West_02; break; case 1: Edir = Map.Tile.EdgeTile.Direction.West_03; break; default: Edir = dir1; break; } DirSetting.W = true; done = true; } if (done) { Map.Tiles[tilePt].EdgeTiles.Add(new Map.Tile.EdgeTile( te1.graphicId, GetEdgeVariation(cboAutoEdge.Text, te1.Variation), Edir, (byte)cboAutoEdge.SelectedIndex)); } } } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// // // South Direction If Statement // /////////////////////////////////////////////////////////////////////// dir1 = Map.Tile.EdgeTile.Direction.South; dir2 = Map.Tile.EdgeTile.Direction.East; dir3 = Map.Tile.EdgeTile.Direction.West; if (IsTileFromDir(tilePt, dir1)) { bool done = false; Map.Tile te1 = Map.Tiles[GetTileFromDir(tilePt, dir1)]; if (tesTile.Graphic != te1.Graphic && !IsOnIgnore(te1.Graphic)) { if (IsTileFromDir(tilePt, dir2) && !DirSetting.SE && !DirSetting.SW && !DirSetting.NE && !done) { Map.Tile te2 = Map.Tiles[GetTileFromDir(tilePt, dir2)]; if (te1.Graphic == te2.Graphic) { DirSetting.SE = true; Edir = Map.Tile.EdgeTile.Direction.SE_Sides; done = true; } } if (IsTileFromDir(tilePt, dir3) && !DirSetting.SW && !DirSetting.SE && !DirSetting.NW && !done) { Map.Tile te2 = Map.Tiles[GetTileFromDir(tilePt, dir3)]; if (te1.Graphic == te2.Graphic) { DirSetting.SW = true; Edir = Map.Tile.EdgeTile.Direction.SW_Sides; done = true; } } if (!done && !DirSetting.SW && !DirSetting.SE) { int num = random.Next(3); switch (num) { case 0: Edir = Map.Tile.EdgeTile.Direction.South_07; break; case 1: Edir = Map.Tile.EdgeTile.Direction.South_09; break; default: Edir = dir1; break; } DirSetting.S = true; done = true; } if (done) { Map.Tiles[tilePt].EdgeTiles.Add(new Map.Tile.EdgeTile( te1.graphicId, GetEdgeVariation(cboAutoEdge.Text, te1.Variation), Edir, (byte)cboAutoEdge.SelectedIndex)); } } } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// // // NE Tip Direction If Statement // /////////////////////////////////////////////////////////////////////// dir1 = Map.Tile.EdgeTile.Direction.NE_Tip; if (IsTileFromDir(tilePt, dir1)) { Map.Tile te1 = Map.Tiles[GetTileFromDir(tilePt, dir1)]; if (tesTile.Graphic != te1.Graphic && !IsOnIgnore(te1.Graphic)) { if (!DirSetting.NE && !DirSetting.NW && !DirSetting.SE && !DirSetting.N && !DirSetting.E) { Edir = dir1; Map.Tiles[tilePt].EdgeTiles.Add(new Map.Tile.EdgeTile( te1.graphicId, GetEdgeVariation(cboAutoEdge.Text, te1.Variation), Edir, (byte)cboAutoEdge.SelectedIndex)); } } } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// // // NW Tip Direction If Statement // /////////////////////////////////////////////////////////////////////// dir1 = Map.Tile.EdgeTile.Direction.NW_Tip; if (IsTileFromDir(tilePt, dir1)) { Map.Tile te1 = Map.Tiles[GetTileFromDir(tilePt, dir1)]; if (tesTile.Graphic != te1.Graphic && !IsOnIgnore(te1.Graphic)) { if (!DirSetting.NW && !DirSetting.NE && !DirSetting.SW && !DirSetting.N && !DirSetting.W) { Edir = dir1; Map.Tiles[tilePt].EdgeTiles.Add(new Map.Tile.EdgeTile( te1.graphicId, GetEdgeVariation(cboAutoEdge.Text, te1.Variation), Edir, (byte)cboAutoEdge.SelectedIndex)); } } } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// // // SE Tip Direction If Statement // /////////////////////////////////////////////////////////////////////// dir1 = Map.Tile.EdgeTile.Direction.SE_Tip; if (IsTileFromDir(tilePt, dir1)) { Map.Tile te1 = Map.Tiles[GetTileFromDir(tilePt, dir1)]; if (tesTile.Graphic != te1.Graphic && !IsOnIgnore(te1.Graphic)) { if (!DirSetting.SE && !DirSetting.NE && !DirSetting.SW && !DirSetting.S && !DirSetting.E) { Edir = dir1; Map.Tiles[tilePt].EdgeTiles.Add(new Map.Tile.EdgeTile( te1.graphicId, GetEdgeVariation(cboAutoEdge.Text, te1.Variation), Edir, (byte)cboAutoEdge.SelectedIndex)); } } } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// // // SW Tip Direction If Statement // /////////////////////////////////////////////////////////////////////// dir1 = Map.Tile.EdgeTile.Direction.SW_Tip; if (IsTileFromDir(tilePt, dir1)) { Map.Tile te1 = Map.Tiles[GetTileFromDir(tilePt, dir1)]; if (tesTile.Graphic != te1.Graphic && !IsOnIgnore(te1.Graphic)) { if (!DirSetting.SW && !DirSetting.NW && !DirSetting.SE && !DirSetting.W && !DirSetting.S) { Edir = dir1; Map.Tiles[tilePt].EdgeTiles.Add(new Map.Tile.EdgeTile( te1.graphicId, GetEdgeVariation(cboAutoEdge.Text, te1.Variation), Edir, (byte)cboAutoEdge.SelectedIndex)); } } } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// }