Merge remote-tracking branch 'origin/main' into merge/duckietm-main-20260407

This commit is contained in:
Lorenzune
2026-04-07 15:27:01 +02:00
2 changed files with 65 additions and 3 deletions
+27 -1
View File
@@ -1513,11 +1513,37 @@ export class RoomObjectEventHandler implements IRoomCanvasMouseListener, IRoomOb
return true;
}
private _walkDebounceTimer: ReturnType<typeof setTimeout> = null;
private _lastWalkSentAt: number = 0;
private static readonly WALK_MIN_INTERVAL_MS = 100;
private sendWalkUpdate(x: number, y: number): void
{
if(!this._roomEngine || !GetCommunication().connection) return;
GetCommunication().connection.send(new RoomUnitWalkComposer(x, y));
if(this._walkDebounceTimer)
{
clearTimeout(this._walkDebounceTimer);
this._walkDebounceTimer = null;
}
const now = Date.now();
const elapsed = now - this._lastWalkSentAt;
if(elapsed >= RoomObjectEventHandler.WALK_MIN_INTERVAL_MS)
{
this._lastWalkSentAt = now;
GetCommunication().connection.send(new RoomUnitWalkComposer(x, y));
}
else
{
this._walkDebounceTimer = setTimeout(() =>
{
this._walkDebounceTimer = null;
this._lastWalkSentAt = Date.now();
GetCommunication().connection.send(new RoomUnitWalkComposer(x, y));
}, RoomObjectEventHandler.WALK_MIN_INTERVAL_MS - elapsed);
}
}
private handleMouseOverObject(category: number, roomId: number, event: RoomObjectMouseEvent): ObjectTileCursorUpdateMessage