diff --git a/scripts/system/html/entityProperties.html b/scripts/system/html/entityProperties.html
index 8d63261f4c..9614f8b8fe 100644
--- a/scripts/system/html/entityProperties.html
+++ b/scripts/system/html/entityProperties.html
@@ -126,8 +126,8 @@
-
-
+
+
diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js
index 8b876304b7..d2cea2d394 100644
--- a/scripts/system/html/js/entityProperties.js
+++ b/scripts/system/html/js/entityProperties.js
@@ -308,9 +308,10 @@ function setUserDataFromEditor(noUpdate) {
}
}
-function multiDataUpdater(groupName, updateKeyPair, userDataElement, defaults) {
+function multiDataUpdater(groupName, updateKeyPair, userDataElement, defaults, removeKeys) {
var properties = {};
var parsedData = {};
+ var keysToBeRemoved = removeKeys ? removeKeys : [];
try {
if ($('#userdata-editor').css('height') !== "0px") {
// if there is an expanded, we want to use its json.
@@ -342,6 +343,12 @@ function multiDataUpdater(groupName, updateKeyPair, userDataElement, defaults) {
parsedData[groupName][key] = defaults[key];
}
});
+ keysToBeRemoved.forEach(function(key) {
+ if (parsedData[groupName].hasOwnProperty(key)) {
+ delete parsedData[groupName][key];
+ }
+ });
+
if (Object.keys(parsedData[groupName]).length === 0) {
delete parsedData[groupName];
}
@@ -355,11 +362,11 @@ function multiDataUpdater(groupName, updateKeyPair, userDataElement, defaults) {
updateProperties(properties);
}
-function userDataChanger(groupName, keyName, values, userDataElement, defaultValue) {
+function userDataChanger(groupName, keyName, values, userDataElement, defaultValue, removeKeys) {
var val = {}, def = {};
val[keyName] = values;
def[keyName] = defaultValue;
- multiDataUpdater(groupName, val, userDataElement, def);
+ multiDataUpdater(groupName, val, userDataElement, def, removeKeys);
}
function setMaterialDataFromEditor(noUpdate) {
@@ -711,7 +718,7 @@ function loaded() {
var elCloneableLifetime = document.getElementById("property-cloneable-lifetime");
var elCloneableLimit = document.getElementById("property-cloneable-limit");
- var elWantsTrigger = document.getElementById("property-wants-trigger");
+ var elTriggerable = document.getElementById("property-triggerable");
var elIgnoreIK = document.getElementById("property-ignore-ik");
var elLifetime = document.getElementById("property-lifetime");
@@ -1234,7 +1241,7 @@ function loaded() {
elGrabbable.checked = properties.dynamic;
- elWantsTrigger.checked = false;
+ elTriggerable.checked = false;
elIgnoreIK.checked = true;
elCloneable.checked = properties.cloneable;
@@ -1257,10 +1264,12 @@ function loaded() {
} else {
elGrabbable.checked = true;
}
- if ("wantsTrigger" in grabbableData) {
- elWantsTrigger.checked = grabbableData.wantsTrigger;
+ if ("triggerable" in grabbableData) {
+ elTriggerable.checked = grabbableData.triggerable;
+ } else if ("wantsTrigger" in grabbableData) {
+ elTriggerable.checked = grabbableData.wantsTrigger;
} else {
- elWantsTrigger.checked = false;
+ elTriggerable.checked = false;
}
if ("ignoreIK" in grabbableData) {
elIgnoreIK.checked = grabbableData.ignoreIK;
@@ -1273,7 +1282,7 @@ function loaded() {
}
if (!grabbablesSet) {
elGrabbable.checked = true;
- elWantsTrigger.checked = false;
+ elTriggerable.checked = false;
elIgnoreIK.checked = true;
elCloneable.checked = false;
}
@@ -1647,8 +1656,8 @@ function loaded() {
elCloneableLifetime.addEventListener('change', createEmitNumberPropertyUpdateFunction('cloneLifetime'));
elCloneableLimit.addEventListener('change', createEmitNumberPropertyUpdateFunction('cloneLimit'));
- elWantsTrigger.addEventListener('change', function() {
- userDataChanger("grabbableKey", "wantsTrigger", elWantsTrigger, elUserData, false);
+ elTriggerable.addEventListener('change', function() {
+ userDataChanger("grabbableKey", "triggerable", elTriggerable, elUserData, false, ['wantsTrigger']);
});
elIgnoreIK.addEventListener('change', function() {
userDataChanger("grabbableKey", "ignoreIK", elIgnoreIK, elUserData, true);