Spaces:
Sleeping
Sleeping
File size: 1,150 Bytes
90cbf22 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import { Graphics } from '@pixi/react';
import { Graphics as PixiGraphics } from 'pixi.js';
import { useCallback } from 'react';
import { Doc } from '../../convex/_generated/dataModel';
import { Player } from '../../convex/aiTown/player';
import { unpackPathComponent } from '../../convex/util/types';
export function DebugPath({ player, tileDim }: { player: Player; tileDim: number }) {
const path = player.pathfinding?.state.kind == 'moving' && player.pathfinding.state.path;
const draw = useCallback(
(g: PixiGraphics) => {
g.clear();
if (!path) {
return;
}
let first = true;
for (const p of path) {
const { position } = unpackPathComponent(p as any);
const x = position.x * tileDim + tileDim / 2;
const y = position.y * tileDim + tileDim / 2;
if (first) {
g.moveTo(x, y);
g.lineStyle(2, debugColor(player.id), 0.5);
first = false;
} else {
g.lineTo(x, y);
}
}
},
[path],
);
return path ? <Graphics draw={draw} /> : null;
}
function debugColor(_id: string) {
return { h: 0, s: 50, l: 90 };
}
|