Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 2 files). Show all
Unified · Split
| @@ -1009,6 +1009,12 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 1008 unmodified lines | ||
| 1009 | 1009 | }); |
| 1010 | 1010 | |
| 1011 | 1011 | // Two common cases of event handler, differing only in argument signature. |
| 1012 | + | |
| 1013 | + /**jsdoc | |
| 1014 | + * Called when an entity event occurs on an entity as registered with {@link Script.addEventHandler}. | |
| 1015 | + * @callback Script~entityEventCallback | |
| 1016 | + * @param {Uuid} entityID - The ID of the entity the event has occured on. | |
| 1017 | + */ | |
| 1012 | 1018 | using SingleEntityHandler = std::function<void(const EntityItemID&)>; |
| 1013 | 1019 | auto makeSingleEntityHandler = [this](QString eventName) -> SingleEntityHandler { |
| 1014 | 1020 | return [this, eventName](const EntityItemID& entityItemID) { |
| @@ -1016,6 +1022,12 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 1 unmodified line | ||
| 1016 | 1022 | }; |
| 1017 | 1023 | }; |
| 1018 | 1024 | |
| 1025 | + /**jsdoc | |
| 1026 | + * Called when a pointer event occurs on an entity as registered with {@link Script.addEventHandler}. | |
| 1027 | + * @callback Script~pointerEventCallback | |
| 1028 | + * @param {Uuid} entityID - The ID of the entity the event has occurred on. | |
| 1029 | + * @param {PointerEvent} pointerEvent - Details of the event. | |
| 1030 | + */ | |
| 1019 | 1031 | using PointerHandler = std::function<void(const EntityItemID&, const PointerEvent&)>; |
| 1020 | 1032 | auto makePointerHandler = [this](QString eventName) -> PointerHandler { |
| 1021 | 1033 | return [this, eventName](const EntityItemID& entityItemID, const PointerEvent& event) { |
| @@ -1025,6 +1037,13 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 3 unmodified lines | ||
| 1025 | 1037 | }; |
| 1026 | 1038 | }; |
| 1027 | 1039 | |
| 1040 | + /**jsdoc | |
| 1041 | + * Called when a collision event occurs on an entity as registered with {@link Script.addEventHandler}. | |
| 1042 | + * @callback Script~collisionEventCallback | |
| 1043 | + * @param {Uuid} entityA - The ID of one entity in the collision. | |
| 1044 | + * @param {Uuid} entityB - The ID of the other entity in the collision. | |
| 1045 | + * @param {Collision} collisionEvent - Details of the collision. | |
| 1046 | + */ | |
| 1028 | 1047 | using CollisionHandler = std::function<void(const EntityItemID&, const EntityItemID&, const Collision&)>; |
| 1029 | 1048 | auto makeCollisionHandler = [this](QString eventName) -> CollisionHandler { |
| 1030 | 1049 | return [this, eventName](const EntityItemID& idA, const EntityItemID& idB, const Collision& collision) { |
| @@ -1034,28 +1053,39 @@ void ScriptEngine::addEventHandler(const EntityItemID& entityID, const QString& · 3 unmodified lines | ||
| 1034 | 1053 | }; |
| 1035 | 1054 | |
| 1036 | 1055 | /**jsdoc |
| 1037 | − * <p>The name of an entity event. When the entity event occurs, any function that has been registered for that event via | |
| 1038 | − * {@link Script.addEventHandler} is called with parameters per the entity event.</p> | |
| 1056 | + * <p>The name of an entity event. When the entity event occurs, any function that has been registered for that event | |
| 1057 | + * via {@link Script.addEventHandler} is called with parameters per the entity event.</p> | |
| 1039 | 1058 | * <table> |
| 1040 | 1059 | * <thead> |
| 1041 | − * <tr><th>Event Name</th><th>Entity Event</th></tr> | |
| 1060 | + * <tr><th>Event Name</th><th>Callback Type</th><th>Entity Event</th></tr> | |
| 1042 | 1061 | * </thead> |
| 1043 | 1062 | * <tbody> |
| 1044 | − * <tr><td><code>"enterEntity"</code></td><td>{@link Entities.enterEntity}</td></tr> | |
| 1045 | − * <tr><td><code>"leaveEntity"</code></td><td>{@link Entities.leaveEntity}</td></tr> | |
| 1046 | − * <tr><td><code>"mousePressOnEntity"</code></td><td>{@link Entities.mousePressOnEntity}</td></tr> | |
| 1047 | − * <tr><td><code>"mouseMoveOnEntity"</code></td><td>{@link Entities.mouseMoveOnEntity}</td></tr> | |
| 1048 | − * <tr><td><code>"mouseReleaseOnEntity"</code></td><td>{@link Entities.mouseReleaseOnEntity}</td></tr> | |
| 1049 | − * <tr><td><code>"clickDownOnEntity"</code></td><td>{@link Entities.clickDownOnEntity}</td></tr> | |
| 1050 | − * <tr><td><code>"holdingClickOnEntity"</code></td><td>{@link Entities.holdingClickOnEntity}</td></tr> | |
| 1051 | − * <tr><td><code>"clickReleaseOnEntity"</code></td><td>{@link Entities.clickReleaseOnEntity}</td></tr> | |
| 1052 | − * <tr><td><code>"hoverEnterEntity"</code></td><td>{@link Entities.hoverEnterEntity}</td></tr> | |
| 1053 | − * <tr><td><code>"hoverOverEntity"</code></td><td>{@link Entities.hoverOverEntity}</td></tr> | |
| 1054 | − * <tr><td><code>"hoverLeaveEntity"</code></td><td>{@link Entities.hoverLeaveEntity}</td></tr> | |
| 1055 | − * <tr><td><code>"collisionWithEntity"</code></td><td>{@link Entities.collisionWithEntity}</td></tr> | |
| 1063 | + * <tr><td><code>"enterEntity"</code></td><td>{@link Script~entityEventCallback|entityEventCallback}</td> | |
| 1064 | + * <td>{@link Entities.enterEntity}</td></tr> | |
| 1065 | + * <tr><td><code>"leaveEntity"</code></td><td>{@link Script~entityEventCallback|entityEventCallback}</td> | |
| 1066 | + * <td>{@link Entities.leaveEntity}</td></tr> | |
| 1067 | + * <tr><td><code>"mousePressOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1068 | + * <td>{@link Entities.mousePressOnEntity}</td></tr> | |
| 1069 | + * <tr><td><code>"mouseMoveOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1070 | + * <td>{@link Entities.mouseMoveOnEntity}</td></tr> | |
| 1071 | + * <tr><td><code>"mouseReleaseOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1072 | + * <td>{@link Entities.mouseReleaseOnEntity}</td></tr> | |
| 1073 | + * <tr><td><code>"clickDownOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1074 | + * <td>{@link Entities.clickDownOnEntity}</td></tr> | |
| 1075 | + * <tr><td><code>"holdingClickOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1076 | + * <td>{@link Entities.holdingClickOnEntity}</td></tr> | |
| 1077 | + * <tr><td><code>"clickReleaseOnEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1078 | + * <td>{@link Entities.clickReleaseOnEntity}</td></tr> | |
| 1079 | + * <tr><td><code>"hoverEnterEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1080 | + * <td>{@link Entities.hoverEnterEntity}</td></tr> | |
| 1081 | + * <tr><td><code>"hoverOverEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1082 | + * <td>{@link Entities.hoverOverEntity}</td></tr> | |
| 1083 | + * <tr><td><code>"hoverLeaveEntity"</code></td><td>{@link Script~pointerEventCallback|pointerEventCallback}</td> | |
| 1084 | + * <td>{@link Entities.hoverLeaveEntity}</td></tr> | |
| 1085 | + * <tr><td><code>"collisionWithEntity"</code><td>{@link Script~collisionEventCallback|collisionEventCallback}</td> | |
| 1086 | + * </td><td>{@link Entities.collisionWithEntity}</td></tr> | |
| 1056 | 1087 | * </tbody> |
| 1057 | 1088 | * </table> |
| 1058 | − * | |
| 1059 | 1089 | * @typedef {string} Script.EntityEvent |
| 1060 | 1090 | */ |
| 1061 | 1091 | connect(entities.data(), &EntityScriptingInterface::enterEntity, this, makeSingleEntityHandler("enterEntity")); |