From 7a3443968d5547a0e69c9384c41373390344f845 Mon Sep 17 00:00:00 2001 From: ericrius1 Date: Tue, 16 Feb 2016 15:55:11 -0800 Subject: [PATCH 1/7] added collides with property --- examples/html/entityProperties.html | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/examples/html/entityProperties.html b/examples/html/entityProperties.html index 4b4c5a398e..1dfd5643bc 100644 --- a/examples/html/entityProperties.html +++ b/examples/html/entityProperties.html @@ -264,6 +264,7 @@ var elCollisionless = document.getElementById("property-collisionless"); var elDynamic = document.getElementById("property-dynamic" ); var elCollisionSoundURL = document.getElementById("property-collision-sound-url"); + var elCollidesWith = document.getElementById("property-collides-with"); var elLifetime = document.getElementById("property-lifetime"); var elScriptURL = document.getElementById("property-script-url"); var elScriptTimestamp = document.getElementById("property-script-timestamp"); @@ -482,6 +483,7 @@ elCollisionless.checked = properties.collisionless; elDynamic.checked = properties.dynamic; elCollisionSoundURL.value = properties.collisionSoundURL; + elCollidesWith.value = properties.collidesWith; elLifetime.value = properties.lifetime; elScriptURL.value = properties.script; elScriptTimestamp.value = properties.scriptTimestamp; @@ -703,6 +705,7 @@ elCollisionless.addEventListener('change', createEmitCheckedPropertyUpdateFunction('collisionless')); elDynamic.addEventListener('change', createEmitCheckedPropertyUpdateFunction('dynamic')); elCollisionSoundURL.addEventListener('change', createEmitTextPropertyUpdateFunction('collisionSoundURL')); + elCollidesWith.addEventListener('change', createEmitTextPropertyUpdateFunction('collidesWith')); elLifetime.addEventListener('change', createEmitNumberPropertyUpdateFunction('lifetime')); elScriptURL.addEventListener('change', createEmitTextPropertyUpdateFunction('script')); @@ -1386,6 +1389,13 @@ +
+
collidesWith
+
+ +
+
+
Collision Sound URL
From 168fb67d675971e9133d76de8ba26db9b5f3fc77 Mon Sep 17 00:00:00 2001 From: ericrius1 Date: Tue, 16 Feb 2016 18:19:12 -0800 Subject: [PATCH 2/7] making collidesWith a checkbox --- examples/html/entityProperties.html | 49 ++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/examples/html/entityProperties.html b/examples/html/entityProperties.html index 1dfd5643bc..c4a46d2fa5 100644 --- a/examples/html/entityProperties.html +++ b/examples/html/entityProperties.html @@ -264,7 +264,6 @@ var elCollisionless = document.getElementById("property-collisionless"); var elDynamic = document.getElementById("property-dynamic" ); var elCollisionSoundURL = document.getElementById("property-collision-sound-url"); - var elCollidesWith = document.getElementById("property-collides-with"); var elLifetime = document.getElementById("property-lifetime"); var elScriptURL = document.getElementById("property-script-url"); var elScriptTimestamp = document.getElementById("property-script-timestamp"); @@ -483,7 +482,6 @@ elCollisionless.checked = properties.collisionless; elDynamic.checked = properties.dynamic; elCollisionSoundURL.value = properties.collisionSoundURL; - elCollidesWith.value = properties.collidesWith; elLifetime.value = properties.lifetime; elScriptURL.value = properties.script; elScriptTimestamp.value = properties.scriptTimestamp; @@ -705,7 +703,6 @@ elCollisionless.addEventListener('change', createEmitCheckedPropertyUpdateFunction('collisionless')); elDynamic.addEventListener('change', createEmitCheckedPropertyUpdateFunction('dynamic')); elCollisionSoundURL.addEventListener('change', createEmitTextPropertyUpdateFunction('collisionSoundURL')); - elCollidesWith.addEventListener('change', createEmitTextPropertyUpdateFunction('collidesWith')); elLifetime.addEventListener('change', createEmitNumberPropertyUpdateFunction('lifetime')); elScriptURL.addEventListener('change', createEmitTextPropertyUpdateFunction('script')); @@ -1389,12 +1386,48 @@
-
-
collidesWith
-
- +
+
collidesWith
+ +
+ Static + + +
-
+ +
+ dynamic + + + +
+ +
+ kinematic + + + +
+ +
+ myAvatar + + + +
+ +
+ otherAvatar + + + +
+ + + + +
Collision Sound URL
From 0f8f67ef0b6a1be1b4c3f774958eb47b033ef559 Mon Sep 17 00:00:00 2001 From: ericrius1 Date: Tue, 16 Feb 2016 19:34:32 -0800 Subject: [PATCH 3/7] removing dynamic. need to add others --- examples/html/entityProperties.html | 49 ++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/examples/html/entityProperties.html b/examples/html/entityProperties.html index c4a46d2fa5..f738925240 100644 --- a/examples/html/entityProperties.html +++ b/examples/html/entityProperties.html @@ -47,6 +47,17 @@ ); }; } + + function createEmitCheckedToStringPropertyUpdateFunction(checkboxElement, name, propertyName) { + var newString = ""; + if (checkboxElement.checked) { + newString += name + ""; + } else { + + } + + } + function createEmitGroupCheckedPropertyUpdateFunction(group, propertyName) { return function () { var properties = {}; @@ -263,6 +274,11 @@ var elDensity = document.getElementById("property-density"); var elCollisionless = document.getElementById("property-collisionless"); var elDynamic = document.getElementById("property-dynamic" ); + var elCollideStatic = document.getElementById("property-collide-static"); + var elCollideDynamic = document.getElementById("property-collide-dynamic"); + var elCollideKinematic = document.getElementById("property-collide-kinematic"); + var elCollideMyAvatar = document.getElementById("property-collide-myAvatar"); + var elCollideOtherAvatar = document.getElementById("property-collide-otherAvatar"); var elCollisionSoundURL = document.getElementById("property-collision-sound-url"); var elLifetime = document.getElementById("property-lifetime"); var elScriptURL = document.getElementById("property-script-url"); @@ -378,6 +394,7 @@ var elPreviewCameraButton = document.getElementById("preview-camera-button"); if (window.EventBridge !== undefined) { + var properties; EventBridge.scriptEventReceived.connect(function(data) { data = JSON.parse(data); if (data.type == "update") { @@ -419,7 +436,7 @@ var selected = false; } - var properties = data.selections[0].properties; + properties = data.selections[0].properties; elID.innerHTML = properties.id; @@ -433,6 +450,7 @@ } else { enableChildren(document.getElementById("properties-list"), 'input'); } + elName.value = properties.name; @@ -481,6 +499,16 @@ elDensity.value = properties.density.toFixed(4); elCollisionless.checked = properties.collisionless; elDynamic.checked = properties.dynamic; + + + + elCollideStatic.checked = properties.collidesWith.indexOf("static") > -1; + elCollideKinematic.checked = properties.collidesWith.indexOf("kinematic") > -1; + elCollideDynamic.checked = properties.collidesWith.indexOf("dynamic") > -1; + elCollideMyAvatar.checked = properties.collidesWith.indexOf("myAvatar") > -1; + elCollideOtherAvatar.checked = properties.collidesWith.indexOf("otherAvatar") > -1; + + elCollisionSoundURL.value = properties.collisionSoundURL; elLifetime.value = properties.lifetime; elScriptURL.value = properties.script; @@ -702,6 +730,25 @@ elDensity.addEventListener('change', createEmitNumberPropertyUpdateFunction('density')); elCollisionless.addEventListener('change', createEmitCheckedPropertyUpdateFunction('collisionless')); elDynamic.addEventListener('change', createEmitCheckedPropertyUpdateFunction('dynamic')); + + elCollideDynamic.addEventListener('change', function() { + if (elCollideDynamic.checked) { + if (properties.collidesWith.indexOf('dynamic') === -1) { + // We just added dynamic to list + properties.collidesWith += "dynamic," + console.log("Just added dynamic"); + } + } else { + // We've unchecked, so remove + properties.collidesWith = properties.collidesWith.replace("dynamic,", ""); + console.log("WE REMOVED SHIT"); + } + debugger + + + }); + + elCollisionSoundURL.addEventListener('change', createEmitTextPropertyUpdateFunction('collisionSoundURL')); elLifetime.addEventListener('change', createEmitNumberPropertyUpdateFunction('lifetime')); From f85916e8083ba1425afae190dd93dd1c974378b2 Mon Sep 17 00:00:00 2001 From: ericrius1 Date: Wed, 17 Feb 2016 10:27:53 -0800 Subject: [PATCH 4/7] checkbox keeps getting checked... --- examples/edit.js | 1 + examples/html/entityProperties.html | 47 +++++++++++++++++++++-------- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/examples/edit.js b/examples/edit.js index 6d170ab254..e89ad24a9c 100644 --- a/examples/edit.js +++ b/examples/edit.js @@ -1542,6 +1542,7 @@ PropertiesTool = function(opts) { print(data.message); } } else if (data.type == "update") { + print("EBL WE GOT AN UPDATE! " + JSON.stringify(data)) selectionManager.saveProperties(); if (selectionManager.selections.length > 1) { properties = { diff --git a/examples/html/entityProperties.html b/examples/html/entityProperties.html index f738925240..0ae8e07807 100644 --- a/examples/html/entityProperties.html +++ b/examples/html/entityProperties.html @@ -731,21 +731,44 @@ elCollisionless.addEventListener('change', createEmitCheckedPropertyUpdateFunction('collisionless')); elDynamic.addEventListener('change', createEmitCheckedPropertyUpdateFunction('dynamic')); - elCollideDynamic.addEventListener('change', function() { - if (elCollideDynamic.checked) { - if (properties.collidesWith.indexOf('dynamic') === -1) { - // We just added dynamic to list - properties.collidesWith += "dynamic," - console.log("Just added dynamic"); + + function updateCheckedSubProperty(propertyName, propertyValue, subPropertyElement, subPropertyString) { + console.log("UPDATE CHECKED PROP") + if (subPropertyElement.checked) { + if (propertyValue.indexOf(subPropertyString)) { + propertyValue += subPropertyString + ','; } } else { - // We've unchecked, so remove - properties.collidesWith = properties.collidesWith.replace("dynamic,", ""); - console.log("WE REMOVED SHIT"); + // We've unchecked, so remove + propertyValue = propertyValue.replace(subPropertyString + ",", ""); } - debugger - - + + EventBridge.emitWebEvent( + JSON.stringify({ + type: "update", + properties: {propertyName: propertyValue} + }) + ); + + } + + + elCollideDynamic.addEventListener('change', function() { + updateCheckedSubProperty("collidesWith", properties.collidesWith, elCollideDynamic, 'dynamic'); + }); + + elCollideKinematic.addEventListener('change', function() { + updateCheckedSubProperty("collidesWith", properties.collidesWith, elCollideKinematic, 'kinematic'); + }); + + elCollideStatic.addEventListener('change', function() { + updateCheckedSubProperty("collidesWith", properties.collidesWith, elCollideStatic, 'static'); + }); + elCollideMyAvatar.addEventListener('change', function() { + updateCheckedSubProperty("collidesWith", properties.collidesWith, elCollideMyAvatar, 'myAvatar'); + }); + elCollideOtherAvatar.addEventListener('change', function() { + updateCheckedSubProperty("collidesWith", properties.collidesWith, elCollideOtherAvatar, 'otherAvatar'); }); From 94fdf6b091efbc680f696454433a539d810414b3 Mon Sep 17 00:00:00 2001 From: ericrius1 Date: Wed, 17 Feb 2016 11:59:14 -0800 Subject: [PATCH 5/7] checkboxes working --- examples/html/entityProperties.html | 9 ++++++--- examples/libraries/entityList.js | 5 +++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/examples/html/entityProperties.html b/examples/html/entityProperties.html index 0ae8e07807..502daa18fa 100644 --- a/examples/html/entityProperties.html +++ b/examples/html/entityProperties.html @@ -501,7 +501,7 @@ elDynamic.checked = properties.dynamic; - + console.log('STARTCHECK', properties.collidesWith) elCollideStatic.checked = properties.collidesWith.indexOf("static") > -1; elCollideKinematic.checked = properties.collidesWith.indexOf("kinematic") > -1; elCollideDynamic.checked = properties.collidesWith.indexOf("dynamic") > -1; @@ -743,17 +743,20 @@ propertyValue = propertyValue.replace(subPropertyString + ",", ""); } + var _properties ={} + _properties[propertyName] = propertyValue; + EventBridge.emitWebEvent( JSON.stringify({ type: "update", - properties: {propertyName: propertyValue} + properties: _properties }) ); } - elCollideDynamic.addEventListener('change', function() { + console.log("CHANGE!") updateCheckedSubProperty("collidesWith", properties.collidesWith, elCollideDynamic, 'dynamic'); }); diff --git a/examples/libraries/entityList.js b/examples/libraries/entityList.js index b37ba58737..6c6c0aaecb 100644 --- a/examples/libraries/entityList.js +++ b/examples/libraries/entityList.js @@ -8,12 +8,16 @@ EntityListTool = function(opts) { title: 'Entities', source: url, toolWindow: true }); + + var searchRadius = 100; var visible = false; webView.setVisible(visible); + that.webView = webView; + that.setVisible = function(newVisible) { visible = newVisible; webView.setVisible(visible); @@ -71,6 +75,7 @@ EntityListTool = function(opts) { webView.eventBridge.emitScriptEvent(JSON.stringify(data)); } + webView.eventBridge.webEventReceived.connect(function(data) { data = JSON.parse(data); if (data.type == "selectionUpdate") { From 19cd3ec15290ee39c003b1dfa15367e76330e0f1 Mon Sep 17 00:00:00 2001 From: ericrius1 Date: Wed, 17 Feb 2016 13:12:17 -0800 Subject: [PATCH 6/7] checkboxes working --- examples/edit.js | 1 - examples/html/entityProperties.html | 118 ++++++++++++++-------------- examples/html/style.css | 4 + 3 files changed, 62 insertions(+), 61 deletions(-) diff --git a/examples/edit.js b/examples/edit.js index e89ad24a9c..6d170ab254 100644 --- a/examples/edit.js +++ b/examples/edit.js @@ -1542,7 +1542,6 @@ PropertiesTool = function(opts) { print(data.message); } } else if (data.type == "update") { - print("EBL WE GOT AN UPDATE! " + JSON.stringify(data)) selectionManager.saveProperties(); if (selectionManager.selections.length > 1) { properties = { diff --git a/examples/html/entityProperties.html b/examples/html/entityProperties.html index 502daa18fa..71c7aa0449 100644 --- a/examples/html/entityProperties.html +++ b/examples/html/entityProperties.html @@ -218,6 +218,28 @@ } }; + function updateCheckedSubProperty(propertyName, propertyValue, subPropertyElement, subPropertyString) { + if (subPropertyElement.checked) { + if (propertyValue.indexOf(subPropertyString)) { + propertyValue += subPropertyString + ','; + } + } else { + // We've unchecked, so remove + propertyValue = propertyValue.replace(subPropertyString + ",", ""); + } + + var _properties ={} + _properties[propertyName] = propertyValue; + + EventBridge.emitWebEvent( + JSON.stringify({ + type: "update", + properties: _properties + }) + ); + + } + function loaded() { openEventBridge(function() { var allSections = []; @@ -501,7 +523,6 @@ elDynamic.checked = properties.dynamic; - console.log('STARTCHECK', properties.collidesWith) elCollideStatic.checked = properties.collidesWith.indexOf("static") > -1; elCollideKinematic.checked = properties.collidesWith.indexOf("kinematic") > -1; elCollideDynamic.checked = properties.collidesWith.indexOf("dynamic") > -1; @@ -732,31 +753,9 @@ elDynamic.addEventListener('change', createEmitCheckedPropertyUpdateFunction('dynamic')); - function updateCheckedSubProperty(propertyName, propertyValue, subPropertyElement, subPropertyString) { - console.log("UPDATE CHECKED PROP") - if (subPropertyElement.checked) { - if (propertyValue.indexOf(subPropertyString)) { - propertyValue += subPropertyString + ','; - } - } else { - // We've unchecked, so remove - propertyValue = propertyValue.replace(subPropertyString + ",", ""); - } - var _properties ={} - _properties[propertyName] = propertyValue; - - EventBridge.emitWebEvent( - JSON.stringify({ - type: "update", - properties: _properties - }) - ); - - } elCollideDynamic.addEventListener('change', function() { - console.log("CHANGE!") updateCheckedSubProperty("collidesWith", properties.collidesWith, elCollideDynamic, 'dynamic'); }); @@ -1459,46 +1458,45 @@
-
-
collidesWith
+ +
Collides With:
+
+
+ Static + + + +
-
- Static - - - +
+ dynamic + + + +
+ +
+ kinematic + + + +
+ +
+ myAvatar + + + +
+ +
+ otherAvatar + + + +
-
- dynamic - - - -
- -
- kinematic - - - -
- -
- myAvatar - - - -
- -
- otherAvatar - - - -
- - -
diff --git a/examples/html/style.css b/examples/html/style.css index 5b794cbfec..83982dab15 100644 --- a/examples/html/style.css +++ b/examples/html/style.css @@ -263,6 +263,10 @@ table#properties-list { border-bottom: 0.75pt solid #e5e5e5; } +.sub-props-checkbox-group { + margin-left: 20px; +} + #properties-list .label { font-weight: bold; overflow: hidden; From 89039747a29cd3868e376b6244955ce1371aedfc Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Wed, 17 Feb 2016 16:22:14 -0800 Subject: [PATCH 7/7] Update entityProperties.html lowercase 'static' like other props --- examples/html/entityProperties.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/html/entityProperties.html b/examples/html/entityProperties.html index 71c7aa0449..c5957fc27e 100644 --- a/examples/html/entityProperties.html +++ b/examples/html/entityProperties.html @@ -1462,7 +1462,7 @@
Collides With:
- Static + static @@ -1698,4 +1698,4 @@
- \ No newline at end of file +