diff options
| author | metamuffin <metamuffin@disroot.org> | 2024-07-02 14:57:33 +0200 | 
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2024-07-02 14:57:33 +0200 | 
| commit | af9c45741e82241fb137842d3609073ea57536ab (patch) | |
| tree | 9e10a788ba67a64aef8a6981bd7628ca2079f49e /client/multiplayer.gd | |
| parent | f15d6305a7f70e34ba1e5484d4f185d844cc3aaa (diff) | |
| parent | f2d84a447a21bfd2776d59cddfd831535c38f7f2 (diff) | |
| download | hurrycurry-af9c45741e82241fb137842d3609073ea57536ab.tar hurrycurry-af9c45741e82241fb137842d3609073ea57536ab.tar.bz2 hurrycurry-af9c45741e82241fb137842d3609073ea57536ab.tar.zst | |
Merge branch 'master' of https://codeberg.org/metamuffin/undercooked
Diffstat (limited to 'client/multiplayer.gd')
| -rw-r--r-- | client/multiplayer.gd | 69 | 
1 files changed, 62 insertions, 7 deletions
| diff --git a/client/multiplayer.gd b/client/multiplayer.gd index eae2a7f0..d4864d01 100644 --- a/client/multiplayer.gd +++ b/client/multiplayer.gd @@ -35,13 +35,16 @@ signal add_player(player: int, name: String, pos: Vector2, character: int)  signal remove_player(player: int)  signal position(player: int, position: Vector2, rotation: float)  signal take_item(tile: Vector2i, player: int) -signal put_item(tile: Vector2i, player: int) +signal put_item(player: int, tile: Vector2i, ) +signal pass_item(from: int, to: int)  signal set_tile_item(tile: Vector2i, item: int)  signal remove_tile_item(tile: Vector2i)  signal set_player_item(player: int, item: int)  signal remove_player_item(player: int) -signal set_progress(tile: Vector2i, progress: float, warn: bool) -signal set_finished(tile: Vector2i, warn: bool) +signal set_tile_progress(tile: Vector2i, progress: float, warn: bool) +signal set_player_progress(player: int, progress: float, warn: bool) +signal set_tile_finished(tile: Vector2i, warn: bool) +signal set_player_finished(player: int, warn: bool)  signal set_ingame(state: bool)  signal score(demands_failed: int, demands_completed: int, points: int, time_remaining: float)  signal hide_score() @@ -110,22 +113,55 @@ func handle_packet(bytes: PackedByteArray):  			var rot = decoded["rot"]  			position.emit(player, pos_to_vec2(pos), rot)  		"take_item": +			push_warning("take_item is deprecated")  			var tile = pos_to_vec2i(decoded["tile"])  			var player = decoded["player"]  			take_item.emit(tile, player)  		"put_item": +			push_warning("put_item is deprecated")  			var tile = pos_to_vec2i(decoded["tile"])  			var player = decoded["player"]  			put_item.emit(tile, player) +		"move_item": +			var from: Dictionary = decoded["from"] +			var to: Dictionary = decoded["to"] +			var from_player = from.get("player") +			var from_tile = from.get("tile") +			var to_player = to.get("player") +			var to_tile = to.get("tile") +			if from_player != null and to_player != null: +				pass_item.emit(from_player, to_player) +			elif from_tile != null and to_player != null: +				take_item.emit(pos_to_vec2i(from_tile), to_player) +			elif from_player != null and to_tile != null: +				put_item.emit(from_player, pos_to_vec2i(to_tile))  		"set_active": +			push_warning("set_active is deprecated")  			var tile = pos_to_vec2i(decoded["tile"])  			var warn = decoded["warn"]  			var progress = decoded.get("progress")  			if progress != null: -				set_progress.emit(tile, decoded["progress"], warn) +				set_tile_progress.emit(tile, progress, warn)  			else: -				set_finished.emit(tile, warn) +				set_tile_finished.emit(tile, warn) +		"set_progress": +			var item: Dictionary = decoded["item"] +			var tile = item.get("tile") +			var player = item.get("player") +			var warn = decoded["warn"] +			var progress = decoded.get("progress") +			if progress != null: +				if tile != null: +					set_tile_progress.emit(pos_to_vec2i(tile), progress, warn) +				else: +					set_player_progress.emit(player, progress, warn) +			else: +				if tile != null: +					set_tile_finished.emit(pos_to_vec2i(tile), warn) +				else: +					set_player_finished.emit(player, warn)  		"set_tile_item": +			push_warning("set_tile_item is deprecated")  			var tile = pos_to_vec2i(decoded["tile"])  			var item = decoded.get("item")  			if item != null: @@ -133,12 +169,28 @@ func handle_packet(bytes: PackedByteArray):  			else:  				remove_tile_item.emit(tile)  		"set_player_item": +			push_warning("set_player_item is deprecated")  			var player = decoded["player"]  			var item = decoded.get("item")  			if item != null: -				set_player_item.emit(player, decoded["item"]) +				set_player_item.emit(player, item)  			else:  				remove_player_item.emit(player) +		"set_item": +			var location: Dictionary = decoded["location"] +			var tile = location.get("tile") +			var player = location.get("player") +			var item = decoded.get("item") +			if item != null: +				if tile != null: +					set_tile_item.emit(pos_to_vec2i(tile), item) +				else: +					set_player_item.emit(player, item) +			else: +				if tile != null: +					remove_tile_item.emit(pos_to_vec2i(tile)) +				else: +					remove_player_item.emit(player)  		"update_map":  			var tile: Vector2i = pos_to_vec2i(decoded["tile"])  			var kind = decoded.get("kind") @@ -200,13 +252,16 @@ func send_position(pos: Vector2, rotation: float):  		"rot": rotation  	}) -func send_interact(pos: Vector2i, edge: bool): +func send_tile_interact(pos: Vector2i, edge: bool):  	send_packet({  		"type": "interact",  		"pos": [pos.x, pos.y],  		"edge": edge  	}) +func set_player_interact(player: int, edge: bool): +	push_error("not yet implemented") +  func send_chat(message: String):  	send_packet({  		"type": "communicate", | 
