aboutsummaryrefslogtreecommitdiff
path: root/client/game.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/game.gd')
-rw-r--r--client/game.gd35
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