You've already forked KF-MMO-Server
further refactor
This commit is contained in:
@@ -1,11 +1,10 @@
|
||||
import { Endpoints } from "../endpoints.js";
|
||||
import { game } from "../game.js";
|
||||
|
||||
export function clear(socket, data){
|
||||
if(!socket.hasOwnProperty("player")) return;
|
||||
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let data1 : string = JSON.parse(buff.toString('utf-8'));
|
||||
|
||||
let room = game.lobbyState.roomComplete(data1)
|
||||
game.socketIO.emit("level/cleared", JSON.stringify(room.copyState()))
|
||||
game.socketIO.emit(Endpoints.LevelCleared, JSON.stringify(room.copyState()))
|
||||
}
|
||||
@@ -1,30 +1,29 @@
|
||||
import { game } from "../game.js";
|
||||
import { playerData } from "../Classes/playerData.js";
|
||||
import { roomChangeResponse } from "../Classes/roomChangeResponse.js";
|
||||
import { characterData } from "../Classes/characterData.js";
|
||||
import { roomChangeResponse } from "../Classes/Outgoing/roomChangeResponse.js";
|
||||
import { levelEnter } from "../Classes/Incoming/levelEnter.js";
|
||||
import { Socket } from "socket.io";
|
||||
import { Endpoints } from "../endpoints.js";
|
||||
|
||||
export function enter(socket, data){
|
||||
if(!socket.hasOwnProperty("player")) return;
|
||||
|
||||
export function enter(socket : Socket, data){
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let data1 : levelEnter = JSON.parse(buff.toString('utf-8'));
|
||||
let player : playerData = socket.player
|
||||
let character : characterData = socket.character
|
||||
|
||||
socket.join(data1.targetRoom.id)
|
||||
let newRoom = game.lobbyState.roomEnter(data1.targetRoom, player)
|
||||
player.room = newRoom.id
|
||||
let newRoom = game.lobbyState.roomEnter(data1.targetRoom, character)
|
||||
character.room = newRoom.id
|
||||
|
||||
socket.leave(data1.previousRoom.id)
|
||||
let oldRoom = game.lobbyState.roomExit(data1.previousRoom.id, player)
|
||||
let oldRoom = game.lobbyState.roomExit(data1.previousRoom.id, character)
|
||||
|
||||
let data2 = new roomChangeResponse()
|
||||
data2.player = player.copyUpdate()
|
||||
data2.player = character.copyUpdate()
|
||||
data2.newRoom = newRoom.copyStart()
|
||||
data2.previousRoom = oldRoom.copyState()
|
||||
|
||||
let json = JSON.stringify(data2)
|
||||
|
||||
socket.emit("level/entered", JSON.stringify(data2))
|
||||
|
||||
data2.newRoom = newRoom.copyState()
|
||||
|
||||
socket.broadcast.emit("level/entered", JSON.stringify(data2))
|
||||
socket.emit(Endpoints.LevelEntered, json)
|
||||
socket.broadcast.emit(Endpoints.LevelEntered, json)
|
||||
}
|
||||
@@ -1,19 +1,20 @@
|
||||
import { Socket } from "socket.io";
|
||||
import { levelUpdateClient } from "../Classes/Incoming/levelUpdateClient.js";
|
||||
import { playerData } from "../Classes/playerData.js";
|
||||
import { characterData } from "../Classes/characterData.js";
|
||||
|
||||
export function playerUpdate(socket, data){
|
||||
if(!socket.hasOwnProperty("user")) return;
|
||||
export function playerUpdate(socket : Socket, data){
|
||||
if(socket.user != null) return;
|
||||
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let data1 : levelUpdateClient = JSON.parse(buff.toString('utf-8'));
|
||||
|
||||
let player : playerData = socket.player
|
||||
if(player == null){
|
||||
let character : characterData = socket.character
|
||||
if(character == null){
|
||||
console.log("Error! Player not spawned!")
|
||||
return
|
||||
}
|
||||
|
||||
player.rigidbody = data1.player.rigidbody
|
||||
character.rigidbody = data1.player.rigidbody
|
||||
if(data1.player.hasOwnProperty("damageInfo"))
|
||||
player.damageInfo = player.damageInfo.concat(data1.player.damageInfo)
|
||||
character.damageInfo = character.damageInfo.concat(data1.player.damageInfo)
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
import { playerData } from "../Classes/playerData.js";
|
||||
import { Socket } from "socket.io";
|
||||
import { characterData } from "../Classes/characterData.js";
|
||||
import { Endpoints } from "../endpoints.js";
|
||||
|
||||
export function projectile(socket, data){
|
||||
export function projectile(socket : Socket, data){
|
||||
if(!socket.hasOwnProperty("user")) return;
|
||||
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let player : playerData = socket.player
|
||||
let character : characterData = socket.character
|
||||
|
||||
socket.to(player.room).emit('level/projectile', buff.toString('utf-8'))
|
||||
socket.to(character.room).emit(Endpoints.LevelProjectile, buff.toString('utf-8'))
|
||||
}
|
||||
@@ -1,16 +1,15 @@
|
||||
import { Socket } from "socket.io";
|
||||
import { levelUpdateHost } from "../Classes/Incoming/levelUpdateHost.js";
|
||||
import { playerData } from "../Classes/playerData.js";
|
||||
import { characterData } from "../Classes/characterData.js";
|
||||
import { game } from "../game.js";
|
||||
|
||||
export function update(socket, data){
|
||||
if(!socket.hasOwnProperty("player")) return;
|
||||
|
||||
export function update(socket : Socket, data){
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let data1 : levelUpdateHost = JSON.parse(buff.toString('utf-8'));
|
||||
let player : playerData = socket.player
|
||||
let character : characterData = socket.character
|
||||
|
||||
let room = game.lobbyState.rooms.find(l=>l.id == data1.room.id)
|
||||
if (room == null || room.hostId != player.id){
|
||||
if (room == null || room.hostId != character.id){
|
||||
return
|
||||
}
|
||||
|
||||
@@ -21,7 +20,7 @@ export function update(socket, data){
|
||||
data1.room.enemies = []
|
||||
}
|
||||
|
||||
player.rigidbody = data1.player.rigidbody
|
||||
character.rigidbody = data1.player.rigidbody
|
||||
room.enemies = data1.room.enemies
|
||||
room.objects = data1.room.objects
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { Endpoints } from "../endpoints.js";
|
||||
import { clear } from "./_clear.js";
|
||||
import { enter } from "./_enter.js";
|
||||
import { playerUpdate } from "./_playerUpdate.js";
|
||||
@@ -5,23 +6,23 @@ import { projectile } from "./_projectile.js";
|
||||
import { update } from "./_update.js";
|
||||
|
||||
export function registerLevelCallbacks(socket){
|
||||
socket.on('level/enter', (data) => {
|
||||
socket.on(Endpoints.LevelEnter, (data) => {
|
||||
enter(socket, data)
|
||||
});
|
||||
|
||||
socket.on('level/cleared', (data) => {
|
||||
socket.on(Endpoints.LevelCleared, (data) => {
|
||||
clear(socket, data)
|
||||
});
|
||||
|
||||
socket.on('level/update', (data) => {
|
||||
socket.on(Endpoints.LevelUpdate, (data) => {
|
||||
update(socket, data)
|
||||
});
|
||||
|
||||
socket.on('level/playerUpdate', (data) => {
|
||||
socket.on(Endpoints.LevelPlayerUpdate, (data) => {
|
||||
playerUpdate(socket, data)
|
||||
});
|
||||
|
||||
socket.on('level/projectile', (data) => {
|
||||
socket.on(Endpoints.LevelProjectile, (data) => {
|
||||
projectile(socket, data)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user