History

Expose location API to Agent scripts (side-effect, agents now can teleport)

Thijs Wenker committed 9 years ago

Commit 47643e11 parent ec118794 files · +5 −1Browse files

Showing the changes to libraries/networking/src/LocationScriptingInterface.cpp (1 of 4 files). Show all

Unified · Split

libraries/networking/src/LocationScriptingInterface.cpp+33−0
@@ -0,0 +1,33 @@
1+//
2+// LocationScriptingInterface.cpp
3+// interface/src/scripting
4+//
5+// Created by Ryan Huffman on 4/29/14.
6+// Copyright 2014 High Fidelity, Inc.
7+//
8+// Distributed under the Apache License, Version 2.0.
9+// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10+//
11+
12+#include <AddressManager.h>
13+
14+#include "LocationScriptingInterface.h"
15+
16+LocationScriptingInterface* LocationScriptingInterface::getInstance() {
17+ static LocationScriptingInterface sharedInstance;
18+ return &sharedInstance;
19+}
20+
21+QScriptValue LocationScriptingInterface::locationGetter(QScriptContext* context, QScriptEngine* engine) {
22+ return engine->newQObject(DependencyManager::get<AddressManager>().data());
23+}
24+
25+QScriptValue LocationScriptingInterface::locationSetter(QScriptContext* context, QScriptEngine* engine) {
26+ const QVariant& argumentVariant = context->argument(0).toVariant();
27+
28+ // just try and convert the argument to a string, should be a hifi:// address
29+ QMetaObject::invokeMethod(DependencyManager::get<AddressManager>().data(), "handleLookupString",
30+ Q_ARG(const QString&, argumentVariant.toString()));
31+
32+ return QScriptValue::UndefinedValue;
33+}