Hey Folks! More work on GUI systems today, as I further integrated the docking system and orbit UIs into a whole that the game can use.
Individually, the UIs do most of what they need, but I now need the ability to switch between them for more complex tasks (like docking/undocking). Users are going to be doing things in one panel, and need to switch to another quickly to affect another ship system, then come back again. All (ideally) without having to exit one ship station, and walking the AI to another station.
So I added some more code today to help with that UI switching. My data for UIs now can specify which panels are to the right, left, top, and bottom of the loaded one. And each of those panels, in turn, can specify which other panels are to the sides. So it becomes possible to have a sort of grid-based system of navigating UIs for times when I need a lot of systems accessible from one point.
So far, I've got my orbital nav UI setup to load the docking system UI as a "right" panel, and I can hit the right arrow key to animate from one to the other. It's still a bit buggy, though, as the orbital UI moves back onto the screen after leaving. I think it's a state bug in the animator. And I haven't checked if I can navigate back again.
Also, I'm starting to see a lot of repeated code in setting this up, so I might break some of this out into shared classes to minimize redundancy (and make maintenance easier). And I'm still not sure if this data-driven stuff is going to go over modders' heads. I can barely understand it myself, and I made the damned thing!
First things first, though. Just get it working. I can optimize later when there's a game worth optimizing :)