Converted the MACROS in ManualBindings.cpp to templates, this allows placing breakpoints and automagic declaration of functions

yay~
I feel like I'm finally getting the hang of templates
Nice! Finally the code is getting pretty again. I knew it could be done with templates, but was too lazy to try do it myself. Congratulations.
I'm currently busy with another side-project to MCServer. It's called BiomeVisualiser, and you can quite guess what it will do

It will be a cross between Minutor and AMIDST. It will be able to display a map of biomes either as generated by MCServer generators or as stored in an Anvil world. Since it is a GUI app, I'm not planning on writing it cross-platform, it will be Windows-only.

Why don't you just use a GUI toolkit that works cross-platform, like QT?
Because why bother? I'll be the only one using this tool regularly, anyway. Using a toolkit would mean I'd first have to learn that, that's too much of an investment for a minor task like this.
So, I'd like to add a few things to the API, so that plugins can be made more powerful. For starters, I think some generator injecting could be useful, so that plugins may enhance the generated world using the OnChunkGenerating() or OnChunkGenerated() hooks. But for that to work, two things are essential:
- cChunkDesc must be able to have a cBlockArea written to it
- cBlockArea needs file IO, so that "models" can be loaded and saved from files
Also, useful stuff:
- cBlockArea:Crop() to crop along either of the axes
- cBlockArea:Expand() to expand itself in either of the axes
- cBlockArea:RotateCW() and RotateCCW() to rotate by 90 degrees along the vertical axis
- cBlockArea:MirrorX(), MirrorY(), MirrorZ() to mirror by the specified axis
I started by cBlockArea:Crop(), just to get the feel of the things. And I discovered quite a nasty bug in cBlockArea::MakeIndex that could have caused weird memory overwrite bugs.
Whew, .schematic file support was a pain. But it's half-done now. Loading works and is also exported as an API to the plugins as the cBlockArea:LoadFromSchematicFile() function.
One thing I've noticed, though - if there are many block changes per chunk (hundreds), MineCraft really stops to a crawl if we send it via a MultiBlockChange packet. We should probably detect this and send the entire chunk anew instead. I tried inserting a 200x170x200 block schematic and the client just froze, I had to kill it.
Writing .schematic files is done.
Note, though, that only block types and block metas are saved. Neither then Entities nor the BlockEntities (or in schematic-speak, TileEntities) are saved, meaning that signs will be blank, chest will lose their contents etc. I don't think I'll be adding support for that anytime soon, unless there's an uproar of plugin authors wanting to use it.
I thought about making a plugin for saving, loading and pasting areas myself :-D but this is so much better! I'll look into this, could be fun to mess around, making wells and towers and whatsoever :-) as soon as I'm back from Moscow
My laptop died
Three years ago it got soaked in some rain, and today it realized? So slow
Still, couldn't have come at a worse time. I'm at home on a sick leave and was using the laptop in bed; well, not anymore. And tomorrow I'm going to visit my parents, five hours on a train, and instead of coding MCServer I'll have to find something else to do. And we cannot play minecraft together with my wife now
