diff options
author | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-05-01 19:27:17 +0200 |
---|---|---|
committer | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-05-01 19:27:17 +0200 |
commit | 8aa6f08959c55708994a69fc06a11a07023a81b2 (patch) | |
tree | 9a7eaf6fd34c1412a31bff49b83bfcd08b2e762f /Tools/BlockZapper/BlockZapper.cpp | |
parent | StringUtils: Fixed StringSplit to work with multiple delimiters (diff) | |
download | cuberite-8aa6f08959c55708994a69fc06a11a07023a81b2.tar cuberite-8aa6f08959c55708994a69fc06a11a07023a81b2.tar.gz cuberite-8aa6f08959c55708994a69fc06a11a07023a81b2.tar.bz2 cuberite-8aa6f08959c55708994a69fc06a11a07023a81b2.tar.lz cuberite-8aa6f08959c55708994a69fc06a11a07023a81b2.tar.xz cuberite-8aa6f08959c55708994a69fc06a11a07023a81b2.tar.zst cuberite-8aa6f08959c55708994a69fc06a11a07023a81b2.zip |
Diffstat (limited to '')
-rw-r--r-- | Tools/BlockZapper/BlockZapper.cpp | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/Tools/BlockZapper/BlockZapper.cpp b/Tools/BlockZapper/BlockZapper.cpp new file mode 100644 index 000000000..fb2050d56 --- /dev/null +++ b/Tools/BlockZapper/BlockZapper.cpp @@ -0,0 +1,97 @@ +
+// BlockZapper.cpp
+
+// Implements the main app entrypoint
+
+#include "Globals.h"
+
+#include <fstream>
+
+#include "Regions.h"
+#include "Zapper.h"
+
+
+
+
+
+#ifdef _MSC_VER
+ // Under MSVC, link to WinSock2 (needed by FastNBT's byteswapping)
+ #pragma comment(lib, "ws2_32.lib")
+#endif
+
+
+
+
+
+void ShowHelp(const char * a_ProgramFullName)
+{
+ AString ProgramName(a_ProgramFullName);
+ size_t idx = ProgramName.rfind(cFile::PathSeparator);
+ if (idx != AString::npos)
+ {
+ ProgramName.erase(0, idx + 1);
+ }
+ printf("Tool written by _Xoft(o), code is public domain.\n");
+ printf("Usage:\n");
+ printf("%s [-w <MCAFolder>]\n", ProgramName.c_str());
+ printf("Zaps blocks and / or entities in specified regions.\n");
+ printf("Regions are read from stdin, the format is:\n");
+ printf(" x1 x2 y1 y2 z1 z2 [B|E|BE]\n");
+ printf("B or no specifier zaps blocks only\n");
+ printf("E zaps entities only\n");
+ printf("BE zaps blocks and entities\n");
+ printf("MCA files are searched in the <MCAFolder>; if not specified, in the current folder.\n");
+}
+
+
+
+
+
+int main(int argc, char * argv[])
+{
+ new cMCLogger; // Create a new logger, it will assign itself as the main logger instance
+
+ AString MCAFolder = ".";
+ for (int i = 1; i < argc; i++)
+ {
+ if (strcmp(argv[i], "-w") == 0)
+ {
+ if (i < argc - 1)
+ {
+ MCAFolder = argv[i + 1];
+ }
+ i++;
+ }
+ else if (
+ (strcmp(argv[i], "help") == 0) ||
+ (strcmp(argv[i], "-?") == 0) ||
+ (strcmp(argv[i], "/?") == 0) ||
+ (strcmp(argv[i], "-h") == 0) ||
+ (strcmp(argv[i], "--help") == 0)
+ )
+ {
+ ShowHelp(argv[0]);
+ return 0;
+ }
+ }
+
+ cRegions Regions;
+
+ /*
+ // DEBUG: Read input from a file instead of stdin:
+ std::fstream fs("test_in.txt");
+ Regions.Read(fs);
+ //*/
+
+ Regions.Read(std::cin);
+
+ cZapper Zapper(MCAFolder);
+ Zapper.ZapRegions(Regions.GetAll());
+
+ LOGINFO("Done");
+ return 0;
+} ;
+
+
+
+
|