virtual void StartupModule( ) override { if(!FModuleManager::Get().LoadModule(TEXT("Networking")).IsValid()) { UE_LOG(LogOSC, Error, TEXT("Required module Networking failed to load")); return; } _dispatcher = UOscDispatcher::Get(); HandleSettingsSaved(); // register settings #if OSC_ENGINE_VERSION < 40600 auto settingsModule = ISettingsModule::Get(); #else auto settingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings"); #endif if(settingsModule) { #if OSC_ENGINE_VERSION < 40600 FSettingsSectionDelegates settingsDelegates; settingsDelegates.ModifiedDelegate = FOnSettingsSectionModified::CreateRaw(this, &FOscModule::HandleSettingsSaved); auto settings = GetMutableDefault<UOscSettings>(); settingsModule->RegisterSettings("Project", "Plugins", "OSC", LOCTEXT("OscSettingsName", "OSC"), LOCTEXT("OscSettingsDescription", "Configure the OSC plug-in."), settings, settingsDelegates); #else auto settingsSection = settingsModule->RegisterSettings("Project", "Plugins", "OSC", LOCTEXT("OscSettingsName", "OSC"), LOCTEXT("OscSettingsDescription", "Configure the OSC plug-in."), GetMutableDefault<UOscSettings>() ); if (settingsSection.IsValid()) { settingsSection->OnModified().BindRaw(this, &FOscModule::HandleSettingsSaved); } #endif } else { UE_LOG(LogOSC, Warning, TEXT("Settings changed registration failed")); } UE_LOG(LogOSC, Display, TEXT("Startup succeed")); }
virtual void StartupModule() override { FLevelSequenceEditorStyle::Get(); RegisterAssetTools(); RegisterMenuExtensions(); RegisterLevelEditorExtensions(); RegisterPlacementModeExtensions(); RegisterSettings(); }
virtual void StartupModule() override { if(!GIsEditor) { //Workaround for the circumstance that we have the anim graph node inside an editor only plugin and we can't load the plugin for editor AND uncooked but not during cooked //Instead we explicitly load the plugin for this scenario when we play with uncooked standalone //That looks like an engine bug. See: https://udn.unrealengine.com/questions/247518/editor-only-plugin-modules.html FModuleManager::LoadModuleChecked<FDefaultModuleImpl>("FaceFXEditor"); } RegisterSettings(); }
void FPlayFabModule::StartupModule() { // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module RegisterSettings(); // copy the settings HandleSettingsSaved(); // create the API ClientAPI = MakeShareable(new PlayFab::UPlayFabClientAPI()); #if WITH_SERVER_CODE ServerAPI = MakeShareable(new PlayFab::UPlayFabServerAPI()); MatchMakerAPI = MakeShareable(new PlayFab::UPlayFabMatchmakerAPI()); AdminAPI = MakeShareable(new PlayFab::UPlayFabAdminAPI()); #endif }
CSettings::CSettings() : m_Set_SyncViaAudioEnabled(0), m_Set_EnableAudio(0), m_Set_FixedAudio(0), m_Set_SyncAudio(0), m_Set_FullSpeed(0), m_Set_LimitFPS(0), m_Set_basic_mode(0), m_Set_debugger(0), m_Set_log_dir(0), m_Set_log_flush(0), m_FlushLogs(false), m_AudioEnabled(true), m_advanced_options(false), m_debugger_enabled(false), m_Volume(100), m_TinyBuffer(true), m_FPSBuffer(true), m_FixedAudio(false), m_SyncAudio(false), m_FullSpeed(true) { memset(m_log_dir, 0, sizeof(m_log_dir)); RegisterSettings(); ReadSettings(); if (m_Set_EnableAudio != 0) { SettingsRegisterChange(true, m_Set_EnableAudio, this, stSettingsChanged); } if (m_Set_basic_mode != 0) { SettingsRegisterChange(true, m_Set_basic_mode, this, stSettingsChanged); } if (m_Set_debugger != 0) { SettingsRegisterChange(true, m_Set_debugger, this, stSettingsChanged); } if (m_Set_log_flush != 0) { SettingsRegisterChange(true, m_Set_log_flush, this, stSettingsChanged); } if (m_Set_FixedAudio != 0) { SettingsRegisterChange(true, m_Set_FixedAudio, this, stSettingsChanged); } if (m_Set_SyncAudio != 0) { SettingsRegisterChange(true, m_Set_SyncAudio, this, stSettingsChanged); } if (m_Set_FullSpeed != 0) { SettingsRegisterChange(true, m_Set_FullSpeed, this, stSettingsChanged); } if (m_Set_LimitFPS != 0) { SettingsRegisterChange(true, m_Set_LimitFPS, this, stSettingsChanged); } SettingsRegisterChange(false, Set_Volume, this, stSettingsChanged); SettingsRegisterChange(false, Set_Logging_MD5, this, stLogLevelChanged); SettingsRegisterChange(false, Set_Logging_Thread, this, stLogLevelChanged); SettingsRegisterChange(false, Set_Logging_Path, this, stLogLevelChanged); SettingsRegisterChange(false, Set_Logging_InitShutdown, this, stLogLevelChanged); SettingsRegisterChange(false, Set_Logging_Interface, this, stLogLevelChanged); SettingsRegisterChange(false, Set_Logging_Driver, this, stLogLevelChanged); }
virtual void StartupModule( ) override { if(!FModuleManager::Get().LoadModule(TEXT("Networking")).IsValid()) { UE_LOG(LogOSC, Error, TEXT("Required module Networking failed to load")); return; } #if OSC_EDITOR_BUILD _mustListen = !GIsEditor; // must not listen now if IsEditor (listen when PIE), else (Standalone Game) listen now FEditorDelegates::BeginPIE.AddRaw(this, &FOscModule::OnBeginPIE); FEditorDelegates::EndPIE.AddRaw(this, &FOscModule::OnEndPIE); #endif _dispatcher = UOscDispatcher::Get(); HandleSettingsSaved(); // register settings auto settingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings"); if(settingsModule) { auto settingsSection = settingsModule->RegisterSettings("Project", "Plugins", "OSC", LOCTEXT("OscSettingsName", "OSC"), LOCTEXT("OscSettingsDescription", "Configure the OSC plug-in."), GetMutableDefault<UOscSettings>() ); if (settingsSection.IsValid()) { settingsSection->OnModified().BindRaw(this, &FOscModule::HandleSettingsSaved); } } else { #if OSC_EDITOR_BUILD UE_LOG(LogOSC, Warning, TEXT("Settings changed registration failed")); #endif } UE_LOG(LogOSC, Display, TEXT("Startup succeed")); }
virtual void StartupModule() override { SpriteEditor_MenuExtensibilityManager = MakeShareable(new FExtensibilityManager); SpriteEditor_ToolBarExtensibilityManager = MakeShareable(new FExtensibilityManager); FlipbookEditor_MenuExtensibilityManager = MakeShareable(new FExtensibilityManager); FlipbookEditor_ToolBarExtensibilityManager = MakeShareable(new FExtensibilityManager); // Register slate style overrides FPaperStyle::Initialize(); // Register commands FPaperEditorCommands::Register(); // Register asset types IAssetTools& AssetTools = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools").Get(); Paper2DAssetCategoryBit = AssetTools.RegisterAdvancedAssetCategory(FName(TEXT("Paper2D")), LOCTEXT("Paper2DAssetCategory", "Paper2D")); RegisterAssetTypeAction(AssetTools, MakeShareable(new FSpriteAssetTypeActions(Paper2DAssetCategoryBit))); RegisterAssetTypeAction(AssetTools, MakeShareable(new FFlipbookAssetTypeActions(Paper2DAssetCategoryBit))); RegisterAssetTypeAction(AssetTools, MakeShareable(new FTileSetAssetTypeActions(Paper2DAssetCategoryBit))); RegisterAssetTypeAction(AssetTools, MakeShareable(new FTileMapAssetTypeActions(Paper2DAssetCategoryBit))); RegisterAssetTypeAction(AssetTools, MakeShareable(new FAtlasAssetTypeActions(Paper2DAssetCategoryBit))); PaperSpriteBroker = MakeShareable(new FPaperSpriteAssetBroker); FComponentAssetBrokerage::RegisterBroker(PaperSpriteBroker, UPaperSpriteComponent::StaticClass(), true, true); PaperFlipbookBroker = MakeShareable(new FPaperFlipbookAssetBroker); FComponentAssetBrokerage::RegisterBroker(PaperFlipbookBroker, UPaperFlipbookComponent::StaticClass(), true, true); PaperTileMapBroker = MakeShareable(new FPaperTileMapAssetBroker); FComponentAssetBrokerage::RegisterBroker(PaperTileMapBroker, UPaperTileMapComponent::StaticClass(), true, true); // Register the details customizations { FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>("PropertyEditor"); PropertyModule.RegisterCustomClassLayout(UPaperTileMapComponent::StaticClass()->GetFName(), FOnGetDetailCustomizationInstance::CreateStatic(&FPaperTileMapDetailsCustomization::MakeInstance)); PropertyModule.RegisterCustomClassLayout(UPaperTileMap::StaticClass()->GetFName(), FOnGetDetailCustomizationInstance::CreateStatic(&FPaperTileMapDetailsCustomization::MakeInstance)); PropertyModule.RegisterCustomClassLayout(UPaperTileSet::StaticClass()->GetFName(), FOnGetDetailCustomizationInstance::CreateStatic(&FTileSetDetailsCustomization::MakeInstance)); PropertyModule.RegisterCustomClassLayout(UPaperSprite::StaticClass()->GetFName(), FOnGetDetailCustomizationInstance::CreateStatic(&FSpriteDetailsCustomization::MakeInstance)); PropertyModule.RegisterCustomClassLayout(UPaperSpriteComponent::StaticClass()->GetFName(), FOnGetDetailCustomizationInstance::CreateStatic(&FSpriteComponentDetailsCustomization::MakeInstance)); PropertyModule.RegisterCustomClassLayout(UPaperFlipbookComponent::StaticClass()->GetFName(), FOnGetDetailCustomizationInstance::CreateStatic(&FFlipbookComponentDetailsCustomization::MakeInstance)); PropertyModule.RegisterCustomClassLayout(UPaperGroupedSpriteComponent::StaticClass()->GetFName(), FOnGetDetailCustomizationInstance::CreateStatic(&FGroupedSpriteComponentDetailsCustomization::MakeInstance)); //@TODO: Struct registration should happen using ::StaticStruct, not by string!!! //PropertyModule.RegisterCustomPropertyTypeLayout( "SpritePolygonCollection", FOnGetPropertyTypeCustomizationInstance::CreateStatic( &FSpritePolygonCollectionCustomization::MakeInstance ) ); PropertyModule.NotifyCustomizationModuleChanged(); } // Register to be notified when properties are edited OnPropertyChangedDelegateHandle = FCoreUObjectDelegates::OnObjectPropertyChanged.AddRaw(this, &FPaper2DEditor::OnPropertyChanged); // Register to be notified when an asset is reimported OnAssetReimportDelegateHandle = FEditorDelegates::OnAssetReimport.AddRaw(this, &FPaper2DEditor::OnObjectReimported); // Register the thumbnail renderers UThumbnailManager::Get().RegisterCustomRenderer(UPaperSprite::StaticClass(), UPaperSpriteThumbnailRenderer::StaticClass()); UThumbnailManager::Get().RegisterCustomRenderer(UPaperTileSet::StaticClass(), UPaperTileSetThumbnailRenderer::StaticClass()); UThumbnailManager::Get().RegisterCustomRenderer(UPaperFlipbook::StaticClass(), UPaperFlipbookThumbnailRenderer::StaticClass()); //@TODO: PAPER2D: UThumbnailManager::Get().RegisterCustomRenderer(UPaperTileMap::StaticClass(), UPaperTileMapThumbnailRenderer::StaticClass()); // Register the editor modes FEditorModeRegistry::Get().RegisterMode<FEdModeTileMap>( FEdModeTileMap::EM_TileMap, LOCTEXT("TileMapEditMode", "Tile Map Editor"), FSlateIcon(), false); FEditorModeRegistry::Get().RegisterMode<FSpriteGeometryEditMode>( FSpriteGeometryEditMode::EM_SpriteGeometry, LOCTEXT("SpriteGeometryEditMode", "Sprite Geometry Editor"), FSlateIcon(), false); // Integrate Paper2D actions into existing editor context menus if (!IsRunningCommandlet()) { FPaperContentBrowserExtensions::InstallHooks(); FPaperLevelEditorMenuExtensions::InstallHooks(); } // Register with the mesh paint module if (IMeshPaintModule* MeshPaintModule = FModuleManager::LoadModulePtr<IMeshPaintModule>("MeshPaint")) { SpriteMeshPaintAdapterFactory = MakeShareable(new FMeshPaintSpriteAdapterFactory()); MeshPaintModule->RegisterGeometryAdapterFactory(SpriteMeshPaintAdapterFactory.ToSharedRef()); } // RegisterSettings(); }