KF-MMO-Server/Level/_update.ts

30 lines
1011 B
TypeScript

import { Socket } from "socket.io";
import { levelUpdateHost } from "../Classes/Incoming/levelUpdateHost.js";
import { characterData } from "../Classes/characterData.js";
import { game } from "../game.js";
import { plainToInstance } from "class-transformer";
export function update(socket : Socket, data){
let buff = Buffer.from(data, 'base64');
let data1 : levelUpdateHost = plainToInstance(levelUpdateHost, JSON.parse(buff.toString('utf-8')));
let character : characterData = socket.character
let room = game.lobbyState.rooms.find(l=>l.id == data1.room.id)
if (room == null || room.hostId != character.id){
return
}
if(data1.room.objects == null){
data1.room.objects = []
}
if(data1.room.enemies == null){
data1.room.enemies = []
}
character.rigidbody = data1.player.rigidbody
room.enemies = data1.room.enemies
room.objects = data1.room.objects
//only in non-host player
//player.damageInfo = rawJson.player.damageInfo
}