// Copyright Epic Games, Inc. All Rights Reserved. #include "CoreMinimal.h" #include "Modules/ModuleManager.h" #include "Interfaces/ITargetPlatformControlsModule.h" #include "LinuxTargetPlatformControls.h" #include "ILinuxTargetPlatformSettingsModule.h" #define LOCTEXT_NAMESPACE "FLinuxTargetPlatformControlModule" /** * Module for the Linux target platform controls. */ class FLinuxTargetPlatformControlsModule : public ITargetPlatformControlsModule { public: virtual void GetTargetPlatformControls(TArray& TargetPlatforms, FName& PlatformSettingsModuleName) override { TMap PlatformNameToPlatformSettings; ILinuxTargetPlatformSettingsModule* ModuleSettings = FModuleManager::GetModulePtr(PlatformSettingsModuleName); if (ModuleSettings != nullptr) { TMap OutMap; ModuleSettings->GetPlatformSettingsMaps(OutMap); ITargetPlatformControls* GameTP = new TLinuxTargetPlatformControls>(OutMap[FLinuxPlatformProperties::PlatformName()]); ITargetPlatformControls* EditorTP = new TLinuxTargetPlatformControls>(OutMap[FLinuxPlatformProperties::PlatformName()]); ITargetPlatformControls* ServerTP = new TLinuxTargetPlatformControls>(OutMap[FLinuxPlatformProperties::PlatformName()]); ITargetPlatformControls* ClientTP = new TLinuxTargetPlatformControls>(OutMap[FLinuxPlatformProperties::PlatformName()]); TargetPlatforms.Add(GameTP); TargetPlatforms.Add(EditorTP); TargetPlatforms.Add(ServerTP); TargetPlatforms.Add(ClientTP); } } public: // IModuleInterface interface virtual void StartupModule() override { } virtual void ShutdownModule() override { } }; #undef LOCTEXT_NAMESPACE IMPLEMENT_MODULE( FLinuxTargetPlatformControlsModule, LinuxTargetPlatformControls);