Each hex now gets a meta/<q>_<r>.json with stable ID, pixel center coordinates, pixel bounds, labels, notes, and classification status. The pixelCenter acts as a scale-independent anchor: when switching from 10 Meilen/Hex to 5 Meilen/Hex, pixelToAxial(meta.pixelCenter, newSize) maps coarse hexes to fine hexes without re-running classification. Adds: - pipeline/build-hexmeta.ts: creates/updates metadata + exports data/hexmeta-<map-id>.jsonl (committed, survives git clones) - pipeline/auto-classify-ocean.ts: pixel-based ocean auto-detection - pipeline/create-map.ts: one-off DB map entry creation - extract-submaps.ts: writes meta/<q>_<r>.json during extraction - data/hexmeta-1.jsonl: 8844 hex metadata entries for Aventurien map 1 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
39 lines
1.1 KiB
JSON
39 lines
1.1 KiB
JSON
{
|
|
"name": "hexifyer",
|
|
"version": "0.1.0",
|
|
"description": "Hex grid overlay tool for fantasy maps",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "concurrently \"vite --host 127.0.0.1 --port 5174\" \"tsx watch server/index.ts\"",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"server": "tsx server/index.ts",
|
|
"pipeline:tiles": "tsx pipeline/generate-tiles.ts",
|
|
"pipeline:assemble": "tsx pipeline/assemble-map.ts",
|
|
"pipeline:extract": "tsx pipeline/extract-submaps.ts",
|
|
"pipeline:hexmeta": "tsx pipeline/build-hexmeta.ts",
|
|
"pipeline:import": "tsx pipeline/import-from-json.ts"
|
|
},
|
|
"devDependencies": {
|
|
"@types/cors": "^2.8.19",
|
|
"@types/express": "^5.0.6",
|
|
"@types/leaflet": "^1.9.21",
|
|
"sharp": "^0.33.0",
|
|
"tsx": "^4.19.0",
|
|
"typescript": "^5.7.0",
|
|
"vite": "^6.0.0",
|
|
"vitest": "^3.0.0"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/sdk": "^0.89.0",
|
|
"concurrently": "^9.2.1",
|
|
"cors": "^2.8.6",
|
|
"express": "^5.2.1",
|
|
"leaflet": "^1.9.4",
|
|
"sql.js": "^1.14.1"
|
|
}
|
|
}
|