32 lines
723 B
GDScript3
32 lines
723 B
GDScript3
|
|
@icon("./scope-icon.svg")
|
||
|
|
@tool
|
||
|
|
extends Resource
|
||
|
|
|
||
|
|
## Contains the information about a set of scopes.
|
||
|
|
class_name OAuthScopes
|
||
|
|
|
||
|
|
## Called when new scopes was added or removed
|
||
|
|
signal scopes_changed
|
||
|
|
|
||
|
|
@export var used_scopes: Array[StringName] = []:
|
||
|
|
set(val):
|
||
|
|
used_scopes = val;
|
||
|
|
scopes_changed.emit()
|
||
|
|
|
||
|
|
|
||
|
|
## Returns the scopes space separated
|
||
|
|
func ssv_scopes() -> String:
|
||
|
|
return " ".join(used_scopes)
|
||
|
|
|
||
|
|
|
||
|
|
func add_scopes(scopes: Array[StringName]) -> void:
|
||
|
|
for scope in scopes:
|
||
|
|
if used_scopes.find(scope) != -1: continue
|
||
|
|
used_scopes.append(scope)
|
||
|
|
scopes_changed.emit()
|
||
|
|
|
||
|
|
|
||
|
|
func remove_scopes(scopes: Array[StringName]) -> void:
|
||
|
|
used_scopes = used_scopes.filter(func(s): return scopes.find(s) != -1)
|
||
|
|
scopes_changed.emit()
|