DramaticShapeVoxelMod archival mirror · read-only
assets/docs/buildings/B32-unnamed-building.md

B32-unnamed-building.md

assets/docs/buildings/B32-unnamed-building.md5.3 KB1006447cb0a9c8cf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
# B32 - Unnamed building

![Unnamed building](img/B32_x5.png)

`SHIP_PORT` tileset, **8 x 3 cells** (16 x 6 tiles of 8px, 128 x 48 px). Appears **1 time** in the game. Tile ids index `assets/generated/tilesets/ship_port.png`, 16 per row.

Coordinates are 1-based and local to the building: cell x=1..8, y=1..3; tile column c=1..16, tile row r=1..6. 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 
      +-----+-----+-----+-----+-----+-----+-----+-----+
   y1 | A A | B C | D E | F G | H H | I I | J K | L M |
      | N O | P Q | R S | T U | V W | V W | X Y | Z a |
      +-----+-----+-----+-----+-----+-----+-----+-----+
   y2 | b c | d e | f g | h i | j k | j k | l m | n o |
      | p c | d q | r s | t u | v w | v w | x y | x o |
      +-----+-----+-----+-----+-----+-----+-----+-----+
   y3 | z 0 | 1 2 | 3 4 | 4 4 | 4 4 | 4 4 | 4 5 | 6 7 |
      | A 8 | 9 ! | # # | # # | # # | # # | # $ | % & |
      +-----+-----+-----+-----+-----+-----+-----+-----+
```

## Same grid, raw tile ids

```
            x1       x2       x3       x4       x5       x6       x7       x8   
      +---------+---------+---------+---------+---------+---------+---------+---------+
   y1 |  20  20 |   2   3 |   4   5 |   6   7 |   9   9 |  11  11 |  12  13 |  14  15 |
      |  16  17 |  18  19 |   0  21 |  22  23 |  24  25 |  24  25 |  28  29 |  30  31 |
      +---------+---------+---------+---------+---------+---------+---------+---------+
   y2 |  32  33 |  34  35 |  36  37 |  38  39 |  40  41 |  40  41 |  44  45 |  46  47 |
      |  48  33 |  34  51 |  52  53 |  54  55 |  56  57 |  56  57 |  62  61 |  62  47 |
      +---------+---------+---------+---------+---------+---------+---------+---------+
   y3 |  64  65 |  66  67 |  68  69 |  69  69 |  69  69 |  69  69 |  69  77 |  78  79 |
      |  20  81 |  82  83 |  85  85 |  85  85 |  85  85 |  85  85 |  85  93 |  90  91 |
      +---------+---------+---------+---------+---------+---------+---------+---------+
```

As a 1-based Lua array, `rows[r][c]`:

```lua
local rows = {
  {  20,  20,   2,   3,   4,   5,   6,   7,   9,   9,  11,  11,  12,  13,  14,  15 },  -- r1
  {  16,  17,  18,  19,   0,  21,  22,  23,  24,  25,  24,  25,  28,  29,  30,  31 },  -- r2
  {  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  40,  41,  44,  45,  46,  47 },  -- r3
  {  48,  33,  34,  51,  52,  53,  54,  55,  56,  57,  56,  57,  62,  61,  62,  47 },  -- r4
  {  64,  65,  66,  67,  68,  69,  69,  69,  69,  69,  69,  69,  69,  77,  78,  79 },  -- r5
  {  20,  81,  82,  83,  85,  85,  85,  85,  85,  85,  85,  85,  85,  93,  90,  91 },  -- r6
}
```

## Legend

_Legend pending._

- `!` = tile 83, used 1x
- `#` = tile 85, used 9x
- `$` = tile 93, used 1x
- `%` = tile 90, used 1x
- `&` = tile 91, used 1x
- `0` = tile 65, used 1x
- `1` = tile 66, used 1x
- `2` = tile 67, used 1x
- `3` = tile 68, used 1x
- `4` = tile 69, used 8x
- `5` = tile 77, used 1x
- `6` = tile 78, used 1x
- `7` = tile 79, used 1x
- `8` = tile 81, used 1x
- `9` = tile 82, used 1x
- `A` = tile 20, used 3x
- `B` = tile 2, used 1x
- `C` = tile 3, used 1x
- `D` = tile 4, used 1x
- `E` = tile 5, used 1x
- `F` = tile 6, used 1x
- `G` = tile 7, used 1x
- `H` = tile 9, used 2x
- `I` = tile 11, used 2x
- `J` = tile 12, used 1x
- `K` = tile 13, used 1x
- `L` = tile 14, used 1x
- `M` = tile 15, used 1x
- `N` = tile 16, used 1x
- `O` = tile 17, used 1x
- `P` = tile 18, used 1x
- `Q` = tile 19, used 1x
- `R` = tile 0, used 1x
- `S` = tile 21, used 1x
- `T` = tile 22, used 1x
- `U` = tile 23, used 1x
- `V` = tile 24, used 2x
- `W` = tile 25, used 2x
- `X` = tile 28, used 1x
- `Y` = tile 29, used 1x
- `Z` = tile 30, used 1x
- `a` = tile 31, used 1x
- `b` = tile 32, used 1x
- `c` = tile 33, used 2x
- `d` = tile 34, used 2x
- `e` = tile 35, used 1x
- `f` = tile 36, used 1x
- `g` = tile 37, used 1x
- `h` = tile 38, used 1x
- `i` = tile 39, used 1x
- `j` = tile 40, used 2x
- `k` = tile 41, used 2x
- `l` = tile 44, used 1x
- `m` = tile 45, used 1x
- `n` = tile 46, used 1x
- `o` = tile 47, used 2x
- `p` = tile 48, used 1x
- `q` = tile 51, used 1x
- `r` = tile 52, used 1x
- `s` = tile 53, used 1x
- `t` = tile 54, used 1x
- `u` = tile 55, used 1x
- `v` = tile 56, used 2x
- `w` = tile 57, used 2x
- `x` = tile 62, used 2x
- `y` = tile 61, used 1x
- `z` = tile 64, used 1x

![distinct tiles](img/B32_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
    y2   SOLID  SOLID  SOLID  SOLID  SOLID  SOLID  SOLID  SOLID
    y3   SOLID  SOLID  SOLID  SOLID  SOLID  SOLID  SOLID  SOLID
```

Every cell is solid - this building has no door of its own.

## Silhouette

315 of the 6144 px inside the box are ground outside the black outline, so the 128x48 box is **not** a solid rectangle - a pixel-perfect cutout has to follow the outline. Terrain pixels by tile row:

```
    r1   c1:22px, c2:20px, c3:20px, c4:19px, c5:13px, c6:3px, c8:4px, c11:9px, c12:9px, c13:11px, c14:18px, c15:18px, c16:22px
    r2   c1:20px, c2:8px, c16:4px
    r3   c1:5px
    r5   c1:16px, c16:2px
    r6   c1:25px, c2:23px, c3:6px, c4:1px, c16:17px
```

## Where it stands

| map | cell (x,y) | door | leads to |
| --- | --- | --- | --- |
| VERMILION_DOCK | (10,3) | - | scenery, no entrance |