/** * @weather Hub Trait — World Simulation Driver * * Owns a blackboard state that consumer traits read from each frame: * @volumetric_clouds, @god_rays, @fluid, @cloth, @physics, * @particle_system, @erosion * * Wraps the existing WeatherSystem class and adds: * - Day-night cycle with sun position * - Physics coupling parameters (wind scale, wetness friction) * - Blackboard writes for consumer traits * - Optional CRDT persistence * * Pattern: P.GAPS.10 (Hub Trait Architecture) * * @example * ```holoscript * world MyWorld { * @weather { * day_length_seconds: 600 * start_time: 8 * initial_weather: "clear" * auto_cycle: true * wind_physics_scale: 1.5 * } * } * ``` * * @module traits */ import type { TraitHandler } from '@holoscript/core'; import { type WeatherType } from '@holoscript/engine/environment/WeatherSystem'; export interface WeatherHubConfig { /** Real seconds per in-game day (default: 1200 = 20 minutes) */ day_length_seconds: number; /** Starting time of day, 0-24 (default: 12 = noon) */ start_time: number; /** Latitude for sun path calculation, degrees (default: 45) */ latitude: number; /** Starting weather condition */ initial_weather: WeatherType; /** Automatically cycle between weather types */ auto_cycle: boolean; /** Minimum seconds per weather state during auto-cycle */ cycle_min_duration: number; /** Maximum seconds per weather state during auto-cycle */ cycle_max_duration: number; /** Weather transition duration in seconds */ transition_duration: number; /** Scale factor for wind -> physics force (default: 1.0) */ wind_physics_scale: number; /** Friction modifier when surface is wet (default: 0.7 = 30% less friction) */ wetness_friction_modifier: number; /** Default wind direction and speed */ wind_direction: [number, number, number]; /** Default wind speed in m/s */ wind_speed: number; } export declare const weatherHubHandler: TraitHandler; export default weatherHubHandler; //# sourceMappingURL=WeatherHubTrait.d.ts.map