Types
Types API
Section titled “Types API”TypeScript type definitions. Import from @strata-game-library/core/types.
Terrain Types
Section titled “Terrain Types”BiomeConfig
Section titled “BiomeConfig”interface BiomeConfig { name: string; colors: { low: string; mid: string; high: string; cliff: string; }; terrainShape: { amplitude: number; frequency: number; sharpness: number; }; vegetation: { trees: boolean; grass: boolean; grassColor?: string; };}TerrainConfig
Section titled “TerrainConfig”interface TerrainConfig { amplitude: number; frequency: number; octaves: number; persistence: number; lacunarity: number; seed?: number;}TerrainChunk
Section titled “TerrainChunk”interface TerrainChunk { position: [number, number, number]; size: number; resolution: number; geometry: THREE.BufferGeometry; biome: string;}Water Types
Section titled “Water Types”WaterConfig
Section titled “WaterConfig”interface WaterConfig { size: number; depth: number; color: string; shallowColor?: string; opacity: number; reflections: boolean; caustics: boolean; foam: boolean;}WaveConfig
Section titled “WaveConfig”interface WaveConfig { height: number; length: number; speed: number; direction: [number, number]; steepness?: number;}GerstnerWave
Section titled “GerstnerWave”interface GerstnerWave { amplitude: number; wavelength: number; speed: number; direction: [number, number]; steepness: number;}Sky Types
Section titled “Sky Types”SkyConfig
Section titled “SkyConfig”interface SkyConfig { sunPosition?: [number, number, number]; timeOfDay?: TimeOfDay; turbidity: number; rayleigh: number; mieCoefficient: number; mieDirectionalG: number; stars: boolean; moon: boolean; moonPhase?: number;}TimeOfDay
Section titled “TimeOfDay”interface TimeOfDay { hour: number; // 0-23 minute: number; // 0-59 sunAngle: number; // Calculated sunPosition: [number, number, number]; // Calculated isDay: boolean; isNight: boolean;}Vegetation Types
Section titled “Vegetation Types”VegetationConfig
Section titled “VegetationConfig”interface VegetationConfig { count: number; spread: number; spreadType: 'random' | 'grid' | 'noise' | 'biome'; color: string; colorVariation: number; height: number | [number, number]; heightVariation: number;}WindConfig
Section titled “WindConfig”interface WindConfig { speed: number; strength: number; direction: [number, number, number]; turbulence?: number; noiseScale?: number;}Animation Types
Section titled “Animation Types”AnimationConfig
Section titled “AnimationConfig”interface AnimationConfig { type: 'procedural' | 'keyframe' | 'blend'; speed: number; loop: boolean;}IKConfig
Section titled “IKConfig”interface IKConfig { bones: string[]; target: [number, number, number] | React.RefObject<THREE.Object3D>; constraints?: Record<string, { min: number; max: number }>; iterations?: number; tolerance?: number;}GaitConfig
Section titled “GaitConfig”interface GaitConfig { speed: number; strideLength: number; strideDuration: number; bounce: number; sway: number; lean: number;}Mobile Types
Section titled “Mobile Types”DeviceProfile
Section titled “DeviceProfile”interface DeviceProfile { platform: 'ios' | 'android' | 'web' | 'windows' | 'macos' | 'linux'; deviceType: 'mobile' | 'tablet' | 'foldable' | 'desktop'; inputMode: 'touch' | 'keyboard' | 'gamepad' | 'hybrid'; orientation: 'portrait' | 'landscape'; hasTouch: boolean; hasPointer: boolean; hasGamepad: boolean; screenWidth: number; screenHeight: number; pixelRatio: number; safeAreaInsets: { top: number; right: number; bottom: number; left: number; };}InputSnapshot
Section titled “InputSnapshot”interface InputSnapshot { leftStick: { x: number; y: number }; rightStick: { x: number; y: number }; buttons: Record<string, boolean>; triggers: { left: number; right: number }; touches: Array<{ id: number; position: { x: number; y: number }; phase: 'began' | 'moved' | 'ended' | 'cancelled'; }>;}HapticsOptions
Section titled “HapticsOptions”interface HapticsOptions { intensity: 'light' | 'medium' | 'heavy'; customIntensity?: number; duration?: number; pattern?: number[];}Utility Types
Section titled “Utility Types”Vector3
Section titled “Vector3”type Vector3 = [number, number, number];type Color = string | number | THREE.Color;Related
Section titled “Related”- Components - React components
- Hooks - React hooks
- Core Functions - Utility functions