June 21 – Saturday Bonus Update

After dusting off the wiring system and fixing those old bugs yesterday, I decided to keep the momentum going and properly implement some more long overdue features. Kyren fixed the setLightColor Lua binding, and I’ve now scripted all of the tiered lights to be properly switchable:

These lights can be turned on or off directly through interaction or by using wires, so I also configured all of the tiered switches to work properly:

Jun 20, The Trifecta

Omni has demanded that I also post an update so we can get the rare 3x complete dev collection post combo.

Lately I’ve been working on mostly the AI interface.  I’ve been working on mostly technical things behind the scenes to hook up different bits of functionality to the AI like repairing your ship, but also one kind of neat feature: giving the AI interface a different speech scheme.  Now, when the AI has something to say, it will say it within individual screens, and each screen will have its own “emotion” attached to it.  For example, the AI might start by talking at its normal rate, and then when you hit next, it might get very agitated and the text and animation might speed up, as well as showing an animation for a different emotion.  Think Phoenix Wright.

I’ve done a couple of other odds and ends, like helping metadept fix the wiring bug, as well as adding some capabilities to do custom object collisions.  I’ve also fixed several rendering bugs in our CanvasWidget (fixes glitches with the nav ui) and our text renderer.

Also we have decided because of the positive feedback about the glitch AI that we should make every ship AI a different animal, all with boobs.

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.