Newer
Older
PixelPaintWar / apps / server / src / domains / game / entities / player / playerPosition.ts
/**
 * playerPosition
 * プレイヤー座標からマップ上のセル位置を解決する
 */
import { domain } from "@repo/shared";
import { Player } from "./Player.js";

type MapGridSize = {
  gridCols: number;
  gridRows: number;
};

/** プレイヤー座標に対応するグリッドインデックスを返す */
export const getPlayerGridIndex = (
  player: Player,
  size?: MapGridSize,
): number | null => {
  if (size) {
    return domain.game.gridMap.getGridIndexFromPositionWithSize(
      player.x,
      player.y,
      size.gridCols,
      size.gridRows,
    );
  }

  return domain.game.gridMap.getGridIndexFromPosition(player.x, player.y);
};