summaryrefslogtreecommitdiff
path: root/client/menu
diff options
context:
space:
mode:
Diffstat (limited to 'client/menu')
-rw-r--r--client/menu/play.gd58
-rw-r--r--client/menu/play.tscn17
2 files changed, 63 insertions, 12 deletions
diff --git a/client/menu/play.gd b/client/menu/play.gd
index 50e8a633..894ea4bc 100644
--- a/client/menu/play.gd
+++ b/client/menu/play.gd
@@ -26,6 +26,8 @@ var url_regex: RegEx = RegEx.new()
@onready var server = $side/margin/options/second/server
@onready var server_control = $side/margin/options/second/server/control
@onready var server_connect = $side/margin/options/second/server/connect
+@onready var editor_control = $side/margin/options/second/editor/control
+@onready var editor_connect = $side/margin/options/second/editor/connect
func _ready():
url_regex.compile("^(?:(ws|wss)://)?([^:]+)(?::([0-9]+))?$")
@@ -127,40 +129,74 @@ func connect_to(url: String):
print("Connecting to %s" % url)
get_parent().replace_menu("res://menu/game.tscn", url)
-func _on_server_pressed():
+func _on_server_control_pressed():
match Server.state:
- Server.State.RUNNING: Server.stop()
- Server.State.STOPPED: Server.start()
- Server.State.FAILED: Server.start()
+ Service.State.RUNNING: Server.stop()
+ Service.State.STOPPED: Server.start()
+ Service.State.FAILED: Server.start()
+
+func _on_editor_control_pressed():
+ match Editor.state:
+ Service.State.RUNNING: Editor.stop()
+ Service.State.STOPPED: Editor.start(); Server.start()
+ Service.State.FAILED: Editor.start()
func _on_server_connect_pressed():
connect_to("ws://127.0.0.1:27032/")
+func _on_editor_connect_pressed():
+ connect_to("ws://127.0.0.1:27035/")
+
func _process(_delta):
server_control.disabled = false
- server_connect.visible = Server.state == Server.State.RUNNING
+ server_connect.visible = Server.state == Service.State.RUNNING
server_control.modulate = Color.WHITE
match Server.state:
- Server.State.RUNNING:
+ Service.State.RUNNING:
server_control.text = tr("c.menu.play.server_stop")
server_control.modulate = Color.AQUAMARINE
- Server.State.TESTING:
+ Service.State.TESTING:
server_control.text = tr("c.menu.play.server_testing")
server_control.disabled = true
- Server.State.STARTING:
+ Service.State.STARTING:
server_control.text = tr("c.menu.play.server_starting")
server_control.disabled = true
- Server.State.STOPPED:
+ Service.State.STOPPED:
server_control.text = tr("c.menu.play.server_start")
- Server.State.FAILED:
+ Service.State.FAILED:
server_control.text = tr("c.menu.play.server_failed")
server_control.modulate = Color(1, 0.4, 0.5)
server_control.tooltip_text = tr("c.menu.play.server_failed_tooltip")
- Server.State.UNAVAILABLE:
+ Service.State.UNAVAILABLE:
server_control.text = tr("c.menu.play.server_unavailable")
server_control.disabled = true
server_control.tooltip_text = tr("c.menu.play.server_binary_not_found")
+ editor_control.disabled = false
+ editor_connect.visible = Editor.state == Service.State.RUNNING
+ editor_control.modulate = Color.WHITE
+ match Editor.state:
+ Service.State.RUNNING:
+ editor_control.text = tr("c.menu.play.editor_stop")
+ editor_control.modulate = Color.AQUAMARINE
+ Service.State.TESTING:
+ editor_control.text = tr("c.menu.play.editor_testing")
+ editor_control.disabled = true
+ Service.State.STARTING:
+ editor_control.text = tr("c.menu.play.editor_starting")
+ editor_control.disabled = true
+ Service.State.STOPPED:
+ editor_control.text = tr("c.menu.play.editor_start")
+ Service.State.FAILED:
+ editor_control.text = tr("c.menu.play.editor_failed")
+ editor_control.modulate = Color(1, 0.4, 0.5)
+ editor_control.tooltip_text = tr("c.menu.play.server_failed_tooltip")
+ Service.State.UNAVAILABLE:
+ editor_control.text = tr("c.menu.play.editor_unavailable")
+ editor_control.disabled = true
+ editor_control.tooltip_text = tr("c.menu.play.server_binary_not_found")
+
+
func _on_uri_text_changed(new_text):
connect_uri.modulate = Color.WHITE if url_regex.search(new_text) else Color.RED
diff --git a/client/menu/play.tscn b/client/menu/play.tscn
index 43a3414f..47b45d69 100644
--- a/client/menu/play.tscn
+++ b/client/menu/play.tscn
@@ -113,6 +113,19 @@ alignment = 0
layout_mode = 2
text = "c.menu.play.connect"
+[node name="editor" type="HBoxContainer" parent="side/margin/options/second"]
+layout_mode = 2
+
+[node name="control" type="Button" parent="side/margin/options/second/editor"]
+layout_mode = 2
+size_flags_horizontal = 3
+text = "c.menu.play.editor"
+alignment = 0
+
+[node name="connect" type="Button" parent="side/margin/options/second/editor"]
+layout_mode = 2
+text = "c.menu.play.connect"
+
[node name="spacer2" type="Control" parent="side/margin/options/second"]
custom_minimum_size = Vector2(0, 10)
layout_mode = 2
@@ -127,6 +140,8 @@ layout_mode = 2
[connection signal="text_changed" from="side/margin/options/second/connect/uri" to="." method="_on_uri_text_changed"]
[connection signal="pressed" from="side/margin/options/second/connect/connect" to="." method="_on_connect_pressed"]
-[connection signal="pressed" from="side/margin/options/second/server/control" to="." method="_on_server_pressed"]
+[connection signal="pressed" from="side/margin/options/second/server/control" to="." method="_on_server_control_pressed"]
[connection signal="pressed" from="side/margin/options/second/server/connect" to="." method="_on_server_connect_pressed"]
+[connection signal="pressed" from="side/margin/options/second/editor/control" to="." method="_on_editor_control_pressed"]
+[connection signal="pressed" from="side/margin/options/second/editor/connect" to="." method="_on_editor_connect_pressed"]
[connection signal="pressed" from="side/margin/options/second/back" to="." method="_on_back_pressed"]