From 007013254ed130f24e5d1662941c4f5cfcbb97d3 Mon Sep 17 00:00:00 2001
From: "Kevini M. Thomas" <kevin@kevintown.net>
Date: Wed, 13 Jan 2016 14:34:44 -0500
Subject: [PATCH] Fixed entity script loading functionality for the
 jsstreamplayer.

---
 .../zones/jsstreamplayerdomain-zone-entity.js |  2 +-
 examples/zones/jsstreamplayerdomain-zone.js   | 30 ++++++++++++++-----
 2 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/examples/zones/jsstreamplayerdomain-zone-entity.js b/examples/zones/jsstreamplayerdomain-zone-entity.js
index 3730c71b4f..bf811710eb 100644
--- a/examples/zones/jsstreamplayerdomain-zone-entity.js
+++ b/examples/zones/jsstreamplayerdomain-zone-entity.js
@@ -28,6 +28,6 @@
     };
     
     if (!isScriptRunning(SCRIPT_NAME)) {
-         Script.load(SCRIPT_NAME); 
+        ScriptDiscoveryService.loadOneScript(SCRIPT_NAME);
     } 
 })
\ No newline at end of file
diff --git a/examples/zones/jsstreamplayerdomain-zone.js b/examples/zones/jsstreamplayerdomain-zone.js
index 8e2195bd12..60564d373a 100644
--- a/examples/zones/jsstreamplayerdomain-zone.js
+++ b/examples/zones/jsstreamplayerdomain-zone.js
@@ -33,7 +33,7 @@ var toggleStreamPlayButton = Overlays.addOverlay("text", {
     visible: false,
     text: " Play"
 });
- 
+
 // Set up toggleStreamStopButton overlay.
 var toggleStreamStopButton = Overlays.addOverlay("text", {
     x: 166,
@@ -47,7 +47,7 @@ var toggleStreamStopButton = Overlays.addOverlay("text", {
     visible: false,
     text: " Stop"
 });
- 
+
 // Set up increaseVolumeButton overlay.
 var toggleIncreaseVolumeButton = Overlays.addOverlay("text", {
     x: 211,
@@ -61,7 +61,7 @@ var toggleIncreaseVolumeButton = Overlays.addOverlay("text", {
     visible: false,
     text: " +"
 });
- 
+
 // Set up decreaseVolumeButton overlay.
 var toggleDecreaseVolumeButton = Overlays.addOverlay("text", {
     x: 234,
@@ -93,7 +93,7 @@ function changeVolume(volume) {
         }
         streamWindow.eventBridge.emitScriptEvent(JSON.stringify(volumeJSON));
 }
-        
+
 // Function that adds mousePressEvent functionality to connect UI to enter stream URL, play and stop stream.
 function mousePressEvent(event) {
     if (Overlays.getOverlayAtPoint({x: event.x, y: event.y}) == toggleStreamPlayButton) {
@@ -116,7 +116,7 @@ function mousePressEvent(event) {
 
 // Function checking bool if in proper zone.
 function isOurZone(properties) {
-    return stream != "" && properties.type == "Zone";
+    return stream != "" && stream != undefined && properties.type == "Zone";
 }
 
 // Function to toggle visibile the overlay.
@@ -129,7 +129,21 @@ function toggleVisible(newVisibility) {
         Overlays.editOverlay(toggleDecreaseVolumeButton, {visible: visible});
     }
 }
- 
+
+// Procedure to check to see if you within a zone with a given stream.
+var entities = Entities.findEntities(MyAvatar.position, 0.1);
+for (var i in entities) {
+    var properties = Entities.getEntityProperties(entities[i]);
+    if (properties.type == "Zone") {
+        print("Entered zone: " + JSON.stringify(entities[i]));
+        stream = JSON.parse(properties.userData).stream;
+        if (isOurZone(properties)) {
+            print("Entered zone " + JSON.stringify(entities[i]) + " with stream: " + stream);
+            lastZone = properties.name;
+            toggleVisible(true);
+        }
+    }
+}
 // Function to check if avatar is in proper domain. 
 Window.domainChanged.connect(function() {
     Script.stop();
@@ -139,7 +153,7 @@ Window.domainChanged.connect(function() {
 Entities.enterEntity.connect(function(entityID) {
     print("Entered..." + JSON.stringify(entityID));
     var properties = Entities.getEntityProperties(entityID);
-    stream = properties.userData;
+    stream = JSON.parse(properties.userData).stream;
     if(isOurZone(properties))
     {
       lastZone = properties.name;
@@ -173,4 +187,4 @@ Controller.mousePressEvent.connect(mousePressEvent);
 streamWindow.setVisible(false);
 
 // Call function upon ending script.
-Script.scriptEnding.connect(onScriptEnding);
\ No newline at end of file
+Script.scriptEnding.connect(onScriptEnding);