using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace JavaCode.cs
|
{
|
public class TerrainHelper
|
{
|
public static void RemoveTerrain()
|
{
|
char[] chars = new char[] { ',' };
|
string folder = @"E:\data\35.ty\terrain";
|
string[] strs = File.ReadAllLines(folder + "\\layer.json");
|
|
int i = -1;
|
foreach (string str in strs)
|
{
|
if (!str.Contains("[ {")) continue;
|
|
i++;
|
if (i < 5 || i > 12) continue;
|
|
// ,[ { "startX": 6604, "startY": 2834, "endX": 6702, "endY": 2975 } ]
|
string[] vals = str.Replace("startX", "").Replace("startY", "").Replace("endX", "").Replace("endY", "").Replace("[ {", "").Replace("} ]", "").Replace("\"", "").Replace(":", "").Replace(" ", "").Split(chars, StringSplitOptions.RemoveEmptyEntries);
|
|
int startX = int.Parse(vals[0]), startY = int.Parse(vals[1]), endX = int.Parse(vals[2]), endY = int.Parse(vals[3]);
|
RemoveFiles(folder, i, startX, endX, startY, endY);
|
}
|
}
|
|
private static void RemoveFiles(string folder, int level, int startX, int endX, int startY, int endY)
|
{
|
string path = Path.Combine(folder, level.ToString());
|
if (!Directory.Exists(path)) return;
|
|
string[] dirs = Directory.GetDirectories(path, "*", SearchOption.TopDirectoryOnly);
|
foreach (string dir in dirs)
|
{
|
string dirName = Path.GetFileName(dir);
|
|
int d = 0;
|
if (!int.TryParse(dirName, out d))
|
{
|
Directory.Delete(dir, true);
|
continue;
|
}
|
|
if (d < startX || d > endX)
|
{
|
Directory.Delete(dir, true);
|
continue;
|
}
|
|
string[] files = Directory.GetFiles(dir);
|
foreach (string file in files)
|
{
|
string fileName = Path.GetFileName(file).Replace(".terrain", "");
|
|
int f= 0;
|
if (!int.TryParse(fileName, out f))
|
{
|
File.Delete(file);
|
continue;
|
}
|
|
if (f < startY || f > endY)
|
{
|
File.Delete(file);
|
}
|
}
|
}
|
}
|
}
|
}
|