work 4 Jan

This commit is contained in:
vinfamy 2018-01-04 01:24:02 +07:00
parent 438da5f0e7
commit d6b11d063a
20 changed files with 169 additions and 102 deletions

View file

@ -0,0 +1,11 @@
[/Script/UnrealEd.EditorSettings]
LocalDerivedDataCache=(Path="D:/DDC")
+RecentlyOpenedProjectFiles=D:/LifePlay/LifePlay.uproject
+RecentlyOpenedProjectFiles=D:/CreationLab/CreatorsLab/UE4/CreatorsLab/CreatorsLab.uproject
+RecentlyOpenedProjectFiles=D:/Documents/Unreal Projects/PhotorealisticCharacter/PhotorealisticCharacter.uproject
+CreatedProjectPaths=D:/
bCopyStarterContentPreference=False
AutoScalabilityWorkScaleAmount=1.000000

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1 @@
Hello

View file

@ -9,5 +9,11 @@
"Type": "Runtime",
"LoadingPhase": "Default"
}
],
"Plugins": [
{
"Name": "ModdingPlus",
"Enabled": false
}
]
}

View file

@ -2,24 +2,22 @@
"FileVersion": 3,
"Version": 1,
"VersionName": "1.0",
"FriendlyName": "ModdingPlus",
"Description": "Expands UE4's modding capacity",
"FriendlyName": "ModdingExtra",
"Description": "Modding Extra",
"Category": "Other",
"CreatedBy": "Vinfamy",
"CreatedByURL": "",
"DocsURL": "",
"MarketplaceURL": "",
"SupportURL": "",
"EnabledByDefault" : true,
"CanContainContent" : true,
"CanContainContent": true,
"IsBetaVersion": false,
"Installed": false,
"Modules": [
{
"Name": "ModdingPlus",
"Type": "Developer",
"LoadingPhase": "Default"
"Name": "ModdingExtra",
"Type": "Runtime",
"LoadingPhase": "PreLoadingScreen"
}
]
}

View file

