/** * Location Presets - Pre-configured room networks for common locations * * These reduce token overhead by ~80% compared to manual specification. * An LLM can spawn a full location with just: { preset: "generic_tavern" } * * Usage: * getLocationPreset('generic_tavern') -> full location config * listLocationPresets() -> all available presets * getLocationsForCategory('tavern') -> filtered list * * @module data/location-presets */ import { POICategory, POIIcon } from '../schema/poi.js'; /** * A room within a location preset */ export interface PresetRoom { id: string; name: string; description: string; biome: 'urban' | 'forest' | 'dungeon' | 'cavern' | 'divine' | 'mountain' | 'coastal' | 'arcane'; localX?: number; localY?: number; exits: PresetExit[]; } /** * An exit/connection between rooms */ export interface PresetExit { direction: 'north' | 'south' | 'east' | 'west' | 'up' | 'down'; targetRoomId: string; exitType?: 'OPEN' | 'LOCKED' | 'HIDDEN'; lockDC?: number; } /** * NPC template for location */ export interface PresetNPC { template: string; name?: string; roomId: string; role?: string; behavior?: string; } /** * Item placement in location */ export interface PresetItem { itemId: string; roomId: string; description?: string; } /** * Complete location preset */ export interface LocationPreset { id: string; name: string; description: string; category: POICategory; icon: POIIcon; networkType: 'cluster' | 'linear'; rooms: PresetRoom[]; npcs?: PresetNPC[]; items?: PresetItem[]; suggestedLevel?: { min: number; max: number; }; tags: string[]; narrativeHook?: string; } export declare const LOCATION_PRESETS: Record; /** * Get a location preset by ID */ export declare function getLocationPreset(presetId: string): LocationPreset | undefined; /** * List all available location presets */ export declare function listLocationPresets(): Array<{ id: string; name: string; category: string; tags: string[]; }>; /** * Get locations filtered by category */ export declare function getLocationsForCategory(category: POICategory): LocationPreset[]; /** * Get locations filtered by tag */ export declare function getLocationsWithTag(tag: string): LocationPreset[]; /** * Get a random location matching criteria */ export declare function getRandomLocation(options?: { category?: POICategory; tags?: string[]; level?: number; }): LocationPreset | undefined; //# sourceMappingURL=location-presets.d.ts.map