OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-godot4-test commits / d8ba893

chat updates
d8ba8930b7189a2b627b5336ed9d6002419875f5
by Dresk Spidflisk <dreskspidflisk@gmail.com> · 2022-04-29T21:29:18.000Z

Changed files (6) +58 -62

hypergodot/hyper_godot_core.gd +1 -1
……@@ -25,7 +25,7 @@ func _ready():
2525 hyperGateway = get_tree().get_current_scene().get_node("HyperGodot").get_node("HyperGateway")
2626 hyperGossip = get_tree().get_current_scene().get_node("HyperGodot").get_node("HyperGossip")
2727 hyperDebugUI = get_tree().get_current_scene().get_node("HyperGodot").get_node("HyperDebugUI")
28 localSnapshotTimer = get_tree().get_current_scene().get_node("HyperGodot").get_node("LocalSnapshotTimer")
28 # localSnapshotTimer = get_tree().get_current_scene().get_node("HyperGodot").get_node("LocalSnapshotTimer")
2929
3030func _process(_delta):
3131 pass
menu/chat/HyperChat/HyperChat.gd +28 -26
……@@ -1,6 +1,5 @@
1extends "res://src/ResizeRoot.gd"
2
3const LRU = preload('res://src/utils/LRU.gd')
1extends Control
2# extends "res://src/ResizeRoot.gd"
43
54# Messages are JSON which contain {id, from, username, type, content}
65# All messages have a username and type
……@@ -15,9 +14,13 @@ const LRU = preload('res://src/utils/LRU.gd')
1514# Broadcast self on name change
1615# Broadcast self when seeing a new remotePublicKey
1716
18export var archiveRoot = 'hyper://blog.mauve.moe/'
17@export var archiveRoot = 'hyper://blog.mauve.moe/'
1918#export var archiveRoot = 'hyper://70338a94d7415990ab4a3160cf98a5d940243d7fa24dd297352e66b52d3ff841/'
20export var extensionName = 'hyperchat-example-1'
19@export var extensionName = 'hyperchat-example-1'
20
21const LRU = preload('res://hypergodot/utils/lru.gd')
22
23@onready var jsonInstance = JSON.new()
2124
2225var extensionsFolder = archiveRoot + '$/extensions/'
2326var extensionPath = extensionsFolder + extensionName
……@@ -25,13 +28,13 @@ var extensionPath = extensionsFolder + extensionName
2528var seen_messages = LRU.new()
2629var seen_identities = LRU.new()
2730
28onready var eventSource = $HyperGateway/HyperEventSource
29onready var gateway = $HyperGateway
30onready var chatBox = $ScrollContainer/ChatBox
31onready var chatText = $HBoxContainer/ChatInput
32onready var username = $HBoxContainer/Username
33onready var broadcastRequest = $HyperGateway/BroadcastRequest
34onready var listPeersRequest = $HyperGateway/ListPeersRequest
31@onready var eventSource = $HyperGateway/HyperEventSource
32@onready var gateway = $HyperGateway
33@onready var chatBox = $ScrollContainer/ChatBox
34@onready var chatText = $HBoxContainer/ChatInput
35@onready var username = $HBoxContainer/Username
36@onready var broadcastRequest = $HyperGateway/BroadcastRequest
37@onready var listPeersRequest = $HyperGateway/ListPeersRequest
3538
3639func _ready():
3740 # Initialize random number generator
……@@ -98,7 +101,7 @@ func broadcast_message(message):
98101 message.id = make_id()
99102 seen_messages.track(message.id)
100103 print('Broadcasting message', message, extensionPath)
101 var body = JSON.print(message)
104 var body = jsonInstance.stringify(message)
102105 broadcastRequest.request(extensionPath,[], false, HTTPClient.METHOD_POST, body)
103106
104107func has_seen_identity(from):
……@@ -129,13 +132,13 @@ func handle_message(message, from):
129132 _on_unknown_message(message, finalFrom)
130133
131134func _on_event(data, _event, id):
132 var parsed = JSON.parse(data)
133
134 if parsed.error != OK:
135 printerr("Unable to parse EventSource content " + parsed.error_line + "\n" + data)
136 return
137
138 handle_message(parsed.result, id)
135 var error = jsonInstance.parse(data)
136 var parsed = null
137 if error != OK:
138 printerr("Unable to parse EventSource content " + jsonInstance.get_error_line() + "\n" + data)
139 else:
140 parsed = jsonInstance.get_data()
141 handle_message(parsed.result, id)
139142
140143func make_id():
141144 return str(randi()) + str(randi())
……@@ -143,18 +146,17 @@ func make_id():
143146func start_listening():
144147 eventSource.request(extensionsFolder)
145148
146func _on_HyperEventSource_event(data, event, id):
147 _on_event(data, event, id)
148
149149func _on_HyperGateway_started_gateway(_pid):
150150 start_listening()
151151 list_peers()
152152 broadcast_identity()
153153
154func _on_SendButton_pressed():
154func _on_ChatInput_text_entered(_new_text):
155155 send_current()
156156 pass # Replace with function body.
157157
158func _on_ChatInput_text_entered(_new_text):
158func _on_send_button_pressed():
159159 send_current()
160 pass # Replace with function body.
160
161func _on_hyper_event_source_event(data, event, id):
162 _on_event(data, event, id)
menu/chat/HyperChat/HyperChat.tscn +21 -28
……@@ -1,4 +1,4 @@
1[gd_scene load_steps=5 format=3]
1[gd_scene load_steps=5 format=3 uid="uid://c07q1el2aovpr"]
22
33[ext_resource type="Script" path="res://menu/chat/HyperChat/HyperChat.gd" id="1"]
44[ext_resource type="PackedScene" uid="uid://cue2rke35i36o" path="res://hypergodot/hyper_gateway/hyper_gateway.tscn" id="2"]
……@@ -8,61 +8,54 @@
88[node name="Control" type="VBoxContainer"]
99anchor_right = 1.0
1010anchor_bottom = 1.0
11script = ExtResource( 1 )
12__meta__ = {
13"_edit_use_anchors_": false
14}
11script = ExtResource( "1" )
1512
1613[node name="HBoxContainer" type="HBoxContainer" parent="."]
17margin_right = 666.0
18margin_bottom = 24.0
14offset_right = 1440.0
15offset_bottom = 23.0
1916
2017[node name="ChatInput" type="LineEdit" parent="HBoxContainer"]
21margin_right = 487.0
22margin_bottom = 24.0
18offset_right = 1349.0
19offset_bottom = 23.0
2320size_flags_horizontal = 3
2421
2522[node name="SendButton" type="Button" parent="HBoxContainer"]
26margin_left = 491.0
27margin_right = 534.0
28margin_bottom = 24.0
23offset_left = 1352.0
24offset_right = 1387.0
25offset_bottom = 23.0
2926text = "Send"
3027
3128[node name="Username" type="LineEdit" parent="HBoxContainer"]
32margin_left = 538.0
33margin_right = 666.0
34margin_bottom = 24.0
35rect_min_size = Vector2( 128, 0 )
29offset_left = 1390.0
30offset_right = 1440.0
31offset_bottom = 23.0
3632text = "Anonymous"
3733
3834[node name="ScrollContainer" type="ScrollContainer" parent="."]
39margin_top = 28.0
40margin_right = 666.0
41margin_bottom = 666.0
35offset_top = 26.0
36offset_right = 1440.0
37offset_bottom = 810.0
4238size_flags_horizontal = 3
4339size_flags_vertical = 3
4440
4541[node name="ChatBox" type="RichTextLabel" parent="ScrollContainer"]
46margin_right = 666.0
47margin_bottom = 638.0
42offset_right = 1440.0
43offset_bottom = 784.0
4844size_flags_horizontal = 3
4945size_flags_vertical = 3
5046text = "System: Enter some text and hit `send` to broadcast it to peers.
5147"
5248
53[node name="HyperGateway" parent="." instance=ExtResource( 2 )]
54autoStart = false
49[node name="HyperGateway" parent="." instance=ExtResource( "2" )]
5550
5651[node name="HyperEventSource" type="Node" parent="HyperGateway"]
57script = ExtResource( 3 )
52script = ExtResource( "3" )
5853
5954[node name="BroadcastRequest" type="HTTPRequest" parent="HyperGateway"]
60script = ExtResource( 4 )
55script = ExtResource( "4" )
6156
6257[node name="ListPeersRequest" type="HTTPRequest" parent="HyperGateway"]
63script = ExtResource( 4 )
58script = ExtResource( "4" )
6459
65[connection signal="text_entered" from="HBoxContainer/ChatInput" to="." method="_on_ChatInput_text_entered"]
6660[connection signal="pressed" from="HBoxContainer/SendButton" to="." method="_on_SendButton_pressed"]
6761[connection signal="started_gateway" from="HyperGateway" to="." method="_on_HyperGateway_started_gateway"]
68[connection signal="event" from="HyperGateway/HyperEventSource" to="." method="_on_HyperEventSource_event"]
menu/main/main_multiplayer.scn +0 -0
(no content changes — binary or rename)
menu/main/menu_main.gd +8 -7
……@@ -19,13 +19,14 @@ signal quit # Useless, but needed as there is no clean way to check if a node ex
1919@onready var settings_action_cancel = settings_actions.get_node("Cancel")
2020
2121@onready var multiplayer_menu = uiProper.get_node("Multiplayer")
22@onready var multiplayer_LabelGWStatus = multiplayer_menu.get_node("HyperGatewayStatus").get_node("LabelGWStatus")
23@onready var multiplayer_StartGW = multiplayer_menu.get_node("Gateway").get_node("Start")
24@onready var multiplayer_StopGW = multiplayer_menu.get_node("Gateway").get_node("Stop")
25@onready var multiplayer_LabelGossipStatus = multiplayer_menu.get_node("HyperGossipStatus").get_node("LabelGossipStatus")
26@onready var multiplayer_PortInput = multiplayer_menu.get_node("HyperGatewayPort").get_node("LineEdit")
27@onready var multiplayer_GossipURLInput = multiplayer_menu.get_node("GossipURL").get_node("LineEdit")
28@onready var multiplayer_actions_ok = multiplayer_menu.get_node("Actions").get_node("OK")
22@onready var multiplayer_menu_proper = multiplayer_menu.get_node("VBoxContainer")
23@onready var multiplayer_LabelGWStatus = multiplayer_menu_proper.get_node("HyperGatewayStatus").get_node("LabelGWStatus")
24@onready var multiplayer_StartGW = multiplayer_menu_proper.get_node("Gateway").get_node("Start")
25@onready var multiplayer_StopGW = multiplayer_menu_proper.get_node("Gateway").get_node("Stop")
26@onready var multiplayer_LabelGossipStatus = multiplayer_menu_proper.get_node("HyperGossipStatus").get_node("LabelGossipStatus")
27@onready var multiplayer_PortInput = multiplayer_menu_proper.get_node("HyperGatewayPort").get_node("LineEdit")
28@onready var multiplayer_GossipURLInput = multiplayer_menu_proper.get_node("GossipURL").get_node("LineEdit")
29@onready var multiplayer_actions_ok = multiplayer_menu_proper.get_node("Actions").get_node("OK")
2930
3031@onready var shadows_menu = settings_menu.get_node("Shadows")
3132@onready var shadows_4096 = shadows_menu.get_node("4096")
menu/main/menu_main.scn +0 -0
(no content changes — binary or rename)