Hauling vs. Spawning Loot/People

Hey Folks! Hope everyone had a good weekend. Pretty low-key here, but that was a welcome break.

Back at the office, I unfortunately had a lot of admin tasks to do in the morning. And only got a bit of development time in the afternoon. However, I think I'm starting to form a picture of what I need to do next. And how to do it.

I want to setup a way for AI to haul items to a designated zone, and for the player to be able to tag things for hauling. Pretty typical colony sim stuff, like Dwarf Fortress, Rimworld, etc.

So far, I have a way to designate zones of tiles with certain properties, but no way to make AI deliver items to them. I can probably setup some sort of special case for tasks involving zone delivery, so I'm not too worried about that.

While refreshing my memory of zones, however, I noticed a few things left unresolved there.

First, you can see in today's screenshot we have a "Spawn" (blue grid) zone. This is used for spawning people on new ships, and a little bit for spawning players correctly when teleporting (such as when starting a new game). Just select some tiles, click the "Spawn" option to paint them with that tag, and set the "Owner" to the type of PersonSpec this applies to.

That's not really meant for players to see. This is more of a game designer and ship editing tool. The other zone types, barter, forbid, and clear, make more sense for players. So I want to hide this in-game. But that's hard to do without breaking the spawning stuff.

On the left of the screenshot, you see the other way ships spawn stuff: a loot spawner (big yellow present icon). You place this in the ship editor, and use it's UI to set spawn radius, loot to spawn, and how many. As well as whether it applies to new, damaged, or derelict ships.

I'm thinking this is also how the people spawner should work. And the benefit of doing that is twofold.

1 - the behavior and code is more consistent between these two similar features.
2 - I can more easily hide this from gameplay, and expose this in the editor.

None of that refactoring is strictly necessary to add hauling. But it's necessary to avoid confusing new players, I think. This UI always prompts questions from new users, and I have to explain some of it is debug stuff. And making it 100% for the player is important.

Anyway, once that's done, I can return to the zoning tool and add one or two hauling zone types for now. And then get the game to special-handle cases where the AI wants to haul something to them.