Move grab pseudo-properties (userData) into first-class EntityItemProperties.

This commit is contained in:
Seth Alves 2018-08-29 12:35:14 -07:00 committed by David Back
parent f13008dbe9
commit 7f150e6ed3
2 changed files with 6 additions and 59 deletions

View file

@ -27,6 +27,7 @@
<body onload='loaded();'>
<div id="properties-list">
<!-- each property is added at runtime in entityProperties -->
</div>
</body>

View file

@ -1059,13 +1059,13 @@ const GROUPS = [
{
label: "Grabbable",
type: "bool",
propertyID: "grabbable",
propertyID: "grab.grabbable",
column: 1,
},
{
label: "Triggerable",
type: "bool",
propertyID: "triggerable",
propertyID: "grab.triggerable",
column: 2,
},
{
@ -1075,9 +1075,9 @@ const GROUPS = [
column: 1,
},
{
label: "Ignore inverse kinematics",
label: "Follow Controller",
type: "bool",
propertyID: "ignoreIK",
propertyID: "grab.grabFollowsController",
column: 2,
},
{
@ -2767,7 +2767,7 @@ function loaded() {
showUserDataTextArea();
showSaveUserDataButton();
showNewJSONEditorButton();
deleteJSONMaterialEditor();
getPropertyInputElement("materialData").value = "";
showMaterialDataTextArea();
@ -2937,46 +2937,6 @@ function loaded() {
}
}
let elGrabbable = getPropertyInputElement("grabbable");
let elTriggerable = getPropertyInputElement("triggerable");
let elIgnoreIK = getPropertyInputElement("ignoreIK");
elGrabbable.checked = getPropertyInputElement("dynamic").checked;
elTriggerable.checked = false;
elIgnoreIK.checked = true;
let grabbablesSet = false;
let parsedUserData = {};
try {
parsedUserData = JSON.parse(selectedEntityProperties.userData);
if ("grabbableKey" in parsedUserData) {
grabbablesSet = true;
let grabbableData = parsedUserData.grabbableKey;
if ("grabbable" in grabbableData) {
elGrabbable.checked = grabbableData.grabbable;
} else {
elGrabbable.checked = true;
}
if ("triggerable" in grabbableData) {
elTriggerable.checked = grabbableData.triggerable;
} else if ("wantsTrigger" in grabbableData) {
elTriggerable.checked = grabbableData.wantsTrigger;
} else {
elTriggerable.checked = false;
}
if ("ignoreIK" in grabbableData) {
elIgnoreIK.checked = grabbableData.ignoreIK;
} else {
elIgnoreIK.checked = true;
}
}
} catch (e) {
// TODO: What should go here?
}
if (!grabbablesSet) {
elGrabbable.checked = true;
elTriggerable.checked = false;
elIgnoreIK.checked = true;
}
if (selectedEntityProperties.type === "Image") {
let imageLink = JSON.parse(selectedEntityProperties.textures)["tex.picture"];
getPropertyInputElement("image").value = imageLink;
@ -3119,20 +3079,6 @@ function loaded() {
elDiv.insertBefore(elStaticMaterialData, elMaterialData);
elDiv.insertBefore(elMaterialDataEditor, elMaterialData);
// User Data Fields
let elGrabbable = getPropertyInputElement("grabbable");
let elTriggerable = getPropertyInputElement("triggerable");
let elIgnoreIK = getPropertyInputElement("ignoreIK");
elGrabbable.addEventListener('change', function() {
userDataChanger("grabbableKey", "grabbable", elGrabbable, elUserData, true);
});
elTriggerable.addEventListener('change', function() {
userDataChanger("grabbableKey", "triggerable", elTriggerable, elUserData, false, ['wantsTrigger']);
});
elIgnoreIK.addEventListener('change', function() {
userDataChanger("grabbableKey", "ignoreIK", elIgnoreIK, elUserData, true);
});
// Special Property Callbacks
let elParentMaterialNameString = getPropertyInputElement("materialNameToReplace");
let elParentMaterialNameNumber = getPropertyInputElement("submeshToReplace");