add start of client rendering

This commit is contained in:
Asraelite 2016-03-21 16:15:49 +00:00
parent 9787a9d468
commit ebcee954bf
13 changed files with 127 additions and 7 deletions

View file

@ -1,8 +1,51 @@
'use strict';
class Connection {
constructor() {
constructor(net, socket) {
this.net = net;
this.connections = net.connections;
this.io = net.io;
this.socket = socket;
this.player = false;
this._room = false;
this.name = '';
this.chatCooldown = 0;
socket.on('chat', data => {
this.chat(data);
});
socket.on('setName', data => {
this.player.name = data.name;
});
this.room = 'egg';
}
chat(data) {
console.log(this.room);
if(this.chatCooldown > 5 || !this.room) return;
this.chatCooldown++;
this.io.to(this.room).emit('chat', {
name: this.player.name,
msg: data.msg.slice(0, 100)
});
}
tick() {
this.chatCooldown -= 1;
}
get room() {
return this._room;
}
set room(str) {
this.socket.leave(this._room);
this.socket.join(str);
this._room = str;
}
}

View file

@ -7,16 +7,20 @@ const Connection = require('./connection.js');
class GameNet {
constructor() {
this.io = socketio(starbugs.webServer.appServer);
this.connections = new Map();
}
listen() {
let io = this.io;
let cons = this.connections;
this.io.on('connection', socket => {
console.log('connection');
let id = socket.id;
cons.set(id, new Connection(this, socket));
socket.on('other event', data => {
console.log(data);
socket.on('disconnect', _ => {
cons.delete(id);
});
});
}