diff --git a/Content/Blueprints/Data/flatData.uasset b/Content/Blueprints/Data/flatData.uasset index 11c787a4..17265ad7 100644 Binary files a/Content/Blueprints/Data/flatData.uasset and b/Content/Blueprints/Data/flatData.uasset differ diff --git a/Content/Blueprints/Data/roomNames.uasset b/Content/Blueprints/Data/roomNames.uasset index cf6f2f90..3cbc0231 100644 Binary files a/Content/Blueprints/Data/roomNames.uasset and b/Content/Blueprints/Data/roomNames.uasset differ diff --git a/Content/Blueprints/Utils/FlatDator/EUW_FlatDator.uasset b/Content/Blueprints/Utils/FlatDator/EUW_FlatDator.uasset new file mode 100644 index 00000000..d23542be Binary files /dev/null and b/Content/Blueprints/Utils/FlatDator/EUW_FlatDator.uasset differ diff --git a/Content/Blueprints/Utils/FlatDator/FlatDatorRoom.uasset b/Content/Blueprints/Utils/FlatDator/FlatDatorRoom.uasset new file mode 100644 index 00000000..9917017b Binary files /dev/null and b/Content/Blueprints/Utils/FlatDator/FlatDatorRoom.uasset differ diff --git a/Content/Blueprints/Utils/FlatDator/FlatDatorRoomButton.uasset b/Content/Blueprints/Utils/FlatDator/FlatDatorRoomButton.uasset new file mode 100644 index 00000000..79b6cc67 Binary files /dev/null and b/Content/Blueprints/Utils/FlatDator/FlatDatorRoomButton.uasset differ diff --git a/Content/Blueprints/Utils/FlatDator/FlatDatorSameFlat.uasset b/Content/Blueprints/Utils/FlatDator/FlatDatorSameFlat.uasset new file mode 100644 index 00000000..cd53e37b Binary files /dev/null and b/Content/Blueprints/Utils/FlatDator/FlatDatorSameFlat.uasset differ diff --git a/Content/Blueprints/Utils/ForPlacementPoints/Arrow_Right.uasset b/Content/Blueprints/Utils/ForPlacementPoints/Arrow_Right.uasset new file mode 100644 index 00000000..be89c239 Binary files /dev/null and b/Content/Blueprints/Utils/ForPlacementPoints/Arrow_Right.uasset differ diff --git a/Content/Blueprints/Utils/ForPlacementPoints/CaptureForPoints_Actor.uasset b/Content/Blueprints/Utils/ForPlacementPoints/CaptureForPoints_Actor.uasset new file mode 100644 index 00000000..74143ed9 Binary files /dev/null and b/Content/Blueprints/Utils/ForPlacementPoints/CaptureForPoints_Actor.uasset differ diff --git a/Content/Blueprints/Utils/ForPlacementPoints/DT_ForPoint.uasset b/Content/Blueprints/Utils/ForPlacementPoints/DT_ForPoint.uasset new file mode 100644 index 00000000..dc6e8231 Binary files /dev/null and b/Content/Blueprints/Utils/ForPlacementPoints/DT_ForPoint.uasset differ diff --git a/Content/Blueprints/Utils/ForPlacementPoints/ForPointsStruct.uasset b/Content/Blueprints/Utils/ForPlacementPoints/ForPointsStruct.uasset new file mode 100644 index 00000000..cd61b94b Binary files /dev/null and b/Content/Blueprints/Utils/ForPlacementPoints/ForPointsStruct.uasset differ diff --git a/Content/Blueprints/Utils/ForPlacementPoints/ForPoints_RT.uasset b/Content/Blueprints/Utils/ForPlacementPoints/ForPoints_RT.uasset new file mode 100644 index 00000000..480720a7 Binary files /dev/null and b/Content/Blueprints/Utils/ForPlacementPoints/ForPoints_RT.uasset differ diff --git a/Content/Blueprints/Utils/ForPlacementPoints/ImageCaptureForPoints.uasset b/Content/Blueprints/Utils/ForPlacementPoints/ImageCaptureForPoints.uasset new file mode 100644 index 00000000..413fa657 Binary files /dev/null and b/Content/Blueprints/Utils/ForPlacementPoints/ImageCaptureForPoints.uasset differ diff --git a/Content/Blueprints/Utils/ForPlacementPoints/PanelRoom.uasset b/Content/Blueprints/Utils/ForPlacementPoints/PanelRoom.uasset new file mode 100644 index 00000000..a8e5c1a5 Binary files /dev/null and b/Content/Blueprints/Utils/ForPlacementPoints/PanelRoom.uasset differ diff --git a/Content/Blueprints/Utils/ForPlacementPoints/PointsLevelCreater.uasset b/Content/Blueprints/Utils/ForPlacementPoints/PointsLevelCreater.uasset new file mode 100644 index 00000000..282ac215 Binary files /dev/null and b/Content/Blueprints/Utils/ForPlacementPoints/PointsLevelCreater.uasset differ diff --git a/Content/Blueprints/Utils/ForPlacementPoints/RUN_utilForPoints.uasset b/Content/Blueprints/Utils/ForPlacementPoints/RUN_utilForPoints.uasset new file mode 100644 index 00000000..f5bfdea3 Binary files /dev/null and b/Content/Blueprints/Utils/ForPlacementPoints/RUN_utilForPoints.uasset differ diff --git a/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary-Win64-DebugGame.dll b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary-Win64-DebugGame.dll new file mode 100644 index 00000000..d30488a1 Binary files /dev/null and b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary-Win64-DebugGame.dll differ diff --git a/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary-Win64-DebugGame.pdb b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary-Win64-DebugGame.pdb new file mode 100644 index 00000000..e4913d2c Binary files /dev/null and b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary-Win64-DebugGame.pdb differ diff --git a/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary.dll b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary.dll new file mode 100644 index 00000000..d3a11ee0 Binary files /dev/null and b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary.dll differ diff --git a/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary.pdb b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary.pdb new file mode 100644 index 00000000..4ea64390 Binary files /dev/null and b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-ElgBlueprintLibrary.pdb differ diff --git a/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-Win64-DebugGame.modules b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-Win64-DebugGame.modules new file mode 100644 index 00000000..f69d38ac --- /dev/null +++ b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor-Win64-DebugGame.modules @@ -0,0 +1,7 @@ +{ + "BuildId": "27405482", + "Modules": + { + "ElgBlueprintLibrary": "UnrealEditor-ElgBlueprintLibrary-Win64-DebugGame.dll" + } +} \ No newline at end of file diff --git a/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor.modules b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor.modules new file mode 100644 index 00000000..d31178fa --- /dev/null +++ b/plugins/ElgBlueprintLibrary/Binaries/Win64/UnrealEditor.modules @@ -0,0 +1,7 @@ +{ + "BuildId": "27405482", + "Modules": + { + "ElgBlueprintLibrary": "UnrealEditor-ElgBlueprintLibrary.dll" + } +} \ No newline at end of file diff --git a/plugins/ElgBlueprintLibrary/ElgBlueprintLibrary.uplugin b/plugins/ElgBlueprintLibrary/ElgBlueprintLibrary.uplugin new file mode 100644 index 00000000..ca90fe6d --- /dev/null +++ b/plugins/ElgBlueprintLibrary/ElgBlueprintLibrary.uplugin @@ -0,0 +1,23 @@ +{ + "FileVersion": 3, + "Version": 1, + "VersionName": "1.0", + "FriendlyName": "ElgBlueprintLibrary", + "Description": "Blueprint function library", + "Category": "Other", + "CreatedBy": "ElgSoft", + "CreatedByURL": "ElgSoft.com", + "DocsURL": "", + "MarketplaceURL": "", + "SupportURL": "", + "EngineVersion": "5.3", + "CanContainContent": true, + "Installed": true, + "Modules": [ + { + "Name": "ElgBlueprintLibrary", + "Type": "Runtime", + "LoadingPhase": "PreLoadingScreen" + } + ] +} \ No newline at end of file diff --git a/plugins/ElgBlueprintLibrary/Resources/Icon128.png b/plugins/ElgBlueprintLibrary/Resources/Icon128.png new file mode 100644 index 00000000..0f61e02a Binary files /dev/null and b/plugins/ElgBlueprintLibrary/Resources/Icon128.png differ diff --git a/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/ElgBlueprintLibrary.Build.cs b/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/ElgBlueprintLibrary.Build.cs new file mode 100644 index 00000000..1dc94527 --- /dev/null +++ b/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/ElgBlueprintLibrary.Build.cs @@ -0,0 +1,53 @@ +// Some copyright should be here... + +using UnrealBuildTool; + +public class ElgBlueprintLibrary : ModuleRules +{ + public ElgBlueprintLibrary(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicIncludePaths.AddRange( + new string[] { + // ... add public include paths required here ... + } + ); + + + PrivateIncludePaths.AddRange( + new string[] { + // ... add other private include paths required here ... + } + ); + + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + // ... add other public dependencies that you statically link with here ... + } + ); + + + PrivateDependencyModuleNames.AddRange( + new string[] + { + "CoreUObject", + "Engine", + "Slate", + "SlateCore", + // ... add private dependencies that you statically link with here ... + } + ); + + + DynamicallyLoadedModuleNames.AddRange( + new string[] + { + // ... add any modules that your module loads dynamically here ... + } + ); + } +} diff --git a/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Private/ElgBP_DataTable.cpp b/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Private/ElgBP_DataTable.cpp new file mode 100644 index 00000000..edee9db1 --- /dev/null +++ b/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Private/ElgBP_DataTable.cpp @@ -0,0 +1,25 @@ +// Copyright 2019-2020 ElgSoft. All rights reserved. + + +#include "ElgBP_DataTable.h" +#include + + + +bool UElgBP_DataTable::AddRowToDataTable(UDataTable* InDataTable, FName InRowName, UStruct* InAnyStruct) +{ + // dummy function, it's Generic_AddRowToDataTable that are called for real + return true; +} + +bool UElgBP_DataTable::Generic_AddRowToDataTable(UDataTable* InDataTable, FName InRowName, void* StructPtr) +{ + FTableRowBase* TableRowBase = (FTableRowBase*)StructPtr; + InDataTable->AddRow(InRowName, *TableRowBase); +#if WITH_EDITOR + // let the editor know that the data table has changed so it can get it's star. + InDataTable->Modify(); +#endif + return true; +} + diff --git a/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Private/ElgBlueprintLibrary.cpp b/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Private/ElgBlueprintLibrary.cpp new file mode 100644 index 00000000..6573674b --- /dev/null +++ b/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Private/ElgBlueprintLibrary.cpp @@ -0,0 +1,22 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "ElgBlueprintLibrary.h" + +#define LOCTEXT_NAMESPACE "FElgBlueprintLibraryModule" + +void FElgBlueprintLibraryModule::StartupModule() +{ + // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module + +} + +void FElgBlueprintLibraryModule::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(FElgBlueprintLibraryModule, ElgBlueprintLibrary) \ No newline at end of file diff --git a/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Public/ElgBP_DataTable.h b/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Public/ElgBP_DataTable.h new file mode 100644 index 00000000..6812aa83 --- /dev/null +++ b/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Public/ElgBP_DataTable.h @@ -0,0 +1,76 @@ +// Copyright 2019-2020 ElgSoft. All rights reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include +#include "ElgBP_DataTable.generated.h" + +/** + * + */ +UCLASS() +class UElgBP_DataTable : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + + /* Add or Edit a row in the data table */ + UFUNCTION(BlueprintCallable, CustomThunk, Category = "DataTable", meta = (CustomStructureParam = "InAnyStruct")) + static bool AddRowToDataTable(UDataTable* InDataTable, FName InRowName, UStruct* InAnyStruct); + + static bool Generic_AddRowToDataTable(UDataTable* InDataTable, FName InRowName, void* StructPtr); + + /** Based on UElgBP_DataTable::AddRowToDataTable */ + DECLARE_FUNCTION(execAddRowToDataTable) { + P_GET_OBJECT(UDataTable, InDataTable); + P_GET_PROPERTY(FNameProperty, InRowName); + + Stack.StepCompiledIn(NULL); + void* StructPtr = Stack.MostRecentPropertyAddress; + FStructProperty* StructProp = CastField(Stack.MostRecentProperty); + UScriptStruct* InAnyStruct = StructProp->Struct; + + P_FINISH; + + bool bSuccess = false; + if (!InDataTable) { + FBlueprintExceptionInfo ExceptionInfo( + EBlueprintExceptionType::AccessViolation, FText::FromString("Failed to resolve the table input. Be sure the InDataTable is valid.") + ); + FBlueprintCoreDelegates::ThrowScriptException(P_THIS, Stack, ExceptionInfo); + } else if (!InAnyStruct) { + FBlueprintExceptionInfo ExceptionInfo( + EBlueprintExceptionType::AccessViolation, FText::FromString("Failed to resolve the struct input. Be sure the InAnyStruct is valid.") + ); + FBlueprintCoreDelegates::ThrowScriptException(P_THIS, Stack, ExceptionInfo); + } else if (InRowName.IsNone()) { + FBlueprintExceptionInfo ExceptionInfo( + EBlueprintExceptionType::AccessViolation, FText::FromString("Be sure the InRowName is valid.") + ); + FBlueprintCoreDelegates::ThrowScriptException(P_THIS, Stack, ExceptionInfo); + } else { + + const UScriptStruct* TableType = InDataTable->GetRowStruct(); + + const bool bCompatible = (InAnyStruct == TableType) || (InAnyStruct->IsChildOf(TableType) && FStructUtils::TheSameLayout(InAnyStruct, TableType)); + if (bCompatible) { + P_NATIVE_BEGIN; + bSuccess = Generic_AddRowToDataTable(InDataTable, InRowName, StructPtr); + P_NATIVE_END; + } else { + FBlueprintExceptionInfo ExceptionInfo( + EBlueprintExceptionType::AccessViolation, FText::FromString("The InAnyStruct is incompatible with the data table's struct.") + ); + FBlueprintCoreDelegates::ThrowScriptException(P_THIS, Stack, ExceptionInfo); + } + } + + *(bool*)RESULT_PARAM = bSuccess; + } + +#pragma endregion + +}; diff --git a/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Public/ElgBlueprintLibrary.h b/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Public/ElgBlueprintLibrary.h new file mode 100644 index 00000000..52f4f605 --- /dev/null +++ b/plugins/ElgBlueprintLibrary/Source/ElgBlueprintLibrary/Public/ElgBlueprintLibrary.h @@ -0,0 +1,14 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "Modules/ModuleManager.h" + +class FElgBlueprintLibraryModule : public IModuleInterface +{ +public: + + /** IModuleInterface implementation */ + virtual void StartupModule() override; + virtual void ShutdownModule() override; +};