mirror of
https://github.com/Armored-Dragon/overte.git
synced 2025-03-11 16:13:16 +01:00
78 lines
2.6 KiB
JavaScript
78 lines
2.6 KiB
JavaScript
'use strict';
|
|
|
|
//
|
|
// onFirstRun.js
|
|
//
|
|
// Created by Kalila L. on Oct 5 2020.
|
|
// Copyright 2020 Vircadia contributors.
|
|
//
|
|
// This script triggers on first run to perform bootstrapping actions.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
(function() { // BEGIN LOCAL_SCOPE
|
|
// Check to see if we should run this script or bail...
|
|
var SETTING_TO_CHECK = 'firstRun';
|
|
|
|
if (!Settings.getValue(SETTING_TO_CHECK, false)) {
|
|
return;
|
|
}
|
|
|
|
// If this is our first run then proceed...
|
|
|
|
var configWizardEntityID;
|
|
var DEFAULT_DISPLAY_NAME = '';
|
|
|
|
if (!PlatformInfo.has3DHTML()) {
|
|
if (MyAvatar.displayName === '') {
|
|
var selectedDisplayName = Window.prompt('Enter a display name.', MyAvatar.displayName);
|
|
setDisplayName(selectedDisplayName);
|
|
}
|
|
} else {
|
|
configWizardEntityID = Entities.addEntity({
|
|
type: 'Web',
|
|
sourceUrl: Script.resolvePath("./configWizard/dist/index.html"),
|
|
maxFPS: 60,
|
|
dpi: 20,
|
|
useBackground: false,
|
|
grab: {
|
|
grabbable: false
|
|
},
|
|
position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0, z: -2.25 })),
|
|
rotation: MyAvatar.orientation,
|
|
dimensions: { x: 1.4, y: 0.75, z: 0 }
|
|
}, 'local');
|
|
|
|
Entities.webEventReceived.connect(onWebAppEventReceived);
|
|
}
|
|
|
|
function setDisplayName(displayName) {
|
|
if (displayName === '') {
|
|
MyAvatar.displayName = DEFAULT_DISPLAY_NAME;
|
|
} else {
|
|
MyAvatar.displayName = displayName;
|
|
}
|
|
}
|
|
|
|
function onWebAppEventReceived(sendingEntityID, event) {
|
|
if (sendingEntityID === configWizardEntityID) {
|
|
var eventJSON = JSON.parse(event);
|
|
if (eventJSON.command === "complete-wizard") {
|
|
Performance.setPerformancePreset(eventJSON.data.performancePreset);
|
|
Performance.setRefreshRateProfile(eventJSON.data.refreshRateProfile);
|
|
setDisplayName(eventJSON.data.displayName);
|
|
Entities.deleteEntity(configWizardEntityID);
|
|
Entities.webEventReceived.disconnect(onWebAppEventReceived);
|
|
}
|
|
}
|
|
}
|
|
|
|
Script.scriptEnding.connect(function () {
|
|
if (configWizardEntityID) {
|
|
Entities.deleteEntity(configWizardEntityID);
|
|
Entities.webEventReceived.disconnect(onWebAppEventReceived);
|
|
}
|
|
});
|
|
}());
|