June 20 – Omni Update

Recently, I’ve been occupying myself with little odds and ends and helping other people.

Yesterday, I did a few Lua enhancements. Now you can access the aimPosition of your owner if you’re an item. And everything that has access to root callbacks now can query the image metadata database, which contains information on image sizing and tile placements.

I’ve been working on Parrying (with two handed weapons), but so far it’s still incomplete. So I used today instead to fix some one off issues with the Text Painter and the Wire Renderer. The Wire Renderer still needs some major restructuring, but I’ve started the process. The issue used to be that some wires wouldn’t show up unless the inbound node was within 64 blocks of the screen. Which is hacky and ick.

I removed the 64 block extra area. And made it so it will render also if the outbound node is on screen. This exposes another problem though, which is if the wire merely crosses through the screen, but neither node is within. To fix this, will take a bit more work, (storing the wires themselves, rather than the nodes and connections,) and present an interesting challenge (efficiently querying the world for lines that pass through a particular rect, rather than points), and as such that will need to be solved on another day.

As far as the text painting bugs, I simplified the rendering result to merely return a Rectangle where the text was rendered, rather than a width, height and number of lines, (which doesn’t actually give us information about *where* the text was rendered.) This fixed a few flickering text bugs in the AI’s scrolling text. Slowly but surely we’re dragging our frontend code into something respectable.