Dressing the inventory doll from one look field
One list on each item now dresses the doll in the vat, renders its inventory picture and decides what can drop, with 30 items still waiting for models.
The member in the inventory’s vat now wears what’s equipped, and every item that has a model has a picture rendered from it. One field on the item does all of it. 27 of the 57 gear items have a model so far, so this is only partly done. The other 30 are out of the loot until their models are built.
Why was the doll bare?
I drew three notes in the game. The cables from each slot to the body covered the character, so I wanted them gone for now. The doll didn’t draw equipped gear at all. And the close view of Bone Shards was a flat drawn bow instead of a picture. I said that if the gear I can loot hasn’t gone through the model pipeline, the lootable items should be replaced with ones that have, and everything should have a thumbnail.
What is the look field?
An item’s definition now carries look, a list of strings. A weapon’s look is one entry with its model folder, theme and state. A worn item’s look is the names of the pieces it is made of:
{"id": "hog_splitter", "tier": 1, "two_handed": true, "look": ["weapons/greataxe/meat/decayed"]},
{"id": "steel_toe_boots", "look": ["boot", "boot_top"]}
A weapon’s state follows its tier: decayed at tier 1, declining at tier 2, peak at tier 3. A worn piece is a model per race, so a race with no file for a piece just doesn’t get it. One class, ItemLook, is the only code that reads the field. An item with no look has no model, and that’s how rings and the necklace stay undrawn.
How does the doll wear it?
DollDress dresses the body in the vat through MonsterDress, the same dresser that already clothes NPCs and monsters. Worn pieces are skinned to the body’s skeleton, each on its own slot and layer, and the skin under a piece is hidden. A hand weapon hangs from a BoneAttachment3D on the body’s weapon socket, sized and gripped by the weapon fit table the monsters use. The gun in the back slot goes at the hip, turned 90 degrees so the barrel points down. The body keeps a string of slot=item pairs and only redresses when it changes, so swapping a piece is cheap. Nothing is saved.
Steel came out black at first. The vat’s view had no sky, and a metal material with nothing to reflect is black, so I gave that view a plain sky in the liquid’s color that is reflected and never drawn.
How are the pictures made?
At build time, not in play. tools/item_thumbs draws each item in a hidden SubViewport at 512 pixels with 4x MSAA and brings it down to a 128 pixel PNG on a clear background. The camera is orthographic and framed on the model’s points with a 14 percent margin. The turn and the light are fixed, so every picture of a kind has the same view. A weapon is seen side on, rolled onto a diagonal. A worn item is put on a hidden human body by the game’s dresser, with everything that isn’t worn turned invisible, so each piece is the size it’s worn and in the right place. If a look is a far-apart pair, like gloves, the picture is framed on one of them. The light is a warm key, a green rim and a plain gray sky for steel to reflect. A gear slot gets the picture brought down to 64 pixels once and kept.

All 27 rendered pictures, each with its item and the models it’s made from.
How does it decide what drops?
The look decides. The three tier stocks had 30 entries of gear with no model, so I swapped each one for modeled gear of the nearest kind in the same tier, and the totals stayed at 42, 63 and 29. The unmodeled items keep their ids and numbers so old saves still load. Tests that took items from the tier chests broke, so they now load a copy of the stocks from before the swap, and I recorded the items baseline again.
tests/doll_gear has 180 checks and all pass. They put gear on 50 bodies in 480 put-ons, check that every gear id any content file can give has installed models and a picture that isn’t blank, and check that a look changes no number. The default members’ numbers are identical before and after.
What is left?
Ten kinds have no model: dagger, spear, staff, bow, crossbow, thrown blades, chain armor, helmet, shield and alien carapace. I said to keep the swap and hold off building them for now. A two-handed weapon is held in one fist until a two-hand stance exists. The rows in the inventory list still don’t show pictures. The cables are off by a static flag, VatDoll.cabled_doll, and the code is still there.