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
16LocationScriptingInterface* LocationScriptingInterface::getInstance() {
17 static LocationScriptingInterface sharedInstance;
18 return &sharedInstance;
19}
20
21QScriptValue LocationScriptingInterface::locationGetter(QScriptContext* context, QScriptEngine* engine) {
22 return engine->newQObject(DependencyManager::get<AddressManager>().data());
23}
24
25QScriptValue 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}