Files
DramaticShapeVoxelMod/assets/docs/buildings/B19-unnamed-building.md
T
DramaticShape 702d8049f0 initial commit
2026-07-26 16:43:53 -04:00

136 lines
12 KiB
Markdown

# B19 - Unnamed building
![Unnamed building](img/B19_x4.png)
`PLATEAU` tileset, **20 x 5 cells** (40 x 10 tiles of 8px, 320 x 80 px). Appears **1 time** in the game. Tile ids index `assets/generated/tilesets/plateau.png`, 16 per row.
Coordinates are 1-based and local to the building: cell x=1..20, y=1..5; tile column c=1..40, tile row r=1..10. No terrain padding is included - edge rows and columns that were pure ground have been trimmed.
## Symbol grid
```
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
y1 | A B | C C | C C | C C | C C | C C | C C | C C | C C | C C | C C | C C | C C | C C | C C | C C | C C | C C | C C | A B |
| D E | F F | F F | F F | F F | F F | G H | C C | C C | C C | C C | C C | C C | G H | F F | F F | F F | F F | F F | D E |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
y2 | I J | K K | K K | K K | I J | K K | L M | C C | C C | C C | C C | C C | C C | L M | K K | I J | K K | K K | K K | I J |
| N O | K K | K K | K K | N O | K K | L M | C C | C C | C C | C C | C C | C C | L M | K K | N O | K K | K K | K K | N O |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
y3 | N O | K K | K K | K K | N O | K K | A B | C C | C C | C C | C C | C C | C C | A B | K K | N O | K K | K K | K K | N O |
| I J | P P | P P | P P | I J | P P | D E | F F | F F | F F | F F | F F | F F | D E | P P | I J | P P | P P | P P | I J |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
y4 | Q Q | Q Q | Q Q | Q Q | Q Q | Q Q | I J | K K | K K | K K | K K | K K | K K | I J | Q Q | Q Q | Q Q | Q Q | Q Q | Q Q |
| R Q | Q Q | R Q | Q Q | R Q | Q Q | N O | K K | K K | K K | K K | K K | K K | N O | R Q | Q Q | R Q | Q Q | R Q | Q Q |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
y5 | Q Q | Q Q | Q Q | Q Q | Q Q | Q Q | N O | K K | K K | S T | S T | K K | K K | N O | Q Q | Q Q | Q Q | Q Q | Q Q | Q Q |
| Q Q | R Q | Q Q | R Q | Q Q | R Q | I J | P P | P P | * U | * U | P P | P P | I J | Q Q | R Q | Q Q | R Q | Q Q | R Q |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
```
## Same grid, raw tile ids
```
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
y1 | 37 38 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 37 38 |
| 40 41 | 13 13 | 13 13 | 13 13 | 13 13 | 13 13 | 32 33 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 32 33 | 13 13 | 13 13 | 13 13 | 13 13 | 13 13 | 40 41 |
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
y2 | 21 22 | 15 15 | 15 15 | 15 15 | 21 22 | 15 15 | 46 47 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 46 47 | 15 15 | 21 22 | 15 15 | 15 15 | 15 15 | 21 22 |
| 5 6 | 15 15 | 15 15 | 15 15 | 5 6 | 15 15 | 46 47 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 46 47 | 15 15 | 5 6 | 15 15 | 15 15 | 15 15 | 5 6 |
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
y3 | 5 6 | 15 15 | 15 15 | 15 15 | 5 6 | 15 15 | 37 38 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 3 3 | 37 38 | 15 15 | 5 6 | 15 15 | 15 15 | 15 15 | 5 6 |
| 21 22 | 14 14 | 14 14 | 14 14 | 21 22 | 14 14 | 40 41 | 13 13 | 13 13 | 13 13 | 13 13 | 13 13 | 13 13 | 40 41 | 14 14 | 21 22 | 14 14 | 14 14 | 14 14 | 21 22 |
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
y4 | 35 35 | 35 35 | 35 35 | 35 35 | 35 35 | 35 35 | 21 22 | 15 15 | 15 15 | 15 15 | 15 15 | 15 15 | 15 15 | 21 22 | 35 35 | 35 35 | 35 35 | 35 35 | 35 35 | 35 35 |
| 45 35 | 35 35 | 45 35 | 35 35 | 45 35 | 35 35 | 5 6 | 15 15 | 15 15 | 15 15 | 15 15 | 15 15 | 15 15 | 5 6 | 45 35 | 35 35 | 45 35 | 35 35 | 45 35 | 35 35 |
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
y5 | 35 35 | 35 35 | 35 35 | 35 35 | 35 35 | 35 35 | 5 6 | 15 15 | 15 15 | 11 12 | 11 12 | 15 15 | 15 15 | 5 6 | 35 35 | 35 35 | 35 35 | 35 35 | 35 35 | 35 35 |
| 35 35 | 45 35 | 35 35 | 45 35 | 35 35 | 45 35 | 21 22 | 14 14 | 14 14 | 27 28 | 27 28 | 14 14 | 14 14 | 21 22 | 35 35 | 45 35 | 35 35 | 45 35 | 35 35 | 45 35 |
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
```
As a 1-based Lua array, `rows[r][c]`:
```lua
local rows = {
{ 37, 38, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 37, 38 }, -- r1
{ 40, 41, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 32, 33, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 32, 33, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 40, 41 }, -- r2
{ 21, 22, 15, 15, 15, 15, 15, 15, 21, 22, 15, 15, 46, 47, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 46, 47, 15, 15, 21, 22, 15, 15, 15, 15, 15, 15, 21, 22 }, -- r3
{ 5, 6, 15, 15, 15, 15, 15, 15, 5, 6, 15, 15, 46, 47, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 46, 47, 15, 15, 5, 6, 15, 15, 15, 15, 15, 15, 5, 6 }, -- r4
{ 5, 6, 15, 15, 15, 15, 15, 15, 5, 6, 15, 15, 37, 38, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 37, 38, 15, 15, 5, 6, 15, 15, 15, 15, 15, 15, 5, 6 }, -- r5
{ 21, 22, 14, 14, 14, 14, 14, 14, 21, 22, 14, 14, 40, 41, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 40, 41, 14, 14, 21, 22, 14, 14, 14, 14, 14, 14, 21, 22 }, -- r6
{ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 21, 22, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 21, 22, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, -- r7
{ 45, 35, 35, 35, 45, 35, 35, 35, 45, 35, 35, 35, 5, 6, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 5, 6, 45, 35, 35, 35, 45, 35, 35, 35, 45, 35, 35, 35 }, -- r8
{ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 5, 6, 15, 15, 15, 15, 11, 12, 11, 12, 15, 15, 15, 15, 5, 6, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, -- r9
{ 35, 35, 45, 35, 35, 35, 45, 35, 35, 35, 45, 35, 21, 22, 14, 14, 14, 14, 27, 28, 27, 28, 14, 14, 14, 14, 21, 22, 35, 35, 45, 35, 35, 35, 45, 35, 35, 35, 45, 35 }, -- r10
}
```
## Legend
_Legend pending._
- `*` = tile 27, used 2x
- `A` = tile 37, used 4x
- `B` = tile 38, used 4x
- `C` = tile 3, used 84x
- `D` = tile 40, used 4x
- `E` = tile 41, used 4x
- `F` = tile 13, used 32x
- `G` = tile 32, used 2x
- `H` = tile 33, used 2x
- `I` = tile 21, used 12x
- `J` = tile 22, used 12x
- `K` = tile 15, used 80x
- `L` = tile 46, used 4x
- `M` = tile 47, used 4x
- `N` = tile 5, used 12x
- `O` = tile 6, used 12x
- `P` = tile 14, used 24x
- `Q` = tile 35, used 84x
- `R` = tile 45, used 12x
- `S` = tile 11, used 2x
- `T` = tile 12, used 2x
- `U` = tile 28, used 2x
![distinct tiles](img/B19_atlas.png)
## Collision
Cell walkability reads the **bottom-left 8px tile** of each cell (`src/world/Map.lua:6`):
```
y1 SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID
y2 SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID
y3 SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID
y4 DOOR DOOR DOOR DOOR DOOR DOOR SOLID SOLID SOLID SOLID SOLID SOLID SOLID SOLID DOOR DOOR DOOR DOOR DOOR DOOR
y5 DOOR DOOR DOOR DOOR DOOR DOOR SOLID SOLID SOLID DOOR DOOR SOLID SOLID SOLID DOOR DOOR DOOR DOOR DOOR DOOR
```
Enterable cells: (1,4), (2,4), (3,4), (4,4), (5,4), (6,4), (15,4), (16,4), (17,4), (18,4), (19,4), (20,4), (1,5), (2,5), (3,5), (4,5), (5,5), (6,5), (10,5), (11,5), (15,5), (16,5), (17,5), (18,5), (19,5), (20,5).
## Silhouette
1621 of the 25600 px inside the box are ground outside the black outline, so the 320x80 box is **not** a solid rectangle - a pixel-perfect cutout has to follow the outline. Terrain pixels by tile row:
```
r1 c1:14px, c2:14px, c3:4px, c4:4px, c5:4px, c6:4px, c7:4px, c8:4px, c9:4px, c10:4px, c11:4px, c12:4px, c13:4px, c14:4px, c15:4px, c16:4px, c17:4px, c18:4px, c19:4px, c20:4px, c21:4px, c22:4px, c23:4px, c24:4px, c25:4px, c26:4px, c27:4px, c28:4px, c29:4px, c30:4px, c31:4px, c32:4px, c33:4px, c34:4px, c35:4px, c36:4px, c37:4px, c38:4px, c39:14px, c40:14px
r2 c1:10px, c2:10px, c3:16px, c4:16px, c5:16px, c6:16px, c7:16px, c8:16px, c9:16px, c10:16px, c11:16px, c12:16px, c13:15px, c14:15px, c15:1px, c27:15px, c28:15px, c29:16px, c30:16px, c31:16px, c32:16px, c33:16px, c34:16px, c35:16px, c36:16px, c37:16px, c38:16px, c39:10px, c40:10px
r3 c1:10px, c2:10px, c9:10px, c10:10px, c13:8px, c14:8px, c15:1px, c27:8px, c28:8px, c31:10px, c32:10px, c39:10px, c40:10px
r4 c1:8px, c2:8px, c9:8px, c10:8px, c13:8px, c14:8px, c15:1px, c27:8px, c28:8px, c31:8px, c32:8px, c39:8px, c40:8px
r5 c1:8px, c2:8px, c9:8px, c10:8px, c13:13px, c14:13px, c15:1px, c27:13px, c28:13px, c31:8px, c32:8px, c39:8px, c40:8px
r6 c1:10px, c2:10px, c3:9px, c4:8px, c5:8px, c6:8px, c7:8px, c8:8px, c9:10px, c10:10px, c11:9px, c12:8px, c13:10px, c14:10px, c15:16px, c16:16px, c17:16px, c18:16px, c19:16px, c20:16px, c21:16px, c22:16px, c23:16px, c24:16px, c25:16px, c26:16px, c27:10px, c28:10px, c29:9px, c30:8px, c31:10px, c32:10px, c33:9px, c34:8px, c35:8px, c36:8px, c37:8px, c38:8px, c39:10px, c40:10px
r7 c13:10px, c14:10px, c27:10px, c28:10px
r8 c13:8px, c14:8px, c27:8px, c28:8px
r9 c13:8px, c14:8px, c27:8px, c28:8px
r10 c13:15px, c14:15px, c15:9px, c16:8px, c17:8px, c18:8px, c23:8px, c24:8px, c25:8px, c26:8px, c27:15px, c28:15px
```
## Where it stands
| map | cell (x,y) | door | leads to |
| --- | --- | --- | --- |
| INDIGO_PLATEAU | (0,1) | (9,5) | `INDIGO_PLATEAU_LOBBY` |
| INDIGO_PLATEAU | (0,1) | (10,5) | `INDIGO_PLATEAU_LOBBY` |