make world abstract

This commit is contained in:
2024-08-19 16:19:45 +02:00
parent 5335176d76
commit ce2c4574af
14 changed files with 180 additions and 65 deletions

View File

@@ -1,5 +1,7 @@
#include <client/MainMenu.h>
#include <godot_cpp/classes/engine.hpp>
#include <godot_cpp/classes/multiplayer_api.hpp>
#include <godot_cpp/classes/resource_loader.hpp>
#include <godot_cpp/classes/scene_tree.hpp>
@@ -9,7 +11,7 @@ namespace blitz {
void MainMenu::_bind_methods() {
godot::ClassDB::bind_method(godot::D_METHOD("on_connected"), &MainMenu::OnConnected);
ADD_SIGNAL(MethodInfo("change_scene"));
ADD_SIGNAL(MethodInfo("change_scene_to_game", PropertyInfo(Variant::BOOL, "server")));
}
MainMenu::MainMenu() {}
@@ -28,19 +30,22 @@ void MainMenu::_ready() {
DEV_ASSERT(m_CreateButton);
DEV_ASSERT(m_QuitButton);
m_NetworkInterface = Object::cast_to<NetworkInterface>(get_parent()->find_child("Network"));
DEV_ASSERT(m_NetworkInterface);
m_JoinButton->connect("pressed", callable_mp(this, &MainMenu::OnJoinPressed));
m_CreateButton->connect("pressed", callable_mp(this, &MainMenu::OnCreatePressed));
m_QuitButton->connect("pressed", callable_mp(this, &MainMenu::OnQuitPressed));
m_NetworkInterface->connect("local_player_connected", callable_mp(this, &MainMenu::OnConnected));
m_NetworkInterface->connect("server_disconnected", callable_mp(this, &MainMenu::OnDisconnected));
if (!Engine::get_singleton()->is_editor_hint()) {
m_NetworkInterface = Object::cast_to<NetworkInterface>(get_parent()->find_child("Network"));
DEV_ASSERT(m_NetworkInterface);
m_NetworkInterface->connect("local_player_connected", callable_mp(this, &MainMenu::OnConnected));
m_NetworkInterface->connect("server_disconnected", callable_mp(this, &MainMenu::OnDisconnected));
}
}
void MainMenu::OnConnected() {
emit_signal("change_scene");
emit_signal("change_scene_to_game", get_multiplayer()->is_server());
set_visible(false);
}