Can't key them by the module itself because once the module is loaded, classes may already be registered.
Also, checkTimestamps now returns the correct answer.
QGLContext cannot be created on its own without using deprecated APIs to bind its output to a widget (or an offscreen render buffer, or a texture in an existing context...). So, allow QGLWidget to create the context and then validate it afterward.
This also sets the default QGLFormat to require OpenGL 1.3 and hardware rendering (called "direct rendering" in QGLFormat)
Provides a minimal implementation of GeneratePlugin suitable for L-systems.
getOptionsWidget and createInitialSymbol are the only required methods to implement.
Kindly ignore the 'getInputsList' for now, I'm still not sure if it's going to be implemented.
getAllPlugins returns all PluginRefs found so far
detectPlugin tries to find a plugin and returns a PluginRef
findNewPluginsInDir stores a PluginRef for each plugin in the dir
Each PluginRef can be loaded and unloaded, remembers its 'enabled' setting, and provides a displayName and info about loading/unloading errors.
On startup, `findNewPluginsInDir` is called.
Found plugins are retrieved using getAllPlugins and any enabled plugins are loaded.
Plugins dialog lists plugins from getAllPlugins and allows to enable/disable each one.
Reloading is not yet implemented.
When the plugin module is unloaded, unregister all of its classes.
Plugin modules are also allowed `register()` and `unregister()` functions to use for e.g. monkey-patching MCEdit's internals and other unspeakable things.
Avoids crashes on badly-formed player data. Should tighten this up to only catch errors in getting the player's position. Should also add a validate function to AnvilPlayerRef (and every other ref, too?)
On Windows this encodes with the current codepage, which often fails for characters not in the codepage.
On Windows, FS functions accept 'unicode' and encode as UTF-16 for WinAPI
On Mac, FS functions accept 'unicode' and encode as UTF-8 for FS API
On Linux, filenames are byte strings and encoding is only a convention. FS functions encode 'unicode' according to locale. On Linux, it is possible to have files whose names cannot be decoded in any character set!
GL preview is enabled by default
Undoing a Generate returns the bounding box to the tool
generateInSchematic is provided with the original bounding box
clearSchematic does not remove schematicBounds (should be called generateBounds or something)
Objects can be rendered either as Minecraft block placement commands or as OpenGL rendering commands in the form of scenegraph Nodes.
The huge block of text at the top probably doesn't do much to explain the value of the system, so examples and tutorials will be coming soon.