You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
2.2 KiB

extends Node
# Unused (see Config.gd) #
var config:ConfigResource
var config_path := "user://settings.tres"
##########################
# Add your provider here, as well as in the SettingsForm scene.
var registered_providers = [
'MajorityJudgmentDemoProvider',
'MajorityJudgmentTwitchChatProvider',
'MajorityJudgmentAndroidSmsProvider',
]
func _ready():
load_config()
func go_to_main_menu():
var _done = get_tree().change_scene("res://gui/MainMenu.tscn")
func go_to_settings():
var _done = get_tree().change_scene("res://gui/forms/SettingsForm.tscn")
func go_to_twitch_settings():
var _done = get_tree().change_scene("res://gui/forms/twitch_config/TwitchAuthConfig.tscn")
func load_config():
if File.new().file_exists(self.config_path):
self.config = load(self.config_path)
if null == self.config:
self.config = ConfigResource.new()
func save_config():
var saved = ResourceSaver.save(self.config_path, self.config)
if OK != saved:
printerr("Failed to save configuration.")
func start_poll(poll):
prints("Starting poll", poll)
# Start listening to chat commands
# Prepare timer for automatic closing of the poll
# Move to poll results scene
var _done = get_tree().change_scene("res://addons/majority_judgment/nodes/MajorityJudgmentLinearResultsControl.tscn")
yield(get_tree(), "idle_frame")
get_tree().current_scene.align_with_bottom = Config.get_parameter("align_with_bottom", false)
get_tree().current_scene.set_poll(poll) # last
func get_providers() -> Array:
var providers = Array()
for registered_provider in registered_providers:
var enabled = Config.get_parameter(
"provider_%s_enabled" % registered_provider,
false # default
)
if enabled:
var provider = load(
"res://addons/majority_judgment/providers/%s.gd"
%
registered_provider
).new()
providers.append(provider)
return providers
func can_have_sms_provider() -> bool:
return Engine.has_singleton("AndroidSmsReceiver")
#func get_android_sms_reader():
# if can_have_sms_provider():
# return Engine.get_singleton("AndroidSmsReader")
# return null
func get_now() -> int:
return OS.get_unix_time()
func timer(duration:int) -> SceneTreeTimer:
return get_tree().create_timer(duration)