Posted September 01, 2020 by simulatoralive
For user facing features, this update brings better clean-up on exit and should finally fix the hang and crash on exit bugs under Linux. It also modified the full screen mode testing GUI to better handle the fact that Java (by itself) can't change video modes under Linux. The full screen mode tester now gives a little feedback on results.
As for other features, I greatly expanded on my Java Reflection-based tools for loading dynamic data at runtime.
About three weeks ago, I set out to build a tool to build Java/Swing GUI components based on XML files. At each turn, as I neared the completion of my work, I looked at it and felt like I could do better, that I could go further. All I wanted was an easier way to make and test GUIs, based on data, because I hate writing GUI code. What I actually built, in the end, is a general purpose library for using Java Reflection to construct arbitrary Java Objects from XML, in a fail-fast manner. This should be VERY useful to me in the future, but is currently not used for anything new, though some of the older code is using it to accomplish the same old jobs.
In the future I'm likely to be quick to include new types of dynamically constructed data in the game, whereas in the past, this was always a big pain, requiring some very complex code. I may have to revisit some old data types (blocks, masks, fluids, furniture, etc.) and possibly give them better/more flexible loading code.
The next version is quite likely to add a small command-line tool (as an extra jar file) to load a GUI from an XML file, for rapid testing without compilation.