aboutsummaryrefslogtreecommitdiff
path: root/test-client/visual.ts
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-10-20 20:58:14 +0200
committermetamuffin <metamuffin@disroot.org>2025-10-21 00:18:11 +0200
commiteaed442578c3b1765ec48c84489a122096b6a08f (patch)
treebd5eeb82ea6f49691a4c5bad91a1b1614f0948a8 /test-client/visual.ts
parenta3b0879a98bf5a0881b426913d7dd4cb9010e327 (diff)
downloadhurrycurry-eaed442578c3b1765ec48c84489a122096b6a08f.tar
hurrycurry-eaed442578c3b1765ec48c84489a122096b6a08f.tar.bz2
hurrycurry-eaed442578c3b1765ec48c84489a122096b6a08f.tar.zst
Send paths as debug events
Diffstat (limited to 'test-client/visual.ts')
-rw-r--r--test-client/visual.ts24
1 files changed, 21 insertions, 3 deletions
diff --git a/test-client/visual.ts b/test-client/visual.ts
index d75f90f5..20bd7ae2 100644
--- a/test-client/visual.ts
+++ b/test-client/visual.ts
@@ -16,7 +16,7 @@
*/
import { tr } from "./locale.ts";
-import { ItemData, MessageData, MessageStyle, PlayerData, TileData, camera, camera_scale, canvas, ctx, data, get_interact_target, global_message, interact_active_anim, interact_possible_anim, interact_target_anim, is_lobby, items_removed, keys_down, my_id, overlay_vis_anim, players, score, server_hints, tiles } from "./main.ts";
+import { ItemData, MessageData, MessageStyle, PlayerData, TileData, camera, camera_scale, canvas, ctx, data, debug_events, get_interact_target, global_message, interact_active_anim, interact_possible_anim, interact_target_anim, is_lobby, items_removed, keys_down, my_id, overlay_vis_anim, players, score, server_hints, tiles } from "./main.ts";
import { PLAYER_SIZE } from "./movement.ts";
import { draw_item_sprite, draw_tile_sprite, ItemName, TileName } from "./tiles.ts";
import { V2, ceil_v2, floor_v2 } from "./util.ts";
@@ -78,6 +78,8 @@ export function draw_ingame() {
for (const [_, message] of server_hints)
draw_message(message, true)
+ draw_debug_events()
+
ctx.restore()
ctx.save()
ctx.translate(50, 50)
@@ -94,7 +96,23 @@ export function draw_ingame() {
draw_score()
if (keys_down.has("KeyP"))
- draw_debug()
+ draw_info_overlay()
+}
+
+function draw_debug_events() {
+ for (const ev of debug_events.values()) {
+ if (ev.display.ty == "path") {
+ ctx.lineWidth = 0.1
+ ctx.lineCap = "round"
+ ctx.strokeStyle = `rgb(${ev.color[0] * 100}%,${ev.color[1] * 100}%,${ev.color[2] * 100}%)`
+ ctx.beginPath()
+ if (ev.display.points.length)
+ ctx.moveTo(...ev.display.points[0])
+ for (let i = 1; i < ev.display.points.length; i++)
+ ctx.lineTo(...ev.display.points[i])
+ ctx.stroke()
+ }
+ }
}
function draw_score() {
@@ -110,7 +128,7 @@ function draw_score() {
ctx.fillText(`${tr("c.score.demands_failed")}: ${score.demands_failed}`, 10, canvas.height - 10)
}
-function draw_debug() {
+function draw_info_overlay() {
ctx.fillStyle = "white"
ctx.textAlign = "left"
ctx.textBaseline = "bottom"