From 5a555c5c07bdddc5b106e377ef38ca7852e7de70 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 23 Mar 2024 22:38:23 -0400 Subject: Transition into using level1_stable --- Archipelago/settings_screen.gd | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'Archipelago/settings_screen.gd') diff --git a/Archipelago/settings_screen.gd b/Archipelago/settings_screen.gd index 2cabe09..7f50f51 100644 --- a/Archipelago/settings_screen.gd +++ b/Archipelago/settings_screen.gd @@ -104,8 +104,13 @@ func connectionSuccessful(): # Switch to LL1 Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) - global.map = "level1" global.save_file = apclient.getSaveFileName() + + if Directory.new().file_exists("user://level1/%s.save" % global.save_file): + global.map = "level1" + else: + global.map = "level1_stable" + var _discard = get_tree().change_scene("res://scenes/load_screen.tscn") -- cgit 1.4.1 From 38175bd12c1a0a2c80be5f4011f69e4659f61ccd Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 3 Apr 2024 14:31:51 -0400 Subject: Added player position tracking --- Archipelago/client.gd | 18 +++++++++++++++++- Archipelago/player.gd | 28 ++++++++++++++++++++++++++++ Archipelago/settings_buttons.gd | 1 + Archipelago/settings_screen.gd | 1 + archipelago.tscn | 10 ++++++++++ 5 files changed, 57 insertions(+), 1 deletion(-) (limited to 'Archipelago/settings_screen.gd') diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 47357ee..b825aaa 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -14,6 +14,7 @@ var ap_user = "" var ap_pass = "" var confusify_world = false var enable_multiplayer = false +var track_player = false const my_version = "2.0.0" const ap_version = {"major": 0, "minor": 4, "build": 5, "class": "Version"} @@ -158,6 +159,8 @@ func _init(): confusify_world = data[4] if data.size() > 5: enable_multiplayer = data[5] + if data.size() > 6: + track_player = data[6] processDatapackages() @@ -298,6 +301,11 @@ func _on_data(): if _slot_data.has("early_color_hallways"): _early_color_hallways = _slot_data["early_color_hallways"] + if track_player: + setValue("PlayerPos", {"x": 0, "z": 0}) + else: + setValue("PlayerPos", null) + _puzzle_skips = 0 _localdata_file = "user://archipelago_data/%s_%d" % [_seed, _slot] @@ -470,7 +478,15 @@ func saveSettings(): var file = File.new() file.open("user://settings/archipelago", File.WRITE) - var data = [ap_server, ap_user, ap_pass, _datapackages, confusify_world, enable_multiplayer] + var data = [ + ap_server, + ap_user, + ap_pass, + _datapackages, + confusify_world, + enable_multiplayer, + track_player + ] file.store_var(data, true) file.close() diff --git a/Archipelago/player.gd b/Archipelago/player.gd index 87d9d0c..49d907d 100644 --- a/Archipelago/player.gd +++ b/Archipelago/player.gd @@ -1,6 +1,34 @@ extends "res://scripts/player.gd" +var _oldpos = Vector3(0, -200, 0) + + +func _ready(): + _oldpos = translation + _oldpos.y = 0 + + var apclient = global.get_node("Archipelago") + if apclient.track_player: + var tracking_timer = Timer.new() + tracking_timer.name = "TrackingTimer" + tracking_timer.wait_time = 5.0 + add_child(tracking_timer) + tracking_timer.connect("timeout", self, "_tick_tracking") + tracking_timer.start() + + +func _tick_tracking(): + var newpos = translation + newpos.y = 0 + + if newpos != _oldpos && newpos.distance_to(_oldpos) > 10: + _oldpos = newpos + + var apclient = global.get_node("Archipelago") + apclient.setValue("PlayerPos", {"x": int(_oldpos.x), "z": int(_oldpos.z)}) + + func _solving(): ._solving() diff --git a/Archipelago/settings_buttons.gd b/Archipelago/settings_buttons.gd index e9cff9d..9193b61 100644 --- a/Archipelago/settings_buttons.gd +++ b/Archipelago/settings_buttons.gd @@ -14,6 +14,7 @@ func _connect_pressed(): apclient.ap_pass = self.get_parent().get_node("password_box").text apclient.confusify_world = self.get_parent().get_node("confusing_box").pressed apclient.enable_multiplayer = self.get_parent().get_node("multiplayer_box").pressed + apclient.track_player = self.get_parent().get_node("position_box").pressed apclient.saveSettings() apclient.connectToServer() diff --git a/Archipelago/settings_screen.gd b/Archipelago/settings_screen.gd index 7f50f51..deb0003 100644 --- a/Archipelago/settings_screen.gd +++ b/Archipelago/settings_screen.gd @@ -59,6 +59,7 @@ func _ready(): self.get_node("Panel/password_box").text = apclient.ap_pass self.get_node("Panel/confusing_box").pressed = apclient.confusify_world self.get_node("Panel/multiplayer_box").pressed = apclient.enable_multiplayer + self.get_node("Panel/position_box").pressed = apclient.track_player # Show client version. self.get_node("Panel/title").text = "ARCHIPELAGO (%s)" % apclient.my_version diff --git a/archipelago.tscn b/archipelago.tscn index 917db4e..f0b8ab9 100644 --- a/archipelago.tscn +++ b/archipelago.tscn @@ -173,5 +173,15 @@ custom_icons/checked = ExtResource( 8 ) custom_icons/unchecked = ExtResource( 7 ) text = "Show other players" +[node name="position_box" type="CheckBox" parent="Panel"] +margin_left = 1227.0 +margin_top = 571.0 +margin_right = 1832.0 +margin_bottom = 654.0 +custom_fonts/font = ExtResource( 6 ) +custom_icons/checked = ExtResource( 8 ) +custom_icons/unchecked = ExtResource( 7 ) +text = "Send position to tracker" + [connection signal="pressed" from="Panel/connect_button" to="Panel/connect_button" method="_connect_pressed"] [connection signal="pressed" from="Panel/quit_button" to="Panel/quit_button" method="_back_pressed"] -- cgit 1.4.1 From cd62328a657aa8deb07910267ab549aa990f8aff Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Tue, 9 Apr 2024 23:01:30 -0400 Subject: Log Steam build ID for debugging --- Archipelago/settings_screen.gd | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Archipelago/settings_screen.gd') diff --git a/Archipelago/settings_screen.gd b/Archipelago/settings_screen.gd index deb0003..de64214 100644 --- a/Archipelago/settings_screen.gd +++ b/Archipelago/settings_screen.gd @@ -2,6 +2,12 @@ extends Spatial func _ready(): + # Some helpful logging. + if Steam.isSubscribed(): + global._print("Provisioning successful! Build ID: %d" % Steam.getAppBuildId()) + else: + global._print("Provisioning failed.") + # Undo the load screen removing our cursor get_tree().get_root().set_disable_input(false) Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) -- cgit 1.4.1 From ce831897b89974f38fd6f0583e5feac178643a14 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 17 Apr 2024 12:30:18 -0400 Subject: Add connection history --- Archipelago/client.gd | 6 +++++- Archipelago/settings_screen.gd | 31 +++++++++++++++++++++++++++++++ archipelago.tscn | 25 +++++++++++++++++-------- 3 files changed, 53 insertions(+), 9 deletions(-) (limited to 'Archipelago/settings_screen.gd') diff --git a/Archipelago/client.gd b/Archipelago/client.gd index f15afe6..489fdb9 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -15,6 +15,7 @@ var ap_pass = "" var confusify_world = false var enable_multiplayer = false var track_player = false +var connection_history = [] const my_version = "2.1.1" const ap_version = {"major": 0, "minor": 4, "build": 5, "class": "Version"} @@ -161,6 +162,8 @@ func _init(): enable_multiplayer = data[5] if data.size() > 6: track_player = data[6] + if data.size() > 7: + connection_history = data[7] processDatapackages() @@ -485,7 +488,8 @@ func saveSettings(): _datapackages, confusify_world, enable_multiplayer, - track_player + track_player, + connection_history ] file.store_var(data, true) file.close() diff --git a/Archipelago/settings_screen.gd b/Archipelago/settings_screen.gd index de64214..453e3bf 100644 --- a/Archipelago/settings_screen.gd +++ b/Archipelago/settings_screen.gd @@ -67,6 +67,19 @@ func _ready(): self.get_node("Panel/multiplayer_box").pressed = apclient.enable_multiplayer self.get_node("Panel/position_box").pressed = apclient.track_player + var history_box = get_node("Panel/connection_history") + if apclient.connection_history.empty(): + history_box.disabled = true + else: + history_box.disabled = false + + var i = 0 + for details in apclient.connection_history: + history_box.get_popup().add_item("%s (%s)" % [details[1], details[0]], i) + i += 1 + + history_box.get_popup().connect("id_pressed", self, "historySelected") + # Show client version. self.get_node("Panel/title").text = "ARCHIPELAGO (%s)" % apclient.my_version @@ -109,6 +122,15 @@ func connectionStatus(message): func connectionSuccessful(): var apclient = global.get_node("Archipelago") + # Save connection details + var connection_details = [apclient.ap_server, apclient.ap_user, apclient.ap_pass] + if apclient.connection_history.has(connection_details): + apclient.connection_history.erase(connection_details) + apclient.connection_history.push_front(connection_details) + if apclient.connection_history.size() > 10: + apclient.connection_history.resize(10) + apclient.saveSettings() + # Switch to LL1 Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) global.save_file = apclient.getSaveFileName() @@ -130,3 +152,12 @@ func connectionUnsuccessful(error_message): popup.popup_exclusive = true popup.get_ok().visible = true popup.popup_centered() + + +func historySelected(index): + var apclient = global.get_node("Archipelago") + var details = apclient.connection_history[index] + + self.get_node("Panel/server_box").text = details[0] + self.get_node("Panel/player_box").text = details[1] + self.get_node("Panel/password_box").text = details[2] diff --git a/archipelago.tscn b/archipelago.tscn index f0b8ab9..f063af9 100644 --- a/archipelago.tscn +++ b/archipelago.tscn @@ -86,9 +86,9 @@ align = 2 [node name="credit5" parent="Panel" instance=ExtResource( 1 )] margin_left = 1239.0 -margin_top = 271.0 +margin_top = 422.0 margin_right = 1829.0 -margin_bottom = 335.0 +margin_bottom = 486.0 custom_fonts/font = ExtResource( 2 ) custom_styles/normal = SubResource( 1 ) text = "OPTIONS" @@ -155,9 +155,9 @@ margin_bottom = 58.0 [node name="confusing_box" type="CheckBox" parent="Panel"] margin_left = 1227.0 -margin_top = 351.0 +margin_top = 502.0 margin_right = 1832.0 -margin_bottom = 439.0 +margin_bottom = 590.0 custom_fonts/font = ExtResource( 6 ) custom_icons/checked = ExtResource( 8 ) custom_icons/unchecked = ExtResource( 7 ) @@ -165,9 +165,9 @@ text = "Make world more confusing" [node name="multiplayer_box" type="CheckBox" parent="Panel"] margin_left = 1227.0 -margin_top = 461.0 +margin_top = 612.0 margin_right = 1832.0 -margin_bottom = 549.0 +margin_bottom = 700.0 custom_fonts/font = ExtResource( 6 ) custom_icons/checked = ExtResource( 8 ) custom_icons/unchecked = ExtResource( 7 ) @@ -175,13 +175,22 @@ text = "Show other players" [node name="position_box" type="CheckBox" parent="Panel"] margin_left = 1227.0 -margin_top = 571.0 +margin_top = 722.0 margin_right = 1832.0 -margin_bottom = 654.0 +margin_bottom = 810.0 custom_fonts/font = ExtResource( 6 ) custom_icons/checked = ExtResource( 8 ) custom_icons/unchecked = ExtResource( 7 ) text = "Send position to tracker" +[node name="connection_history" type="MenuButton" parent="Panel"] +margin_left = 1239.0 +margin_top = 276.0 +margin_right = 1829.0 +margin_bottom = 372.0 +custom_fonts/font = ExtResource( 6 ) +text = "connection history" +flat = false + [connection signal="pressed" from="Panel/connect_button" to="Panel/connect_button" method="_connect_pressed"] [connection signal="pressed" from="Panel/quit_button" to="Panel/quit_button" method="_back_pressed"] -- cgit 1.4.1