Improved folder and file structure, separated prisma schema into multiple ones, removed obsolete functions, worked on dynamic character sprite logics, general enhancements

This commit is contained in:
2024-07-23 02:17:46 +02:00
parent 7531385912
commit 4b81d7ff67
17 changed files with 249 additions and 189 deletions

View File

@ -0,0 +1,42 @@
import { Server } from 'socket.io'
import { TSocket } from '../../utilities/Types'
import ZoneManager from '../../managers/ZoneManager'
import prisma from '../../utilities/Prisma'
type SocketResponseT = {
position_x: number
position_y: number
}
export default function (socket: TSocket, io: Server) {
socket.on('character:move', async (data: SocketResponseT) => {
try {
console.log('character:move requested', data)
if (!socket.character) {
console.log('character:move error', 'Character not found')
return
}
socket.character.position_x = data.position_x
socket.character.position_y = data.position_y
await prisma.character.update({
where: {
id: socket.character.id
},
data: {
position_x: data.position_x,
position_y: data.position_y
}
})
ZoneManager.updateCharacterInZone(socket.character.zoneId, socket.character)
console.log(socket.character)
io.in(socket.character.zoneId.toString()).emit('character:moved', socket.character)
} catch (error: any) {
console.log('character:move error', error)
}
})
}