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/Content/Core/Game/BP_GameMode.uasset b/Project/Content/Core/Game/BP_GameMode.uasset index 942b834..d45eb8a 100644 --- a/Project/Content/Core/Game/BP_GameMode.uasset +++ b/Project/Content/Core/Game/BP_GameMode.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5ef1e07285cb3da9aef0cf44f0f1ef5e312af340f197b3dd25882aea80e2adc1 -size 22352 +oid sha256:3f42e8e2282dc1199880cd6a9c86c322731c80b10231606d480526317c100d97 +size 15568 diff --git a/Project/Content/Core/Game/BP_GasaPlayerState.uasset b/Project/Content/Core/Game/BP_GasaPlayerState.uasset new file mode 100644 index 0000000..86d215d --- /dev/null +++ b/Project/Content/Core/Game/BP_GasaPlayerState.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:477380e9532aed3041cb13cb65f17c35b21a1691846371d92ca006ba13201086 +size 20409 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).