/** * Constraints Module * * Follows Module pattern for: * - Serialization support * - Maintainability * - Usability * - Runtime extensibility * * Core Principles Followed: * 1. ✅ Extends Module * 2. ✅ Uses {type, params} structure * 3. ✅ Uses registerType() for constraint checkers * 4. ✅ register() returns ConstraintResolved * 5. ✅ Calls addDefinition() for all registrations * 6. ✅ Built-in constraints registered in constructor */ import { Position, Constraint, ConstraintDefinition } from './types'; import { ECSContext } from "../../core/ecs"; import { Module } from "../Module"; export declare const DEFAULT_NORMALIZATION_SIZE = 100; /** * Terrain settings resolved from dimension configuration */ export interface TerrainSettings { heightField: string; size: number; heightOffset: number; } /** * Get terrain settings from the current dimension * Falls back to spawnerDefaults if dimension terrain is not configured */ export declare function getTerrainSettings(ctx: ECSContext): TerrainSettings | undefined; /** Sample height from field at position */ export declare function sampleHeight(ctx: ECSContext, fieldName: string | undefined, x: number, z: number, terrainSize?: number): number; /** Calculate slope at a position by sampling height field */ export declare function calculateSlope(ctx: ECSContext, fieldName: string, x: number, z: number, sampleRadius?: number, terrainSize?: number): number; /** Set the function to get spawner results (called by SpawnerModule) */ export declare function setSpawnerResultsGetter(getter: (name: string) => { positions: Position[]; } | undefined): void; /** * Resolved constraint - a function that checks if a position passes the constraint */ export interface ConstraintResolved { check: (position: Position, ctx: ECSContext, heightField?: string) => boolean; } export declare class ConstraintsModule extends Module { constructor(ctx: ECSContext); /** * Check if a position passes a constraint */ check(constraint: ConstraintDefinition, position: Position, ctx: ECSContext, heightField?: string): boolean; /** * Check if a position passes all constraints */ passesAll(constraints: Constraint[] | ConstraintDefinition[] | undefined, position: Position, ctx: ECSContext, heightField?: string): boolean; } export declare const constraintsModule: (ctx: ECSContext) => ConstraintsModule; //# sourceMappingURL=constraints.d.ts.map