Back to Black Site Map Editor
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.

src/tools.ts
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()}`)}`;