Wow, it has been total chaos lately around here. I kept jumping all around the code base, doing new things here and there and not having time to post. And I found myself in another impasse regarding graphics. And finally, there was a 2-3 day Blogger outage, so I found myself posting the last two updates on Twitter.
So let us sort things out by going over the changes! No joke here…
And I hope I can get through my entire backlog this week.
Item creation overhaul
This is the first of the Twitter announced changes. I have greatly simplified the item creation API. It is still in its own namespace and this is fairly redundant, so I’ll have to fix this, but it can be done by copy & paste. This change is the first phase of the item system overhaul. In the end the new system will occupy a lot less memory. What am I going to do with the extra memory? Make the largest possible map size bigger of course!
GUI skin mock-up
This is the second Twitter announced change. I can’t remain forever using a GUI that looks like Windows 95. The new skin is starting to take shape, but it will take some time until it looks good enough to adopt it as the new standard.
Phasing out Irrlicht GUI component
It is no secret to the readers of this blog that I am not happy with the Irrlicht GUI component. So I am phasing it out. I will still use Irrlicht, but only the drawing primitives and use my own custom and very light weight GUI system. This way, if I ever break up with Irrlicht, I can easily sway the results of the otherwise messy divorce in my direction. Hmmm, I’m not sure this metaphor works. The idea is that it will be easy to replace Irrlicht, because my entire GUI will not depend on it. The new GUI system will go hand in hand with the new skin to create the ultimate GUI experience! GUI! This is not an ideal solution, especially since doing a mouse and keyboard driven highly robust event based light weight GUI is not that easy. Nobody enjoys coding the WhenMouseEnter and WhenMouseLeave events, but I really want to get rid of Irrlicht GUI and don’t want to add a new dependency.
New action toolbar
As part of the phasing out process, I have created a new action toolbar:
You can see it under the old one. The buttons lack icons and the entire thing is not skinned so it does not look better than the old one. This is only temporary. I will be keeping both for a few days, until the new one will have passed the challenge of time and proved to be stable.
So why do I need a new bar when it behaves the same way as the old one? Because it doesn’t. Let’s see what happens when I mouse over one of these buttons:
We get a window giving an overview of the actions possible and a few extra instructions. This panel is animated and it grows out of the rest of the window with a smooth growth. It is impossible to illustrate this without an animation, especially since the effect is very short, but here is a frame from the middle of the animation:
The text is not visible while the animation is playing. This is intentional. I’ll show the whole thing animated in one of my future YouTube videos.
Let’s see the rest of the panels. I am sure there are a few spelling errors in the descriptions and I need to fix the formatting a little:
That is it for today’s post. There are lots of new things to talk about that are done, but I’ll leave that to another post.