@ -1,16 +1,17 @@
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
// Some copyright should be here...
using UnrealBuildTool;
public class ModdingPlus : ModuleRules
public class ModdingExtra : ModuleRules
{
public ModdingPlus(ReadOnlyTargetRules Target) : base(Target)
public ModdingExtra(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
PublicIncludePaths.AddRange(
new string[] {
"ModdingPlus/Public"
"ModdingExtra/Public"
// ... add public include paths required here ...
}
);
@ -18,7 +19,8 @@ public class ModdingPlus : ModuleRules
PrivateIncludePaths.AddRange(
new string[] {
"ModdingPlus/Private",
"ModdingExtra/Private",
// ... add other private include paths required here ...
}
);
@ -27,11 +29,8 @@ public class ModdingPlus : ModuleRules
PublicDependencyModuleNames.AddRange(
new string[]
{
"Engine",
"Core",
"CoreUObject",
"InputCore",
"Projects",
// ... add other public dependencies that you statically link with here ...
}
);
@ -40,7 +39,11 @@ public class ModdingPlus : ModuleRules
PrivateDependencyModuleNames.AddRange(
new string[]
{
"ModdingPlus",
"CoreUObject",
"Engine",
"Slate",
"SlateCore",
// ... add private dependencies that you statically link with here ...
}
);

View file

@ -0,0 +1,22 @@
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#include "ModdingExtra.h"
#define LOCTEXT_NAMESPACE "FModdingExtraModule"
void FModdingExtraModule::StartupModule()
{
// This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module
}
void FModdingExtraModule::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(FModdingExtraModule, ModdingExtra)

View file

@ -0,0 +1,56 @@
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#include "ModdingExtraBPLibrary.h"
#include "ModdingExtra.h"
#include "Engine.h"
UModdingExtraBPLibrary::UModdingExtraBPLibrary(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
}
float UModdingExtraBPLibrary::ModdingExtraSampleFunction(float Param)
{
return -1;
}
bool UModdingExtraBPLibrary::GetAllFilesFromFolder(TArray<FString>& Files, FString RootFolderFullPath, FString Ext)
{
if(RootFolderFullPath.Len() < 1) return false;
// FPaths::NormalizeDirectoryName(RootFolderFullPath);
//RootFolderFullPath = FPaths::ConvertRelativePathToFull(RootFolderFullPath);
IFileManager& FileManager = IFileManager::Get();
FString RelativePath = FPaths::ProjectContentDir();
FString FullPath = FileManager.ConvertToAbsolutePathForExternalAppForRead(*RelativePath);
if(Ext == "")
{
Ext = "*.*";
}
else
{
Ext = (Ext.Left(1) == ".") ? "*" + Ext : "*." + Ext;
}
FString FinalPath = FullPath + "/" + RootFolderFullPath + "/" + Ext;
FileManager.FindFiles(Files, *FinalPath, true, false);
return true;
}
bool UModdingExtraBPLibrary::LoadTxt(FString FileNameA, FString& SaveTextA)
{
return FFileHelper::LoadFileToString(SaveTextA, *(FPaths::ProjectContentDir() + FileNameA));
}
FString UModdingExtraBPLibrary::ContentDirectory()
{
FString RelativePath = FPaths::ProjectContentDir();
FString FullPath = IFileManager::Get().ConvertToAbsolutePathForExternalAppForRead(*RelativePath);
return FullPath;
}

View file

@ -0,0 +1,14 @@
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "ModuleManager.h"
class FModdingExtraModule : public IModuleInterface
{
public:
/** IModuleInterface implementation */
virtual void StartupModule() override;
virtual void ShutdownModule() override;
};

View file

@ -0,0 +1,41 @@
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Kismet/BlueprintFunctionLibrary.h"
#include "ModdingExtraBPLibrary.generated.h"
/*
* Function library class.
* Each function in it is expected to be static and represents blueprint node that can be called in any blueprint.
*
* When declaring function you can define metadata for the node. Key function specifiers will be BlueprintPure and BlueprintCallable.
* BlueprintPure - means the function does not affect the owning object in any way and thus creates a node without Exec pins.
* BlueprintCallable - makes a function which can be executed in Blueprints - Thus it has Exec pins.
* DisplayName - full name of the node, shown when you mouse over the node and in the blueprint drop down menu.
* Its lets you name the node using characters not allowed in C++ function names.
* CompactNodeTitle - the word(s) that appear on the node.
* Keywords - the list of keywords that helps you to find node when you search for it using Blueprint drop-down menu.
* Good example is "Print String" node which you can find also by using keyword "log".
* Category - the category your node will be under in the Blueprint drop-down menu.
*
* For more info on custom blueprint nodes visit documentation:
* https://wiki.unrealengine.com/Custom_Blueprint_Node_Creation
*/
UCLASS()
class UModdingExtraBPLibrary : public UBlueprintFunctionLibrary
{
GENERATED_UCLASS_BODY()
UFUNCTION(BlueprintCallable, meta = (DisplayName = "Execute Sample function", Keywords = "ModdingExtra sample test testing"), Category = "ModdingExtraTesting")
static float ModdingExtraSampleFunction(float Param);
UFUNCTION(BlueprintPure, Category = "ModdingExtra")
static bool GetAllFilesFromFolder(TArray<FString>& Files, FString RootFolderFullPath, FString Ext);
UFUNCTION(BlueprintPure, Category = "ModdingExtra", meta = (Keywords = "LoadTxt"))
static bool LoadTxt(FString FileNameA, FString& SaveTextA);
UFUNCTION(BlueprintPure, Category = "ModdingExtra")
static FString ContentDirectory();
};

View file

@ -1,55 +0,0 @@
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#include "ModdingPlus.h"
#define LOCTEXT_NAMESPACE "FModdingPlusModule"
/**
void FModdingPlusModule::StartupModule()
{
// This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module
}
void FModdingPlusModule::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.
}
*/
bool UModdingPlus::GetAllFilesFromFolder(TArray<FString>& Files, FString RootFolderFullPath, FString Ext)
{
if(RootFolderFullPath.Len() < 1) return false;
// FPaths::NormalizeDirectoryName(RootFolderFullPath);
//RootFolderFullPath = FPaths::ConvertRelativePathToFull(RootFolderFullPath);
IFileManager& FileManager = IFileManager::Get();
FString RelativePath = FPaths::GameContentDir();
FString FullPath = FileManager.ConvertToAbsolutePathForExternalAppForRead(*RelativePath);
if(Ext == "")
{
Ext = "*.*";
}
else
{
Ext = (Ext.Left(1) == ".") ? "*" + Ext : "*." + Ext;
}
FString FinalPath = FullPath + "/" + RootFolderFullPath + "/" + Ext;
FileManager.FindFiles(Files, *FinalPath, true, false);
return true;
}
bool UModdingPlus::LoadTxt(FString FileNameA, FString& SaveTextA)
{
return FFileHelper::LoadFileToString(SaveTextA, *(FPaths::GameContentDir() + FileNameA));
}
#undef LOCTEXT_NAMESPACE
IMPLEMENT_MODULE(FModdingPlusModule, ModdingPlus)

View file

@ -1,30 +0,0 @@
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "ModuleManager.h"
#include "ModdingPlus.generated.h"
class FModdingPlusModule : public IModuleInterface
{
public:
/** IModuleInterface implementation */
//virtual void StartupModule() override;
//virtual void ShutdownModule() override;
};
UCLASS()
class UModdingPlus : public UObject
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintPure, Category = "ModdingPlus")
static bool GetAllFilesFromFolder(TArray<FString>& Files, FString RootFolderFullPath, FString Ext);
UFUNCTION(BlueprintPure, Category = "ModdingPlus", meta = (Keywords = "LoadTxt"))
static bool LoadTxt(FString FileNameA, FString& SaveTextA);
};