From 47643e1efee6c649d7b7d6a678aff244a927c5cb Mon Sep 17 00:00:00 2001
From: Thijs Wenker <me@thoys.nl>
Date: Wed, 21 Jun 2017 06:31:36 +0200
Subject: [PATCH] Expose location API to Agent scripts (side-effect, agents now
 can teleport)

---
 assignment-client/src/Agent.cpp                               | 4 ++++
 interface/src/Application.cpp                                 | 2 +-
 .../networking/src}/LocationScriptingInterface.cpp            | 0
 .../networking/src}/LocationScriptingInterface.h              | 0
 4 files changed, 5 insertions(+), 1 deletion(-)
 rename {interface/src/scripting => libraries/networking/src}/LocationScriptingInterface.cpp (100%)
 rename {interface/src/scripting => libraries/networking/src}/LocationScriptingInterface.h (100%)

diff --git a/assignment-client/src/Agent.cpp b/assignment-client/src/Agent.cpp
index 1dc3aefb61..260a6d6825 100644
--- a/assignment-client/src/Agent.cpp
+++ b/assignment-client/src/Agent.cpp
@@ -23,6 +23,7 @@
 #include <AvatarHashMap.h>
 #include <AudioInjectorManager.h>
 #include <AssetClient.h>
+#include <LocationScriptingInterface.h>
 #include <MessagesClient.h>
 #include <NetworkAccessManager.h>
 #include <NodeList.h>
@@ -453,6 +454,9 @@ void Agent::executeScript() {
 
     _scriptEngine->registerGlobalObject("EntityViewer", &_entityViewer);
 
+    _scriptEngine->registerGetterSetter("location", LocationScriptingInterface::locationGetter,
+        LocationScriptingInterface::locationSetter);
+
     auto recordingInterface = DependencyManager::get<RecordingScriptingInterface>();
     _scriptEngine->registerGlobalObject("Recording", recordingInterface.data());
 
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 71c4657264..46f109b378 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -88,6 +88,7 @@
 #include <UserActivityLoggerScriptingInterface.h>
 #include <LogHandler.h>
 #include "LocationBookmarks.h"
+#include <LocationScriptingInterface.h>
 #include <MainWindow.h>
 #include <MappingRequest.h>
 #include <MessagesClient.h>
@@ -159,7 +160,6 @@
 #include "scripting/DesktopScriptingInterface.h"
 #include "scripting/GlobalServicesScriptingInterface.h"
 #include "scripting/HMDScriptingInterface.h"
-#include "scripting/LocationScriptingInterface.h"
 #include "scripting/MenuScriptingInterface.h"
 #include "scripting/SettingsScriptingInterface.h"
 #include "scripting/WindowScriptingInterface.h"
diff --git a/interface/src/scripting/LocationScriptingInterface.cpp b/libraries/networking/src/LocationScriptingInterface.cpp
similarity index 100%
rename from interface/src/scripting/LocationScriptingInterface.cpp
rename to libraries/networking/src/LocationScriptingInterface.cpp
diff --git a/interface/src/scripting/LocationScriptingInterface.h b/libraries/networking/src/LocationScriptingInterface.h
similarity index 100%
rename from interface/src/scripting/LocationScriptingInterface.h
rename to libraries/networking/src/LocationScriptingInterface.h