diff options
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 - -      }  } | 
