# Conflicts: # CMakeLists.txt # README.md # cmake/externals/glad32es/CMakeLists.txt # cmake/externals/glad41/CMakeLists.txt # cmake/externals/glad45/CMakeLists.txt # cmake/externals/polyvox/CMakeLists.txt # cmake/externals/quazip/CMakeLists.txt # cmake/externals/vhacd/CMakeLists.txt # cmake/init.cmake # cmake/ports/hifi-deps/CONTROL # cmake/ports/sdl2/CONTROL # cmake/ports/sdl2/disable-hidapi-for-uwp.patch # cmake/ports/sdl2/enable-winrt-cmake.patch # cmake/ports/sdl2/fix-arm64-headers.patch # cmake/ports/sdl2/fix-x86-windows.patch # cmake/ports/sdl2/portfile.cmake # cmake/ports/sdl2/vcpkg-cmake-wrapper.cmake # cmake/ports/tbb/portfile.cmake # hifi_vcpkg.py # interface/src/avatar/MyAvatar.h # libraries/avatars-renderer/src/avatars-renderer/Avatar.h # libraries/avatars/src/AvatarData.h # libraries/entities-renderer/src/RenderableEntityItem.h # libraries/entities/src/EntityItem.cpp # libraries/entities/src/EntityItem.h # libraries/fbx/src/GLTFSerializer.cpp # libraries/graphics-scripting/src/graphics-scripting/Forward.h # libraries/networking/src/AddressManager.cpp # libraries/networking/src/DomainHandler.h # libraries/procedural/src/procedural/ProceduralMaterialCache.cpp # libraries/render-utils/src/HighlightEffect.cpp # libraries/render-utils/src/MeshPartPayload.cpp # libraries/render-utils/src/Model.cpp # libraries/render-utils/src/RenderShadowTask.cpp # libraries/script-engine/src/WebSocketClass.cpp
Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 403 files). Show all
Unified · Split
| @@ -736,6 +736,13 @@ void ScriptEngine::init() { · 735 unmodified lines | ||
| 736 | 736 | QScriptValue webSocketConstructorValue = newFunction(WebSocketClass::constructor); |
| 737 | 737 | globalObject().setProperty("WebSocket", webSocketConstructorValue); |
| 738 | 738 | |
| 739 | + /**jsdoc | |
| 740 | + * Prints a message to the program log and emits {@link Script.printedMessage}. | |
| 741 | + * The message logged is the message values separated by spaces. | |
| 742 | + * <p>Alternatively, you can use {@link Script.print} or one of the {@link console} API methods.</p> | |
| 743 | + * @function print | |
| 744 | + * @param {...*} [message] - The message values to print. | |
| 745 | + */ | |
| 739 | 746 | globalObject().setProperty("print", newFunction(debugPrint)); |
| 740 | 747 | |
| 741 | 748 | QScriptValue audioEffectOptionsConstructorValue = newFunction(AudioEffectOptions::constructor); |
| @@ -1012,6 +1019,12 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 270 unmodified lines | ||
| 1012 | 1019 | }); |
| 1013 | 1020 | |
| 1014 | 1021 | // Two common cases of event handler, differing only in argument signature. |
| 1022 | + | |
| 1023 | + /**jsdoc | |
| 1024 | + * Called when an entity event occurs on an entity as registered with {@link Script.addEventHandler}. | |
| 1025 | + * @callback Script~entityEventCallback | |
| 1026 | + * @param {Uuid} entityID - The ID of the entity the event has occured on. | |
| 1027 | + */ | |
| 1015 | 1028 | using SingleEntityHandler = std::function<void(const EntityItemID&)>; |
| 1016 | 1029 | auto makeSingleEntityHandler = [this](QString eventName) -> SingleEntityHandler { |
| 1017 | 1030 | return [this, eventName](const EntityItemID& entityItemID) { |
| @@ -1019,6 +1032,12 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 1 unmodified line | ||
| 1019 | 1032 | }; |
| 1020 | 1033 | }; |
| 1021 | 1034 | |
| 1035 | + /**jsdoc | |
| 1036 | + * Called when a pointer event occurs on an entity as registered with {@link Script.addEventHandler}. | |
| 1037 | + * @callback Script~pointerEventCallback | |
| 1038 | + * @param {Uuid} entityID - The ID of the entity the event has occurred on. | |
| 1039 | + * @param {PointerEvent} pointerEvent - Details of the event. | |
| 1040 | + */ | |
| 1022 | 1041 | using PointerHandler = std::function<void(const EntityItemID&, const PointerEvent&)>; |
| 1023 | 1042 | auto makePointerHandler = [this](QString eventName) -> PointerHandler { |
| 1024 | 1043 | return [this, eventName](const EntityItemID& entityItemID, const PointerEvent& event) { |
| @@ -1028,6 +1047,13 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 3 unmodified lines | ||
| 1028 | 1047 | }; |
| 1029 | 1048 | }; |
| 1030 | 1049 | |
| 1050 | + /**jsdoc | |
| 1051 | + * Called when a collision event occurs on an entity as registered with {@link Script.addEventHandler}. | |
| 1052 | + * @callback Script~collisionEventCallback | |
| 1053 | + * @param {Uuid} entityA - The ID of one entity in the collision. | |
| 1054 | + * @param {Uuid} entityB - The ID of the other entity in the collision. | |
| 1055 | + * @param {Collision} collisionEvent - Details of the collision. | |
| 1056 | + */ | |
| 1031 | 1057 | using CollisionHandler = std::function<void(const EntityItemID&, const EntityItemID&, const Collision&)>; |
| 1032 | 1058 | auto makeCollisionHandler = [this](QString eventName) -> CollisionHandler { |
| 1033 | 1059 | return [this, eventName](const EntityItemID& idA, const EntityItemID& idB, const Collision& collision) { |
| @@ -1037,28 +1063,39 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 3 unmodified lines | ||
| 1037 | 1063 | }; |
| 1038 | 1064 | |
| 1039 | 1065 | /**jsdoc |
| 1040 | − * <p>The name of an entity event. When the entity event occurs, any function that has been registered for that event via | |
| 1041 | − * {@link Script.addEventHandler} is called with parameters per the entity event.</p> | |
| 1066 | + * <p>The name of an entity event. When the entity event occurs, any function that has been registered for that event | |
| 1067 | + * via {@link Script.addEventHandler} is called with parameters per the entity event.</p> | |
| 1042 | 1068 | * <table> |
| 1043 | 1069 | * <thead> |
| 1044 | − * <tr><th>Event Name</th><th>Entity Event</th></tr> | |
| 1070 | + * <tr><th>Event Name</th><th>Callback Type</th><th>Entity Event</th></tr> | |
| 1045 | 1071 | * </thead> |
| 1046 | 1072 | * <tbody> |
| 1047 | − * <tr><td><code>"enterEntity"</code></td><td>{@link Entities.enterEntity}</td></tr> | |
| 1048 | − * <tr><td><code>"leaveEntity"</code></td><td>{@link Entities.leaveEntity}</td></tr> | |
| 1049 | − * <tr><td><code>"mousePressOnEntity"</code></td><td>{@link Entities.mousePressOnEntity}</td></tr> | |
| 1050 | − * <tr><td><code>"mouseMoveOnEntity"</code></td><td>{@link Entities.mouseMoveOnEntity}</td></tr> | |
| 1051 | − * <tr><td><code>"mouseReleaseOnEntity"</code></td><td>{@link Entities.mouseReleaseOnEntity}</td></tr> | |
| 1052 | − * <tr><td><code>"clickDownOnEntity"</code></td><td>{@link Entities.clickDownOnEntity}</td></tr> | |
| 1053 | − * <tr><td><code>"holdingClickOnEntity"</code></td><td>{@link Entities.holdingClickOnEntity}</td></tr> | |
| 1054 | − * <tr><td><code>"clickReleaseOnEntity"</code></td><td>{@link Entities.clickReleaseOnEntity}</td></tr> | |
| 1055 | − * <tr><td><code>"hoverEnterEntity"</code></td><td>{@link Entities.hoverEnterEntity}</td></tr> | |
| 1056 | − * <tr><td><code>"hoverOverEntity"</code></td><td>{@link Entities.hoverOverEntity}</td></tr> | |
| 1057 | − * <tr><td><code>"hoverLeaveEntity"</code></td><td>{@link Entities.hoverLeaveEntity}</td></tr> | |
| 1058 | − * <tr><td><code>"collisionWithEntity"</code></td><td>{@link Entities.collisionWithEntity}</td></tr> | |
| 1073 | + * <tr><td><code>"enterEntity"</code></td><td>{@link Script~entityEventCallback|entityEventCallback}</td> | |
| 1074 | + * <td>{@link Entities.enterEntity}</td></tr> | |
| 1075 | + * <tr><td><code>"leaveEntity"</code></td><td>{@link Script~entityEventCallback|entityEventCallback}</td> | |
| 1076 | + * <td>{@link Entities.leaveEntity}</td></tr> | |
| 1077 | + * <tr><td><code>"mousePressOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1078 | + * <td>{@link Entities.mousePressOnEntity}</td></tr> | |
| 1079 | + * <tr><td><code>"mouseMoveOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1080 | + * <td>{@link Entities.mouseMoveOnEntity}</td></tr> | |
| 1081 | + * <tr><td><code>"mouseReleaseOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1082 | + * <td>{@link Entities.mouseReleaseOnEntity}</td></tr> | |
| 1083 | + * <tr><td><code>"clickDownOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1084 | + * <td>{@link Entities.clickDownOnEntity}</td></tr> | |
| 1085 | + * <tr><td><code>"holdingClickOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1086 | + * <td>{@link Entities.holdingClickOnEntity}</td></tr> | |
| 1087 | + * <tr><td><code>"clickReleaseOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1088 | + * <td>{@link Entities.clickReleaseOnEntity}</td></tr> | |
| 1089 | + * <tr><td><code>"hoverEnterEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1090 | + * <td>{@link Entities.hoverEnterEntity}</td></tr> | |
| 1091 | + * <tr><td><code>"hoverOverEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1092 | + * <td>{@link Entities.hoverOverEntity}</td></tr> | |
| 1093 | + * <tr><td><code>"hoverLeaveEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1094 | + * <td>{@link Entities.hoverLeaveEntity}</td></tr> | |
| 1095 | + * <tr><td><code>"collisionWithEntity"</code><td>{@link Script~collisionEventCallback|collisionEventCallback}</td> | |
| 1096 | + * </td><td>{@link Entities.collisionWithEntity}</td></tr> | |
| 1059 | 1097 | * </tbody> |
| 1060 | 1098 | * </table> |
| 1061 | − * | |
| 1062 | 1099 | * @typedef {string} Script.EntityEvent |
| 1063 | 1100 | */ |
| 1064 | 1101 | connect(entities.data(), &EntityScriptingInterface::enterEntity, this, makeSingleEntityHandler("enterEntity")); |