MCPcopy Create free account
hub / github.com/antopilo/Nuake / OnScriptingEngineGameAssemblyLoaded

Method OnScriptingEngineGameAssemblyLoaded

Nuake/Source/Engine.cpp:340–373  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

338 }
339
340 void Engine::OnScriptingEngineGameAssemblyLoaded()
341 {
342 if (!Engine::IsPlayMode() && Engine::GetGameState() != GameState::Loading)
343 {
344 return;
345 }
346
347 subsystems.clear();
348 scriptedSubsystemMap.clear();
349
350 const Coral::ManagedAssembly& gameAssembly = ScriptingEngineNet::Get().GetGameAssembly();
351
352 const auto scriptTypeEngineSubsystem = gameAssembly.GetType("Nuake.Net.EngineSubsystem");
353
354 const auto& types = gameAssembly.GetTypes();
355 for (const auto& type : types)
356 {
357 // Initialize all subsystems
358 if (type->IsSubclassOf(scriptTypeEngineSubsystem))
359 {
360 const std::string typeName = std::string(type->GetFullName());
361 Logger::Log("Creating Scripted Subsystem " + typeName);
362
363 Coral::ManagedObject scriptedSubsystem = type->CreateInstance();
364 scriptedSubsystem.SetPropertyValue("EngineSubsystemID", subsystems.size());
365 Ref<EngineSubsystemScriptable> subsystemScript = CreateRef<EngineSubsystemScriptable>(scriptedSubsystem);
366 subsystems.push_back(subsystemScript);
367
368 scriptedSubsystemMap[typeName] = subsystemScript;
369
370 subsystemScript->Initialize();
371 }
372 }
373 }
374
375 void Engine::OnScenePreInitialize(Ref<Scene> scene)
376 {

Callers

nothing calls this directly

Calls 7

LogFunction · 0.85
GetFullNameMethod · 0.80
clearMethod · 0.45
GetTypeMethod · 0.45
sizeMethod · 0.45
push_backMethod · 0.45
InitializeMethod · 0.45

Tested by

no test coverage detected