diff options
| author | nokoe <nokoe@mailbox.org> | 2024-07-07 14:16:58 +0200 | 
|---|---|---|
| committer | nokoe <nokoe@mailbox.org> | 2024-07-07 14:16:58 +0200 | 
| commit | 27f93d1352e91c2b82c0d2a92dd4d92bfebf9795 (patch) | |
| tree | 70e9879ef33401a7b8d77a74f10773a91b3c9022 /client | |
| parent | 8028f4083a725f2062b44925e7fa91872a6d12d2 (diff) | |
| download | hurrycurry-27f93d1352e91c2b82c0d2a92dd4d92bfebf9795.tar hurrycurry-27f93d1352e91c2b82c0d2a92dd4d92bfebf9795.tar.bz2 hurrycurry-27f93d1352e91c2b82c0d2a92dd4d92bfebf9795.tar.zst | |
pass item from tile to tile
Diffstat (limited to 'client')
| -rw-r--r-- | client/game.gd | 10 | ||||
| -rw-r--r-- | client/map/tiles/tile.gd | 6 | ||||
| -rw-r--r-- | client/multiplayer.gd | 7 | 
3 files changed, 19 insertions, 4 deletions
| diff --git a/client/game.gd b/client/game.gd index 55bc9dac..27a5715b 100644 --- a/client/game.gd +++ b/client/game.gd @@ -138,12 +138,18 @@ func _ready():  		p.put_item(t)  	) -	mp.pass_item.connect(func(from: int, to: int): +	mp.pass_item_player.connect(func(from: int, to: int):  		var from_player: Player = players[from]  		var to_player: Player = players[to]  		from_player.pass_to(to_player)  	) +	mp.pass_item_tile.connect(func(from: Vector2i, to: Vector2i): +		var from_tile: Tile = map.get_tile_instance(from) +		var to_tile: Tile = map.get_tile_instance(to) +		from_tile.pass_to(to_tile) +	) +  	mp.set_tile_progress.connect(func(tile: Vector2i, progress: float, warn: bool):  		var t: Tile = map.get_tile_instance(tile)  		t.progress(progress, warn) @@ -204,7 +210,7 @@ func _ready():  func _process(delta):  	marker.position = Global.interpolate(marker.position, marker_target, delta * 30.) -	 +  	if Global.get_setting("debug_info"):  		debug_label.show()  		debug_label.text = "%d FPS" % Engine.get_frames_per_second() diff --git a/client/map/tiles/tile.gd b/client/map/tiles/tile.gd index 039a6c1b..220a4395 100644 --- a/client/map/tiles/tile.gd +++ b/client/map/tiles/tile.gd @@ -64,6 +64,12 @@ func put_item(i: Item):  		push_error("already holding an item")  	set_item(i) +func pass_to(tile: Tile): +	var i = take_item() +	if tile.item != null: +		push_error("target is already holding an item") +	tile.set_item(i) +  func set_item(i: Item):  	if item != null:  		item.queue_free() diff --git a/client/multiplayer.gd b/client/multiplayer.gd index d4864d01..e28b6d2a 100644 --- a/client/multiplayer.gd +++ b/client/multiplayer.gd @@ -36,7 +36,8 @@ signal remove_player(player: int)  signal position(player: int, position: Vector2, rotation: float)  signal take_item(tile: Vector2i, player: int)  signal put_item(player: int, tile: Vector2i, ) -signal pass_item(from: int, to: int) +signal pass_item_player(from: int, to: int) +signal pass_item_tile(from: Vector2i, to: Vector2i)  signal set_tile_item(tile: Vector2i, item: int)  signal remove_tile_item(tile: Vector2i)  signal set_player_item(player: int, item: int) @@ -130,11 +131,13 @@ func handle_packet(bytes: PackedByteArray):  			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) +				pass_item_player.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)) +			elif from_tile != null and to_tile != null: +				pass_item_tile.emit(pos_to_vec2i(from_tile), pos_to_vec2i(to_tile))  		"set_active":  			push_warning("set_active is deprecated")  			var tile = pos_to_vec2i(decoded["tile"]) | 
