37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { levelState } from "../Classes/levelState";
|
|
import { game } from "../game";
|
|
|
|
export function registerLevelCallbacks(socket){
|
|
socket.on('level/update', (data) => {
|
|
if(!socket.hasOwnProperty("user")) return;
|
|
|
|
let buff = Buffer.from(data, 'base64');
|
|
let rawJson = JSON.parse(buff.toString('utf-8'));
|
|
let data1 : levelState = rawJson;
|
|
|
|
let room = game.lobbyState.rooms.find(l=>l.id == data1.id)
|
|
if (room == null){
|
|
room = new levelState()
|
|
room.id = data1.id
|
|
game.lobbyState.rooms.push(room)
|
|
}
|
|
|
|
let player = socket.player
|
|
player.room = rawJson.player.room
|
|
player.rigidbody = rawJson.player.rigidbody
|
|
//only in non-host player
|
|
//player.damageInfo = rawJson.player.damageInfo
|
|
|
|
room.enemies = data1.enemies
|
|
room.objects = data1.objects
|
|
});
|
|
|
|
socket.on('level/projectile', (data) => {
|
|
if(!socket.hasOwnProperty("user")) return;
|
|
|
|
let buff = Buffer.from(data, 'base64');
|
|
//let data1 = JSON.parse();
|
|
|
|
game.socketIO.emit('level/projectile', buff.toString('utf-8'))
|
|
});
|
|
} |