/** * Furniture footprints inside walk-in buildings (2026-09-22, James: "npcs * are still colliding with objects, e.g. Victoria is walking over a * table"). * * The interiors are meshes built on the client, so the server knew nothing * about them: a shopkeeper's wander and a player's click-to-walk both ran * straight through a counter. These are the pieces big enough to walk into, * in the SAME local space the interior builders use: the door is at +z, the * back wall at -z, x across the room, one unit to the tile. The builder * that places the building turns them by its facing and stamps them into * `blocked` (map.ts's stampInterior, capitalCity.ts's stampFurniture). * * Rectangles are deliberately a touch SMALLER than the mesh where it is * close: over-stamping a doorway or a shopkeeper's own tile is worse than a * shoulder clipping a counter's end. */ export type FurnitureRect = { x0: number; x1: number; z0: number; z1: number; }; /** Calverton's stone houses, by variant (stoneHouse.ts rooms). */ export declare const STONE_HOUSE_FURNITURE: Record; /** * The Capital's walk-in buildings, by the style the builder places them * with (capitalInteriors.ts rooms). Same local space; `hx`/`hz` there are * half-extents, so these are measured off the middle. */ export declare const CAPITAL_ROOM_FURNITURE: Record; export declare function stoneHouseFurniture(variant: string): FurnitureRect[]; export declare function capitalRoomFurniture(style: string | undefined): FurnitureRect[]; /** * The furniture of a placed building, keyed by what it is rather than by * its whole style (2026-09-25). A manor is styled by its roof (`blue-s`), * so the style lookup never found the `manor` key and the long table was * walk-through (finding F2); a style with look tokens in the middle * (`--`) would have missed too. So: stonehouses by * their variant (the style's FIRST token), the Capital's own kinds by kind, * the Blender buildings by model id (the first token). * * Stamping: turn each rect by the building's facing (buildingStyleFacing) * with visitFurnitureTiles. The room is built about the centre of the * building's tile, so pass the tile's centre, `cx + 0.5, cz + 0.5`, to land * each rect on the tiles its mesh covers; passing the tile index shifts the * stamp half a tile toward -x/-z (what Calverton's map.ts does today). */ export declare function buildingRoomFurniture(kind: string, style: string | undefined): FurnitureRect[]; /** The facing letter a building style ends with (its door side), or null when it has none (the keep). */ export declare function buildingStyleFacing(style: string | undefined): 'n' | 's' | 'e' | 'w' | null; /** * Every world tile a rectangle covers once the building's facing is applied. * `facing` is the direction the door looks, as the builders record it. */ export declare function visitFurnitureTiles(cx: number, cz: number, facing: 'n' | 's' | 'e' | 'w', rect: FurnitureRect, visit: (x: number, z: number) => void): void; //# sourceMappingURL=interiorFurniture.d.ts.map