diff --git a/Content/AutomotiveMaterials/Materials/Exterior/Metal/Textures/T_MetalWear_Frosted_N.uasset b/Content/AutomotiveMaterials/Materials/Exterior/Metal/Textures/T_MetalWear_Frosted_N.uasset deleted file mode 100644 index 6fc3551..0000000 Binary files a/Content/AutomotiveMaterials/Materials/Exterior/Metal/Textures/T_MetalWear_Frosted_N.uasset and /dev/null differ diff --git a/Plugins/FunctionPicker/Source/FunctionPicker/FunctionPicker.Build.cs b/Plugins/FunctionPicker/Source/FunctionPicker/FunctionPicker.Build.cs deleted file mode 100644 index d8e376a..0000000 --- a/Plugins/FunctionPicker/Source/FunctionPicker/FunctionPicker.Build.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -using UnrealBuildTool; - -public class FunctionPicker : ModuleRules -{ - public FunctionPicker(ReadOnlyTargetRules Target) : base(Target) - { - PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; - CppStandard = CppStandardVersion.Latest; - - PublicDependencyModuleNames.AddRange(new[] - { - "Core" - } - ); - - PrivateDependencyModuleNames.AddRange(new[] - { - "CoreUObject", "Engine", "Slate", "SlateCore" // Core - } - ); - } -} \ No newline at end of file diff --git a/Plugins/FunctionPicker/Source/FunctionPicker/Public/FunctionPickerModule.h b/Plugins/FunctionPicker/Source/FunctionPicker/Public/FunctionPickerModule.h deleted file mode 100644 index 2e32f83..0000000 --- a/Plugins/FunctionPicker/Source/FunctionPicker/Public/FunctionPickerModule.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#pragma once - -#include "Modules/ModuleInterface.h" - -class FUNCTIONPICKER_API FFunctionPickerModule : public IModuleInterface -{ -public: - /** - * Called right after the module DLL has been loaded and the module object has been created. - * Load dependent modules here, and they will be guaranteed to be available during ShutdownModule. - */ - virtual void StartupModule() override; - - /** - * Called before the module is unloaded, right before the module object is destroyed. - * During normal shutdown, this is called in reverse order that modules finish StartupModule(). - * This means that, as long as a module references dependent modules in it's StartupModule(), it - * can safely reference those dependencies in ShutdownModule() as well. - */ - virtual void ShutdownModule() override; -}; diff --git a/Plugins/FunctionPicker/Source/FunctionPickerEditor/FunctionPickerEditor.Build.cs b/Plugins/FunctionPicker/Source/FunctionPickerEditor/FunctionPickerEditor.Build.cs deleted file mode 100644 index 3711742..0000000 --- a/Plugins/FunctionPicker/Source/FunctionPickerEditor/FunctionPickerEditor.Build.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Yevhenii Selivanov - -using UnrealBuildTool; - -public class FunctionPickerEditor : ModuleRules -{ - public FunctionPickerEditor(ReadOnlyTargetRules Target) : base(Target) - { - PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; - CppStandard = CppStandardVersion.Latest; - - PublicDependencyModuleNames.AddRange( - new[] - { - "Core" - } - ); - - PrivateDependencyModuleNames.AddRange( - new[] - { - "CoreUObject", "Engine", "Slate", "SlateCore" // Core - , "ToolWidgets" // SSearchableComboBox - // My modules - , "FunctionPicker" // FFunctionPicker - } - ); - } -} \ No newline at end of file diff --git a/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/MyPropertyTypeCustomization.cpp b/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/MyPropertyTypeCustomization.cpp deleted file mode 100644 index 49c3579..0000000 --- a/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/MyPropertyTypeCustomization.cpp +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#include "MyPropertyType/MyPropertyTypeCustomization.h" -//--- -#include "DetailLayoutBuilder.h" -#include "DetailWidgetRow.h" -#include "IDetailChildrenBuilder.h" -#include "SSearchableComboBox.h" - -// Called when the header of the property (the row in the details panel where the property is shown) -void FMyPropertyTypeCustomization::CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) -{ - // Use default the header details panel - HeaderRow - .NameContent() - [ - PropertyHandle->CreatePropertyNameWidget() - ] - .ValueContent() - [ - PropertyHandle->CreatePropertyValueWidget() - ]; -} - -// Called when the children of the property should be customized or extra rows added. -void FMyPropertyTypeCustomization::CustomizeChildren(TSharedRef PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils) -{ - // Find outer - TArray OuterObjects; - PropertyHandle/*ref*/->GetOuterObjects(OuterObjects); - MyPropertyOuterInternal = OuterObjects.IsValidIndex(0) ? OuterObjects[0] : nullptr; - - // Set parent property - ParentPropertyInternal = FPropertyData(PropertyHandle); - const TDelegate& RefreshCustomPropertyFunction = FSimpleDelegate::CreateSP(this, &FMyPropertyTypeCustomization::RefreshCustomProperty); - PropertyHandle/*ref*/->SetOnPropertyValueChanged(RefreshCustomPropertyFunction); - PropertyHandle/*ref*/->SetOnChildPropertyValueChanged(RefreshCustomPropertyFunction); - - // Set children properties - uint32 NumChildren; - PropertyHandle/*ref*/->GetNumChildren(NumChildren); - for (uint32 ChildIndex = 0; ChildIndex < NumChildren; ++ChildIndex) - { - FPropertyData PropertyData(PropertyHandle/*ref*/->GetChildHandle(ChildIndex).ToSharedRef()); - OnCustomizeChildren(ChildBuilder, PropertyData); - } -} - -// Set the FName value into the property -void FMyPropertyTypeCustomization::SetCustomPropertyValue(FName Value) -{ - const FString StringToSet = Value.ToString(); - - // Set value into property - CustomPropertyInternal.PropertyValue = Value; - CustomPropertyInternal.SetPropertyValueToHandle(Value); - - if (const TSharedPtr& RowTextWidget = RowTextWidgetInternal.Pin()) - { - // Update value on displayed widget - RowTextWidget->SetText(FText::FromString(StringToSet)); - } -} - -// Set true to activate property, false to grey out it (read-only) -void FMyPropertyTypeCustomization::SetCustomPropertyEnabled(bool bEnabled) -{ - const bool bIsAllowedEnableCustomProperty = IsAllowedEnableCustomProperty(); - if (bEnabled && !bIsAllowedEnableCustomProperty) - { - // Enable is forbidden - return; - } - - if (const TSharedPtr& SearchableComboBox = SearchableComboBoxInternal.Pin()) - { - SearchableComboBox->SetEnabled(bEnabled); - } - - CustomPropertyInternal.bIsEnabled = bEnabled; -} - -// Is called for each property on building its row -void FMyPropertyTypeCustomization::OnCustomizeChildren(IDetailChildrenBuilder& ChildBuilder, FPropertyData& PropertyData) -{ - if (!ensureMsgf(PropertyData.IsValid(), TEXT("ASSERT: 'PropertyData.PropertyHandle' is not valid"))) - { - return; - } - - if (PropertyData.PropertyName != CustomPropertyInternal.PropertyName) - { - // Add each another property to the Details Panel without customization - ChildBuilder.AddProperty(PropertyData.PropertyHandle.ToSharedRef()) - .ShouldAutoExpand(true) - .IsEnabled(PropertyData.bIsEnabled) - .Visibility(PropertyData.Visibility); - DefaultPropertiesInternal.Emplace(PropertyData); - return; - } - - // --- Is custom property --- - - CustomPropertyInternal = PropertyData; - - // Add as searchable combo box by default - AddCustomPropertyRow(PropertyData.PropertyHandle->GetPropertyDisplayName(), ChildBuilder); -} - -// Will add the default searchable combo box -void FMyPropertyTypeCustomization::AddCustomPropertyRow(const FText& PropertyDisplayText, IDetailChildrenBuilder& ChildBuilder) -{ - InitSearchableComboBox(); - - RefreshCustomProperty(); - - // Will add the searchable combo box by default - const TSharedRef TextRowWidgetRef = - SNew(STextBlock) - .Text(GetCustomPropertyValue()); - RowTextWidgetInternal = TextRowWidgetRef; - - const TSharedRef SearchableComboBoxRef = - SNew(SSearchableComboBox) - .OptionsSource(&SearchableComboBoxValuesInternal) - .OnGenerateWidget_Lambda([](const TSharedPtr InItem) -> TSharedRef - { - return SNew(STextBlock).Text(FText::FromString(*InItem)); - }) - .OnSelectionChanged(this, &FMyPropertyTypeCustomization::OnCustomPropertyChosen) - .ContentPadding(2.f) - .MaxListHeight(200.f) - .IsEnabled(CustomPropertyInternal.bIsEnabled) - .Content() - [ - TextRowWidgetRef - ]; - SearchableComboBoxInternal = SearchableComboBoxRef; - - ChildBuilder.AddCustomRow(PropertyDisplayText) - .Visibility(CustomPropertyInternal.Visibility) - .NameContent() - [ - SNew(STextBlock) - .Text(PropertyDisplayText) - .Font(IDetailLayoutBuilder::GetDetailFont()) - ] - .ValueContent() - [ - SNew(SVerticalBox) - + SVerticalBox::Slot() - .AutoHeight() - .VAlign(VAlign_Fill) - .Padding(0.f) - [ - SearchableComboBoxRef - ] - ]; -} - -//Set new values for the list of selectable members -void FMyPropertyTypeCustomization::RefreshCustomProperty() -{ - if (const TSharedPtr& SearchableComboBox = SearchableComboBoxInternal.Pin()) - { - SearchableComboBox->RefreshOptions(); - } -} - -// Is called to deactivate custom property -void FMyPropertyTypeCustomization::InvalidateCustomProperty() -{ - SetCustomPropertyEnabled(false); - - SetCustomPropertyValue(NAME_None); -} - -// Called when the children of the property should be customized or extra rows added -void FMyPropertyTypeCustomization::OnCustomPropertyChosen(TSharedPtr SelectedStringPtr, ESelectInfo::Type SelectInfo) -{ - if (const FString* SelectedString = SelectedStringPtr.Get()) - { - SetCustomPropertyValue(**SelectedString); - } -} - -// Add an empty row once, so the users can clear the selection if they want -void FMyPropertyTypeCustomization::InitSearchableComboBox() -{ - if (!NoneStringInternal.IsValid()) - { - TSharedPtr NoneStringPtr(MakeShareable(new FString(FPropertyData::NoneString))); - NoneStringInternal = NoneStringPtr; - SearchableComboBoxValuesInternal.EmplaceAt(0, MoveTemp(NoneStringPtr)); - } -} - -// Reset and remove all shared strings in array except 'None' string -void FMyPropertyTypeCustomization::ResetSearchableComboBox() -{ - const int32 ValuesNum = SearchableComboBoxValuesInternal.Num(); - for (int32 Index = ValuesNum - 1; Index >= 0; --Index) - { - if (!SearchableComboBoxValuesInternal.IsValidIndex(Index)) - { - continue; - } - - TSharedPtr& StringPtrIt = SearchableComboBoxValuesInternal[Index]; - if (StringPtrIt != NoneStringInternal) - { - StringPtrIt.Reset(); - SearchableComboBoxValuesInternal.RemoveAt(Index); - } - } -} diff --git a/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/MyPropertyTypeCustomization.h b/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/MyPropertyTypeCustomization.h deleted file mode 100644 index d3d31c2..0000000 --- a/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/MyPropertyTypeCustomization.h +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#pragma once - -#include "IPropertyTypeCustomization.h" -//--- -#include "MyPropertyType/PropertyData.h" - -typedef class FMyPropertyTypeCustomization Super; - -/** - * Overrides some property to make better experience avoiding any errors in properties by manual typing etc. - * The FName Property is customised as button to select the value in a list. - */ -class FMyPropertyTypeCustomization : public IPropertyTypeCustomization -{ -public: - /** Is used to load and unload the Property Editor Module. */ - inline static const FName PropertyEditorModule = TEXT("PropertyEditor"); - - /* --------------------------------------------------- - * Public functions - * --------------------------------------------------- */ - - /** - * Called when the header of the property (the row in the details panel where the property is shown) - * If nothing is added to the row, the header is not displayed - * @param PropertyHandle Handle to the property being customized - * @param HeaderRow A row that widgets can be added to - * @param CustomizationUtils Utilities for customization - */ - virtual void CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) override; - - /** - * Called when the children of the property should be customized or extra rows added. - * @param PropertyHandle Handle to the property being customized - * @param ChildBuilder A builder for adding children - * @param CustomizationUtils Utilities for customization - */ - virtual void CustomizeChildren(TSharedRef PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils) override; - - /** Get cached value contained in the property to be customized. */ - FORCEINLINE FText GetCustomPropertyValue() const { return FText::FromString(CustomPropertyInternal.PropertyValue.ToString()); } - - /** Set the FName value into the property. - * @see FMyPropertyTypeCustomization::MyPropertyHandleInternal. */ - void SetCustomPropertyValue(FName Value); - - /** Set true to activate property, false to grey out it (read-only). */ - void SetCustomPropertyEnabled(bool bEnabled); - -protected: - /* --------------------------------------------------- - * Protected properties - * --------------------------------------------------- */ - - /** Contains data of hierarchically upper property which is chosen in editor module to customize its child property. */ - FPropertyData ParentPropertyInternal = FPropertyData::Empty; - - /** Property data to be customized. It's property name has to be set in children's constructors. */ - FPropertyData CustomPropertyInternal = FPropertyData::Empty; - - /** Contains data about all not custom child properties. */ - TArray DefaultPropertiesInternal; - - /** The outer uobject of a property to be customized. */ - TWeakObjectPtr MyPropertyOuterInternal = nullptr; - - /** The text widget that displays the chosen property value. */ - TWeakPtr RowTextWidgetInternal = nullptr; - - /** Strings list of displayed values to be selected. */ - TArray> SearchableComboBoxValuesInternal; - - /** Contains the widget row that displays values to be selected. - * @see FMyPropertyTypeCustomization::SearchableComboBoxValuesInternal */ - TWeakPtr SearchableComboBoxInternal = nullptr; - - /** Shared none string. Is selectable value in the searchable box. */ - TWeakPtr NoneStringInternal = nullptr; - - /* --------------------------------------------------- - * Protected functions - * --------------------------------------------------- */ - - /** - * Is called for each property on building its row. - * @param ChildBuilder A builder for adding children. - * @param PropertyData Data of a property to be customized. - */ - virtual void OnCustomizeChildren(IDetailChildrenBuilder& ChildBuilder, FPropertyData& PropertyData); - - /** - * Is called on adding the custom property. - * @param PropertyDisplayText The formatted (with spacers) title name of a row to be shown. - * @param ChildBuilder A builder for adding children. - * @see FMyPropertyTypeCustomization::CustomPropertyNameInternal - */ - virtual void AddCustomPropertyRow(const FText& PropertyDisplayText, IDetailChildrenBuilder& ChildBuilder); - - /** Set new values for the list of selectable members. - * @see FMyPropertyTypeCustomization::SearchableComboBoxValuesInternal */ - virtual void RefreshCustomProperty(); - - /** Is called to deactivate custom property. */ - virtual void InvalidateCustomProperty(); - - /** Returns true if changing custom property currently is not forbidden. */ - virtual bool IsAllowedEnableCustomProperty() const { return true; } - - /** - * Callback for when the function selection has changed from the dropdown. Will call setter of custom property. - * @param SelectedStringPtr The chosen string. - * @param SelectInfo Additional information about a selection event. - * @see FMyPropertyTypeCustomization::SetCustomPropertyValue(FName). - */ - void OnCustomPropertyChosen(TSharedPtr SelectedStringPtr, ESelectInfo::Type SelectInfo); - - /** Add an empty row once, so the users can clear the selection if they want. */ - void InitSearchableComboBox(); - - /** Reset and remove all shared strings in array except 'None' string. */ - void ResetSearchableComboBox(); -}; diff --git a/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/PropertyData.cpp b/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/PropertyData.cpp deleted file mode 100644 index 40d8cb4..0000000 --- a/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/PropertyData.cpp +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#include "MyPropertyType/PropertyData.h" - -// Empty property data -const FPropertyData FPropertyData::Empty = FPropertyData(); - -// Custom constructor, is not required, but fully init property data. -FPropertyData::FPropertyData(TSharedRef InPropertyHandle) - : PropertyHandle(InPropertyHandle) -{ - PropertyName = GetPropertyNameFromHandle(); - PropertyValue = GetPropertyValueFromHandle(); -} - -// Get property from handle -FProperty* FPropertyData::GetProperty() const -{ - return PropertyHandle ? PropertyHandle->GetProperty() : nullptr; -} - -// Get property name by handle -FName FPropertyData::GetPropertyNameFromHandle() const -{ - const FProperty* CurrentProperty = GetProperty(); - return CurrentProperty ? CurrentProperty->GetFName() : NAME_None; -} - -// Get FName value by property handle -FName FPropertyData::GetPropertyValueFromHandle() const -{ - FName ValueName = NAME_None; - if (PropertyHandle.IsValid()) - { - FString ValueString; - PropertyHandle->GetValueAsDisplayString(/*Out*/ValueString); - if (ValueString.Len() < NAME_SIZE) - { - ValueName = *ValueString; - } - } - return ValueName; -} - -// Get property ptr to the value by handle -void* FPropertyData::GetPropertyValuePtrFromHandle() const -{ - void* FoundData = nullptr; - if (PropertyHandle.IsValid()) - { - PropertyHandle->GetValueData(/*Out*/FoundData); - } - return FoundData; -} - -// Set FName value by property handle -void FPropertyData::SetPropertyValueToHandle(FName NewValue) -{ - if (PropertyHandle.IsValid()) - { - PropertyHandle->SetValue(NewValue); - } -} - -// Returns the meta value by specified ke -FName FPropertyData::GetMetaDataValue(FName Key) const -{ - const FProperty* Property = !Key.IsNone() ? GetProperty() : nullptr; - const FString* FoundKey = Property ? Property->FindMetaData(Key) : nullptr; - return FoundKey ? **FoundKey : *NoneString; -} - -// Returns true if specified key exist -bool FPropertyData::IsMetaKeyExists(FName Key) const -{ - const FProperty* Property = !Key.IsNone() ? GetProperty() : nullptr; - return Property && Property->FindMetaData(Key); -} - -// Set the meta value by specified key -void FPropertyData::SetMetaDataValue(FName Key, FName NewValue, bool bNotifyPostChange/* = false*/) -{ - FProperty* Property = !Key.IsNone() ? GetProperty() : nullptr; - if (!Property) - { - return; - } - - const FName PrevMetaValue = GetMetaDataValue(Key); - if (PrevMetaValue == NewValue) - { - return; - } - - Property->SetMetaData(Key, NewValue.ToString()); - - if (bNotifyPostChange) - { - PropertyHandle->NotifyPostChange(EPropertyChangeType::ValueSet); - } -} diff --git a/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/PropertyData.h b/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/PropertyData.h deleted file mode 100644 index 4740e8d..0000000 --- a/Plugins/FunctionPicker/Source/FunctionPickerEditor/Private/MyPropertyType/PropertyData.h +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#pragma once - -/** - * Contains data that describes property. - */ -struct FPropertyData -{ - /** Empty property data. */ - static const FPropertyData Empty; - - /** The 'None' string. */ - inline static const FString& NoneString = FCoreTexts::Get().None.ToString(); - - /** Default empty constructor. */ - FPropertyData() = default; - - /** Custom constructor, is not required, but fully init property data. */ - explicit FPropertyData(TSharedRef InPropertyHandle); - - /** The name of a property. */ - FName PropertyName = NAME_None; - - /** The last cached value of a property. */ - FName PropertyValue = NAME_None; - - /** The handle of a property. */ - TSharedPtr PropertyHandle = nullptr; - - /** Determines if property is active (not greyed out). */ - TAttribute bIsEnabled = true; - - /** Determines if property is visible. */ - TAttribute Visibility = EVisibility::Visible; - - /** Returns true is property is not empty. */ - FORCEINLINE bool IsValid() const { return !PropertyName.IsNone() && PropertyHandle != nullptr; } - - /** Get property from handle.*/ - FProperty* GetProperty() const; - - /** Get property name by handle. - * It returns current name of the property. - * Is cheaper to use cached one. - * @see FPropertyData::PropertyName. */ - FName GetPropertyNameFromHandle() const; - - /** Get property value by handle. - * It returns current value contained in property. - * Is cheaper to use cached one. - * @see FPropertyData::PropertyValue. */ - FName GetPropertyValueFromHandle() const; - - /** Get property ptr to the value by handle. */ - void* GetPropertyValuePtrFromHandle() const; - - /** - * Set new template value to property handle. - * @tparam T Template param, is used to as to set simple types as well as set whole FProperty* - * @param NewValue Value to set. - */ - void SetPropertyValueToHandle(FName NewValue); - - /** Returns the meta value by specified key. - * @param Key The key of a meta to find. */ - FName GetMetaDataValue(FName Key) const; - - /** Returns true if specified key exist. - * @param Key The key of a meta to check. */ - bool IsMetaKeyExists(FName Key) const; - - /** Set the meta value by specified key. - * @param Key The key of a meta. - * @param NewValue The value of a meta to set. - * @param bNotifyPostChange Set true to notify property about change. */ - void SetMetaDataValue(FName Key, FName NewValue, bool bNotifyPostChange = false); -}; diff --git a/Plugins/FunctionPicker/Source/FunctionPickerEditor/Public/FunctionPickerEditorModule.h b/Plugins/FunctionPicker/Source/FunctionPickerEditor/Public/FunctionPickerEditorModule.h deleted file mode 100644 index b8641d9..0000000 --- a/Plugins/FunctionPicker/Source/FunctionPickerEditor/Public/FunctionPickerEditorModule.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#pragma once - -#include "Modules/ModuleInterface.h" - -class FUNCTIONPICKEREDITOR_API FFunctionPickerEditorModule : public IModuleInterface -{ -public: - /** - * Called right after the module DLL has been loaded and the module object has been created. - * Load dependent modules here, and they will be guaranteed to be available during ShutdownModule. - */ - virtual void StartupModule() override; - - /** - * Called before the module is unloaded, right before the module object is destroyed. - * During normal shutdown, this is called in reverse order that modules finish StartupModule(). - * This means that, as long as a module references dependent modules in it's StartupModule(), it - * can safely reference those dependencies in ShutdownModule() as well. - */ - virtual void ShutdownModule() override; -}; diff --git a/Plugins/GameFeatures/NewAI/Binaries/Win64/UnrealEditor-NewAIRuntime.pdb b/Plugins/GameFeatures/NewAI/Binaries/Win64/UnrealEditor-NewAIRuntime.pdb deleted file mode 100644 index 74deb4b..0000000 Binary files a/Plugins/GameFeatures/NewAI/Binaries/Win64/UnrealEditor-NewAIRuntime.pdb and /dev/null differ diff --git a/Plugins/GameFeatures/PlayAreaSurrounder/Source/PlayAreaSurrounderRuntime/PlayAreaSurrounderRuntime.Build.cs b/Plugins/GameFeatures/PlayAreaSurrounder/Source/PlayAreaSurrounderRuntime/PlayAreaSurrounderRuntime.Build.cs deleted file mode 100644 index 9442d01..0000000 --- a/Plugins/GameFeatures/PlayAreaSurrounder/Source/PlayAreaSurrounderRuntime/PlayAreaSurrounderRuntime.Build.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -using UnrealBuildTool; - -public class PlayAreaSurrounderRuntime : ModuleRules -{ - public PlayAreaSurrounderRuntime(ReadOnlyTargetRules Target) : base(Target) - { - PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; - CppStandard = CppStandardVersion.Latest; - - PublicDependencyModuleNames.AddRange(new[] - { - "Core" - } - ); - - PrivateDependencyModuleNames.AddRange(new[] - { - "CoreUObject", "Engine", "Slate", "SlateCore" // Core - , "Bomber" - } - ); - } -} diff --git a/Plugins/MetaCheatManager/Source/MetaCheatManager/MetaCheatManager.Build.cs b/Plugins/MetaCheatManager/Source/MetaCheatManager/MetaCheatManager.Build.cs deleted file mode 100644 index de3f843..0000000 --- a/Plugins/MetaCheatManager/Source/MetaCheatManager/MetaCheatManager.Build.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -using UnrealBuildTool; - -public class MetaCheatManager : ModuleRules -{ - public MetaCheatManager(ReadOnlyTargetRules Target) : base(Target) - { - PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; - CppStandard = CppStandardVersion.Latest; - - PublicDependencyModuleNames.AddRange(new[] - { - "Core" - } - ); - - PrivateDependencyModuleNames.AddRange(new[] - { - "CoreUObject", "Engine", "Slate", "SlateCore" // Core - , "EngineSettings" // UConsoleSettings - } - ); - } -} diff --git a/Plugins/MyEditorUtils/MyEditorUtils.uplugin b/Plugins/MyEditorUtils/MyEditorUtils.uplugin deleted file mode 100644 index e03e167..0000000 --- a/Plugins/MyEditorUtils/MyEditorUtils.uplugin +++ /dev/null @@ -1,30 +0,0 @@ -{ - "FileVersion": 3, - "Version": 1, - "VersionName": "1.0", - "FriendlyName": "My Editor Utils", - "Description": "Plugin that contains useful editor utilities", - "Category": "Programming", - "CreatedBy": "Yevhenii Selivanov", - "CreatedByURL": "https://github.com/JanSeliv/Bomber", - "DocsURL": "", - "MarketplaceURL": "", - "SupportURL": "mailto:janseliw@gmail.com", - "EngineVersion": "5.1.0", - "EnabledByDefault": true, - "CanContainContent": false, - "IsBetaVersion": false, - "Installed": false, - "Modules": [ - { - "Name": "MyUtils", - "Type": "Runtime", - "LoadingPhase": "Default" - }, - { - "Name": "MyEditorUtils", - "Type": "Editor", - "LoadingPhase": "Default" - } - ] -} diff --git a/Plugins/MyEditorUtils/Source/MyEditorUtils/Private/MyPropertyType/MyPropertyTypeCustomization.cpp b/Plugins/MyEditorUtils/Source/MyEditorUtils/Private/MyPropertyType/MyPropertyTypeCustomization.cpp deleted file mode 100644 index 49c3579..0000000 --- a/Plugins/MyEditorUtils/Source/MyEditorUtils/Private/MyPropertyType/MyPropertyTypeCustomization.cpp +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#include "MyPropertyType/MyPropertyTypeCustomization.h" -//--- -#include "DetailLayoutBuilder.h" -#include "DetailWidgetRow.h" -#include "IDetailChildrenBuilder.h" -#include "SSearchableComboBox.h" - -// Called when the header of the property (the row in the details panel where the property is shown) -void FMyPropertyTypeCustomization::CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) -{ - // Use default the header details panel - HeaderRow - .NameContent() - [ - PropertyHandle->CreatePropertyNameWidget() - ] - .ValueContent() - [ - PropertyHandle->CreatePropertyValueWidget() - ]; -} - -// Called when the children of the property should be customized or extra rows added. -void FMyPropertyTypeCustomization::CustomizeChildren(TSharedRef PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils) -{ - // Find outer - TArray OuterObjects; - PropertyHandle/*ref*/->GetOuterObjects(OuterObjects); - MyPropertyOuterInternal = OuterObjects.IsValidIndex(0) ? OuterObjects[0] : nullptr; - - // Set parent property - ParentPropertyInternal = FPropertyData(PropertyHandle); - const TDelegate& RefreshCustomPropertyFunction = FSimpleDelegate::CreateSP(this, &FMyPropertyTypeCustomization::RefreshCustomProperty); - PropertyHandle/*ref*/->SetOnPropertyValueChanged(RefreshCustomPropertyFunction); - PropertyHandle/*ref*/->SetOnChildPropertyValueChanged(RefreshCustomPropertyFunction); - - // Set children properties - uint32 NumChildren; - PropertyHandle/*ref*/->GetNumChildren(NumChildren); - for (uint32 ChildIndex = 0; ChildIndex < NumChildren; ++ChildIndex) - { - FPropertyData PropertyData(PropertyHandle/*ref*/->GetChildHandle(ChildIndex).ToSharedRef()); - OnCustomizeChildren(ChildBuilder, PropertyData); - } -} - -// Set the FName value into the property -void FMyPropertyTypeCustomization::SetCustomPropertyValue(FName Value) -{ - const FString StringToSet = Value.ToString(); - - // Set value into property - CustomPropertyInternal.PropertyValue = Value; - CustomPropertyInternal.SetPropertyValueToHandle(Value); - - if (const TSharedPtr& RowTextWidget = RowTextWidgetInternal.Pin()) - { - // Update value on displayed widget - RowTextWidget->SetText(FText::FromString(StringToSet)); - } -} - -// Set true to activate property, false to grey out it (read-only) -void FMyPropertyTypeCustomization::SetCustomPropertyEnabled(bool bEnabled) -{ - const bool bIsAllowedEnableCustomProperty = IsAllowedEnableCustomProperty(); - if (bEnabled && !bIsAllowedEnableCustomProperty) - { - // Enable is forbidden - return; - } - - if (const TSharedPtr& SearchableComboBox = SearchableComboBoxInternal.Pin()) - { - SearchableComboBox->SetEnabled(bEnabled); - } - - CustomPropertyInternal.bIsEnabled = bEnabled; -} - -// Is called for each property on building its row -void FMyPropertyTypeCustomization::OnCustomizeChildren(IDetailChildrenBuilder& ChildBuilder, FPropertyData& PropertyData) -{ - if (!ensureMsgf(PropertyData.IsValid(), TEXT("ASSERT: 'PropertyData.PropertyHandle' is not valid"))) - { - return; - } - - if (PropertyData.PropertyName != CustomPropertyInternal.PropertyName) - { - // Add each another property to the Details Panel without customization - ChildBuilder.AddProperty(PropertyData.PropertyHandle.ToSharedRef()) - .ShouldAutoExpand(true) - .IsEnabled(PropertyData.bIsEnabled) - .Visibility(PropertyData.Visibility); - DefaultPropertiesInternal.Emplace(PropertyData); - return; - } - - // --- Is custom property --- - - CustomPropertyInternal = PropertyData; - - // Add as searchable combo box by default - AddCustomPropertyRow(PropertyData.PropertyHandle->GetPropertyDisplayName(), ChildBuilder); -} - -// Will add the default searchable combo box -void FMyPropertyTypeCustomization::AddCustomPropertyRow(const FText& PropertyDisplayText, IDetailChildrenBuilder& ChildBuilder) -{ - InitSearchableComboBox(); - - RefreshCustomProperty(); - - // Will add the searchable combo box by default - const TSharedRef TextRowWidgetRef = - SNew(STextBlock) - .Text(GetCustomPropertyValue()); - RowTextWidgetInternal = TextRowWidgetRef; - - const TSharedRef SearchableComboBoxRef = - SNew(SSearchableComboBox) - .OptionsSource(&SearchableComboBoxValuesInternal) - .OnGenerateWidget_Lambda([](const TSharedPtr InItem) -> TSharedRef - { - return SNew(STextBlock).Text(FText::FromString(*InItem)); - }) - .OnSelectionChanged(this, &FMyPropertyTypeCustomization::OnCustomPropertyChosen) - .ContentPadding(2.f) - .MaxListHeight(200.f) - .IsEnabled(CustomPropertyInternal.bIsEnabled) - .Content() - [ - TextRowWidgetRef - ]; - SearchableComboBoxInternal = SearchableComboBoxRef; - - ChildBuilder.AddCustomRow(PropertyDisplayText) - .Visibility(CustomPropertyInternal.Visibility) - .NameContent() - [ - SNew(STextBlock) - .Text(PropertyDisplayText) - .Font(IDetailLayoutBuilder::GetDetailFont()) - ] - .ValueContent() - [ - SNew(SVerticalBox) - + SVerticalBox::Slot() - .AutoHeight() - .VAlign(VAlign_Fill) - .Padding(0.f) - [ - SearchableComboBoxRef - ] - ]; -} - -//Set new values for the list of selectable members -void FMyPropertyTypeCustomization::RefreshCustomProperty() -{ - if (const TSharedPtr& SearchableComboBox = SearchableComboBoxInternal.Pin()) - { - SearchableComboBox->RefreshOptions(); - } -} - -// Is called to deactivate custom property -void FMyPropertyTypeCustomization::InvalidateCustomProperty() -{ - SetCustomPropertyEnabled(false); - - SetCustomPropertyValue(NAME_None); -} - -// Called when the children of the property should be customized or extra rows added -void FMyPropertyTypeCustomization::OnCustomPropertyChosen(TSharedPtr SelectedStringPtr, ESelectInfo::Type SelectInfo) -{ - if (const FString* SelectedString = SelectedStringPtr.Get()) - { - SetCustomPropertyValue(**SelectedString); - } -} - -// Add an empty row once, so the users can clear the selection if they want -void FMyPropertyTypeCustomization::InitSearchableComboBox() -{ - if (!NoneStringInternal.IsValid()) - { - TSharedPtr NoneStringPtr(MakeShareable(new FString(FPropertyData::NoneString))); - NoneStringInternal = NoneStringPtr; - SearchableComboBoxValuesInternal.EmplaceAt(0, MoveTemp(NoneStringPtr)); - } -} - -// Reset and remove all shared strings in array except 'None' string -void FMyPropertyTypeCustomization::ResetSearchableComboBox() -{ - const int32 ValuesNum = SearchableComboBoxValuesInternal.Num(); - for (int32 Index = ValuesNum - 1; Index >= 0; --Index) - { - if (!SearchableComboBoxValuesInternal.IsValidIndex(Index)) - { - continue; - } - - TSharedPtr& StringPtrIt = SearchableComboBoxValuesInternal[Index]; - if (StringPtrIt != NoneStringInternal) - { - StringPtrIt.Reset(); - SearchableComboBoxValuesInternal.RemoveAt(Index); - } - } -} diff --git a/Plugins/MyEditorUtils/Source/MyEditorUtils/Private/MyPropertyType/PropertyData.cpp b/Plugins/MyEditorUtils/Source/MyEditorUtils/Private/MyPropertyType/PropertyData.cpp deleted file mode 100644 index 40d8cb4..0000000 --- a/Plugins/MyEditorUtils/Source/MyEditorUtils/Private/MyPropertyType/PropertyData.cpp +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#include "MyPropertyType/PropertyData.h" - -// Empty property data -const FPropertyData FPropertyData::Empty = FPropertyData(); - -// Custom constructor, is not required, but fully init property data. -FPropertyData::FPropertyData(TSharedRef InPropertyHandle) - : PropertyHandle(InPropertyHandle) -{ - PropertyName = GetPropertyNameFromHandle(); - PropertyValue = GetPropertyValueFromHandle(); -} - -// Get property from handle -FProperty* FPropertyData::GetProperty() const -{ - return PropertyHandle ? PropertyHandle->GetProperty() : nullptr; -} - -// Get property name by handle -FName FPropertyData::GetPropertyNameFromHandle() const -{ - const FProperty* CurrentProperty = GetProperty(); - return CurrentProperty ? CurrentProperty->GetFName() : NAME_None; -} - -// Get FName value by property handle -FName FPropertyData::GetPropertyValueFromHandle() const -{ - FName ValueName = NAME_None; - if (PropertyHandle.IsValid()) - { - FString ValueString; - PropertyHandle->GetValueAsDisplayString(/*Out*/ValueString); - if (ValueString.Len() < NAME_SIZE) - { - ValueName = *ValueString; - } - } - return ValueName; -} - -// Get property ptr to the value by handle -void* FPropertyData::GetPropertyValuePtrFromHandle() const -{ - void* FoundData = nullptr; - if (PropertyHandle.IsValid()) - { - PropertyHandle->GetValueData(/*Out*/FoundData); - } - return FoundData; -} - -// Set FName value by property handle -void FPropertyData::SetPropertyValueToHandle(FName NewValue) -{ - if (PropertyHandle.IsValid()) - { - PropertyHandle->SetValue(NewValue); - } -} - -// Returns the meta value by specified ke -FName FPropertyData::GetMetaDataValue(FName Key) const -{ - const FProperty* Property = !Key.IsNone() ? GetProperty() : nullptr; - const FString* FoundKey = Property ? Property->FindMetaData(Key) : nullptr; - return FoundKey ? **FoundKey : *NoneString; -} - -// Returns true if specified key exist -bool FPropertyData::IsMetaKeyExists(FName Key) const -{ - const FProperty* Property = !Key.IsNone() ? GetProperty() : nullptr; - return Property && Property->FindMetaData(Key); -} - -// Set the meta value by specified key -void FPropertyData::SetMetaDataValue(FName Key, FName NewValue, bool bNotifyPostChange/* = false*/) -{ - FProperty* Property = !Key.IsNone() ? GetProperty() : nullptr; - if (!Property) - { - return; - } - - const FName PrevMetaValue = GetMetaDataValue(Key); - if (PrevMetaValue == NewValue) - { - return; - } - - Property->SetMetaData(Key, NewValue.ToString()); - - if (bNotifyPostChange) - { - PropertyHandle->NotifyPostChange(EPropertyChangeType::ValueSet); - } -} diff --git a/Plugins/MyEditorUtils/Source/MyEditorUtils/Public/MyPropertyType/MyPropertyTypeCustomization.h b/Plugins/MyEditorUtils/Source/MyEditorUtils/Public/MyPropertyType/MyPropertyTypeCustomization.h deleted file mode 100644 index 2db7ee8..0000000 --- a/Plugins/MyEditorUtils/Source/MyEditorUtils/Public/MyPropertyType/MyPropertyTypeCustomization.h +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#pragma once - -#include "IPropertyTypeCustomization.h" -//--- -#include "MyPropertyType/PropertyData.h" - -typedef class FMyPropertyTypeCustomization Super; - -/** - * Overrides some property to make better experience avoiding any errors in properties by manual typing etc. - * The FName Property is customised as button to select the value in a list. - */ -class MYEDITORUTILS_API FMyPropertyTypeCustomization : public IPropertyTypeCustomization -{ -public: - /** Is used to load and unload the Property Editor Module. */ - inline static const FName PropertyEditorModule = TEXT("PropertyEditor"); - - /* --------------------------------------------------- - * Public functions - * --------------------------------------------------- */ - - /** - * Called when the header of the property (the row in the details panel where the property is shown) - * If nothing is added to the row, the header is not displayed - * @param PropertyHandle Handle to the property being customized - * @param HeaderRow A row that widgets can be added to - * @param CustomizationUtils Utilities for customization - */ - virtual void CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) override; - - /** - * Called when the children of the property should be customized or extra rows added. - * @param PropertyHandle Handle to the property being customized - * @param ChildBuilder A builder for adding children - * @param CustomizationUtils Utilities for customization - */ - virtual void CustomizeChildren(TSharedRef PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils) override; - - /** Get cached value contained in the property to be customized. */ - FORCEINLINE FText GetCustomPropertyValue() const { return FText::FromString(CustomPropertyInternal.PropertyValue.ToString()); } - - /** Set the FName value into the property. - * @see FMyPropertyTypeCustomization::MyPropertyHandleInternal. */ - void SetCustomPropertyValue(FName Value); - - /** Set true to activate property, false to grey out it (read-only). */ - void SetCustomPropertyEnabled(bool bEnabled); - -protected: - /* --------------------------------------------------- - * Protected properties - * --------------------------------------------------- */ - - /** Contains data of hierarchically upper property which is chosen in editor module to customize its child property. */ - FPropertyData ParentPropertyInternal = FPropertyData::Empty; - - /** Property data to be customized. It's property name has to be set in children's constructors. */ - FPropertyData CustomPropertyInternal = FPropertyData::Empty; - - /** Contains data about all not custom child properties. */ - TArray DefaultPropertiesInternal; - - /** The outer uobject of a property to be customized. */ - TWeakObjectPtr MyPropertyOuterInternal = nullptr; - - /** The text widget that displays the chosen property value. */ - TWeakPtr RowTextWidgetInternal = nullptr; - - /** Strings list of displayed values to be selected. */ - TArray> SearchableComboBoxValuesInternal; - - /** Contains the widget row that displays values to be selected. - * @see FMyPropertyTypeCustomization::SearchableComboBoxValuesInternal */ - TWeakPtr SearchableComboBoxInternal = nullptr; - - /** Shared none string. Is selectable value in the searchable box. */ - TWeakPtr NoneStringInternal = nullptr; - - /* --------------------------------------------------- - * Protected functions - * --------------------------------------------------- */ - - /** - * Is called for each property on building its row. - * @param ChildBuilder A builder for adding children. - * @param PropertyData Data of a property to be customized. - */ - virtual void OnCustomizeChildren(IDetailChildrenBuilder& ChildBuilder, FPropertyData& PropertyData); - - /** - * Is called on adding the custom property. - * @param PropertyDisplayText The formatted (with spacers) title name of a row to be shown. - * @param ChildBuilder A builder for adding children. - * @see FMyPropertyTypeCustomization::CustomPropertyNameInternal - */ - virtual void AddCustomPropertyRow(const FText& PropertyDisplayText, IDetailChildrenBuilder& ChildBuilder); - - /** Set new values for the list of selectable members. - * @see FMyPropertyTypeCustomization::SearchableComboBoxValuesInternal */ - virtual void RefreshCustomProperty(); - - /** Is called to deactivate custom property. */ - virtual void InvalidateCustomProperty(); - - /** Returns true if changing custom property currently is not forbidden. */ - virtual bool IsAllowedEnableCustomProperty() const { return true; } - - /** - * Callback for when the function selection has changed from the dropdown. Will call setter of custom property. - * @param SelectedStringPtr The chosen string. - * @param SelectInfo Additional information about a selection event. - * @see FMyPropertyTypeCustomization::SetCustomPropertyValue(FName). - */ - void OnCustomPropertyChosen(TSharedPtr SelectedStringPtr, ESelectInfo::Type SelectInfo); - - /** Add an empty row once, so the users can clear the selection if they want. */ - void InitSearchableComboBox(); - - /** Reset and remove all shared strings in array except 'None' string. */ - void ResetSearchableComboBox(); -}; diff --git a/Plugins/MyEditorUtils/Source/MyEditorUtils/Public/MyPropertyType/PropertyData.h b/Plugins/MyEditorUtils/Source/MyEditorUtils/Public/MyPropertyType/PropertyData.h deleted file mode 100644 index 05c3238..0000000 --- a/Plugins/MyEditorUtils/Source/MyEditorUtils/Public/MyPropertyType/PropertyData.h +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#pragma once - -/** - * Contains data that describes property. - */ -struct MYEDITORUTILS_API FPropertyData -{ - /** Empty property data. */ - static const FPropertyData Empty; - - /** The 'None' string. */ - inline static const FString& NoneString = FCoreTexts::Get().None.ToString(); - - /** Default empty constructor. */ - FPropertyData() = default; - - /** Custom constructor, is not required, but fully init property data. */ - explicit FPropertyData(TSharedRef InPropertyHandle); - - /** The name of a property. */ - FName PropertyName = NAME_None; - - /** The last cached value of a property. */ - FName PropertyValue = NAME_None; - - /** The handle of a property. */ - TSharedPtr PropertyHandle = nullptr; - - /** Determines if property is active (not greyed out). */ - TAttribute bIsEnabled = true; - - /** Determines if property is visible. */ - TAttribute Visibility = EVisibility::Visible; - - /** Returns true is property is not empty. */ - FORCEINLINE bool IsValid() const { return !PropertyName.IsNone() && PropertyHandle != nullptr; } - - /** Get property from handle.*/ - FProperty* GetProperty() const; - - /** Get property name by handle. - * It returns current name of the property. - * Is cheaper to use cached one. - * @see FPropertyData::PropertyName. */ - FName GetPropertyNameFromHandle() const; - - /** Get property value by handle. - * It returns current value contained in property. - * Is cheaper to use cached one. - * @see FPropertyData::PropertyValue. */ - FName GetPropertyValueFromHandle() const; - - /** Get property ptr to the value by handle. */ - void* GetPropertyValuePtrFromHandle() const; - - /** - * Set new template value to property handle. - * @tparam T Template param, is used to as to set simple types as well as set whole FProperty* - * @param NewValue Value to set. - */ - void SetPropertyValueToHandle(FName NewValue); - - /** Returns the meta value by specified key. - * @param Key The key of a meta to find. */ - FName GetMetaDataValue(FName Key) const; - - /** Returns true if specified key exist. - * @param Key The key of a meta to check. */ - bool IsMetaKeyExists(FName Key) const; - - /** Set the meta value by specified key. - * @param Key The key of a meta. - * @param NewValue The value of a meta to set. - * @param bNotifyPostChange Set true to notify property about change. */ - void SetMetaDataValue(FName Key, FName NewValue, bool bNotifyPostChange = false); -}; diff --git a/Plugins/MyEditorUtils/Source/MyUtils/Private/MyUtilsModule.cpp b/Plugins/MyEditorUtils/Source/MyUtils/Private/MyUtilsModule.cpp deleted file mode 100644 index 5662ebb..0000000 --- a/Plugins/MyEditorUtils/Source/MyUtils/Private/MyUtilsModule.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#include "MyUtilsModule.h" - -#define LOCTEXT_NAMESPACE "FMyUtilsModule" - -// Called right after the module DLL has been loaded and the module object has been created -void FMyUtilsModule::StartupModule() -{ - // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module -} - -// Called before the module is unloaded, right before the module object is destroyed -void FMyUtilsModule::ShutdownModule() -{ - // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading, - // we call this function before unloading the module. -} - -#undef LOCTEXT_NAMESPACE - -IMPLEMENT_MODULE(FMyUtilsModule, MyUtils) diff --git a/Plugins/PoolManager/Source/PoolManager/PoolManager.Build.cs b/Plugins/PoolManager/Source/PoolManager/PoolManager.Build.cs deleted file mode 100644 index 64686ea..0000000 --- a/Plugins/PoolManager/Source/PoolManager/PoolManager.Build.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -using UnrealBuildTool; - -public class PoolManager : ModuleRules -{ - public PoolManager(ReadOnlyTargetRules Target) : base(Target) - { - PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; - CppStandard = CppStandardVersion.Latest; - - PublicDependencyModuleNames.AddRange(new[] - { - "Core" - } - ); - - PrivateDependencyModuleNames.AddRange(new[] - { - "CoreUObject", "Engine", "Slate", "SlateCore" // Core - } - ); - - if (Target.bBuildEditor) - { - // Include Editor modules that are used in this Runtime module - PrivateDependencyModuleNames.AddRange(new[] - { - "UnrealEd" // GEditor - } - ); - } - } -} \ No newline at end of file diff --git a/Plugins/PoolManager/Source/PoolManager/Public/PoolManagerModule.h b/Plugins/PoolManager/Source/PoolManager/Public/PoolManagerModule.h deleted file mode 100644 index dfffcf9..0000000 --- a/Plugins/PoolManager/Source/PoolManager/Public/PoolManagerModule.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Yevhenii Selivanov. - -#pragma once - -#include "Modules/ModuleInterface.h" - -class POOLMANAGER_API FPoolManagerModule : public IModuleInterface -{ -public: - /** - * Called right after the module DLL has been loaded and the module object has been created. - * Load dependent modules here, and they will be guaranteed to be available during ShutdownModule. - */ - virtual void StartupModule() override; - - /** - * Called before the module is unloaded, right before the module object is destroyed. - * During normal shutdown, this is called in reverse order that modules finish StartupModule(). - * This means that, as long as a module references dependent modules in it's StartupModule(), it - * can safely reference those dependencies in ShutdownModule() as well. - */ - virtual void ShutdownModule() override; -};