diff options
-rw-r--r-- | Archipelago/client.gd | 44 | ||||
-rw-r--r-- | Archipelago/settings_buttons.gd | 24 | ||||
-rw-r--r-- | Archipelago/settings_screen.gd | 22 |
3 files changed, 59 insertions, 31 deletions
diff --git a/Archipelago/client.gd b/Archipelago/client.gd new file mode 100644 index 0000000..1d2affd --- /dev/null +++ b/Archipelago/client.gd | |||
@@ -0,0 +1,44 @@ | |||
1 | extends Node | ||
2 | |||
3 | var ap_server = "" | ||
4 | var ap_user = "" | ||
5 | var ap_pass = "" | ||
6 | |||
7 | |||
8 | func _init(): | ||
9 | global._print("Instantiated APClient") | ||
10 | |||
11 | # Read AP settings from file, if there are any | ||
12 | var file = File.new() | ||
13 | if file.file_exists("user://settings/archipelago"): | ||
14 | file.open("user://settings/archipelago", File.READ) | ||
15 | var data = file.get_var(true) | ||
16 | file.close() | ||
17 | |||
18 | if data.size() > 0: | ||
19 | ap_server = data[0] | ||
20 | if data.size() > 1: | ||
21 | ap_user = data[1] | ||
22 | if data.size() > 2: | ||
23 | ap_pass = data[2] | ||
24 | |||
25 | |||
26 | func _ready(): | ||
27 | pass | ||
28 | |||
29 | |||
30 | func saveSettings(): | ||
31 | # Save the AP settings to disk. | ||
32 | var dir = Directory.new() | ||
33 | var path = "user://settings" | ||
34 | if dir.dir_exists(path): | ||
35 | pass | ||
36 | else: | ||
37 | dir.make_dir(path) | ||
38 | |||
39 | var file = File.new() | ||
40 | file.open("user://settings/archipelago", File.WRITE) | ||
41 | |||
42 | var data = [ap_server, ap_user, ap_pass] | ||
43 | file.store_var(data, true) | ||
44 | file.close() | ||
diff --git a/Archipelago/settings_buttons.gd b/Archipelago/settings_buttons.gd index 5b4d837..1ab3788 100644 --- a/Archipelago/settings_buttons.gd +++ b/Archipelago/settings_buttons.gd | |||
@@ -6,25 +6,11 @@ func _ready(): | |||
6 | 6 | ||
7 | 7 | ||
8 | func _connect_pressed(): | 8 | func _connect_pressed(): |
9 | # Save the AP settings to disk. | 9 | var apclient = global.get_node("Archipelago") |
10 | var dir = Directory.new() | 10 | apclient.ap_server = self.get_parent().get_node("server_box").text |
11 | var path = "user://settings" | 11 | apclient.ap_user = self.get_parent().get_node("player_box").text |
12 | if dir.dir_exists(path): | 12 | apclient.ap_pass = self.get_parent().get_node("password_box").text |
13 | pass | 13 | apclient.saveSettings() |
14 | else: | ||
15 | dir.make_dir(path) | ||
16 | |||
17 | var file = File.new() | ||
18 | file.open("user://settings/archipelago", File.WRITE) | ||
19 | |||
20 | var data = [ | ||
21 | self.get_parent().get_node("server_box").text, | ||
22 | self.get_parent().get_node("player_box").text, | ||
23 | self.get_parent().get_node("password_box").text | ||
24 | ] | ||
25 | |||
26 | file.store_var(data, true) | ||
27 | file.close() | ||
28 | 14 | ||
29 | 15 | ||
30 | func _back_pressed(): | 16 | func _back_pressed(): |
diff --git a/Archipelago/settings_screen.gd b/Archipelago/settings_screen.gd index 91f233d..3740751 100644 --- a/Archipelago/settings_screen.gd +++ b/Archipelago/settings_screen.gd | |||
@@ -6,16 +6,14 @@ func _ready(): | |||
6 | get_tree().get_root().set_disable_input(false) | 6 | get_tree().get_root().set_disable_input(false) |
7 | Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) | 7 | Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) |
8 | 8 | ||
9 | # Read AP settings from file, if there are any | 9 | # Create the global AP client, if it doesn't already exist. |
10 | var file = File.new() | 10 | if not global.has_node("Archipelago"): |
11 | if file.file_exists("user://settings/archipelago"): | 11 | var apclient = ResourceLoader.load("user://maps/Archipelago/client.gd") |
12 | file.open("user://settings/archipelago", File.READ) | 12 | var apclient_instance = apclient.new() |
13 | var data = file.get_var(true) | 13 | apclient_instance.name = "Archipelago" |
14 | file.close() | 14 | global.add_child(apclient_instance) |
15 | 15 | ||
16 | if data.size() > 0: | 16 | # Populate textboxes with AP settings. |
17 | self.get_node("Panel/server_box").text = data[0] | 17 | self.get_node("Panel/server_box").text = global.get_node("Archipelago").ap_server |
18 | if data.size() > 1: | 18 | self.get_node("Panel/player_box").text = global.get_node("Archipelago").ap_user |
19 | self.get_node("Panel/player_box").text = data[1] | 19 | self.get_node("Panel/password_box").text = global.get_node("Archipelago").ap_pass |
20 | if data.size() > 2: | ||
21 | self.get_node("Panel/password_box").text = data[2] | ||