25 FString PluginShaderDir = FPaths::Combine(
26 IPluginManager::Get().FindPlugin(TEXT(
"IVSmoke"))->GetBaseDir(),
29 AddShaderSourceDirectoryMapping(TEXT(
"/Plugin/IVSmoke"), PluginShaderDir);
34 if (!IsRunningCommandlet())
36 UE_LOG(LogIVSmoke, Log, TEXT(
"[FIVSmokeModule::StartupModule] Registering OnPostEngineInit"));
37 FCoreDelegates::OnPostEngineInit.AddLambda([]()
39 UE_LOG(LogIVSmoke, Log, TEXT(
"[FIVSmokeModule::StartupModule] OnPostEngineInit fired"));
46 if (UMaterialInterface* Mat = Preset->SmokeVisualMaterial.Get())
48 Mat->EnsureIsComplete();
49 UE_LOG(LogIVSmoke, Log, TEXT(
"[FIVSmokeModule::StartupModule] Visual Material preloaded"));
61 FEditorDelegates::PreBeginPIE.AddLambda([](
bool bIsSimulating)
65 if (UWorld* EditorWorld = GEditor->GetEditorWorldContext().World())
67 for (TActorIterator<AIVSmokeVoxelVolume> It(EditorWorld); It; ++It)
69 It->SetLockLocation(
true);
73 GEditor->bCheckForLockActors =
true;
77 FEditorDelegates::EndPIE.AddLambda([](
bool bIsSimulating)
81 if (UWorld* EditorWorld = GEditor->GetEditorWorldContext().World())
83 for (TActorIterator<AIVSmokeVoxelVolume> It(EditorWorld); It; ++It)
85 It->SetLockLocation(
false);
89 GEditor->bCheckForLockActors =
true;