As a number of people noticed, there was no API for Mystcraft 0.10.14. This was very much intentional.
I intend to completely revise how I do the API, at least on my end. From an add-on dev’s perspective it won’t change a whole lot.
I’m working on a versioned API system. This will mean that older add-ons won’t have to update every time the API changes and that I can add new things and alter the API without breaking stuff, so long as once an API version is released it remains stable.
It will mean I need to be slightly more clever in how I do things, in terms of handling the API, and that I’ll end up doing a lot of mapping API stuff into an internal handling system, but that’s OK.
One good example of why this would be nice: Recently, there was an issue where people would crash if they had both the DragonAPI and Mystcraft installed, because the DragonAPI included an older version of the Mystcraft API. The mismatched class files then caused Mystcraft to crash, as some functions didn’t exist.
So, why the versioned API? So I can support older things (as possible) while not being afraid to move the API forward. So I can easily know what version of the API mods are on. So I can introduce things in different versions without breaking older ones. So that users have fewer conflicts and crashes overall (defensive coding).
It may not be easy, and it might take a bit to move to, but I’m going to manage. 😉
That said, it’s looking like I’ll be releasing the initial API with a lot of missing stuff. Too many things currently being revised and I don’t want to release an API just to break it immediately. So, as odd as it seems, the first version of the API won’t be able to add symbols or instability effects. Most of my events and render handlers will be included, though, so most of the add-ons for Mystcraft will still be possible to update.
Why not instability and symbols? Because I’m rewriting instability. Since instability is tied into symbols at some points right now, I can’t change it without affecting symbols.
Just wanted to make a general announcement about this. It’s the main thing that’s holding up the next release, and I’m trying to sort out the initial API version now.
I hope to have the next release up soon. 🙂