Legacy first person camera mode. The camera is positioned such that you have the same view as your avatar.
- * The camera moves and rotates with your avatar.
+ *
The camera is positioned such that you have the same view as your avatar. The camera moves and rotates with
+ * your avatar.
+ *
Legacy first person camera mode.
*
*
*
First Person Look At
*
"first person look at"
- *
Default first person camera mode. The camera is positioned such that you have the same view as your avatar.
- * The camera moves and rotates with your avatar's head.
+ *
The camera is positioned such that you have the same view as your avatar. The camera moves and rotates with
+ * your avatar's head.
+ *
Default first person camera mode.
*
*
*
Third Person
*
"third person"
- *
The camera is positioned such that you have a view from just behind your avatar. The camera moves and rotates with
- * your avatar.
+ *
The camera is positioned such that you have a view from just behind your avatar. The camera moves and rotates
+ * with your avatar.
+ *
Legacy third person camera camera mode.
+ *
Camera.mode = "third person";
*
*
*
Look At
*
"look at"
- *
The camera is positioned behind your avatar. The camera moves and rotates independently from your avatar.
- * The avatar's head always faces the camera look at point.
+ *
The camera is positioned behind your avatar. The camera moves and rotates independently from your avatar. The
+ * avatar's head always faces the camera look at point.
+ *
Default third person camera mode.
*
*
*
Selfie
*
"selfie"
- *
The camera is positioned in front of your avatar. The camera moves and rotates independently from your avatar.
- * Your avatar's head is always facing the camera.
+ *
The camera is positioned in front of your avatar. The camera moves and rotates independently from your avatar.
+ * Your avatar's head is always facing the camera.
+ *
Default "look at myself" camera mode.
*
*
*
Mirror
*
"mirror"
- *
The camera is positioned such that you are looking directly at your avatar. The camera moves and rotates with your
- * avatar.
+ *
The camera is positioned such that you are looking directly at your avatar. The camera is fixed and does not
+ * move with your avatar.
+ *
Legacy "look at myself" behavior.
+ *
Camera.mode = "mirror";
*
*
*
Independent
diff --git a/scripts/system/create/edit.js b/scripts/system/create/edit.js
index c57f4bae50..a036cf384d 100644
--- a/scripts/system/create/edit.js
+++ b/scripts/system/create/edit.js
@@ -561,7 +561,8 @@ var toolBar = (function () {
if (!properties.grab) {
properties.grab = {};
if (Menu.isOptionChecked(MENU_CREATE_ENTITIES_GRABBABLE) &&
- !(properties.type === "Zone" || properties.type === "Light" || properties.type === "ParticleEffect")) {
+ !(properties.type === "Zone" || properties.type === "Light"
+ || properties.type === "ParticleEffect" || properties.type === "Web")) {
properties.grab.grabbable = true;
} else {
properties.grab.grabbable = false;
diff --git a/scripts/system/create/entityList/entityList.js b/scripts/system/create/entityList/entityList.js
index 06e100f457..b68dcf80ba 100644
--- a/scripts/system/create/entityList/entityList.js
+++ b/scripts/system/create/entityList/entityList.js
@@ -177,7 +177,7 @@ EntityListTool = function(shouldUseEditTabletApp) {
var cameraPosition = Camera.position;
PROFILE("getMultipleProperties", function () {
- var multipleProperties = Entities.getMultipleEntityProperties(ids, ['name', 'type', 'locked',
+ var multipleProperties = Entities.getMultipleEntityProperties(ids, ['position', 'name', 'type', 'locked',
'visible', 'renderInfo', 'modelURL', 'materialURL', 'imageURL', 'script', 'certificateID',
'skybox.url', 'ambientLight.url']);
for (var i = 0; i < multipleProperties.length; i++) {
@@ -275,23 +275,6 @@ EntityListTool = function(shouldUseEditTabletApp) {
Window.saveFileChanged.connect(onFileSaveChanged);
Window.saveAsync("Select Where to Save", "", "*.json");
}
- } else if (data.type === "pal") {
- var sessionIds = {}; // Collect the sessionsIds of all selected entities, w/o duplicates.
- selectionManager.selections.forEach(function (id) {
- var lastEditedBy = Entities.getEntityProperties(id, 'lastEditedBy').lastEditedBy;
- if (lastEditedBy) {
- sessionIds[lastEditedBy] = true;
- }
- });
- var dedupped = Object.keys(sessionIds);
- if (!selectionManager.selections.length) {
- Window.alert('No objects selected.');
- } else if (!dedupped.length) {
- Window.alert('There were no recent users of the ' + selectionManager.selections.length + ' selected objects.');
- } else {
- // No need to subscribe if we're just sending.
- Messages.sendMessage('com.highfidelity.pal', JSON.stringify({method: 'select', params: [dedupped, true, false]}), 'local');
- }
} else if (data.type === "delete") {
deleteSelectedEntities();
} else if (data.type === "toggleLocked") {
diff --git a/scripts/system/create/entityList/html/entityList.html b/scripts/system/create/entityList/html/entityList.html
index 3e17a66df5..b7ff7cd4e4 100644
--- a/scripts/system/create/entityList/html/entityList.html
+++ b/scripts/system/create/entityList/html/entityList.html
@@ -29,7 +29,6 @@
-
diff --git a/scripts/system/create/entityList/html/js/entityList.js b/scripts/system/create/entityList/html/js/entityList.js
index b15c4e6703..b70e53ce15 100644
--- a/scripts/system/create/entityList/html/js/entityList.js
+++ b/scripts/system/create/entityList/html/js/entityList.js
@@ -209,7 +209,6 @@ let elEntityTable,
elFilterInView,
elFilterRadius,
elExport,
- elPal,
elSelectedEntitiesCount,
elVisibleEntitiesCount,
elNoEntitiesMessage,
@@ -254,7 +253,6 @@ function loaded() {
elFilterInView = document.getElementById("filter-in-view");
elFilterRadius = document.getElementById("filter-radius");
elExport = document.getElementById("export");
- elPal = document.getElementById("pal");
elSelectedEntitiesCount = document.getElementById("selected-entities-count");
elVisibleEntitiesCount = document.getElementById("visible-entities-count");
elNoEntitiesMessage = document.getElementById("no-entities");
@@ -272,9 +270,6 @@ function loaded() {
elExport.onclick = function() {
EventBridge.emitWebEvent(JSON.stringify({ type: 'export'}));
};
- elPal.onclick = function() {
- EventBridge.emitWebEvent(JSON.stringify({ type: 'pal' }));
- };
elDelete.onclick = function() {
EventBridge.emitWebEvent(JSON.stringify({ type: 'delete' }));
};
@@ -541,8 +536,9 @@ function loaded() {
function onRowClicked(clickEvent) {
let entityID = this.dataset.entityID;
let selection = [entityID];
+ let controlKey = window.navigator.platform.startsWith("Mac") ? clickEvent.metaKey : clickEvent.ctrlKey;
- if (clickEvent.ctrlKey) {
+ if (controlKey) {
let selectedIndex = selectedEntities.indexOf(entityID);
if (selectedIndex >= 0) {
selection = [];
@@ -573,7 +569,7 @@ function loaded() {
selection.reverse();
}
}
- } else if (!clickEvent.ctrlKey && !clickEvent.shiftKey && selectedEntities.length === 1) {
+ } else if (!controlKey && !clickEvent.shiftKey && selectedEntities.length === 1) {
// if reselecting the same entity then start renaming it
if (selectedEntities[0] === entityID) {
if (renameLastBlur && renameLastEntityID === entityID && (Date.now() - renameLastBlur) < RENAME_COOLDOWN) {
diff --git a/scripts/system/create/entityProperties/html/js/entityProperties.js b/scripts/system/create/entityProperties/html/js/entityProperties.js
index 76264429ac..e581fbd194 100644
--- a/scripts/system/create/entityProperties/html/js/entityProperties.js
+++ b/scripts/system/create/entityProperties/html/js/entityProperties.js
@@ -398,8 +398,8 @@ const GROUPS = [
{
label: "Base",
type: "number-draggable",
- min: -1000,
- max: 1000,
+ min: -16000,
+ max: 16000,
step: 1,
decimals: 0,
unit: "m",
@@ -409,8 +409,8 @@ const GROUPS = [
{
label: "Ceiling",
type: "number-draggable",
- min: -1000,
- max: 5000,
+ min: -16000,
+ max: 16000,
step: 1,
decimals: 0,
unit: "m",