| 895 | } |
| 896 | |
| 897 | InteractAction Npc::interact(InteractRequest const& request) { |
| 898 | auto result = m_scriptComponent.invoke<Json>("interact", |
| 899 | JsonObject{{"sourceId", request.sourceId}, {"sourcePosition", jsonFromVec2F(request.sourcePosition)}}).value(); |
| 900 | |
| 901 | if (result.isNull()) |
| 902 | return {}; |
| 903 | |
| 904 | if (result.isType(Json::Type::String)) |
| 905 | return InteractAction(result.toString(), entityId(), Json()); |
| 906 | |
| 907 | return InteractAction(result.getString(0), entityId(), result.get(1)); |
| 908 | } |
| 909 | |
| 910 | RectF Npc::interactiveBoundBox() const { |
| 911 | return m_movementController->collisionPoly().boundBox(); |
no test coverage detected