diff options
Diffstat (limited to 'client/game.gd')
| -rw-r--r-- | client/game.gd | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/client/game.gd b/client/game.gd index bf7831ef..45cca6f9 100644 --- a/client/game.gd +++ b/client/game.gd @@ -30,6 +30,12 @@ class TextMessage: var timeout_initial: float var timeout_remaining +class ServerContext: + var name: String + var motd#: String? + func _init(name_: String, motd_) -> void: + name = name_; motd = motd_ + enum SpectatingMode { CENTER, FREE, @@ -49,6 +55,7 @@ var tile_placeable_any: Array[String] = [] var tile_placeable_items: Dictionary[String, Array] = {} # Dictionary[String, Array[String]] var tile_interactable_empty: Array[String] = [] var maps: Array = [] +var server_context: ServerContext var bot_algos: Array var text_message_history: Array[TextMessage] = [] @@ -89,25 +96,27 @@ func _ready(): func handle_packet(p): match p.type: "joined": my_player_id = p.id - "data": - item_names = p["data"]["item_names"] - tile_names = p["data"]["tile_names"] + "server_data": + maps = p["maps"] + bot_algos = p["bot_algos"] + server_context = ServerContext.new(p["name"], p["motd"]) + "game_data": + item_names = p["item_names"] + tile_names = p["tile_names"] tile_collide = [] tile_interactable_empty = [] tile_placeable_any = [] tile_placeable_items = {} - for tile in p["data"]["tile_collide"]: tile_collide.append(tile_names[int(tile)]) - for tile in p["data"]["tile_interactable_empty"]: tile_interactable_empty.append(tile_names[int(tile)]) - for tile in p["data"]["tile_placeable_any"]: tile_placeable_any.append(tile_names[int(tile)]) - for tile in p["data"]["tile_placeable_items"]: - tile_placeable_items[tile_names[int(tile)]] = p["data"]["tile_placeable_items"][tile].map(func(x): return item_names[int(x)]) - maps = p["data"]["maps"] - bot_algos = p["data"]["bot_algos"] - Global.hand_count = p["data"]["hand_count"] + for tile in p["tile_collide"]: tile_collide.append(tile_names[int(tile)]) + for tile in p["tile_interactable_empty"]: tile_interactable_empty.append(tile_names[int(tile)]) + for tile in p["tile_placeable_any"]: tile_placeable_any.append(tile_names[int(tile)]) + for tile in p["tile_placeable_items"]: + tile_placeable_items[tile_names[int(tile)]] = p["tile_placeable_items"][tile].map(func(x): return item_names[int(x)]) + Global.hand_count = p["hand_count"] Global.hand_count_change.emit(Global.hand_count) Global.last_map_name = Global.current_map_name - Global.current_map_name = p["data"]["current_map"] + Global.current_map_name = p["current_map"] data_updated.emit() "add_player": @@ -226,7 +235,7 @@ func handle_packet(p): var tiles: Array = change[1].map(func(x): return tile_names[int(x)] if x != null else null) # : Array[String] changes[pos] = tiles - map.set_all_tiles(changes) + map.set_all_tiles(changes, server_context) map.flush() "communicate": # TODO: use MessageParser |