Working on text input widget. Happy with the state of it, still need to implement some stuff (like password input, clipboard, deciding if I want to support multi-line later, etc) but works pretty alright for now!
Working on text input widget. Happy with the state of it, still need to implement some stuff (like password input, clipboard, deciding if I want to support multi-line later, etc) but works pretty alright for now!
Wee, stylesheet loading & loading UIs from XML is implemented. Currently just displaying a basic label & button, but it's a start :)
Figure I can probably hack in a "UI preview" debug window that loads and displays a UI from a given path, similar to the entity preview window, to allow iterating on UIs.
Implemented triggers, got collision+trigger enter/exit events implemented, and added a coin pickup which can be collected to increase a global score (as stored in a PlayerScore singleton)
Adding animations to PlatformerSample!
Progress on PlatformerSample: got camera following & basic character movement!
Anyway I fixed several bugs in my content pipeline & started working on a PlatformerSample for Praxis, ft. Leigh :)
Ignore the weird black striping, that's a Compressonator bug lol.
Whew, jeez. Realized hot reloading was pretty busted in ResourceCache (it wasn't thread safe, totally failed if the file was still being written, etc).
Praxis also failed to ensure an unloaded asset was reloaded in many cases, so you could end up with a model just vanishing instead of properly hot-reloading.
Fixed everything up, now you can rebuild your content while the game is running. Not everything live updates, but a lot does (shaders, materials, textures, & models in particular). Anything that doesn't live update *will* get updated the next time that asset is loaded though (levels, entity templates, etc)
Realized last night in bed that I could probably hack in support for "nested" entity templates, and let you do stuff like this:
Working on EntityTemplate system, so you can load an EntityTemplate from JSON and then instantiate entities from it.
A little fiddly b/c right now it basically entails writing both a Component struct *and* an associated ComponentData class (which is what actually gets deserialized), but it does work!
Working on particle systems in Praxis!