-- Leo's gemini proxy

-- Connecting to git.thebackupbox.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

repo: janusweb
action: commit
revision:
path_from:
revision_from: 7202eb0d2029895b03434ceaf8ccbbdc5eeba2dc:
path_to:
revision_to:

git.thebackupbox.net

janusweb

git://git.thebackupbox.net/janusweb

commit 7202eb0d2029895b03434ceaf8ccbbdc5eeba2dc
Author: James Baicoianu <james_github@baicoianu.com>
Date:   Thu Oct 22 14:39:24 2020 -0700

    Clean up ghost objects when changing avatar

diff --git a/scripts/janusghost.js b/scripts/janusghost.js

index 02a6eb4112300cee64e483d8f689bd40cd10ca48..

index ..657f509fde5aac4f2f3cc04eff2c3c3f2e19a3c6 100644

--- a/scripts/janusghost.js
+++ b/scripts/janusghost.js
@@ -367,6 +367,16 @@ elation.require(['janusweb.janusbase', 'engine.things.leapmotion'], function() {
       }
       if (!this.avatarcode || this.avatarcode != avatar) {
         this.avatarcode = avatar;
+
+
+        if (this.ghostchildren) {
+          while (this.ghostchildren.length > 0) {
+            let child = this.ghostchildren.pop();
+            child.die();
+          }
+        }
+        this.ghostchildren = [];
+
         var things = this.janus.parser.parse(avatar);
         if (this.avatar_body) {
           this.remove(this.avatar_body);
@@ -393,6 +403,7 @@ elation.require(['janusweb.janusbase', 'engine.things.leapmotion'], function() {
               let js_id = ghostdef._children[type][i].js_id;
               delete ghostdef._children[type][i].js_id;
               let childobj = this.createObject(type, ghostdef._children[type][i]);
+              this.ghostchildren.push(childobj);
               if (js_id == 'head') {
                 this.setHead(childobj, headpos, ghostdef.scale);
               } else if (js_id == 'body') {

-----END OF PAGE-----

-- Response ended

-- Page fetched on Sun Jun 2 19:09:28 2024