From 986318ccfdfe367c08756dbde6ad9caff03bdf41 Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Mon, 14 May 2018 16:33:28 -0700 Subject: [PATCH] Adding preliminary scripts to repro getChildren issue. --- scripts/defaultScripts.js | 4 ++- scripts/system/createobject.js | 60 ++++++++++++++++++++++++++++++++++ scripts/system/deleteobject.js | 41 +++++++++++++++++++++++ 3 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 scripts/system/createobject.js create mode 100644 scripts/system/deleteobject.js diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index 71755e3abb..13994a7e3c 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -30,7 +30,9 @@ var DEFAULT_SCRIPTS_COMBINED = [ "system/dialTone.js", "system/firstPersonHMD.js", "system/tablet-ui/tabletUI.js", - "system/emote.js" + "system/emote.js", + "system/createobject.js", + "system/deleteobject.js" ]; var DEFAULT_SCRIPTS_SEPARATE = [ "system/controllers/controllerScripts.js" diff --git a/scripts/system/createobject.js b/scripts/system/createobject.js new file mode 100644 index 0000000000..527bf64315 --- /dev/null +++ b/scripts/system/createobject.js @@ -0,0 +1,60 @@ +(function(){ + var button; + var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); + + function createEntity(description, position, parent) { + var entity = Entities.addEntity({ + type: "Sphere", + position: position, + dimensions: Vec3.HALF, + dynamic: true, + collisionless: true, + parentID: parent, + lifetime: 300 // Delete after 5 minutes. + }); + print(description + ": " + entity); + return entity; + } + + + function createBabies() { + var position = Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, {x: 0, y: 2, z: -5})); + var root = createEntity("Root", position, Uuid.NULL); + var ctr; + var avatarChildren = []; + // make five children. + for(var ctr = 0; ctr < 5; ctr++) { + avatarChildren.append(CreateEntity("Child" + ctr, Vec3.sum(position, { x: ctr, y: -1, z: ctr }), root)); + }} + + button = tablet.addButton({ + icon: "icons/tablet-icons/clap-i.svg", + text: "Create OBJ", + sortOrder: 1 + }); + + button.clicked.connect(createBabies); + + Script.scriptEnding.connect(function () { + button.clicked.disconnect(createBabies); + if (tablet) { + tablet.removeButton(button); + } + }); + +/* var entityID = Entities.addEntity({*/ + //type: "Box", + //position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0.75, z: -5 })), + //dimensions: { x: 0.5, y: 0.5, z: 0.5 }, + //dynamic: true, + //collisionless: false, + //userData: "{ \"grabbableKey\": { \"grabbable\": true, \"kinematic\": false } }", + //lifetime: 300 // Delete after 5 minutes. + //}); + + /*var actionID = Entities.addAction("slider", entityID, {*/ + //axis: { x: 0, y: 1, z: 0 }, + //linearLow: 0, + //linearHigh: 0.6 + /*});*/ +}()); diff --git a/scripts/system/deleteobject.js b/scripts/system/deleteobject.js new file mode 100644 index 0000000000..2c366b5546 --- /dev/null +++ b/scripts/system/deleteobject.js @@ -0,0 +1,41 @@ +(function(){ + var button; + var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); + + function destroyBabies() { + var avatarEntityID = + for(var ctr = 0; ctr < getChildrenIDs(); ctr++) { + avatarChildren.append(CreateEntity("Child" + ctr, Vec3.sum(position, { x: ctr, y: -1, z: ctr }), root)); + }} + + button = tablet.addButton({ + icon: "icons/tablet-icons/clap-i.svg", + text: "Destroy OBJ", + sortOrder: 1 + }); + + button.clicked.connect(createBabies); + + Script.scriptEnding.connect(function () { + button.clicked.disconnect(createBabies); + if (tablet) { + tablet.removeButton(button); + } + }); + +/* var entityID = Entities.addEntity({*/ + //type: "Box", + //position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0.75, z: -5 })), + //dimensions: { x: 0.5, y: 0.5, z: 0.5 }, + //dynamic: true, + //collisionless: false, + //userData: "{ \"grabbableKey\": { \"grabbable\": true, \"kinematic\": false } }", + //lifetime: 300 // Delete after 5 minutes. + //}); + + /*var actionID = Entities.addAction("slider", entityID, {*/ + //axis: { x: 0, y: 1, z: 0 }, + //linearLow: 0, + //linearHigh: 0.6 + /*});*/ +}());