SOURCE / PINNED RELEASE
Made of little things.
Black Site Map Editor
- Release
- 32a57733b7e9…
- Author-recorded commit
- 3f54890f542f…
- License
- LICENSE
- Author’s source reference
- nostr://npub1ye5ptcxfyyxl5vjvdjar2ua3f0hynkjzpx552mu5snj3qmx5pzjscpknpr/wss%3A%2F%2Fgit.shakespeare.diy%2F/black-site-map-editor
Archive hash verified: 7a4b1abbac7db5b0…. The source-to-build association is the author’s claim; it has not been independently rebuilt.
export const tools: [string, string][] = [
['select', 'Select / move'],
['pan', 'Pan map'],
['water', 'Water'],
['paved', 'Pavement'],
['roads', 'Road'],
['walls', 'Wall'],
['buildings', 'Building'],
['doors', 'Building door'],
['interiorWalls', 'Interior wall'],
['containers', 'Container'],
['tanks', 'Tank (3×3)'],
['pipes', 'Pipe'],
['crates', 'Crate'],
['wrecks', 'Wreck'],
['sandbags', 'Sandbag'],
['start', 'Insertion'],
['exfil', 'Extraction'],
['enemies', 'Guard'],
['caches', 'Loot cache'],
['erase', 'Erase object'],
];
export const baseTools = ['select', 'pan', 'erase'];
export const toolGroups = [
['Terrain', ['water', 'paved', 'roads']],
['Structures', ['walls', 'buildings', 'doors', 'interiorWalls']],
['Cover & supplies', ['containers', 'tanks', 'pipes', 'crates', 'wrecks', 'sandbags']],
['Mission', ['start', 'exfil', 'enemies', 'caches']],
] as const;
/** Layers listed under Objects & layers; doors and interior walls belong to buildings. */
export const listedLayers = tools.filter(
([key]) => !['select', 'pan', 'erase', 'doors', 'interiorWalls'].includes(key),
);
export const toolKeys: Record<string, string> = {
select: 'V',
pan: 'H',
erase: 'E',
water: 'W',
paved: 'A',
roads: 'R',
walls: 'L',
buildings: 'B',
doors: 'D',
interiorWalls: 'I',
containers: 'C',
tanks: 'T',
pipes: 'P',
crates: 'K',
wrecks: 'Q',
sandbags: 'S',
start: '1',
exfil: '2',
enemies: '3',
caches: '4',
};
export const toolLabel = (layer: string) => tools.find(([key]) => key === layer)?.[1] ?? 'Object';
export const toolShortcutId = (key: string) =>
`tool.${key.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`)}`;
