Finished nc (notification center topic style refactoring) - fixes #60

This commit is contained in:
logsol 2014-03-17 23:12:08 +01:00
parent cacd5d74c0
commit 76d9450257
9 changed files with 67 additions and 30 deletions

View file

@ -24,15 +24,18 @@
this.gameController = new GameController(this);
Nc.on('channel/controlCommand', function (message) {
Nc.on(Nc.ns.channel.events.controlCommand.channel, function (message) {
ProtocolHelper.applyCommand(message.data, self);
});
Nc.on('broadcastControlCommand', this.broadcastControlCommand, this);
Nc.on('broadcastControlCommandExcept', this.broadcastControlCommandExcept, this);
Nc.on(Nc.ns.channel.to.client.gameCommand.broadcast, this.broadcastGameCommand, this);
Nc.on('broadcastGameCommandExcept', this.broadcastGameCommandExcept, this);
// prepared - not triggered yet
//Nc.on(Nc.ns.channel.to.client.gameCommand.broadcastExcept, this.broadcastGameCommandExcept, this);
//Nc.on(Nc.ns.channel.to.client.controlCommand.broadcast, this.broadcastControlCommand, this);
//Nc.on(Nc.ns.channel.to.client.controlCommand.broadcastExcept, this.broadcastControlCommandExcept, this);
console.checkpoint('channel ' + this.name + ' created');

View file

@ -25,7 +25,7 @@ function (Parent, PhysicsEngine, Settings, PlayerController, requestAnimFrame, N
Nc.on(Nc.ns.channel.events.user.level.reset, this.onResetLevel, this);
Nc.on(Nc.ns.channel.events.user.client.ready, this.onClientReady, this);
Nc.on('player/killed', this.onPlayerKilled, this);
Nc.on(Nc.ns.core.game.player.killed, this.onPlayerKilled, this);
console.checkpoint('starting game controller for channel ' + channel.name);

View file

@ -37,7 +37,15 @@ function (Nc, Channel) {
};
PipeToServer.prototype.onMessage = function (message) {
Nc.trigger(Nc.ns.channel.events.controlCommand + recipient, message);
switch(message.recipient) {
case 'channel':
Nc.trigger(Nc.ns.channel.events.controlCommand.channel, message);
break;
default:
Nc.trigger(Nc.ns.channel.events.controlCommand.user + message.recipient, message);
break;
}
}
PipeToServer.prototype.destroy = function() {

View file

@ -18,16 +18,18 @@ function(Parent, Nc, ProtocolHelper, ProtocolParser) {
self.sendControlCommand("joinSuccess", options);
});
Nc.on('user/' + this.id + "/controlCommand", function(message) {
Nc.on(Nc.ns.channel.events.controlCommand.user + this.id, function(message) {
ProtocolHelper.applyCommand(message.data, self);
});
/*
couldnt find trigger for this while refactoring
Nc.on('user/' + this.id + "/gameCommand", function(command, options) {
Nc.on(Nc.ns.channel.to.client.user.gameCommand.send + this.id, function(command, options) {
self.sendGameCommand(command, options);
});
*/
}
User.prototype = Object.create(Parent.prototype);
@ -60,7 +62,7 @@ function(Parent, Nc, ProtocolHelper, ProtocolParser) {
// Sending commands
User.prototype.sendControlCommand = function(command, options) {
var recipient = "user/" + this.id;
var recipient = this.id;
var data = ProtocolHelper.encodeCommand(command, options);
Nc.trigger(Nc.ns.channel.to.server.controlCommand.send, recipient, data);

View file

@ -127,7 +127,7 @@ function (Doll, Settings, Nc, Exception, SpectatorDoll, RagDoll) {
this.ragDoll = ragDoll;
Nc.trigger("player/killed", this);
Nc.trigger(Nc.ns.core.game.player.killed, this);
};
Player.prototype.update = function () {

View file

@ -42,15 +42,12 @@ function (Exception) {
preloadBar: {
update: null
},
fullScreen: {
fullscreen: {
change: null
},
debugMode: {
toggle: null
},
gameInfo: {
toggle: null
},
events: {
ready: null
}
@ -63,9 +60,16 @@ function (Exception) {
change: null
}
},
server: {
gameCommand: {
send: null
game: {
gameInfo: {
toggle: null
}
},
to: {
server: {
gameCommand: {
send: null
}
}
}
},
@ -75,6 +79,9 @@ function (Exception) {
add: null,
remove: null
},
player: {
killed: null
},
events: {
level: {
loaded: null
@ -84,7 +91,10 @@ function (Exception) {
},
channel: {
events: {
controlCommand: null,
controlCommand: {
channel: null,
user: null
},
user: {
joined: null,
left: null,
@ -103,7 +113,9 @@ function (Exception) {
},
to: {
server: {
send: null
controlCommand: {
send: null
}
},
client: {
user: {
@ -122,7 +134,10 @@ function (Exception) {
},
server: {
events: {
controlCommand: null,
controlCommand: {
coordinator: null,
user: null
},
user: {
joined: null,
left: null

View file

@ -11,7 +11,7 @@ function (User, Channel, PipeToChannel, Nc, Settings) {
function Coordinator() {
this.channelPipes = {};
Nc.on(Nc.ns.server.events.controlCommand + "coordinator", this.onMessage, this);
Nc.on(Nc.ns.server.events.controlCommand.coordinator, this.onMessage, this);
console.checkpoint('create Coordinator');
}

View file

@ -39,7 +39,7 @@ function (Nc, childProcess) {
// If user already created
PipeToChannel.prototype.sendToUser = function (id, data) {
var message = {
recipient: "user/" + id,
recipient: id,
data: data
}
@ -47,7 +47,15 @@ function (Nc, childProcess) {
}
PipeToChannel.prototype.onMessage = function (message) {
Nc.trigger(Nc.ns.server.events.controlCommand + message.recipient, message.data);
switch(message.recipient) {
case 'coordinator':
Nc.trigger(Nc.ns.server.events.controlCommand.coordinator, message.data);
break;
default:
Nc.trigger(Nc.ns.server.events.controlCommand.user + message.recipient, message.data);
break;
}
}
return PipeToChannel;

View file

@ -16,7 +16,7 @@ function (Parent, ProtocolHelper, Nc) {
socketLink.on('message', this.onMessage.bind(this));
socketLink.on('disconnect', this.onDisconnect.bind(this));
Nc.on(Nc.ns.server.to.client.message.send + id, this.socketLink.send, this.socketLink);
Nc.on(Nc.ns.server.events.controlCommand.user + this.id, this.socketLink.send, this.socketLink);
}
User.prototype = Object.create(Parent.prototype);
@ -65,6 +65,7 @@ function (Parent, ProtocolHelper, Nc) {
this.channelPipe.send('channel', { addUser: userOptions });
};
/* FIXME: watch out and check in wich direction game and control commands flow */
User.prototype.onGameCommand = function(options) {
// repacking for transport via pipe
var message = ProtocolHelper.encodeCommand("gameCommand", options);
@ -73,7 +74,7 @@ function (Parent, ProtocolHelper, Nc) {
User.prototype.onPing = function(timestamp) {
var message = ProtocolHelper.encodeCommand("pong", timestamp);
Nc.trigger(Nc.ns.server.to.client.message.send + id, message);
Nc.trigger(Nc.ns.server.events.controlCommand.user + this.id, message);
};
return User;