SYMBOL INDEX (45 symbols across 23 files) FILE: src/base/Character.tsx type GLTFResult (line 14) | type GLTFResult = Object3D & { type EmissiveMaterial (line 20) | type EmissiveMaterial = Material & { type CharacterAnimationType (line 26) | type CharacterAnimationType = "Idle" | "Walk" | "Run"; type CharacterProps (line 28) | type CharacterProps = ThreeElements["group"] & { FILE: src/base/CollisionPlate.tsx type CollisionPlateProps (line 6) | type CollisionPlateProps = RigidBodyProps & { FILE: src/base/Link.tsx type LinkProps (line 9) | type LinkProps = ThreeElements["group"] & { FILE: src/base/Path.tsx type PathNode (line 6) | type PathNode = Object3D & { type PathProps (line 10) | interface PathProps { FILE: src/base/Project.tsx type ProjectProps (line 9) | type ProjectProps = ThreeElements["group"] & { FILE: src/base/Screen.tsx type ScreenProps (line 4) | interface ScreenProps { FILE: src/base/Sign.tsx type SignNode (line 7) | type SignNode = Object3D & { type SignProps (line 12) | type SignProps = ThreeElements["group"] & { FILE: src/base/Sprite.tsx type SpriteProps (line 6) | type SpriteProps = ThreeElements["sprite"] & { FILE: src/base/Text.tsx type BaseTextProps (line 12) | type BaseTextProps = ThreeElements["mesh"] & { FILE: src/components/contact/ContactModel.tsx type ContactModelProps (line 6) | interface ContactModelProps { FILE: src/components/game/Track.tsx type TrackProps (line 6) | interface TrackProps { FILE: src/components/portal/PortalSign.tsx constant SIGN_SCALE (line 5) | const SIGN_SCALE = 1.6; FILE: src/components/world/Floor.tsx type FloorProps (line 8) | interface FloorProps { FILE: src/components/world/Trees.tsx type TreeNode (line 9) | type TreeNode = Object3D & { FILE: src/constants/loaderConfig.ts constant LOADER_CONFIG (line 1) | const LOADER_CONFIG = { FILE: src/constants/skillIcons.ts constant SKILL_ICONS (line 1) | const SKILL_ICONS = [ FILE: src/constants/spriteStyles.ts constant SPRITE_STYLES (line 3) | const SPRITE_STYLES: CSSProperties = { FILE: src/hooks/useCameraMovement.ts type CameraMovementProps (line 7) | interface CameraMovementProps { FILE: src/hooks/useCollisionDetector.ts type CollisionListener (line 12) | type CollisionListener = (payload: CollisionPayload) => void; FILE: src/hooks/useDispose.ts type Child (line 10) | type Child = Object3D & { type DisposableResource (line 15) | type DisposableResource = FILE: src/hooks/useMovementState.ts constant KEYS (line 3) | const KEYS = [ type KeyControls (line 15) | enum KeyControls { constant KEYBOARD_MAP (line 25) | const KEYBOARD_MAP: KeyboardControlsEntry[] = [ FILE: src/hooks/usePlayerMovement.ts constant FLOOR_Y (line 9) | const FLOOR_Y = 2; constant GRAVITY (line 10) | const GRAVITY = -9.81; constant ACCELERATION (line 11) | const ACCELERATION = 50; constant FRICTION (line 12) | const FRICTION = 0.85; constant ROTATION_SPEED (line 13) | const ROTATION_SPEED = 10; type UsePlayerMovementProps (line 15) | interface UsePlayerMovementProps { FILE: src/services/CollisionEmitter.ts type CollisionEventType (line 1) | type CollisionEventType = "enter" | "exit"; type CollisionPayload (line 3) | interface CollisionPayload { type CollisionListener (line 8) | type CollisionListener = (payload: CollisionPayload) => void; class SingleEmitter (line 10) | class SingleEmitter { method subscribe (line 13) | subscribe(listener: CollisionListener) { method emit (line 20) | emit(payload: CollisionPayload) { class CollisionEmitterManager (line 25) | class CollisionEmitterManager { method getOrCreateEmitter (line 28) | private getOrCreateEmitter(name: string): SingleEmitter { method subscribe (line 35) | subscribe(name: string, listener: CollisionListener) { method emit (line 40) | emit(payload: CollisionPayload) {