// // entityCollisionExample.js // examples // // Created by Howard Stearns on 5/25/15. // Copyright 2015 High Fidelity, Inc. // // This is an example script that demonstrates use of the per-entity event handlers. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // function someCollisionFunction(entityA, entityB, collision) { print("collision: " + JSON.stringify({a: entityA, b: entityB, c: collision})); } var position = Vec3.sum(MyAvatar.position, Quat.getFront(MyAvatar.orientation)); var properties = { type: "Box", position: position, dynamic: true, color: { red: 200, green: 0, blue: 0 } }; var collider = Entities.addEntity(properties); var armed = false; function togglePrinting() { print('togglePrinting from ' + armed + ' on ' + collider); if (armed) { Script.removeEventHandler(collider, "collisionWithEntity", someCollisionFunction); } else { Script.addEventHandler(collider, "collisionWithEntity", someCollisionFunction); } armed = !armed; print("Red box " + (armed ? "will" : "will not") + " print on collision."); } togglePrinting(); properties.position.y += 0.2; properties.color.blue += 200; // A handy target for the collider to hit. var target = Entities.addEntity(properties); properties.position.y += 0.2; properties.color.green += 200; var button = Entities.addEntity(properties); Script.addEventHandler(button, "clickReleaseOnEntity", togglePrinting); Script.scriptEnding.connect(function () { Entities.deleteEntity(collider); Entities.deleteEntity(target); Entities.deleteEntity(button); });