lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
30 lines • 1.26 kB
JavaScript
import { thirdPersonCameraDefaults, thirdPersonCameraSchema } from "../../interface/IThirdPersonCamera";
import CharacterCamera from "../core/CharacterCamera";
import MeshAppendable from "../core/MeshAppendable";
import { thirdPersonCameraSystem } from "../../systems/thirdPersonCameraSystem";
import { characterCameraSystem } from "../../systems/characterCameraSystem";
class ThirdPersonCamera extends CharacterCamera {
static componentName = "thirdPersonCamera";
static defaults = thirdPersonCameraDefaults;
static schema = thirdPersonCameraSchema;
constructor() {
super();
this.innerZ = 300;
this.orbitMode = true;
this.createEffect(() => {
const found = this.firstChildState.get();
if (!(found instanceof MeshAppendable)) {
characterCameraSystem.add(this);
return () => {
characterCameraSystem.delete(this);
};
}
thirdPersonCameraSystem.add(this, { found, lerpCount: 0 });
return () => {
thirdPersonCameraSystem.delete(this);
};
}, [this.firstChildState.get]);
}
}
export default ThirdPersonCamera;
//# sourceMappingURL=ThirdPersonCamera.js.map