@gmetrixr/rjson
Version:
(R)ecursive Json
29 lines (28 loc) • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const r_1 = require("../../../r");
const project_1 = require("../../../r/definitions/project");
/**
* 1. Set Viewer camera mode to first_person if it is undefined. All new projects will get third_person controls by default.
* 2. Set Avatar system to basic if it is undefined. All new projects will use none by default.
* 3. Set Element -> Change mouse jump to true if it is undefined. All new projects will use false by default.
*/
class Migration {
execute(projectJson) {
const pJson = projectJson;
const projectF = r_1.r.project(pJson);
if (projectF.get(r_1.rtp.project.viewer_camera_mode) === undefined) {
projectF.set(r_1.rtp.project.viewer_camera_mode, project_1.ViewerCameraMode.first_person);
}
if (projectF.get(r_1.rtp.project.avatar_system) === undefined) {
projectF.set(r_1.rtp.project.avatar_system, project_1.AvatarSystem.basic);
}
const elements = projectF.getAllDeepChildrenWithFilter(r_1.RT.element, e => r_1.r.element(e).get(r_1.rtp.element.mouse_jump) === undefined);
for (const e of elements) {
r_1.r.element(e).set(r_1.rtp.element.mouse_jump, true);
}
projectF.set(r_1.rtp.project.version, 152);
}
}
const migration = new Migration();
exports.default = migration;