feat: scaffold mvp shell and content runtime

This commit is contained in:
manpengan
2026-03-29 00:36:28 +08:00
parent 25a38cbf05
commit c118e24bd1
25 changed files with 2903 additions and 7 deletions

View File

@@ -0,0 +1,30 @@
export function createCityRegistry(cities) {
const cityMap = new Map(
[...cities]
.sort((left, right) => left.sortOrder - right.sortOrder)
.map((city) => [city.id, city]),
)
return {
getAllCities() {
return [...cityMap.values()]
},
getCity(cityId) {
return cityMap.get(cityId) ?? null
},
listCitiesByContinent(continentId) {
return [...cityMap.values()].filter((city) => city.continentId === continentId)
},
getLevelPreset(cityId, levelId) {
const city = cityMap.get(cityId)
if (!city) {
return null
}
return city.levelPresets.find((preset) => preset.id === levelId) ?? null
},
}
}
export default createCityRegistry