Food Processing now processes. Mostly. Tiles may now hold buildings. Added building fields. Added some clusterfark to allow arbitrary building types to message properties over a network. Added a field to define food satiation for a unit (currently ceil 1/2 maxAP). Added a placeholder to define if two Empires are allied for food distribution or neutral and friendly... once I actually define how that works. Added AP-per-food field to racedefs and units.
And most importantly, I implemented the algorithm that was laid out in the game design (see last post's link). There were a few things I adjusted on the fly. Units now will only eat until they're almost full in the second crack at the granaries, and units will eat any food left in tiles only after it's stored in allied granaries.
The only actual thing missing from the Game Design was "which empires are used for the 'if allied' check when chaining granaries?". Units need food, and to avoid the tedium of transporting it I have granaries. They provide an area of supply, and if they're out of food, they'll automatically pull from a nearby granary (in range). Allies can share that food network. But what happens if there are 3 empires with granaries in a chain. A->B->C where A and B are empty, thus pulling from C. A is allied with B, B is allied with C, A is not allied with C. What should happen?
I decided that it was kosher, and that alliances are link isolated. C only cares that their friend B is getting food, and A doesn't care where B got them their food. Easily changed later, but it was interesting to see how that sort of disconnect between design and implementation comes about.