From 8aa6f08959c55708994a69fc06a11a07023a81b2 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Wed, 1 May 2013 17:27:17 +0000 Subject: BlockZapper: Initial import, can zap blocks but not entities git-svn-id: http://mc-server.googlecode.com/svn/trunk@1439 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- Tools/BlockZapper/BlockZapper.cpp | 97 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Tools/BlockZapper/BlockZapper.cpp (limited to 'Tools/BlockZapper/BlockZapper.cpp') 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 + +#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 ]\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 ; 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; +} ; + + + + -- cgit v1.2.3