54. Get All Asset Tags
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								Project/Binaries/Win64/UnrealEditor-GasaEditor.dll
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Project/Binaries/Win64/UnrealEditor-GasaEditor.dll
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Project/Content/Core/AbilitySystem/GE_AreaFire.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Project/Content/Core/AbilitySystem/GE_AreaFire.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Project/Content/Core/BP_AreaFire_RawEffect.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Project/Content/Core/BP_AreaFire_RawEffect.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Project/Content/Core/Game/BP_HUD.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Project/Content/Core/Game/BP_HUD.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Project/Content/Levels/StartupMap.umap
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Project/Content/Levels/StartupMap.umap
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,6 +1,16 @@ | |||||||
| #include "GasaAbilitySystemComponent.h" | #include "GasaAbilitySystemComponent.h" | ||||||
|  |  | ||||||
| #include "Engine/Engine.h" | #include "Engine/Engine.h" | ||||||
|  | #include "Engine/GameViewportClient.h" | ||||||
|  | #include "Game/GasaGameState.h" | ||||||
|  | #include "Game/GasaPlayerController.h" | ||||||
|  | #include "GameFramework/HUD.h" | ||||||
|  | #include "Slate/SceneViewport.h" | ||||||
|  | #include "UI/GasaHUD.h" | ||||||
|  | #include "CogDebugDraw.h" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | using namespace Gasa; | ||||||
|  |  | ||||||
| void UGasaAbilitySystemComp::OnAbilityActorInfoSet() | void UGasaAbilitySystemComp::OnAbilityActorInfoSet() | ||||||
| { | { | ||||||
| @@ -9,7 +19,14 @@ void UGasaAbilitySystemComp::OnAbilityActorInfoSet() | |||||||
| void UGasaAbilitySystemComp::EffectApplied(UAbilitySystemComponent* AbilitySystem, FGameplayEffectSpec const& Spec, | void UGasaAbilitySystemComp::EffectApplied(UAbilitySystemComponent* AbilitySystem, FGameplayEffectSpec const& Spec, | ||||||
| 	FActiveGameplayEffectHandle ActiveEffect) | 	FActiveGameplayEffectHandle ActiveEffect) | ||||||
| { | { | ||||||
| 	GEngine->AddOnScreenDebugMessage(1, 8.f, FColor::Yellow, FString("Effect applied")); | 	FGameplayTagContainer Tags; | ||||||
|  | 	Spec.GetAllAssetTags(Tags); | ||||||
|  | 	for (FGameplayTag const& Tag : Tags) | ||||||
|  | 	{ | ||||||
|  | 		// TODO(Ed): Broadcast the tag to the widget controller | ||||||
|  | 		FString Msg = FString::Printf(TEXT("GE Tag: %s"), * Tag.ToString()); | ||||||
|  | 		Log(Msg); | ||||||
|  | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| void UGasaAbilitySystemComp::InitAbilityActorInfo(AActor* InOwnerActor, AActor* InAvatarActor) | void UGasaAbilitySystemComp::InitAbilityActorInfo(AActor* InOwnerActor, AActor* InAvatarActor) | ||||||
|   | |||||||
| @@ -1,147 +0,0 @@ | |||||||
| #include "GasaGameState.h" |  | ||||||
|  |  | ||||||
| #include "CogAll.h" |  | ||||||
| #include "CogWindowManager.h" |  | ||||||
| #include "GasaPlayerState.h" |  | ||||||
| #include "GasaGameInstance.h" |  | ||||||
| #include "Net/UnrealNetwork.h" |  | ||||||
| #include "Networking/GasaNetLibrary_Inlines.h" |  | ||||||
| using namespace Gasa; |  | ||||||
|  |  | ||||||
| AGasaGameState::AGasaGameState() |  | ||||||
| { |  | ||||||
| 	// Enable ticking |  | ||||||
|     PrimaryActorTick.bCanEverTick = true; |  | ||||||
|     PrimaryActorTick.SetTickFunctionEnable(true); |  | ||||||
|     PrimaryActorTick.bStartWithTickEnabled = true; |  | ||||||
|  |  | ||||||
| 	// Replication |  | ||||||
| 	bReplicates            = true; |  | ||||||
| 	bNetLoadOnClient       = false; |  | ||||||
| 	NetDormancy            = DORM_Awake; |  | ||||||
| 	NetCullDistanceSquared = NetCullDist_Default; |  | ||||||
| 	NetUpdateFrequency     = 10.0f; |  | ||||||
| 	MinNetUpdateFrequency  = 1.0f; |  | ||||||
| 	NetPriority            = 5.0f; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #pragma region GameFramework |  | ||||||
| void AGasaGameState::OnGameFrameworkInitialized() |  | ||||||
| { |  | ||||||
| 	NetLog("Received gameplay framework initialization."); |  | ||||||
| 	if (IsServer()) |  | ||||||
| 	{ |  | ||||||
| 		if (PlayerArray.Num() > 0) |  | ||||||
| 		{ |  | ||||||
| 			ListenServerHost = Cast<AGasaPlayerState>(PlayerArray[0]); |  | ||||||
| 		} |  | ||||||
| 		else |  | ||||||
| 		{ |  | ||||||
| 			NetLog("Was not able to assign HostingPlayer!", ELogV::Error); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	BP_OnGameFrameworkInitialized(); |  | ||||||
| } |  | ||||||
| #pragma endregion GameFramework |  | ||||||
|  |  | ||||||
| #pragma region Networking |  | ||||||
| void AGasaGameState::Client_OnRep_OnlinePlayers() |  | ||||||
| { |  | ||||||
| } |  | ||||||
| #pragma endregion Networking |  | ||||||
|  |  | ||||||
| #pragma region Seamless Travel |  | ||||||
| void AGasaGameState::Multicast_R_NotifySeamlessTravelEnd_Implementation() |  | ||||||
| { |  | ||||||
| 	NetLog("Multicast_R_NotifySeamlessTravelEnd_Implementation"); |  | ||||||
| 	BP_Event_OnSeamlessTravelEnd.Broadcast(); |  | ||||||
| 	Event_OnSeamlessTravelEnd.Broadcast(); |  | ||||||
| } |  | ||||||
| #pragma endregion Seamless Travel |  | ||||||
|  |  | ||||||
| #pragma region GameStateBase |  | ||||||
| void AGasaGameState::HandleBeginPlay() |  | ||||||
| { |  | ||||||
| 	Super::HandleBeginPlay(); |  | ||||||
| 	NetLog("HandleBeginPlay: Directly called from GM"); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void AGasaGameState::SeamlessTravelTransitionCheckpoint(bool bToTransitionMap) |  | ||||||
| { |  | ||||||
| 	Super::SeamlessTravelTransitionCheckpoint(bToTransitionMap); |  | ||||||
| 	NetLog("SeamlessTravelTransitionCheckpoint"); |  | ||||||
| 	NetLog(FString("ToTransitionMap: ") + FString(bToTransitionMap ? "true" : "false")); |  | ||||||
|  |  | ||||||
| 	if (bToTransitionMap) |  | ||||||
| 	{ |  | ||||||
| 		Event_OnSeamlessTravelStart.Broadcast(); |  | ||||||
| 	} |  | ||||||
| 	else |  | ||||||
| 	{ |  | ||||||
| 		Multicast_R_NotifySeamlessTravelEnd(); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| #pragma endregion GameStateBase |  | ||||||
|  |  | ||||||
| #pragma region Actor |  | ||||||
| void AGasaGameState::BeginPlay() |  | ||||||
| { |  | ||||||
| 	Super::BeginPlay(); |  | ||||||
| 	NetLog("BeginPlay"); |  | ||||||
|  |  | ||||||
| 	// Notified as initialized here as any possible components should also be initialized by this point. |  | ||||||
| 	UGasaGameInstance* |  | ||||||
| 	GI = GetGameInstance<UGasaGameInstance>(); |  | ||||||
| 	GI->Event_OnGameFrameworkInitialized.AddDynamic(this, & ThisClass::OnGameFrameworkInitialized); |  | ||||||
| 	GI->NotifyGameFrameworkClassReady(EGameFrameworkClassFlag::GameState); |  | ||||||
| 	 |  | ||||||
| #if ENABLE_COG |  | ||||||
| 	CogWindowManager = NewObject<UCogWindowManager>(this); |  | ||||||
| 	CogWindowManagerRef = CogWindowManager; |  | ||||||
|  |  | ||||||
| 	// Add all the built-in windows |  | ||||||
| 	Cog::AddAllWindows(*CogWindowManager); |  | ||||||
| #endif //ENABLE_COG |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void AGasaGameState::PostInitializeComponents() |  | ||||||
| { |  | ||||||
| 	NetLog("PostInitializeComponents"); |  | ||||||
| 	Super::PostInitializeComponents(); |  | ||||||
|  |  | ||||||
| 	if ( ! GetWorld()->IsEditorWorld() && IsServer()) |  | ||||||
| 	{ |  | ||||||
| 		OnlinePlayers.Empty(); |  | ||||||
| #if 0 |  | ||||||
| 		const auto GI = Cast<UGasaGameInstance>(GetGameInstance()); |  | ||||||
| 		if (GI != nullptr) |  | ||||||
| 		{ |  | ||||||
| 			int32 NumConnections = GI->SessionSettings.bPublicGame |  | ||||||
| 				? GI->SessionSettings.PublicConnections |  | ||||||
| 				: GI->SessionSettings.PrivateConnections; |  | ||||||
| 			OnlinePlayers.Init(nullptr, NumConnections); |  | ||||||
| 		} |  | ||||||
| #endif |  | ||||||
| 	}	 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void AGasaGameState::Tick(float DeltaSeconds) |  | ||||||
| { |  | ||||||
| 	Super::Tick(DeltaSeconds); |  | ||||||
|  |  | ||||||
| #if ENABLE_COG |  | ||||||
| 	if (CogWindowManager) |  | ||||||
| 		CogWindowManager->Tick(DeltaSeconds); |  | ||||||
| #endif //ENABLE_COG |  | ||||||
| } |  | ||||||
| #pragma endregion Actor |  | ||||||
|  |  | ||||||
| #pragma region UObject |  | ||||||
| void AGasaGameState::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const |  | ||||||
| { |  | ||||||
| 	Super::GetLifetimeReplicatedProps(OutLifetimeProps); |  | ||||||
|  |  | ||||||
| 	DOREPLIFETIME(AGasaGameState, ListenServerHost); |  | ||||||
| 	DOREPLIFETIME(AGasaGameState, OnlinePlayers); |  | ||||||
| } |  | ||||||
| #pragma endregion UObject |  | ||||||
| @@ -3,6 +3,7 @@ | |||||||
| #include "Networking/GasaNetLibrary_Inlines.h" | #include "Networking/GasaNetLibrary_Inlines.h" | ||||||
|  |  | ||||||
| #include "AbilitySystemComponent.h" | #include "AbilitySystemComponent.h" | ||||||
|  | #include "DrawDebugHelpers.h" | ||||||
| #include "Engine/LocalPlayer.h" | #include "Engine/LocalPlayer.h" | ||||||
| #include "EnhancedInputComponent.h" | #include "EnhancedInputComponent.h" | ||||||
| #include "EnhancedInputSubsystems.h" | #include "EnhancedInputSubsystems.h" | ||||||
| @@ -66,14 +67,17 @@ void AGasaPlayerController::NetOwner_OnReady() | |||||||
| 	if (IsClient()) | 	if (IsClient()) | ||||||
| 		ServerRPC_R_NotifyOwningClientReady(); | 		ServerRPC_R_NotifyOwningClientReady(); | ||||||
|  |  | ||||||
|  | 	Cam = GetWorld()->SpawnActor<ACameraMount>(GetDevOptions()->Template_PlayerCamera.Get(), FActorSpawnParameters() ); | ||||||
|  | 	SetViewTarget(Cam); | ||||||
|  |  | ||||||
| 	AGasaPlayerState* PS         = GetPlayerState(); | 	AGasaPlayerState* PS         = GetPlayerState(); | ||||||
| 	APlayerCharacter* PlayerChar = GetPawn<APlayerCharacter>(); | 	APlayerCharacter* PlayerChar = GetPawn<APlayerCharacter>(); | ||||||
| 	{ | 	{ | ||||||
| 		PlayerChar->AbilitySystem = PS->AbilitySystem; | 		PlayerChar->AbilitySystem = PS->AbilitySystem; | ||||||
| 		PlayerChar->Attributes    = PS->Attributes; | 		PlayerChar->Attributes    = PS->Attributes; | ||||||
| 		PlayerChar->AbilitySystem->InitAbilityActorInfo(PS, this); | 		PlayerChar->AbilitySystem->InitAbilityActorInfo(PS, this); | ||||||
| 		Cam->AttachToActor(PlayerChar, FAttachmentTransformRules::KeepRelativeTransform); |  | ||||||
| 	} | 	} | ||||||
|  | 	Cam->AttachToActor(PlayerChar, FAttachmentTransformRules::KeepRelativeTransform); | ||||||
| } | } | ||||||
|  |  | ||||||
| void AGasaPlayerController::OnGameFrameworkInitialized() | void AGasaPlayerController::OnGameFrameworkInitialized() | ||||||
| @@ -416,15 +420,11 @@ void AGasaPlayerController::BeginPlay() | |||||||
| void AGasaPlayerController::PostInitializeComponents() | void AGasaPlayerController::PostInitializeComponents() | ||||||
| { | { | ||||||
| 	Super::PostInitializeComponents(); | 	Super::PostInitializeComponents(); | ||||||
|  |  | ||||||
| 	Cam = GetWorld()->SpawnActor<ACameraMount>(GetDevOptions()->Template_PlayerCamera.Get(), FActorSpawnParameters() ); |  | ||||||
| 	SetViewTarget(Cam); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| void AGasaPlayerController::Tick(float DeltaSeconds) | void AGasaPlayerController::Tick(float DeltaSeconds) | ||||||
| { | { | ||||||
| 	Super::Tick(DeltaSeconds); | 	Super::Tick(DeltaSeconds); | ||||||
|  |  | ||||||
| #if 0 | #if 0 | ||||||
| 	switch (HighlightState) | 	switch (HighlightState) | ||||||
| 	{ | 	{ | ||||||
|   | |||||||
| @@ -84,6 +84,15 @@ public class Gasa : ModuleRules | |||||||
| 	        PrivateIncludePathModuleNames.AddRange( new string[] | 	        PrivateIncludePathModuleNames.AddRange( new string[] | ||||||
| 	        { | 	        { | ||||||
| 		        "CogCommon", | 		        "CogCommon", | ||||||
|  | 		        "CogAbility", | ||||||
|  | 		        "CogAI", | ||||||
|  | 		        "CogAll", | ||||||
|  | 		        "CogDebug", | ||||||
|  | 		        "CogDebugEditor", | ||||||
|  | 		        "CogEngine", | ||||||
|  | 		        "CogImgui", | ||||||
|  | 		        "CogInput", | ||||||
|  | 		        "CogWindow", | ||||||
| 	        }); | 	        }); | ||||||
|             PrivateDependencyModuleNames.AddRange(new string[] |             PrivateDependencyModuleNames.AddRange(new string[] | ||||||
|             { |             { | ||||||
|   | |||||||
| @@ -160,7 +160,8 @@ namespace Gasa | |||||||
|  |  | ||||||
| 	// Works for Unreal 5.4, Win64 MSVC (untested in other scenarios, for now) | 	// Works for Unreal 5.4, Win64 MSVC (untested in other scenarios, for now) | ||||||
| 	inline | 	inline | ||||||
| 	void Log( FString Message, EGasaVerbosity Verbosity = EGasaVerbosity::Log | 	void Log( FString Message | ||||||
|  | 		, EGasaVerbosity    Verbosity = EGasaVerbosity::Log | ||||||
| 		, FLogCategoryBase& Category  = LogGasa | 		, FLogCategoryBase& Category  = LogGasa | ||||||
| 		, bool              DumpStack = false | 		, bool              DumpStack = false | ||||||
| 		, int32             Line      = __builtin_LINE() | 		, int32             Line      = __builtin_LINE() | ||||||
|   | |||||||
| @@ -20,6 +20,11 @@ void AGasaHUD::InitHostWidget(FWidgetControllerData const* WidgetControllerData) | |||||||
| 	HostWidget->AddToViewport(); | 	HostWidget->AddToViewport(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void AGasaHUD::DrawHUD() | ||||||
|  | { | ||||||
|  | 	Super::DrawHUD(); | ||||||
|  | } | ||||||
|  |  | ||||||
| #pragma region HUD | #pragma region HUD | ||||||
| void AGasaHUD::ShowHUD() | void AGasaHUD::ShowHUD() | ||||||
| { | { | ||||||
| @@ -32,4 +37,9 @@ void AGasaHUD::BeginPlay() | |||||||
| { | { | ||||||
| 	Super::BeginPlay(); | 	Super::BeginPlay(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void AGasaHUD::Tick(float DeltaSeconds) | ||||||
|  | { | ||||||
|  | 	Super::Tick(DeltaSeconds); | ||||||
|  | } | ||||||
| #pragma endregion Actor | #pragma endregion Actor | ||||||
|   | |||||||
| @@ -22,10 +22,13 @@ public: | |||||||
| 	void InitHostWidget(FWidgetControllerData const* WidgetControllerData); | 	void InitHostWidget(FWidgetControllerData const* WidgetControllerData); | ||||||
| 	 | 	 | ||||||
| #pragma region HUD | #pragma region HUD | ||||||
|  | 	void DrawHUD() override; | ||||||
| 	void ShowHUD() override; | 	void ShowHUD() override; | ||||||
| #pragma endregion HUD	 | #pragma endregion HUD	 | ||||||
|  |  | ||||||
| #pragma region Actor | #pragma region Actor | ||||||
| 	void BeginPlay() override; | 	void BeginPlay() override; | ||||||
|  |  | ||||||
|  | 	void Tick(float DeltaSeconds) override; | ||||||
| #pragma endregion Actor | #pragma endregion Actor | ||||||
| }; | }; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user