#let schematic-extent = state("schematic-extent") #let tile(path, x, y, z, dx: 0, dy: 0) = { context schematic-extent.update(it => (it.at(0) + x, it.at(1) + y, it.at(2) + z, it.at(3) + 1)) place( horizon + center, image(path, width: 2em), dx: 0.8952em * (x + y), dy: -0.444em * (x - y) - 1.09em * z, ) } #let schematic(blocks) = { context schematic-extent.update(it => (0, 0, 0, 0)) blocks } #block(stroke: gray, width: 100%, height: 3in, { set text(size: 40pt) schematic({ tile("img/white-concrete.png", 0, -2, -1) // tile("img/gray-concrete.png", 0, 0, -1) tile("img/white-concrete.png", 1, 0, 0) tile("img/white-concrete.png", 0, -1, 0) tile("img/white-concrete.png", 0, 0, -1) tile("img/cmp-off-S.png", 0, 0, 0) }) // tile("img/white-concrete.png", 0, -3, 0) // tile("img/gray-concrete.png", 0, -3, -1) // // tile("img/white-concrete.png", 3, 0, -1) // tile("img/white-concrete.png", 2, 0, -1) // tile("img/white-concrete.png", 1, 0, -1) // tile("img/white-concrete.png", 0, 0, -1) // tile("img/white-concrete.png", -1, 0, -1) // tile("img/white-concrete.png", -2, 0, -1) // tile("img/white-concrete.png", -3, 0, -1) // // tile("img/cmp-off.png", 3, 0, 0) // tile("img/cmp-off.png", 2, 0, 0) // tile("img/cmp-off.png", 1, 0, 0) // tile("img/cmp-off.png", 0, 0, 0) // tile("img/cmp-off.png", -1, 0, 0) // tile("img/cmp-off.png", -2, 0, 0) // tile("img/cmp-off.png", -3, 0, 0) }) #block(stroke: gray, width: 100%, height: 3in, { set text(size: 40pt) tile("img/white-concrete.png", 0, -2, -1) tile("img/white-concrete.png", 0, -1, -1) tile("img/white-concrete.png", 1, 0, 0) tile("img/white-concrete.png", 0, -1, 0) tile("img/light-gray-concrete.png", 0, 0, -1) tile("img/dust-off.png", 0, 0, 0) // tile("img/white-concrete.png", 0, -3, 0) // tile("img/gray-concrete.png", 0, -3, -1) // // tile("img/white-concrete.png", 3, 0, -1) // tile("img/white-concrete.png", 2, 0, -1) // tile("img/white-concrete.png", 1, 0, -1) // tile("img/white-concrete.png", 0, 0, -1) // tile("img/white-concrete.png", -1, 0, -1) // tile("img/white-concrete.png", -2, 0, -1) // tile("img/white-concrete.png", -3, 0, -1) // // tile("img/cmp-off.png", 3, 0, 0) // tile("img/cmp-off.png", 2, 0, 0) // tile("img/cmp-off.png", 1, 0, 0) // tile("img/cmp-off.png", 0, 0, 0) // tile("img/cmp-off.png", -1, 0, 0) // tile("img/cmp-off.png", -2, 0, 0) // tile("img/cmp-off.png", -3, 0, 0) })