lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
31 lines • 1.11 kB
JavaScript
import CharacterCamera from "../core/CharacterCamera";
import { Reactive } from "@lincode/reactivity";
import ObjectManager from "../core/ObjectManager";
import { characterCameraSystem } from "../../systems/characterCameraSystem";
class FirstPersonCamera extends CharacterCamera {
static componentName = "firstPersonCamera";
constructor() {
super();
characterCameraSystem.add(this);
this.createEffect(() => {
const found = this.firstChildState.get();
const innerYSet = this.innerYSetState.get();
if (!(found instanceof ObjectManager) || innerYSet)
return;
super.innerY = found.height * 0.4;
return () => {
super.innerY = 0;
};
}, [this.firstChildState.get, this.innerYSetState.get]);
}
innerYSetState = new Reactive(false);
get innerY() {
return super.innerY;
}
set innerY(val) {
super.innerY = val;
this.innerYSetState.set(true);
}
}
export default FirstPersonCamera;
//# sourceMappingURL=FirstPersonCamera.js.map