OpenArthurian: Day 12 of the New Age of Arthurian

I added NPC selection; that was trivial. After that I did some changes in the Map Object Editor popup to simplify its UI and enforce read-only ID fields that can only be set via the pickers.

I also added buttons for zoom levels after experimenting a bit with scroll wheel with both fluid zoom levels with snap at a fixed point scale; or just snapping after a threshold of scrolling, but none of these worked, so the buttons should be food. I also flattened the sidebar elements for World and Maps.

Then I went on to complete the map object editor by allow selecting items for interactive 0bjects (such as door, levels, signs), that was not that trivial – human intervention required.

After the implementation was completed, where gemini decided on its own to reuse the same Item picker modal for all the type of world object and just add some visual tags to differentiate between normal items and world objects, I figured maybe it would actually be best to limit the items/objects that could be assigned… I guess that’s one advantage of this agentic programming, being able to toss away something and recreate it.

So I took a deeper look into this; OAX6 seems to support four types of interactive objects on its Objects layers: Levers and Signs which seem to match definitions coming from the objectTypes.json data file. Then there’s Doors which actually use normal items (?) and then there’s Stairs which don’t seem to use neither an item nor a world object, just directly an Appearance.

It seems the migration for the Door object out of the items file was planned some years ago but never taken care of. I gave it a quick try and it’s not trivial of a change so, on following the criteria of not changing anything drastic in the engine, I’ll leave that as it is for now.

All that means, I had to further tweak the ItemSelectionPicker to add options to show items OR world objects, and then another option to filter by item type (i.e. linkedDoor).

Pending stuff:

  • On EditMapObjectModal Use AppearancePickerModal to set the appearanceId for stairs.
  • Build project into an executable (!)
  • Starting party is not working fine, check if it’s really supported by the runtime

Leave a comment