this repo has no description
1extends Node
2
3var config: Dictionary
4
5const ATPROTO_SLOT = 99
6var save_loaded: String
7var default_config: Dictionary = {}
8
9onready var TackleBox := $"/root/TackleBox"
10const AtProtoClient_t := preload("res://mods/Atproto/atproto_client.gd")
11var AtProtoClient: AtProtoClient_t
12
13# UI
14const AtProtoMenu := preload("res://mods/Atproto/ui/menus/atproto_config.tscn")
15const AtProtoButton := preload("res://mods/Atproto/ui/buttons/atproto.tscn")
16
17var setuped = false
18
19func _enter_tree():
20 AtProtoClient = AtProtoClient_t.new()
21 add_child(AtProtoClient)
22 AtProtoClient.connect("savefile_loaded", self, "set_save_file")
23 get_tree().connect("node_added", self, "_add_atproto_menu")
24
25
26func _ready() -> void:
27 _init_config()
28
29func _init_config():
30 var saved_config = TackleBox.get_mod_config(name)
31 for key in default_config.keys():
32 if not saved_config[key]:
33 saved_config[key] = default_config[key]
34 config = saved_config
35 TackleBox.set_mod_config(name, config)
36 if config.Autoconnect == true:
37 AtProtoClient.login(config.Handle, config.Password)
38
39func _save_config():
40 TackleBox.set_mod_config(name, config)
41
42func _add_atproto_menu(node: Node):
43 if node.name == "main_menu":
44 var atproto_menu: Node = AtProtoMenu.instance()
45 atproto_menu.visible = false
46 node.add_child(atproto_menu)
47
48 var button = AtProtoButton.instance()
49 var menu_list: Node = node.get_node("VBoxContainer")
50 var settings_button: Node = menu_list.get_node("settings")
51 menu_list.add_child(button)
52 menu_list.move_child(button, settings_button.get_index() + 1)
53 atproto_menu.connect("setup_done", self, "_after_setup")
54 pass
55
56func _after_setup():
57 if setuped:
58 return
59 setuped = true
60
61 if config.Save != "" and config.Autoload and AtProtoClient.connected():
62 AtProtoClient.load_save(config.Save)
63
64func can_save_to_atproto():
65 return AtProtoClient.can_save && UserSave.current_loaded_slot == ATPROTO_SLOT && AtProtoClient.connected()
66
67func set_save_file(save_uri):
68 save_loaded = save_uri