buildings/*.ron
Building templates: rooms, doors, windows, furniture. Read by the game’s rules: a change here changes how the game plays, and a world remembers the content it was made with.
File: assets/data/buildings/ (10 files)
About this file
Section titled “About this file”Small one-storey bungalow. One character per tile; “.” is outside. The bottom row is the front of the house and faces the street. Openings are (x, y, side): side N/E/S/W of tile (x, y).
Fields
Section titled “Fields”The file is one BuildingTemplate.
| Field | Type | What it is |
|---|---|---|
id |
String |
|
name |
String |
|
kind |
BuildingKind |
|
roof |
RoofStyle |
Roof style in template-local axes. |
rooms |
BTreeMap<char, RoomDef> |
Layout character → room. |
levels |
Vec<LevelDef> |
Level 0 first. All levels share the same footprint size. |
porch |
Option<PorchDef> |
A porch for the client to draw. Optional; render only. |
BuildingKind
Section titled “BuildingKind”| Value | What it means |
|---|---|
House |
|
Office |
|
Shop |
|
Civic |
A landmark: town hall, courthouse, church, school, library, police station. The town generator puts these (and shops or offices too big for the main street’s lots) on the civic district’s landmark lots, about 42–52 m wide and 48–54 m deep. |
RoofStyle
Section titled “RoofStyle”| Value | What it means |
|---|---|
GableX |
Ridge runs along the x axis. |
GableY |
Ridge runs along the y axis. |
Flat |
RoomDef
Section titled “RoomDef”| Field | Type | What it is |
|---|---|---|
name |
String |
|
room_type |
String |
Drives loot tables and what furniture makes sense (bedroom, kitchen, bathroom, …). |
floor |
Floor |
| Value | What it means |
|---|---|
Grass |
|
Dirt |
|
Asphalt |
|
RoadLine |
|
Sidewalk |
|
Path |
|
Wood |
|
Carpet |
|
TileFloor |
|
Concrete |
LevelDef
Section titled “LevelDef”One level of an icon in status.ron.
| Field | Type | What it is |
|---|---|---|
at |
f32 |
The value at which this level starts. |
label |
String |
|
tip |
String |
|
severity |
u8 |
1 to 4; 0 (left out): its place in the list. |
PorchDef
Section titled “PorchDef”A porch: square posts, a pale railing with a gap at the way in, steps. Render only: posts and railing never block walking (nothing on the map changes), so a template that wants a railing you can’t walk through needs walls or fences of its own.
| Value | What it means |
|---|---|
Room(char) |
A room of the layout that is the porch ('P'), open to the outside through arches and under the house’s roof, like the cottage’s: posts along its open sides and a railing across its arches but the way in. |
Front{ from: i32, to: i32, depth: i32 } |
A porch built onto the front wall, outside the footprint, on tiles from..=to of the bottom row, standing depth tiles out (1 or 2, so it stays inside a house lot’s front yard): a raised deck with steps, posts, a railing and a roof of its own. |
The files
Section titled “The files”buildings/bungalow.ron
// Small one-storey bungalow. One character per tile; "." is outside.// The bottom row is the front of the house and faces the street.// Openings are (x, y, side): side N/E/S/W of tile (x, y).BuildingTemplate( id: "house_bungalow", name: "Small bungalow", kind: House, roof: GableX, // A porch across the front, round the front door (drawn only: see `PorchDef`). porch: Some(Front(from: 0, to: 4, depth: 2)), rooms: { 'B': (name: "Bedroom", room_type: "bedroom", floor: Carpet), 'b': (name: "Bathroom", room_type: "bathroom", floor: TileFloor), 'H': (name: "Hall", room_type: "hall", floor: Wood), 'K': (name: "Kitchen", room_type: "kitchen", floor: TileFloor), 'L': (name: "Living room", room_type: "living", floor: Wood), }, levels: [ ( layout: [ "BBBBbbbKKK", "BBBBbbbKKK", "BBBBbbbKKK", "BBBBHHHKKK", "LLLLHHHKKK", "LLLLLLLKKK", "LLLLLLLKKK", "LLLLLLLKKK", ], doors: [ (2, 7, S), // front door (8, 0, N), // back door (3, 3, E), // bedroom (5, 2, S), // bathroom ], arches: [(5, 4, S), (6, 6, E)], windows: [ (0, 1, W), (2, 0, N), (5, 0, N), (9, 2, E), (9, 5, E), (8, 7, S), (0, 6, W), (4, 7, S), ], furniture: [ (kind: "bed", at: (1, 0), size: (2, 2)), (kind: "wardrobe", at: (3, 0)), (kind: "bathtub", at: (4, 0), size: (1, 2), facing: E), (kind: "toilet", at: (6, 0)), (kind: "sink", at: (6, 2), facing: W), (kind: "fridge", at: (7, 0)), (kind: "counter", at: (9, 0), size: (1, 2), facing: W), (kind: "stove", at: (9, 3), facing: W), (kind: "table", at: (8, 4), size: (1, 2)), (kind: "sofa", at: (0, 5), size: (1, 2), facing: E), (kind: "coffee_table", at: (1, 5)), (kind: "tv", at: (3, 4), facing: W), ], ), ],)buildings/cottage_porch.ron
// Small one-storey cottage with an open front porch under the main roof. One character per tile;// "." is outside. The bottom row is the front of the house and faces the street.// Openings are (x, y, side): side N/E/S/W of tile (x, y). The porch is open on its front and// side (arches); the front door leads from it into the living room.BuildingTemplate( id: "house_cottage_porch", name: "Cottage with porch", kind: House, roof: GableX, // The porch room: posts along it and a railing across its arches (drawn only: see `PorchDef`). porch: Some(Room('P')), rooms: { 'K': (name: "Kitchen", room_type: "kitchen", floor: TileFloor), 'L': (name: "Living room", room_type: "living", floor: Wood), 'H': (name: "Hall", room_type: "hall", floor: Wood), 'B': (name: "Bedroom", room_type: "bedroom", floor: Carpet), 'b': (name: "Bathroom", room_type: "bathroom", floor: TileFloor), 'C': (name: "Small bedroom", room_type: "bedroom", floor: Carpet), 'P': (name: "Porch", room_type: "porch", floor: Wood), }, levels: [ ( layout: [ "KKKKKBBBB", "KKKKKBBBB", "KKKKKBBBB", "KKKKKHbbb", "LLLLLHbbb", "LLLLLHCCC", "LLLLLHCCC", "LLLLLHCCC", "PPPPPPCCC", "PPPPPPCCC", ], doors: [ (2, 7, S), // front door, off the porch (1, 0, N), // back door (5, 3, N), // bedroom (5, 4, E), // bathroom (5, 6, E), // small bedroom ], arches: [ (2, 3, S), (4, 6, E), // The open porch. (0, 9, S), (1, 9, S), (2, 9, S), (3, 9, S), (4, 9, S), (5, 9, S), (0, 8, W), (0, 9, W), ], windows: [ (3, 0, N), (0, 2, W), (0, 4, W), (0, 7, S), (4, 7, S), (5, 7, S), (5, 0, N), (8, 1, E), (8, 3, E), (8, 8, E), (7, 9, S), ], furniture: [ (kind: "fridge", at: (0, 0)), (kind: "sink", at: (0, 1), facing: E), (kind: "counter", at: (2, 0), size: (2, 1)), (kind: "stove", at: (4, 0)), (kind: "table", at: (3, 2), size: (2, 1)), (kind: "sofa", at: (0, 5), size: (1, 2), facing: E), (kind: "coffee_table", at: (2, 5)), (kind: "tv", at: (4, 4), facing: W), (kind: "sofa", at: (4, 8), size: (2, 1)), (kind: "bed", at: (6, 0), size: (2, 2)), (kind: "wardrobe", at: (8, 0)), (kind: "sink", at: (6, 3)), (kind: "bathtub", at: (7, 3), size: (2, 1)), (kind: "toilet", at: (8, 4), facing: W), (kind: "bed", at: (7, 5), size: (2, 2), facing: W), (kind: "desk", at: (6, 9), facing: N), (kind: "wardrobe", at: (8, 9), facing: N), ], ), ],)buildings/family_two_storey.ron
// Two-storey family house. One character per tile; "." is outside.// The bottom row is the front of the house and faces the street.// Openings are (x, y, side): side N/E/S/W of tile (x, y).BuildingTemplate( id: "house_family_two_storey", name: "Two-storey family house", kind: House, roof: GableX, // A porch along the front under the upstairs windows (drawn only: see `PorchDef`). porch: Some(Front(from: 1, to: 7, depth: 2)), rooms: { 'K': (name: "Kitchen", room_type: "kitchen", floor: TileFloor), 'D': (name: "Dining room", room_type: "dining", floor: Wood), 'H': (name: "Hall", room_type: "hall", floor: Wood), 'L': (name: "Living room", room_type: "living", floor: Carpet), 'b': (name: "Bathroom", room_type: "bathroom", floor: TileFloor), 'u': (name: "Laundry", room_type: "laundry", floor: Concrete), 'B': (name: "Bedroom", room_type: "bedroom", floor: Carpet), 'C': (name: "Kids' bedroom", room_type: "bedroom", floor: Carpet), 'M': (name: "Main bedroom", room_type: "bedroom", floor: Carpet), }, levels: [ ( layout: [ "KKKKKDDDDD", "KKKKKDDDDD", "KKKKKDDDDD", "KKKKKDDDDD", "HHHHHHHHHH", "LLLLLLHHbb", "LLLLLLHHbb", "LLLLLLHHuu", "LLLLLLHHuu", ], doors: [ (6, 8, S), // front door (2, 0, N), // back door (8, 5, N), // bathroom (8, 8, W), // laundry ], arches: [(2, 3, S), (7, 3, S), (4, 1, E), (3, 5, N), (5, 6, E)], windows: [ (1, 0, N), (0, 2, W), (7, 0, N), (9, 2, E), (0, 6, W), (2, 8, S), (4, 8, S), (9, 5, E), (9, 7, E), (0, 4, W), (9, 4, E), ], furniture: [ (kind: "stairs", at: (7, 5), size: (1, 3), facing: N), (kind: "fridge", at: (0, 0)), (kind: "stove", at: (1, 0)), (kind: "counter", at: (3, 0), size: (2, 1)), (kind: "table", at: (6, 1), size: (2, 2)), (kind: "sofa", at: (0, 6), size: (1, 2), facing: E), (kind: "coffee_table", at: (2, 6)), (kind: "tv", at: (5, 8), facing: W), (kind: "sink", at: (9, 5), facing: W), (kind: "toilet", at: (9, 6), facing: W), (kind: "dryer", at: (9, 7), facing: W), (kind: "washer", at: (9, 8), facing: W), (kind: "shelf", at: (8, 7), facing: S), ], ), ( layout: [ "BBBBBCCCCC", "BBBBBCCCCC", "BBBBBCCCCC", "BBBBBCCCCC", "HHHHHHHHHH", "MMMMMMHHbb", "MMMMMMHHbb", "MMMMMMHHbb", "MMMMMMHHbb", ], doors: [(2, 3, S), (7, 3, S), (3, 5, N), (8, 5, N)], windows: [ (1, 0, N), (0, 2, W), (7, 0, N), (9, 2, E), (0, 6, W), (2, 8, S), (4, 8, S), (9, 7, E), (0, 4, W), ], furniture: [ (kind: "bed", at: (1, 0), size: (2, 2)), (kind: "wardrobe", at: (4, 0)), (kind: "bed", at: (6, 0), size: (2, 2)), (kind: "desk", at: (9, 1), facing: W), (kind: "bed", at: (0, 7), size: (2, 2), facing: E), (kind: "wardrobe", at: (5, 8), facing: N), (kind: "sink", at: (9, 5), facing: W), (kind: "toilet", at: (9, 6), facing: W), (kind: "bathtub", at: (8, 8), size: (2, 1), facing: N), ], ), ],)buildings/general_store.ron
// General store and hardware: groceries on one side (drinks coolers along the wall), tools and// supplies on the other, open to each other, each with its own front door and till; behind them// a stockroom with a loading door, a restroom and the office. One character per tile; "." is// outside. The bottom row is the front of the building and faces the street.// Openings are (x, y, side): side N/E/S/W of tile (x, y).BuildingTemplate( id: "shop_general_hardware", name: "General store and hardware", kind: Shop, // Flat, behind a parapet, like every shop and office on the main street. roof: Flat, rooms: { 'W': (name: "Stockroom", room_type: "hardware", floor: Concrete), 'b': (name: "Restroom", room_type: "bathroom", floor: TileFloor), 'O': (name: "Office", room_type: "office", floor: Wood), 'H': (name: "Back hall", room_type: "hall", floor: Concrete), 'G': (name: "General store", room_type: "shop", floor: TileFloor), 'R': (name: "Hardware", room_type: "hardware", floor: Concrete), }, levels: [ ( layout: [ "WWWWWWWWWbbOOO", "WWWWWWWWWbbOOO", "WWWWWWWWWbbOOO", "WWWWWWWWWHHOOO", "GGGGGGGRRRRRRR", "GGGGGGGRRRRRRR", "GGGGGGGRRRRRRR", "GGGGGGGRRRRRRR", "GGGGGGGRRRRRRR", "GGGGGGGRRRRRRR", "GGGGGGGRRRRRRR", "GGGGGGGRRRRRRR", "GGGGGGGRRRRRRR", ], doors: [ (3, 12, S), // general store front door (10, 12, S), // hardware front door (4, 0, N), // loading door, from the stockroom (2, 3, S), (3, 3, S), // stockroom double doors to the store (8, 3, E), // stockroom to the back hall (9, 3, N), // restroom (10, 3, E), // office (10, 3, S), // staff door to the hardware side ], arches: [(6, 5, E), (6, 6, E), (6, 10, E), (6, 11, E)], windows: [ (1, 0, N), (5, 0, N), (12, 0, N), (13, 1, E), (0, 12, S), (1, 12, S), (4, 12, S), (5, 12, S), (8, 12, S), (9, 12, S), (11, 12, S), (12, 12, S), (0, 11, W), (13, 11, E), ], furniture: [ (kind: "shelf", at: (0, 0), size: (1, 2), facing: E), (kind: "shelf", at: (0, 2), size: (1, 2), facing: E), (kind: "shelf", at: (2, 0), size: (2, 1)), (kind: "workbench", at: (6, 0), size: (2, 1)), (kind: "shelf", at: (8, 0)), (kind: "sink", at: (9, 0)), (kind: "toilet", at: (10, 0)), (kind: "shelf", at: (11, 0)), (kind: "desk", at: (12, 1)), // General store: drinks coolers, shelves, aisles and the till. (kind: "fridge", at: (0, 4), facing: E), (kind: "fridge", at: (0, 5), facing: E), (kind: "fridge", at: (0, 6), facing: E), (kind: "shelf", at: (0, 8), size: (1, 2), facing: E), (kind: "shelf", at: (2, 6), size: (1, 2), facing: W), (kind: "shelf", at: (3, 6), size: (1, 2), facing: E), (kind: "shelf", at: (2, 9), size: (1, 2), facing: W), (kind: "shelf", at: (3, 9), size: (1, 2), facing: E), (kind: "desk", at: (5, 11), facing: W), // Hardware: wall racks, an aisle and the till. (kind: "shelf", at: (11, 4), size: (2, 1)), (kind: "shelf", at: (13, 5), size: (1, 2), facing: W), (kind: "shelf", at: (13, 8), size: (1, 2), facing: W), (kind: "shelf", at: (9, 6), size: (1, 2), facing: W), (kind: "shelf", at: (10, 6), size: (1, 2), facing: E), (kind: "workbench", at: (9, 9), size: (2, 1)), (kind: "desk", at: (8, 11), facing: E), ], ), ],)buildings/l_shaped_patio.ron
// One-storey L-shaped house: a bedroom wing down one side, the kitchen and living room down the// other, round a covered back patio (open on two sides, under the main roof), with a laundry off// the kitchen. One character per tile; "." is outside. The bottom row is the front of the house// and faces the street. Openings are (x, y, side): side N/E/S/W of tile (x, y).BuildingTemplate( id: "house_l_shaped_patio", name: "L-shaped house with patio", kind: House, roof: GableX, // The patio: posts along it and a railing across its arches (drawn only: see `PorchDef`). porch: Some(Room('P')), rooms: { 'M': (name: "Main bedroom", room_type: "bedroom", floor: Carpet), 'b': (name: "Bathroom", room_type: "bathroom", floor: TileFloor), 'u': (name: "Laundry", room_type: "laundry", floor: Concrete), 'P': (name: "Patio", room_type: "porch", floor: Concrete), 'H': (name: "Hall", room_type: "hall", floor: Wood), 'K': (name: "Kitchen", room_type: "kitchen", floor: TileFloor), 'B': (name: "Bedroom", room_type: "bedroom", floor: Carpet), 'C': (name: "Kids' bedroom", room_type: "bedroom", floor: Carpet), 'L': (name: "Living room", room_type: "living", floor: Carpet), }, levels: [ ( layout: [ "MMMMMbbuuPPP", "MMMMMbbuuPPP", "MMMMMbbuuPPP", "MMMMMbbuuPPP", "HHHHHHHKKKKK", "BBBBBHHKKKKK", "BBBBBHHKKKKK", "BBBBBHHKKKKK", "BBBBBHHLLLLL", "CCCCCHHLLLLL", "CCCCCHHLLLLL", "CCCCCHHLLLLL", ], doors: [ (5, 11, S), // front door (2, 4, N), // main bedroom (5, 4, N), // bathroom (7, 4, N), // kitchen to laundry (10, 4, N), // kitchen to patio (5, 6, W), // bedroom (5, 10, W), // kids' bedroom ], arches: [ (6, 5, E), (6, 9, E), (9, 7, S), // The patio, open to the back garden. (9, 0, N), (10, 0, N), (11, 0, N), (11, 0, E), (11, 1, E), (11, 2, E), (11, 3, E), ], windows: [ (0, 1, W), (3, 0, N), (6, 0, N), (7, 0, N), (0, 4, W), (0, 7, W), (1, 11, S), (3, 11, S), (0, 10, W), (11, 7, E), (8, 11, S), (10, 11, S), (11, 8, E), ], furniture: [ (kind: "bed", at: (1, 0), size: (2, 2)), (kind: "wardrobe", at: (4, 0)), (kind: "desk", at: (0, 3), facing: E), (kind: "bathtub", at: (5, 0), size: (1, 2), facing: E), (kind: "toilet", at: (6, 0)), (kind: "sink", at: (6, 3), facing: W), (kind: "washer", at: (7, 0)), (kind: "dryer", at: (8, 0)), (kind: "shelf", at: (8, 2), facing: W), (kind: "table", at: (9, 1), size: (2, 1)), (kind: "counter", at: (8, 4), size: (2, 1)), (kind: "fridge", at: (11, 4), facing: W), (kind: "sink", at: (11, 5), facing: W), (kind: "stove", at: (11, 6), facing: W), (kind: "table", at: (8, 6), size: (2, 1)), (kind: "bed", at: (0, 5), size: (2, 2), facing: E), (kind: "wardrobe", at: (3, 5)), (kind: "desk", at: (0, 8), facing: E), (kind: "bed", at: (0, 9), size: (2, 2), facing: E), (kind: "wardrobe", at: (4, 9), facing: W), (kind: "desk", at: (2, 11), facing: N), (kind: "wardrobe", at: (6, 11), facing: N), (kind: "sofa", at: (11, 9), size: (1, 2), facing: W), (kind: "coffee_table", at: (9, 10)), (kind: "tv", at: (7, 10), facing: E), ], ), ],)buildings/office_block.ron
// Two-storey office block: a lobby with the stairs at the front, a corridor across the middle,// offices round it, restrooms on both floors, and upstairs a meeting room, a break room, a copy// room and a store room. One character per tile; "." is outside. The bottom row is the front of// the building and faces the street. Openings are (x, y, side): side N/E/S/W of tile (x, y).BuildingTemplate( id: "office_block", name: "Two-storey office block", kind: Office, roof: Flat, rooms: { 'A': (name: "Office", room_type: "office", floor: Carpet), 'B': (name: "Office", room_type: "office", floor: Carpet), 'C': (name: "Office", room_type: "office", floor: Carpet), 'D': (name: "Office", room_type: "office", floor: Carpet), 'E': (name: "Open office", room_type: "office", floor: Carpet), 'O': (name: "Open office", room_type: "office", floor: Carpet), 'N': (name: "Meeting room", room_type: "office", floor: Carpet), 'b': (name: "Restrooms", room_type: "bathroom", floor: TileFloor), 'H': (name: "Corridor", room_type: "hall", floor: TileFloor), 'L': (name: "Lobby", room_type: "hall", floor: TileFloor), 'K': (name: "Break room", room_type: "kitchen", floor: TileFloor), 'S': (name: "Store room", room_type: "office", floor: Concrete), 'c': (name: "Copy room", room_type: "office", floor: Carpet), }, levels: [ ( layout: [ "AAAAAbbbBBBBBB", "AAAAAbbbBBBBBB", "AAAAAbbbBBBBBB", "AAAAAbbbBBBBBB", "HHHHHHHHHHHHHH", "CCCCCLLLLDDDDD", "CCCCCLLLLDDDDD", "CCCCCLLLLDDDDD", "CCCCCLLLLDDDDD", "CCCCCLLLLDDDDD", "CCCCCLLLLDDDDD", "CCCCCLLLLDDDDD", ], doors: [ (6, 11, S), (7, 11, S), // front doors (13, 4, E), // side door at the end of the corridor (2, 4, N), (6, 4, N), (10, 4, N), (2, 5, N), (11, 5, N), ], arches: [(6, 5, N), (7, 5, N)], windows: [ (2, 0, N), (0, 2, W), (6, 0, N), (9, 0, N), (11, 0, N), (13, 2, E), (0, 4, W), (0, 7, W), (0, 9, W), (1, 11, S), (3, 11, S), (5, 11, S), (8, 11, S), (13, 7, E), (13, 9, E), (10, 11, S), (12, 11, S), ], furniture: [ (kind: "shelf", at: (0, 0)), (kind: "shelf", at: (4, 0)), (kind: "desk", at: (1, 1)), (kind: "desk", at: (3, 1)), (kind: "toilet", at: (5, 0)), (kind: "toilet", at: (7, 0)), (kind: "sink", at: (5, 3), facing: E), (kind: "sink", at: (7, 3), facing: W), (kind: "desk", at: (9, 1)), (kind: "desk", at: (11, 1)), (kind: "shelf", at: (13, 0), facing: W), (kind: "shelf", at: (13, 1), facing: W), (kind: "shelf", at: (0, 5), facing: E), (kind: "desk", at: (1, 7)), (kind: "desk", at: (3, 7)), (kind: "desk", at: (1, 9)), (kind: "desk", at: (3, 9)), (kind: "stairs", at: (8, 6), size: (1, 3), facing: N), (kind: "desk", at: (5, 7), facing: E), (kind: "sofa", at: (8, 10), size: (1, 2), facing: W), (kind: "coffee_table", at: (7, 10)), (kind: "shelf", at: (13, 5), facing: W), (kind: "desk", at: (10, 7)), (kind: "desk", at: (12, 7)), (kind: "desk", at: (10, 9)), (kind: "desk", at: (12, 9)), ], ), ( layout: [ "NNNNNbbbOOOOOO", "NNNNNbbbOOOOOO", "NNNNNbbbOOOOOO", "NNNNNbbbOOOOOO", "HHHHHHHHHHHHHH", "KKKKKHHHHEEEEE", "KKKKKHHHHEEEEE", "KKKKKHHHHEEEEE", "KKKKKHHHHEEEEE", "SSSSSccccEEEEE", "SSSSSccccEEEEE", "SSSSSccccEEEEE", ], doors: [(2, 4, N), (6, 4, N), (10, 4, N), (5, 6, W), (6, 9, N), (5, 10, W), (11, 5, N)], windows: [ (1, 0, N), (3, 0, N), (0, 2, W), (6, 0, N), (9, 0, N), (12, 0, N), (13, 2, E), (0, 4, W), (13, 4, E), (0, 6, W), (0, 8, W), (1, 11, S), (3, 11, S), (6, 11, S), (7, 11, S), (13, 7, E), (13, 9, E), (10, 11, S), (12, 11, S), ], furniture: [ (kind: "table", at: (1, 1), size: (3, 2)), (kind: "toilet", at: (5, 0)), (kind: "toilet", at: (7, 0)), (kind: "sink", at: (5, 3), facing: E), (kind: "sink", at: (7, 3), facing: W), (kind: "desk", at: (9, 1)), (kind: "desk", at: (11, 1)), (kind: "desk", at: (13, 1), facing: W), (kind: "shelf", at: (8, 3), facing: E), (kind: "counter", at: (0, 5), size: (2, 1)), (kind: "fridge", at: (2, 5)), (kind: "sink", at: (3, 5)), (kind: "table", at: (1, 7), size: (2, 1)), (kind: "shelf", at: (1, 9)), (kind: "shelf", at: (2, 9)), (kind: "shelf", at: (3, 9)), (kind: "shelf", at: (0, 10), facing: E), (kind: "shelf", at: (1, 11), facing: N), (kind: "shelf", at: (2, 11), facing: N), (kind: "shelf", at: (3, 11), facing: N), (kind: "shelf", at: (8, 9), facing: W), (kind: "desk", at: (7, 11), facing: N), (kind: "shelf", at: (8, 11), facing: W), (kind: "shelf", at: (13, 5), facing: W), (kind: "desk", at: (10, 7)), (kind: "desk", at: (12, 7)), (kind: "desk", at: (10, 9)), (kind: "desk", at: (12, 9)), ], ), ],)buildings/office_small.ron
// Small one-storey office: a reception at the front, an open office of desks behind it, the// manager's office, a store room, restrooms and a break room. One character per tile; "." is// outside. The bottom row is the front of the building and faces the street.// Openings are (x, y, side): side N/E/S/W of tile (x, y).BuildingTemplate( id: "office_small", name: "Small office", kind: Office, roof: Flat, rooms: { 'M': (name: "Manager's office", room_type: "office", floor: Carpet), 'O': (name: "Office", room_type: "office", floor: Carpet), 'c': (name: "Store room", room_type: "office", floor: Concrete), 'b': (name: "Restroom", room_type: "bathroom", floor: TileFloor), 'R': (name: "Reception", room_type: "office", floor: Carpet), 'K': (name: "Break room", room_type: "kitchen", floor: TileFloor), }, levels: [ ( layout: [ "MMMMOOOOOOOOOO", "MMMMOOOOOOOOOO", "MMMMOOOOOOOOOO", "MMMMOOOOOOOOOO", "MMMMOOOOOOOOOO", "ccccOOOOOOOOOO", "ccccRRRRRRKKKK", "bbbbRRRRRRKKKK", "bbbbRRRRRRKKKK", "bbbbRRRRRRKKKK", ], doors: [ (6, 9, S), (7, 9, S), // front doors (12, 0, N), // fire exit (13, 8, E), // side door from the break room (3, 2, E), // manager's office (3, 5, E), // store room (4, 8, W), // restroom (11, 5, S), // office to break room (9, 7, E), // reception to break room ], arches: [(7, 5, S), (8, 5, S)], windows: [ (1, 0, N), (0, 1, W), (0, 3, W), (5, 0, N), (7, 0, N), (9, 0, N), (10, 0, N), (13, 3, E), (0, 8, W), (4, 9, S), (5, 9, S), (8, 9, S), (9, 9, S), (11, 9, S), (12, 9, S), ], furniture: [ (kind: "shelf", at: (0, 0)), (kind: "shelf", at: (2, 0)), (kind: "desk", at: (1, 2), facing: E), (kind: "sofa", at: (0, 4), size: (2, 1), facing: N), (kind: "desk", at: (5, 1)), (kind: "desk", at: (7, 1)), (kind: "desk", at: (9, 1)), (kind: "desk", at: (11, 1)), (kind: "desk", at: (5, 3)), (kind: "desk", at: (7, 3)), (kind: "desk", at: (9, 3)), (kind: "desk", at: (11, 3)), (kind: "shelf", at: (13, 1), facing: W), (kind: "shelf", at: (13, 2), facing: W), (kind: "shelf", at: (0, 5), facing: E), (kind: "shelf", at: (0, 6), facing: E), (kind: "shelf", at: (1, 6), facing: N), (kind: "shelf", at: (2, 6), facing: N), (kind: "toilet", at: (0, 7), facing: E), (kind: "toilet", at: (0, 9), facing: E), (kind: "sink", at: (1, 7)), (kind: "sink", at: (2, 7)), (kind: "desk", at: (5, 7)), (kind: "desk", at: (6, 7)), (kind: "sofa", at: (9, 8), size: (1, 2), facing: W), (kind: "coffee_table", at: (8, 8)), (kind: "fridge", at: (10, 6)), (kind: "counter", at: (12, 6), size: (2, 1)), (kind: "sink", at: (13, 7), facing: W), (kind: "table", at: (11, 8), size: (2, 1)), ], ), ],)buildings/pharmacy.ron
// Corner pharmacy: a sales floor of shelves with the dispensary counter at the back, doors on// the front and the side (for a corner lot), and behind it a stockroom, a restroom and the// pharmacist's office. One character per tile; "." is outside. The bottom row is the front of// the building and faces the street. Openings are (x, y, side): side N/E/S/W of tile (x, y).BuildingTemplate( id: "shop_pharmacy", name: "Corner pharmacy", kind: Shop, roof: Flat, rooms: { 'T': (name: "Stockroom", room_type: "pharmacy", floor: Concrete), 'b': (name: "Restroom", room_type: "bathroom", floor: TileFloor), 'O': (name: "Pharmacist's office", room_type: "office", floor: Carpet), 'H': (name: "Back hall", room_type: "hall", floor: Concrete), 'P': (name: "Pharmacy", room_type: "pharmacy", floor: TileFloor), }, levels: [ ( layout: [ "TTTTTTbbOOOO", "TTTTTTbbOOOO", "TTTTTTbbOOOO", "TTTTTTHHOOOO", "PPPPPPPPPPPP", "PPPPPPPPPPPP", "PPPPPPPPPPPP", "PPPPPPPPPPPP", "PPPPPPPPPPPP", "PPPPPPPPPPPP", "PPPPPPPPPPPP", "PPPPPPPPPPPP", ], doors: [ (9, 11, S), // front door (11, 10, E), // side door (2, 0, N), // back door, from the stockroom (6, 3, W), // stockroom (6, 3, N), // restroom (7, 3, E), // office (7, 3, S), // staff door to the shop floor ], windows: [ (9, 0, N), (11, 1, E), (6, 0, N), (1, 11, S), (2, 11, S), (3, 11, S), (5, 11, S), (6, 11, S), (7, 11, S), (11, 8, E), (0, 8, W), ], furniture: [ (kind: "shelf", at: (0, 0), size: (1, 2), facing: E), (kind: "shelf", at: (0, 2), size: (1, 2), facing: E), (kind: "shelf", at: (4, 0), size: (2, 1)), (kind: "sink", at: (6, 0)), (kind: "toilet", at: (7, 0)), (kind: "shelf", at: (8, 0)), (kind: "desk", at: (9, 1)), // Prescriptions behind the counter, and the counter itself. (kind: "shelf", at: (0, 4), size: (2, 1)), (kind: "shelf", at: (2, 4), size: (2, 1)), (kind: "shelf", at: (4, 4), size: (2, 1)), (kind: "desk", at: (1, 6), size: (3, 1)), // Aisles. (kind: "shelf", at: (7, 6), size: (1, 2), facing: W), (kind: "shelf", at: (8, 6), size: (1, 2), facing: E), (kind: "shelf", at: (3, 8), size: (2, 1), facing: N), (kind: "shelf", at: (3, 9), size: (2, 1)), (kind: "shelf", at: (11, 4), size: (1, 2), facing: W), (kind: "shelf", at: (11, 6), size: (1, 2), facing: W), ], ), ],)buildings/ranch_garage.ron
// One-storey ranch house with an attached single garage, its door rolled up. One character per// tile; "." is outside. The bottom row is the front of the house and faces the street.// Openings are (x, y, side): side N/E/S/W of tile (x, y).BuildingTemplate( id: "house_ranch_garage", name: "Ranch house with garage", kind: House, roof: GableX, // A small porch at the front door, beside the garage (drawn only: see `PorchDef`). porch: Some(Front(from: 5, to: 8, depth: 2)), rooms: { 'u': (name: "Laundry", room_type: "laundry", floor: Concrete), 'G': (name: "Garage", room_type: "garage", floor: Concrete), 'K': (name: "Kitchen", room_type: "kitchen", floor: TileFloor), 'L': (name: "Living room", room_type: "living", floor: Carpet), 'H': (name: "Hall", room_type: "hall", floor: Wood), 'M': (name: "Main bedroom", room_type: "bedroom", floor: Carpet), 'b': (name: "Bathroom", room_type: "bathroom", floor: TileFloor), 'B': (name: "Bedroom", room_type: "bedroom", floor: Carpet), }, levels: [ ( layout: [ "uuuuKKKKKMMMM", "uuuuKKKKKMMMM", "uuuuKKKKKMMMM", "GGGGKKKKKMMMM", "GGGGLLLLLHbbb", "GGGGLLLLLHbbb", "GGGGLLLLLHBBB", "GGGGLLLLLHBBB", "GGGGLLLLLHBBB", "GGGGLLLLLHBBB", ], doors: [ (5, 9, S), // front door (1, 0, N), // back door, from the laundry (2, 3, N), // garage to laundry (3, 1, E), // laundry to kitchen (9, 4, N), // main bedroom (9, 5, E), // bathroom (9, 7, E), // bedroom ], // The garage door, rolled up; the kitchen opens onto the living room. arches: [(0, 9, S), (1, 9, S), (2, 9, S), (6, 3, S), (7, 3, S), (8, 6, E)], windows: [ (0, 1, W), (6, 0, N), (7, 0, N), (9, 0, N), (12, 2, E), (12, 4, E), (12, 8, E), (11, 9, S), (7, 9, S), (8, 9, S), (0, 5, W), ], furniture: [ (kind: "washer", at: (2, 0)), (kind: "dryer", at: (3, 0)), (kind: "shelf", at: (0, 2), facing: E), (kind: "workbench", at: (0, 3), size: (2, 1)), (kind: "shelf", at: (3, 3)), (kind: "shelf", at: (0, 6), facing: E), (kind: "shelf", at: (0, 7), facing: E), (kind: "fridge", at: (4, 0)), (kind: "stove", at: (5, 0)), (kind: "counter", at: (6, 0), size: (2, 1)), (kind: "sink", at: (8, 0)), (kind: "counter", at: (8, 1), size: (1, 2), facing: W), (kind: "table", at: (5, 2), size: (2, 1)), (kind: "shelf", at: (4, 4), facing: E), (kind: "sofa", at: (4, 6), size: (1, 2), facing: E), (kind: "coffee_table", at: (6, 6)), (kind: "tv", at: (8, 7), facing: W), (kind: "wardrobe", at: (9, 9), facing: N), (kind: "bed", at: (10, 0), size: (2, 2)), (kind: "wardrobe", at: (12, 0)), (kind: "sink", at: (10, 4)), (kind: "bathtub", at: (11, 4), size: (2, 1)), (kind: "toilet", at: (12, 5), facing: W), (kind: "bed", at: (11, 6), size: (2, 2), facing: W), (kind: "wardrobe", at: (10, 9), facing: N), (kind: "desk", at: (12, 9), facing: N), ], ), ],)buildings/townhouse.ron
// Narrow two-storey townhouse, gable end to the street: a side hall with the stairs, living room,// dining room and kitchen one behind the other. One character per tile; "." is outside.// The bottom row is the front of the house and faces the street.// Openings are (x, y, side): side N/E/S/W of tile (x, y).BuildingTemplate( id: "house_townhouse", name: "Narrow townhouse", kind: House, roof: GableY, // A narrow porch at the front door (drawn only: see `PorchDef`). porch: Some(Front(from: 3, to: 6, depth: 2)), rooms: { 'K': (name: "Kitchen", room_type: "kitchen", floor: TileFloor), 'D': (name: "Dining room", room_type: "dining", floor: Wood), 'L': (name: "Living room", room_type: "living", floor: Wood), 'H': (name: "Hall", room_type: "hall", floor: Wood), 'b': (name: "Bathroom", room_type: "bathroom", floor: TileFloor), 'C': (name: "Back bedroom", room_type: "bedroom", floor: Carpet), 'B': (name: "Small bedroom", room_type: "bedroom", floor: Carpet), 'M': (name: "Front bedroom", room_type: "bedroom", floor: Carpet), }, levels: [ ( layout: [ "KKKKKKK", "KKKKKKK", "KKKKKKK", "KKKKKKK", "DDDDDbb", "DDDDDbb", "DDDDDHH", "DDDDDHH", "LLLLLHH", "LLLLLHH", "LLLLLHH", "LLLLLHH", "LLLLLHH", "LLLLLHH", ], doors: [ (5, 13, S), // front door (5, 0, N), // back door (5, 6, N), // downstairs toilet ], arches: [(2, 3, S), (1, 7, S), (2, 7, S), (5, 7, W), (4, 12, E)], windows: [ (1, 0, N), (0, 2, W), (6, 2, E), (0, 5, W), (0, 6, W), (6, 4, E), (0, 9, W), (0, 12, W), (1, 13, S), (3, 13, S), (6, 13, S), ], furniture: [ (kind: "fridge", at: (0, 0)), (kind: "counter", at: (1, 0), size: (2, 1)), (kind: "stove", at: (3, 0)), (kind: "sink", at: (4, 0)), (kind: "counter", at: (6, 0), size: (1, 2), facing: W), (kind: "table", at: (2, 2), size: (2, 1)), (kind: "shelf", at: (4, 4), facing: W), (kind: "table", at: (1, 5), size: (2, 1)), (kind: "sink", at: (5, 4)), (kind: "toilet", at: (6, 4)), (kind: "stairs", at: (6, 8), size: (1, 3), facing: N), (kind: "wardrobe", at: (6, 12), facing: W), (kind: "sofa", at: (0, 10), size: (1, 2), facing: E), (kind: "coffee_table", at: (2, 10)), (kind: "tv", at: (4, 10), facing: W), ], ), ( layout: [ "CCCCCCC", "CCCCCCC", "CCCCCCC", "CCCCCCC", "bbbbHHH", "bbbbHHH", "BBBBBHH", "BBBBBHH", "BBBBBHH", "MMMMMHH", "MMMMMHH", "MMMMMHH", "MMMMMHH", "MMMMMHH", ], doors: [(5, 4, N), (4, 5, W), (5, 7, W), (5, 11, W)], windows: [ (1, 0, N), (5, 0, N), (0, 2, W), (6, 2, E), (0, 5, W), (0, 7, W), (0, 12, W), (1, 13, S), (3, 13, S), (6, 12, E), (6, 13, S), ], furniture: [ (kind: "wardrobe", at: (0, 0)), (kind: "bed", at: (2, 0), size: (2, 2)), (kind: "desk", at: (6, 1), facing: W), (kind: "bathtub", at: (0, 4), size: (2, 1)), (kind: "toilet", at: (2, 4)), (kind: "sink", at: (3, 4)), (kind: "bed", at: (0, 6), size: (2, 2), facing: E), (kind: "wardrobe", at: (4, 6)), (kind: "desk", at: (3, 8), facing: N), (kind: "wardrobe", at: (4, 9)), (kind: "bed", at: (0, 10), size: (2, 2), facing: E), (kind: "desk", at: (0, 13), facing: N), ], ), ],)