mirror of
https://github.com/wassname/GarageServer.IO.git
synced 2026-07-08 00:10:05 +08:00
86 lines
2.1 KiB
JavaScript
86 lines
2.1 KiB
JavaScript
window.GarageServerIO = (function (window, socketio) {
|
|
|
|
var io = socketio,
|
|
|
|
socket = null,
|
|
|
|
sequenceNumber = 1,
|
|
|
|
players = [],
|
|
|
|
inputs = [],
|
|
|
|
updates = [],
|
|
|
|
// TODO: DONE CALLBACK
|
|
connectToGarageServer = function (path, options) {
|
|
socket = io.connect(path + '/garageserver.io');
|
|
registerSocketEvents(options);
|
|
},
|
|
|
|
registerSocketEvents = function (options) {
|
|
socket.on('update', function(data) {
|
|
if(options.logging) {
|
|
console.log('garageserver.io:: socket update ' + ' ' + data.id + ' ' + data.state + ' ' + data.seq);
|
|
}
|
|
updatePlayerInput(data);
|
|
});
|
|
socket.on('ping', function(data) {
|
|
|
|
});
|
|
socket.on('removePlayer', function(id) {
|
|
removePlayer(id);
|
|
});
|
|
},
|
|
|
|
updatePlayerInput = function (data) {
|
|
var playerFound = false;
|
|
|
|
if(socket.id === data.id) {
|
|
updates.push(data);
|
|
}
|
|
else {
|
|
for(var i = 0; i < players.length; i ++) {
|
|
if(players[i].id === data.id) {
|
|
playerFound = true;
|
|
players[i].state = data.state;
|
|
players[i].seq = data.seq;
|
|
}
|
|
}
|
|
|
|
if(!playerFound) {
|
|
var player = {
|
|
id: data.id,
|
|
state: data.state,
|
|
seq: data.seq
|
|
};
|
|
players.push(player);
|
|
}
|
|
}
|
|
},
|
|
|
|
addPlayerInput = function (input) {
|
|
sequenceNumber += 1;
|
|
inputs.push(input);
|
|
sendPlayerInput(input);
|
|
},
|
|
|
|
sendPlayerInput = function (input) {
|
|
socket.emit('input', { input: input, seq: sequenceNumber });
|
|
},
|
|
|
|
removePlayer = function (id) {
|
|
for(var i = 0; i < players.length; i ++) {
|
|
if(players[i].id === id) {
|
|
players.splice(i, 1)[0];
|
|
return;
|
|
}
|
|
}
|
|
};
|
|
|
|
return {
|
|
connectToGarageServer: connectToGarageServer,
|
|
addPlayerInput: addPlayerInput
|
|
};
|
|
|
|
}) (window, io); |