diff options
author | metamuffin <metamuffin@disroot.org> | 2024-06-20 01:20:51 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-06-23 19:21:49 +0200 |
commit | 6f7b995dd9fa3bea95be8c24e2452f015b410839 (patch) | |
tree | 2c1d2d03a759ee4597a07d5998dae8480bd73a67 /test-client/main.ts | |
parent | 67ccafad4d7d481bdf60be750f96a086ae452e27 (diff) | |
download | hurrycurry-6f7b995dd9fa3bea95be8c24e2452f015b410839.tar hurrycurry-6f7b995dd9fa3bea95be8c24e2452f015b410839.tar.bz2 hurrycurry-6f7b995dd9fa3bea95be8c24e2452f015b410839.tar.zst |
change the protocol yet again
Diffstat (limited to 'test-client/main.ts')
-rw-r--r-- | test-client/main.ts | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/test-client/main.ts b/test-client/main.ts index b34220df..fd49fca2 100644 --- a/test-client/main.ts +++ b/test-client/main.ts @@ -85,15 +85,12 @@ function packet(p: PacketC) { data = p.data break; case "add_player": { - let item = undefined - if (p.item) item = { kind: p.item, x: 0, y: 0 }; players.set(p.id, { x: p.position[0], y: p.position[1], character: p.character, name: p.name, rot: 0, - item, facing: { x: 0, y: 1 }, vel: { x: 0, y: 0 }, }) @@ -126,15 +123,18 @@ function packet(p: PacketC) { player.item = undefined break; } - case "produce_item": { - const item = { kind: p.item, x: p.tile[0] + 0.5, y: p.tile[1] + 0.5 } - tiles.get(p.tile.toString())!.item = item - break; - } - case "consume_item": { + case "set_tile_item": { const tile = tiles.get(p.tile.toString())! - if (tile.item) items_removed.add(tile.item) + if (tile.item !== undefined && tile.item !== null) items_removed.add(tile.item) tile.item = undefined + if (p.item !== undefined && p.item !== null) tile.item = { kind: p.item, x: p.tile[0] + 0.5, y: p.tile[1] + 0.5 } + break; + } + case "set_player_item": { + const player = players.get(p.player)! + if (player.item !== undefined && player.item !== null) items_removed.add(player.item) + player.item = undefined + if (p.item !== undefined && p.item !== null) player.item = { kind: p.item, x: player.x + 0.5, y: player.y + 0.5 } break; } case "set_active": { @@ -212,10 +212,10 @@ function frame_update(dt: number) { if (item.tracking) lerp_exp_v2_mut(item, item.tracking, dt * 10.) } for (const [_, player] of players) { - if (player.item) update_item(player.item) + if (player.item !== undefined && player.item !== null) update_item(player.item) } for (const [_, tile] of tiles) { - if (tile.item) update_item(tile.item) + if (tile.item !== undefined && tile.item !== null) update_item(tile.item) } const remove = [] @@ -269,7 +269,5 @@ function collide_player(p: PlayerData) { const vdotn = (grad_x * p.vel.x) + (grad_y * p.vel.y) p.vel.x -= grad_x * vdotn p.vel.y -= grad_y * vdotn - - } } |