diff options
author | Holden Rohrer <hr@hrhr.dev> | 2020-01-24 15:31:02 -0500 |
---|---|---|
committer | Holden Rohrer <hr@hrhr.dev> | 2020-01-24 15:31:02 -0500 |
commit | 8b014c3ce98670abd895789e9e206a828cc95a33 (patch) | |
tree | dad6a814a75ea268cf726886dbf30b7875beec41 | |
parent | 3cc05d0d14a49821903cea8f0443f8a8eed74fdc (diff) |
Identity function built for .call use
In an effort to move jarvis to using one class, MetaSocket, for all of its
interactions with the main socket, ident is now only able to be used as
id.call(socket); this should simplify the behavior and means that it can use
EventEmitter events.
-rw-r--r-- | utils/ident.js | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/utils/ident.js b/utils/ident.js index 187132f..b4fa8ff 100644 --- a/utils/ident.js +++ b/utils/ident.js @@ -2,32 +2,32 @@ const vec = require('../utils/vec'); -module.exports = function identify(sock, initOnce, init, deinit){ - // `sock` should be Socket instance. +module.exports = function identify(){ + // `this` should be Socket instance. // initOnce and init should be functions that act like they describe; initOnce runs once per program execution and init whenever the socket turns back on - sock.on('open', ()=>{ + let self = this; + + self.on('open', ()=>{ // "Pings" the server with a cursor location which is detected and saved by identity() let coords = [Math.floor(Math.random()*100000+16), Math.floor(Math.random()*1000000+16)]; - sock.cursor(coords); - sock.on('cursor', detect); + self.cursor(coords); + self.on('cursor', detect); function detect(pos, send){ if (vec.equals(pos[0],coords)){ - sock.off('cursor', detect); + self.off('cursor', detect); identity(send); } } }); - sock.on('close', deinit); - // Calls initOnce and init on successful identification. let initialized = false; function identity(send){ if (! initialized){ initialized = true; - initOnce(); + self.emit('initOnce'); } - init(send); + self.emit('init', send); } } |