1
0
forked from noxious/server

Updated create and update calls to services

This commit is contained in:
2024-11-17 20:59:24 +01:00
parent 2e267a36aa
commit fc92d9ea79
4 changed files with 37 additions and 27 deletions

View File

@ -1,15 +1,16 @@
import { AStar } from '../../utilities/character/aStar'
import ZoneManager from '../../managers/zoneManager'
import prisma from '../../utilities/prisma'
import Rotation from '../../utilities/character/rotation'
import { gameLogger } from '../../utilities/logger'
import { Character } from '@prisma/client'
import { Character, CharacterGender, CharacterRace } from '@prisma/client'
interface Position {
x: number
y: number
}
export class CharacterMoveService {
export class CharacterService {
private static readonly MOVEMENT_DELAY_MS = 250
public updatePosition(character: Character, position: Position, newZoneId?: number): void {
@ -48,10 +49,32 @@ export class CharacterMoveService {
}
public async applyMovementDelay(): Promise<void> {
await new Promise((resolve) => setTimeout(resolve, CharacterMoveService.MOVEMENT_DELAY_MS))
await new Promise((resolve) => setTimeout(resolve, CharacterService.MOVEMENT_DELAY_MS))
}
private isValidPosition(position: Position): boolean {
return Number.isFinite(position.x) && Number.isFinite(position.y) && position.x >= 0 && position.y >= 0
}
async create(name: string, userId: number) {
return prisma.character.create({
data: {
name,
userId
// characterTypeId: 1 // @TODO set to chosen character type
}
})
}
async updateCharacterPosition(id: number, positionX: number, positionY: number, rotation: number, zoneId: number) {
await prisma.character.update({
where: { id },
data: {
positionX,
positionY,
rotation,
zoneId
}
})
}
}