aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolden Rohrer <hr@hrhr.dev>2020-01-24 15:31:02 -0500
committerHolden Rohrer <hr@hrhr.dev>2020-01-24 15:31:02 -0500
commit8b014c3ce98670abd895789e9e206a828cc95a33 (patch)
treedad6a814a75ea268cf726886dbf30b7875beec41
parent3cc05d0d14a49821903cea8f0443f8a8eed74fdc (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.js20
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);
}
}