Added code comment for #246

This commit is contained in:
Dennis Postma 2024-11-15 01:58:05 +01:00
parent fda8cc532e
commit f7072acdd2
2 changed files with 20 additions and 19 deletions

View File

@ -39,10 +39,10 @@ export default class ZoneUpdateEvent {
) {} ) {}
public listen(): void { public listen(): void {
this.socket.on('gm:zone_editor:zone:update', this.handleZoneUpdate.bind(this)) this.socket.on('gm:zone_editor:zone:update', this.handleEvent.bind(this))
} }
private async handleZoneUpdate(data: IPayload, callback: (response: Zone | null) => void): Promise<void> { private async handleEvent(data: IPayload, callback: (response: Zone | null) => void): Promise<void> {
try { try {
const character = await CharacterRepository.getById(this.socket.characterId as number) const character = await CharacterRepository.getById(this.socket.characterId as number)
if (!character) { if (!character) {
@ -146,6 +146,9 @@ export default class ZoneUpdateEvent {
callback(zone) callback(zone)
/**
* @TODO #246: Reload zone for players who are currently in the zone
*/
zoneManager.unloadZone(data.zoneId) zoneManager.unloadZone(data.zoneId)
await zoneManager.loadZone(zone) await zoneManager.loadZone(zone)
} catch (error: any) { } catch (error: any) {

View File

@ -2,33 +2,31 @@ import config from '../config'
class Rotation { class Rotation {
static calculate(X1: number, Y1: number, X2: number, Y2: number): number { static calculate(X1: number, Y1: number, X2: number, Y2: number): number {
let rotation = 0
if (config.ALLOW_DIAGONAL_MOVEMENT) { if (config.ALLOW_DIAGONAL_MOVEMENT) {
// Check diagonal movements
if (X1 > X2 && Y1 > Y2) { if (X1 > X2 && Y1 > Y2) {
rotation = 7 return 7
} else if (X1 < X2 && Y1 < Y2) { } else if (X1 < X2 && Y1 < Y2) {
rotation = 3 return 3
} else if (X1 > X2 && Y1 < Y2) { } else if (X1 > X2 && Y1 < Y2) {
rotation = 5 return 5
} else if (X1 < X2 && Y1 > Y2) { } else if (X1 < X2 && Y1 > Y2) {
rotation = 1 return 1
} }
} }
if (rotation === 0) { // Non-diagonal movements
if (X1 > X2) { if (X1 > X2) {
rotation = 6 return 6
} else if (X1 < X2) { } else if (X1 < X2) {
rotation = 2 return 2
} else if (Y1 < Y2) { } else if (Y1 < Y2) {
rotation = 4 return 4
} else if (Y1 > Y2) { } else if (Y1 > Y2) {
rotation = 0 return 0
}
} }
return rotation return 0 // Default case
} }
} }