09-10-2019, 10:15 PM
The problem with the original JSON output is that it's too large to put into the git repo, and we want the user experience to be as smooth as possible, downloading / generating files shouldn't be needed for running the server. Therefore, the server has to contain the map somehow in the default distribution. Another reason: I'm not sure about what lawyers would make of it, if we simply committed the raw JSON generated by a copyrighted program into our repository. Refined data seems more likely to pass
The mentioned future compatibility is questionable as well - if Mojang changes the registry output format, we'd need a new parser in Cuberite itself, while if using our own data we could simply change the parser we use to generate the data file.
The converter could be in the Tools folder, among the other more or less useful stuff there (BUILD_TOOLS=1 to build them). The actual input file for the map should be in the Server folder, likely in a subfolder, numbered by the protocol version that generated it (there will be multiple such files, one for each protocol version). I don't really care about the actual format used, though TSV seems a bit easier to grasp.
About C++11, VC supports most of it, we generally haven't run into anything that would give us trouble. At the very worst, when you open a pull request, mark it as draft, CI will still build it and we'll know it still needs work on your end. That way you'll get it checked, we use Appveyor for VC builds.
The mentioned future compatibility is questionable as well - if Mojang changes the registry output format, we'd need a new parser in Cuberite itself, while if using our own data we could simply change the parser we use to generate the data file.
The converter could be in the Tools folder, among the other more or less useful stuff there (BUILD_TOOLS=1 to build them). The actual input file for the map should be in the Server folder, likely in a subfolder, numbered by the protocol version that generated it (there will be multiple such files, one for each protocol version). I don't really care about the actual format used, though TSV seems a bit easier to grasp.
About C++11, VC supports most of it, we generally haven't run into anything that would give us trouble. At the very worst, when you open a pull request, mark it as draft, CI will still build it and we'll know it still needs work on your end. That way you'll get it checked, we use Appveyor for VC builds.