signalis/src/camera_trigger.ts
2025-04-30 21:51:53 -05:00

22 lines
656 B
TypeScript

import { Area3D, Camera3D, NodePath, PhysicsBody3D, Variant } from 'godot'
import { export_ } from 'godot.annotations'
import Player from './player'
import MessageBus from './message_bus'
export default class CameraTrigger extends Area3D {
@export_(Variant.Type.TYPE_NODE_PATH)
camera!: NodePath
_camera!: Camera3D
_ready(): void {
this._camera = this.get_node(this.camera) as Camera3D
}
_on_body_entered(body: PhysicsBody3D) {
if (body instanceof Player) {
this._camera?.make_current()
console.log(MessageBus.instance.active_camera_changed)
MessageBus.instance.active_camera_changed.emit(this._camera)
}
}
}