refactor code to be more decoupled

This commit is contained in:
2022-08-14 16:53:44 -04:00
parent 2a7b20ed54
commit 563cdade00
5 changed files with 40 additions and 23 deletions

View File

@@ -46,20 +46,12 @@ void Main::_ready()
{
// Load monitor from pck
Godot::print("Monitor pck found, loading...");
Ref<PackedScene> monitor_scene = _resource_loader->load("res://monitor/Monitor.tscn");
add_child(monitor_scene->instance());
auto monitor = get_node("Monitor");
monitor->connect("monitor_loaded", this, "_on_monitor_loaded");
get_tree()->set_pause(true);
load_monitor();
}
else if (_resource_loader->exists("res://monitor/Monitor.tscn"))
{
// Load monitor from alai's pck
Ref<PackedScene> monitor_scene = _resource_loader->load("res://monitor/Monitor.tscn");
add_child(monitor_scene->instance());
auto monitor = get_node("Monitor");
monitor->connect("monitor_loaded", this, "_on_monitor_loaded");
get_tree()->set_pause(true);
load_monitor();
}
else
{
@@ -95,15 +87,36 @@ void Main::_ready()
}
}
void Main::_on_monitor_loaded() {
if (level != NULL)
void Main::_on_monitor_loaded()
{
if (level != nullptr)
{
auto level_node = load_level();
connect("monitor_loaded", level_node->get_child(0)->find_node("Player", true, false), "_on_monitor_loaded");
emit_signal("monitor_loaded");
}
}
void Main::load_monitor()
{
Ref<PackedScene> monitor_scene = _resource_loader->load("res://monitor/Monitor.tscn");
add_child(monitor_scene->instance());
auto monitor = get_node("Monitor");
monitor->connect("monitor_loaded", this, "_on_monitor_loaded");
get_tree()->set_pause(true);
}
Node *Main::load_level()
{
if (level != nullptr)
{
auto path = level->get_path();
Ref<PackedScene> level_scene = _resource_loader->load(path);
auto loaded_level = level_scene->instance();
connect("monitor_loaded", loaded_level, "_on_monitor_loaded");
get_node("Level")->add_child(loaded_level);
auto loaded_level = level->instance();
auto level_node = get_node("Level");
level_node->add_child(loaded_level);
return level_node;
}
return nullptr;
}
void Main::_physics_process(float delta)