Some usefull structs, classes and macros I use to develop more featured plugins.
- NansCoreHelpers (free UE4 plugins)
Method, Node or Macro | Type | Goal |
---|---|---|
ENUM_TO_STRING(EnumClassName, ValueOfEnum) |
CPP Macro | Passing an enum type and a value, this will return the enum label as string. |
ENUMNAME_TO_STRING(EnumClassName, ValueOfEnum) |
CPP Macro | This one will returns the "DisplayName" UMETA's attribute. |
Blueprint | This is a blueprint wrapper for the FMD5::HashAnsiString function, it takes an FName as parameter. |
|
Blueprint | Same but takes an FText as parameter. |
|
Blueprint | Compare two strings, checks if the first one is a permutation of the second. | |
Blueprint | Same as above + outputs a TMap: keys are each TCHAR of the first string, and values are distances with the same TCHAR in the second string. | |
Blueprint | Only checks if letters from the first string are contained in the second. | |
Blueprint | Will splits every words separated with a space. | |
Blueprint | Will splits text trying to make lines, each line should have a Char length defined in the 2nd argument. This algo will not cut words and always cut line before the word exceeding the chars length. | |
Blueprint | Same as above but each line will be an array entry. | |
Blueprint | Convert a name to a display text. Eg: ItIsAName => It Is A Name | |
Blueprint | Same as above but string output. | |
FString WorldTypeToString(const EWorldType::Type Type) |
CPP | Usefull for debugging, will output the WorldType Name. |
Node | Type | Goal |
---|---|---|
Blueprint | This will create an FBox (AABB object). |
|
Blueprint | Check if 2 boxes intersect. | |
Blueprint | A ZoneBox (FZoneBox struct) is coming from the NansCoreHelpers module. | |
Blueprint | Check if vector A is at the left of the point B using point as reference. | |
Blueprint | Rotate a vector using a pivot point and an axis. | |
Blueprint | Retrieve the AABB from a FZoneBox. | |
Blueprint | Retrieve the rotation between 2 point and a pivot point. | |
Blueprint | Returns a FTrigonometryDataForZone. |
Type | Goal | |
---|---|---|
FNFlashMessage | Blueprint / Struct | Is a simple Blueprint UStruct embdeding text, duration and priority level data. |
EFlashMessagePriorityLevel | Blueprint / Enum | Blueprint UEnum to indicates priority level. |
FNFlashMessageList | CPP / Struct | A simple CPP struct which enqueue messages and prioritize their retrieval depending on their priority level. |
Type | Goal | |
---|---|---|
UBTTask_NotifyAIOnAbort | CPP / Class | An abstract Behavior Tree Task Node. When it finished in an "Abort" result, it notifies any component implementing UAITaskAbortAware of the Behavior Tree owner. |
UBTTask_NotifyAIOnAbortBP | Blueprint / Class | The same as above but overrides UBTTask_BlueprintBase instead. |
UAITaskAbortAware | CPP & Blueprint / Class | This interface allow any component to be notified by the children nodes of the both above. |
FBPDelegateHandle is a simple container which allows passing a FDelegateHandle through blueprint nodes.
Macro | Goals |
---|---|
EDITOR_ERROR(MsgChannel, Text [, Object]) |
Will output an error message in the UE editor message panel. Object arg is used to create a link to your object. |
EDITOR_WARN(MsgChannel, Text [, Object]) |
Will output an warning message in the UE editor message panel. Object arg is used to create a link to your object. |
SCREEN_LOG(duration, color, format, ...) |
Log a message to the game screen. |
A bunch of functions allowing data comparisons using blueprint enums (ENansConditionComparator and ENansConditionOperator) and blueprint struct (FNansConditionOperator).
This way you can easily create a blueprint interface to build data comparison (see NansDialogueSystem for usages).
I've decided to make all the code I developed for my games free to use and open source.
I am a true believer in the mindset that sharing and collaborating makes the world a better place.
I'll be very glad if you decided to help me to follow my dream.
How? | With |
---|---|
Donating Because I'm an independant developer/creator and for now I don't have any income, I need money to support my daily needs (coffeeeeee). |
|
Contributing You are very welcome if you want to contribute. I explain here in details what is the most comfortable way to me you can contribute. |
CONTRIBUTING.md |