added firebase and rudimentary leaderboard support
This commit is contained in:
30
addons/godot-firebase/queues/queueable_http_request.gd
Normal file
30
addons/godot-firebase/queues/queueable_http_request.gd
Normal file
@@ -0,0 +1,30 @@
|
||||
class_name QueueableHTTPRequest
|
||||
extends HTTPRequest
|
||||
|
||||
signal queue_request_completed(result : int, response_code : int, headers : PackedStringArray, body : PackedByteArray)
|
||||
|
||||
var _queue := []
|
||||
|
||||
# Determine if we need to set Use Threads to true; it can cause collisions with get_http_client_status() due to a thread returning the data _after_ having checked the connection status and result in double-requests.
|
||||
|
||||
func _ready() -> void:
|
||||
request_completed.connect(
|
||||
func(result : int, response_code : int, headers : PackedStringArray, body : PackedByteArray):
|
||||
queue_request_completed.emit(result, response_code, headers, body)
|
||||
|
||||
if not _queue.is_empty():
|
||||
var req = _queue.pop_front()
|
||||
self.request(req.url, req.headers, req.method, req.data)
|
||||
)
|
||||
|
||||
func request(url : String, headers : PackedStringArray = PackedStringArray(), method := HTTPClient.METHOD_GET, data : String = "") -> Error:
|
||||
var status = get_http_client_status()
|
||||
var result = OK
|
||||
|
||||
if status != HTTPClient.STATUS_DISCONNECTED:
|
||||
_queue.push_back({url=url, headers=headers, method=method, data=data})
|
||||
return result
|
||||
|
||||
result = super.request(url, headers, method, data)
|
||||
|
||||
return result
|
||||
@@ -0,0 +1 @@
|
||||
uid://37mycjbymm3y
|
||||
6
addons/godot-firebase/queues/queueable_http_request.tscn
Normal file
6
addons/godot-firebase/queues/queueable_http_request.tscn
Normal file
@@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://ctb4l7plg8kqg"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/godot-firebase/queues/queueable_http_request.gd" id="1_2rucc"]
|
||||
|
||||
[node name="QueueableHTTPRequest" type="HTTPRequest"]
|
||||
script = ExtResource("1_2rucc")
|
||||
Reference in New Issue
Block a user