diff --git a/Project/Binaries/Win64/UnrealEditor-Gasa.dll b/Project/Binaries/Win64/UnrealEditor-Gasa.dll index 6135399..df66050 100644 Binary files a/Project/Binaries/Win64/UnrealEditor-Gasa.dll and b/Project/Binaries/Win64/UnrealEditor-Gasa.dll differ diff --git a/Project/Binaries/Win64/UnrealEditor-Gasa.pdb b/Project/Binaries/Win64/UnrealEditor-Gasa.pdb deleted file mode 100644 index 43a0b64..0000000 Binary files a/Project/Binaries/Win64/UnrealEditor-Gasa.pdb and /dev/null differ diff --git a/Project/Source/Gasa/AbilitySystem/GasaAbilitySystemComponent.cpp b/Project/Source/Gasa/AbilitySystem/GasaAbilitySystemComponent.cpp new file mode 100644 index 0000000..d78257c --- /dev/null +++ b/Project/Source/Gasa/AbilitySystem/GasaAbilitySystemComponent.cpp @@ -0,0 +1 @@ +#include "GasaAbilitySystemComponent.h" \ No newline at end of file diff --git a/Project/Source/Gasa/AbilitySystem/GasaAbilitySystemComponent.h b/Project/Source/Gasa/AbilitySystem/GasaAbilitySystemComponent.h new file mode 100644 index 0000000..b2d5482 --- /dev/null +++ b/Project/Source/Gasa/AbilitySystem/GasaAbilitySystemComponent.h @@ -0,0 +1,12 @@ +#pragma once + +#include "AbilitySystemComponent.h" + +#include "GasaAbilitySystemComponent.generated.h" + +UCLASS() +class GASA_API UGasaAbilitySystemComp : public UAbilitySystemComponent +{ + GENERATED_BODY() +public: +}; diff --git a/Project/Source/Gasa/AbilitySystem/GasaAttributeSet.cpp b/Project/Source/Gasa/AbilitySystem/GasaAttributeSet.cpp new file mode 100644 index 0000000..dab2344 --- /dev/null +++ b/Project/Source/Gasa/AbilitySystem/GasaAttributeSet.cpp @@ -0,0 +1,2 @@ +#include "GasaAttributeSet.h" + diff --git a/Project/Source/Gasa/AbilitySystem/GasaAttributeSet.h b/Project/Source/Gasa/AbilitySystem/GasaAttributeSet.h new file mode 100644 index 0000000..226af18 --- /dev/null +++ b/Project/Source/Gasa/AbilitySystem/GasaAttributeSet.h @@ -0,0 +1,15 @@ +#pragma once +#include "AttributeSet.h" + + +#include "GasaAttributeSet.generated.h" + + +UCLASS() +class GASA_API UGasaAttributeSet : public UAttributeSet +{ + GENERATED_BODY() +public: + +}; + diff --git a/Project/Source/Gasa/Game/GasaPlayerState.cpp b/Project/Source/Gasa/Game/GasaPlayerState.cpp new file mode 100644 index 0000000..336c4d4 --- /dev/null +++ b/Project/Source/Gasa/Game/GasaPlayerState.cpp @@ -0,0 +1,7 @@ +#include "GasaPlayerState.h" + +AGasaPlayerState::AGasaPlayerState() +{ + // Replication + NetUpdateFrequency = 100.f; +} diff --git a/Project/Source/Gasa/Game/GasaPlayerState.h b/Project/Source/Gasa/Game/GasaPlayerState.h new file mode 100644 index 0000000..c08c66e --- /dev/null +++ b/Project/Source/Gasa/Game/GasaPlayerState.h @@ -0,0 +1,13 @@ +#pragma once + +#include "GameFramework/PlayerState.h" + +#include "GasaPlayerState.generated.h" + +UCLASS(Blueprintable) +class GASA_API AGasaPlayerState : public APlayerState +{ + GENERATED_BODY() +public: + AGasaPlayerState(); +}; diff --git a/Project/Source/Gasa/GasaCommon.cpp b/Project/Source/Gasa/GasaCommon.cpp index eca18c0..365db3a 100644 --- a/Project/Source/Gasa/GasaCommon.cpp +++ b/Project/Source/Gasa/GasaCommon.cpp @@ -1,3 +1,3 @@ #include "GasaCommon.h" -DEFINE_LOG_CATEGORY(LogGasa); \ No newline at end of file +DEFINE_LOG_CATEGORY(LogGasa); diff --git a/Project/Source/Gasa/Game/GasaGameplayTags.cpp b/Project/Source/Gasa/GasaGameplayTags.cpp similarity index 100% rename from Project/Source/Gasa/Game/GasaGameplayTags.cpp rename to Project/Source/Gasa/GasaGameplayTags.cpp diff --git a/Project/Source/Gasa/Game/GasaGameplayTags.h b/Project/Source/Gasa/GasaGameplayTags.h similarity index 100% rename from Project/Source/Gasa/Game/GasaGameplayTags.h rename to Project/Source/Gasa/GasaGameplayTags.h diff --git a/Project/Source/Gasa/GasaLibrary.cpp b/Project/Source/Gasa/GasaLibrary.cpp index 3ac8cef..1731534 100644 --- a/Project/Source/Gasa/GasaLibrary.cpp +++ b/Project/Source/Gasa/GasaLibrary.cpp @@ -36,9 +36,30 @@ AGasaPlayerController* UGasaLib::GetPrimaryGasaPlayerController(UObject* Context #pragma endregion Game #pragma region Logging +DEFINE_LOG_CATEGORY_STATIC(LogGasaBP, Log, All); + void UGasaLib::Log(UObject* Context, FString Message, EGasaVerbosity Verbosity, bool bPrintToScreen) { - Gasa::Log(Message, Verbosity, LogGasa, false, 0, "", TCHAR_TO_ANSI( *Context->GetName() )); + #if !UE_BUILD_SHIPPING && !NO_LOGGING + { + ELogVerbosity::Type EngineVerbosity = (ELogVerbosity::Type) Verbosity; + + static UE::Logging::Private::FStaticBasicLogDynamicData LOG_Dynamic; + static UE::Logging::Private::FStaticBasicLogRecord + LOG_Static(TEXT("%s -- %s"), __builtin_FILE(), __builtin_LINE(), EngineVerbosity, LOG_Dynamic); + + if ((EngineVerbosity & ELogVerbosity::VerbosityMask) <= ELogVerbosity::COMPILED_IN_MINIMUM_VERBOSITY) + { + if ((EngineVerbosity & ELogVerbosity::VerbosityMask) <= LogGasaBP.GetVerbosity()) + { + if ( ! LogGasaBP.IsSuppressed(EngineVerbosity)) + { + BasicLog( LogGasaBP, &LOG_Static, *Message, *Context->GetName() ); + } + } + } + } + #endif if (bPrintToScreen) { if (GAreScreenMessagesEnabled) diff --git a/Readme.md b/Readme.md index 3813d97..a6793ba 100644 --- a/Readme.md +++ b/Readme.md @@ -6,13 +6,14 @@ The project is organized as a monolothic module with an auxillary editor module. Implementation design perfs: -* Flat data structures with abstraction patterns only when necessary. +* Keep data structures and codepaths flat with minimal abstraction patterns + * Lift to more specific or generalized code-pathsonly when necessary * Minimize distinct code-paths * Use classes as "filters", keep things "mega-structed" * Never pre-emtively make interfaces or interface-like patterns * Keep everything data-wise in the runtime unless there is a measurable performance cost. * Some exploratory optimizations for educational purposes. * Plugins are installed in the engine repo unless not possible. -* Code almost exclusively in C++ for everything but cosmetics (this is a engineering portfolio). +* Code almost exclusively in C++ for everything but cosmetics (this is an engineering portfolio piece). * Keep static module functions within C++ namesapces and have the in BP function libraries to expose to BPs. * Perfer stage-metaprogramming to C++ compiler provided templating (when possible).