Added events

This commit is contained in:
Jeremiah Billmann
2013-07-15 18:06:11 -04:00
parent fbbc072f6f
commit 605eb2ae5b
3 changed files with 46 additions and 4 deletions
+16 -2
View File
@@ -7,12 +7,18 @@ options = {
onEntityUpdate: function (state),
onPlayerRemove: function (id),
onEntityRemove: function (id),
onEvent: function (data),
onWorldState: function (state),
onPing: function (pingDelay),
onUpdatePlayerPhysics: function (state, inputs, deltaTime),
onInterpolation: function(previousState, targetState, amount)
logging: true
}
api methods
initializeGarageServer(path, options)
addInput({})
getStates(function (playerStates, entityStates))
getId() : 0
*/
var GarageServerIO = (function (socketio) {
@@ -164,8 +170,8 @@ var GarageServerIO = (function (socketio) {
_playerController = new PlayerController(),
_entityController = new EntityController(),
initializeGarageServer = function (path, opts) {
_options = opts;
initializeGarageServer = function (path, options) {
_options = options;
_socket = _io.connect(path + '/garageserver.io');
registerSocketEvents();
},
@@ -243,6 +249,14 @@ var GarageServerIO = (function (socketio) {
console.log('garageserver.io:: socket removeEntity ' + id);
}
});
_socket.on('event', function(data) {
if (_options.onEvent) {
_options.onEvent(data);
}
if (_options.logging) {
console.log('garageserver.io:: socket event ' + data);
}
});
},
getId = function () {
+20 -1
View File
@@ -15,8 +15,19 @@ options = {
onPlayerDisconnect: function (socket),
onPing: function (socket, data)
}
api methods
createGarageServer(io, options)
start()
stop()
getPlayers() : [player] : { id: '', state: {}, inputs: [{}], stateHistory: [{ state, executionTime }] }
getEntities() : [entity] : { id: '', state: {}, stateHistory: [{ state, executionTime }] }
updatePlayerState(id, state)
updateEntityState(id, state)
addEntity(id)
removeEntity(id)
sendPlayerEvent(id, data)
sendPlayersEvent(data)
*/
function GarageServer(socketio, options) {
this.socketPath = '/garageserver.io';
this.io = socketio;
@@ -127,6 +138,14 @@ GarageServer.prototype.removeEntity = function (id) {
this.game.removeEntity(id);
};
GarageServer.prototype.sendPlayerEvent = function (id, data) {
this.game.sendPlayerEvent(id, data);
};
GarageServer.prototype.sendPlayersEvent = function (data) {
this.io.of(this.socketPath).emit('event', data);
};
exports.createGarageServer = function (io, options) {
return new GarageServer(io, options);
};
+10 -1
View File
@@ -20,7 +20,7 @@ GarageServerGame.prototype.start = function () {
};
GarageServerGame.prototype.stop = function () {
clearInterval(this.stateIntervalId);
clearInterval(this.stateIntervalId);
};
GarageServerGame.prototype.broadcastState = function () {
@@ -100,4 +100,13 @@ GarageServerGame.prototype.removeEntity = function (id) {
GarageServerGame.prototype.addPlayerInput = function (id, input, sequence, time) {
this.playerController.addInput(id, input, sequence, time);
};
GarageServerGame.prototype.sendPlayerEvent = function (id, data) {
this.playerController.entities.some(function (player) {
if (player.id === id) {
player.client.emit('event', data);
return true;
}
});
};