From 0b34a9742abba17181aca8840f2d1543d15cd067 Mon Sep 17 00:00:00 2001 From: Dolobarsch Date: Sat, 5 Sep 2026 19:01:41 +0200 Subject: [PATCH] Verbesserung der Interaktionslogik und UI-Optimierung MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die Änderungen umfassen: - Projektname in `DefaultGame.ini` auf "Kingshearth Legacy" geändert. - Neue Konsolenvariablen für CommonUI hinzugefügt. - `ListView` ersetzt `VerticalBox` für Kontextmenü-Optionen. - `FInteractionOption` um `Icon` und `PromptOverride` erweitert. - Debugging-Logs in `InteractionComponent.cpp` hinzugefügt. - Neue Klassen: `UInteractionOptionEntryWidget` und `UInteractionOptionListItem`. - Verbesserte Eingabeaufforderungslogik und Sichtbarkeitssteuerung. - Binärdateien (`.uasset`) aktualisiert und neue hinzugefügt. --- Config/DefaultGame.ini | 3 +- Content/Testing/BP_Campfire.uasset | Bin 79342 -> 88789 bytes .../Blueprints/BP_ThirdPersonCharacter.uasset | Bin 174989 -> 179358 bytes Content/UI/WBP_InteractionContextMenu.uasset | Bin 28756 -> 31175 bytes Content/UI/WBP_InteractionOptionEntry.uasset | Bin 0 -> 39949 bytes .../Interaction/InteractionComponent.cpp | 22 ++- .../Interaction/InteractionTypes.h | 15 ++ .../KingshearthLegacy.Build.cs | 1 + .../UI/InteractionContextMenuWidget.cpp | 143 +++++++++++++----- .../UI/InteractionContextMenuWidget.h | 53 +++++-- .../UI/InteractionOptionEntryWidget.cpp | 84 ++++++++++ .../UI/InteractionOptionEntryWidget.h | 81 ++++++++++ .../UI/InteractionOptionListItem.h | 24 +++ 13 files changed, 370 insertions(+), 56 deletions(-) create mode 100644 Content/UI/WBP_InteractionOptionEntry.uasset create mode 100644 Source/KingshearthLegacy/UI/InteractionOptionEntryWidget.cpp create mode 100644 Source/KingshearthLegacy/UI/InteractionOptionEntryWidget.h create mode 100644 Source/KingshearthLegacy/UI/InteractionOptionListItem.h diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini index a9f6caa..29bf27f 100644 --- a/Config/DefaultGame.ini +++ b/Config/DefaultGame.ini @@ -1,8 +1,9 @@ [/Script/EngineSettings.GeneralProjectSettings] ProjectID=CE954E444D2A872317AAC38182169D03 -ProjectName=Third Person Game Template +ProjectName=Kingsharth Legacy [ConsoleVariables] CommonUI.CheckKeyboardFocusAndParentage=1 CommonUI.DisallowUserFocusedWidgetForPendingFocusRecipient=1 CommonUI.FallbackToDesiredOnAutoRestoreFailure=1 + diff --git a/Content/Testing/BP_Campfire.uasset b/Content/Testing/BP_Campfire.uasset index cb624162330fcbdf252ef247ccdadd46d6896521..c4cfddc1f438ebb15c0e602f0505b526d5fa6906 100644 GIT binary patch literal 88789 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 b(yGb{z`kFVkpr!&d>+_LrH@!Skm&ypTl{20 diff --git a/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset b/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset index 67623f49990e2f88b7c070af32ac1d582045159d..b34e36996d1913e3195b097f9e896584ccfa0414 100644 GIT binary patch delta 44475 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

^P<4P+YWe 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 A0{{R3 delta 6722 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 Mq~~+|nSsUs1-gA`s{jB1 diff --git a/Content/UI/WBP_InteractionOptionEntry.uasset b/Content/UI/WBP_InteractionOptionEntry.uasset new file mode 100644 index 0000000000000000000000000000000000000000..0680b24588fe9e5c0c7ec5e548ca104ec6a3d8f7 GIT binary patch literal 39949 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

tB6 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 literal 0 HcmV?d00001 diff --git a/Source/KingshearthLegacy/Interaction/InteractionComponent.cpp b/Source/KingshearthLegacy/Interaction/InteractionComponent.cpp index aef11eb..db42270 100644 --- a/Source/KingshearthLegacy/Interaction/InteractionComponent.cpp +++ b/Source/KingshearthLegacy/Interaction/InteractionComponent.cpp @@ -39,10 +39,11 @@ bool UInteractionComponent::PerformInteractionTrace(FHitResult& OutHit) const if (Owner->Implements()) { - if (IInteractionLookupProvider::Execute_InteractionLookupLoop(Owner, OutHit)) - { - return true; - } + // Authoritative once implemented - a miss here means "nothing found", full stop. + // Don't silently fall through to the default trace below just because this one + // came back empty; that would use a completely different (un-offset) trace and + // could contradict what the override deliberately decided. + return IInteractionLookupProvider::Execute_InteractionLookupLoop(Owner, OutHit); } FVector TraceStart = Owner->GetActorLocation(); @@ -87,8 +88,19 @@ void UInteractionComponent::UpdateFocus() { FHitResult Hit; const bool bHit = PerformInteractionTrace(Hit); + const bool bImplementsInteractable = bHit && Hit.GetActor() && Hit.GetActor()->Implements(); + AActor* NewFocusedActor = bImplementsInteractable ? Hit.GetActor() : nullptr; - AActor* NewFocusedActor = (bHit && Hit.GetActor() && Hit.GetActor()->Implements()) ? Hit.GetActor() : nullptr; +#if ENABLE_DRAW_DEBUG + if (bShowDebugTraces) + { + UE_LOG(LogKingshearthLegacy, Log, TEXT("[Interaction] Tick: bHit=%s hitActor='%s' implementsInteractable=%s currentFocused='%s'"), + bHit ? TEXT("true") : TEXT("false"), + *GetNameSafe(bHit ? Hit.GetActor() : nullptr), + bImplementsInteractable ? TEXT("true") : TEXT("false"), + *GetNameSafe(FocusedActor.Get())); + } +#endif if (NewFocusedActor == FocusedActor.Get()) { diff --git a/Source/KingshearthLegacy/Interaction/InteractionTypes.h b/Source/KingshearthLegacy/Interaction/InteractionTypes.h index 5765a30..8172338 100644 --- a/Source/KingshearthLegacy/Interaction/InteractionTypes.h +++ b/Source/KingshearthLegacy/Interaction/InteractionTypes.h @@ -5,6 +5,8 @@ #include "CoreMinimal.h" #include "InteractionTypes.generated.h" +class UTexture2D; + /** * A single interaction an IInteractable currently offers. Order matters: * index 0 is always the primary (tap) action, index 1 (if present) is the @@ -22,4 +24,17 @@ struct FInteractionOption /** Opaque id passed back to IInteractable::ExecuteInteraction - the object interprets it itself */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Interaction") FName ActionID; + + /** Optional - shown by UInteractionOptionEntryWidget's Icon image when set, hidden otherwise. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Interaction") + TObjectPtr Icon = nullptr; + + /** + * Optional - when this is the primary (index 0) option and this is set, the ever-present + * prompt's first line uses this verbatim instead of building "{DisplayName} with + * {ObjectName}" - e.g. a chest can set this to "Open Chest" instead of ending up as + * "Open with Chest". The "Press E" / "Hold E for ..." lines are unaffected. + */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Interaction") + FText PromptOverride; }; diff --git a/Source/KingshearthLegacy/KingshearthLegacy.Build.cs b/Source/KingshearthLegacy/KingshearthLegacy.Build.cs index 136e06a..d53dece 100644 --- a/Source/KingshearthLegacy/KingshearthLegacy.Build.cs +++ b/Source/KingshearthLegacy/KingshearthLegacy.Build.cs @@ -19,6 +19,7 @@ public class KingshearthLegacy : ModuleRules "GameplayStateTreeModule", "UMG", "Slate", + "SlateCore", "GameplayAbilities", "GameplayTags", "GameplayTasks" diff --git a/Source/KingshearthLegacy/UI/InteractionContextMenuWidget.cpp b/Source/KingshearthLegacy/UI/InteractionContextMenuWidget.cpp index dc353dc..f22ec64 100644 --- a/Source/KingshearthLegacy/UI/InteractionContextMenuWidget.cpp +++ b/Source/KingshearthLegacy/UI/InteractionContextMenuWidget.cpp @@ -1,25 +1,41 @@ // Copyright Epic Games, Inc. All Rights Reserved. #include "InteractionContextMenuWidget.h" +#include "InteractionOptionListItem.h" #include "Interaction/InteractionComponent.h" #include "Interaction/Interactable.h" -#include "Components/VerticalBox.h" +#include "Components/ListView.h" #include "Components/TextBlock.h" -#include "Blueprint/WidgetTree.h" +#include "Components/Widget.h" #include "KingshearthLegacy.h" +namespace +{ + /** Toggles TextContainer when bound (so a background living alongside PromptText hides with it), else PromptText itself. */ + void SetPromptVisible(UWidget* TextContainer, UTextBlock* PromptText, bool bVisible) + { + const ESlateVisibility Visibility = bVisible ? ESlateVisibility::HitTestInvisible : ESlateVisibility::Collapsed; + + if (TextContainer) + { + TextContainer->SetVisibility(Visibility); + } + else if (PromptText) + { + PromptText->SetVisibility(Visibility); + } + } +} + void UInteractionContextMenuWidget::NativeConstruct() { Super::NativeConstruct(); - if (PromptText) - { - PromptText->SetVisibility(ESlateVisibility::Collapsed); - } + SetPromptVisible(TextContainer, PromptText, false); - if (OptionsBox) + if (OptionsList) { - OptionsBox->SetVisibility(ESlateVisibility::Collapsed); + OptionsList->SetVisibility(ESlateVisibility::Collapsed); } } @@ -45,84 +61,139 @@ void UInteractionContextMenuWidget::InitializeInteraction(UInteractionComponent* } void UInteractionContextMenuWidget::HandleFocusedInteractableChanged(AActor* FocusedActor, const TArray& Options) +{ + LastFocusedActor = FocusedActor; + LastFocusedOptions = Options; + UpdatePromptVisibility(); +} + +void UInteractionContextMenuWidget::UpdatePromptVisibility() { if (!PromptText) { return; } - if (!FocusedActor || Options.Num() == 0) + // The Context Menu owns the screen while it's open - keep the ever-present prompt + // out of its way until OnContextMenuClosed brings us back here. + if (InteractionComponent && InteractionComponent->IsContextMenuOpen()) { - PromptText->SetVisibility(ESlateVisibility::Collapsed); + SetPromptVisible(TextContainer, PromptText, false); return; } - // "{Verb} with {ObjectName}" on line one, "Press E" always, then a hint for the - // hold behaviour only when there is one (2 options = secondary, 3+ = Context Menu). - const FText ObjectName = IInteractable::Execute_GetInteractableDisplayName(FocusedActor); - FString Prompt = ObjectName.IsEmpty() - ? Options[0].DisplayName.ToString() - : FString::Printf(TEXT("%s with %s"), *Options[0].DisplayName.ToString(), *ObjectName.ToString()); + AActor* FocusedActor = LastFocusedActor.Get(); + if (!FocusedActor || LastFocusedOptions.Num() == 0) + { + SetPromptVisible(TextContainer, PromptText, false); + return; + } + + // "{Verb} with {ObjectName}" on line one (or PromptOverride verbatim, if the primary + // option set one), "Press E" always, then a hint for the hold behaviour only when + // there is one (2 options = secondary, 3+ = Context Menu). + const FInteractionOption& PrimaryOption = LastFocusedOptions[0]; + FString Prompt; + if (!PrimaryOption.PromptOverride.IsEmpty()) + { + Prompt = PrimaryOption.PromptOverride.ToString(); + } + else + { + const FText ObjectName = IInteractable::Execute_GetInteractableDisplayName(FocusedActor); + Prompt = ObjectName.IsEmpty() + ? PrimaryOption.DisplayName.ToString() + : FString::Printf(TEXT("%s with %s"), *PrimaryOption.DisplayName.ToString(), *ObjectName.ToString()); + } Prompt += TEXT("\nPress E"); - if (Options.Num() == 2) + if (LastFocusedOptions.Num() == 2) { Prompt += TEXT("\nHold E for secondary interaction"); } - else if (Options.Num() >= 3) + else if (LastFocusedOptions.Num() >= 3) { Prompt += TEXT("\nHold E for Context Menu"); } PromptText->SetText(FText::FromString(Prompt)); - PromptText->SetVisibility(ESlateVisibility::HitTestInvisible); + SetPromptVisible(TextContainer, PromptText, true); } -void UInteractionContextMenuWidget::RefreshOptions(const TArray& Options, int32 HighlightedIndex) +void UInteractionContextMenuWidget::PopulateOptionsList(const TArray& Options) { - if (!OptionsBox) + if (!OptionsList) { return; } - OptionsBox->ClearChildren(); + OptionsList->ClearListItems(); + ListItems.Reset(Options.Num()); - for (int32 Index = 0; Index < Options.Num(); ++Index) + TArray ItemObjects; + ItemObjects.Reserve(Options.Num()); + + for (const FInteractionOption& OptionEntry : Options) { - UTextBlock* Row = WidgetTree->ConstructWidget(UTextBlock::StaticClass()); - Row->SetText(Options[Index].DisplayName); - Row->SetColorAndOpacity(FSlateColor(Index == HighlightedIndex ? HighlightedColor : NormalColor)); - OptionsBox->AddChildToVerticalBox(Row); + UInteractionOptionListItem* Item = NewObject(this); + Item->Option = OptionEntry; + ListItems.Add(Item); + ItemObjects.Add(Item); + } + + OptionsList->SetListItems(ItemObjects); +} + +void UInteractionContextMenuWidget::SelectHighlighted(int32 Index) +{ + if (!OptionsList) + { + return; + } + + if (ListItems.IsValidIndex(Index)) + { + OptionsList->SetSelectedItem(ListItems[Index]); + } + else + { + OptionsList->ClearSelection(); } } void UInteractionContextMenuWidget::HandleContextMenuOpened(const TArray& Options, int32 InitialHighlightedIndex) { - UE_LOG(LogKingshearthLegacy, Log, TEXT("[Interaction] Widget received OnContextMenuOpened: %d option(s), OptionsBox bound: %s"), - Options.Num(), OptionsBox ? TEXT("yes") : TEXT("NO - add a VerticalBox named exactly \"OptionsBox\" in this widget's Designer tree")); + UE_LOG(LogKingshearthLegacy, Log, TEXT("[Interaction] Widget received OnContextMenuOpened: %d option(s), OptionsList bound: %s"), + Options.Num(), OptionsList ? TEXT("yes") : TEXT("NO - add a ListView named exactly \"OptionsList\" in this widget's Designer tree")); CachedOptions = Options; - RefreshOptions(CachedOptions, InitialHighlightedIndex); + PopulateOptionsList(CachedOptions); + SelectHighlighted(InitialHighlightedIndex); - if (OptionsBox) + if (OptionsList) { - OptionsBox->SetVisibility(ESlateVisibility::HitTestInvisible); + OptionsList->SetVisibility(ESlateVisibility::Visible); } + + UpdatePromptVisibility(); } void UInteractionContextMenuWidget::HandleContextMenuHighlightChanged(int32 NewHighlightedIndex) { - RefreshOptions(CachedOptions, NewHighlightedIndex); + SelectHighlighted(NewHighlightedIndex); } void UInteractionContextMenuWidget::HandleContextMenuClosed() { CachedOptions.Reset(); + ListItems.Reset(); - if (OptionsBox) + if (OptionsList) { - OptionsBox->ClearChildren(); - OptionsBox->SetVisibility(ESlateVisibility::Collapsed); + OptionsList->ClearListItems(); + OptionsList->SetVisibility(ESlateVisibility::Collapsed); } + + UpdatePromptVisibility(); } diff --git a/Source/KingshearthLegacy/UI/InteractionContextMenuWidget.h b/Source/KingshearthLegacy/UI/InteractionContextMenuWidget.h index 99ad1c1..3dc3abe 100644 --- a/Source/KingshearthLegacy/UI/InteractionContextMenuWidget.h +++ b/Source/KingshearthLegacy/UI/InteractionContextMenuWidget.h @@ -8,8 +8,10 @@ #include "InteractionContextMenuWidget.generated.h" class UInteractionComponent; -class UVerticalBox; +class UInteractionOptionListItem; +class UListView; class UTextBlock; +class UWidget; /** * One widget covering both interaction UI needs so you only wire up a single thing @@ -17,7 +19,7 @@ class UTextBlock; * driven by OnFocusedInteractableChanged - shows any time the look trace is on an * IInteractable, regardless of option count or whether Interact is even pressed) and * the Context Menu shown while holding Interact on a 3+-option IInteractable - * (OptionsBox, driven by OnContextMenuOpened/HighlightChanged/Closed). Both bound + * (OptionsList, driven by OnContextMenuOpened/HighlightChanged/Closed). Both bound * widgets are optional and toggle their own visibility independently - add whichever * you want in the Designer, named exactly as below; all population/highlight/show-hide * logic lives here in C++. @@ -37,8 +39,11 @@ protected: virtual void NativeConstruct() override; - /** Rebuilds OptionsBox's rows from Options, styling HighlightedIndex differently from the rest. */ - void RefreshOptions(const TArray& Options, int32 HighlightedIndex); + /** Rebuilds OptionsList's items from Options; ListItems is kept alive here so the ListView's UObjects don't get GC'd. */ + void PopulateOptionsList(const TArray& Options); + + /** Selects ListItems[Index] on OptionsList, which drives each row's IUserObjectListEntry::NativeOnItemSelectionChanged. */ + void SelectHighlighted(int32 Index); UFUNCTION() void HandleFocusedInteractableChanged(AActor* FocusedActor, const TArray& Options); @@ -52,25 +57,45 @@ protected: UFUNCTION() void HandleContextMenuClosed(); - /** Text color used for the highlighted row. */ - UPROPERTY(EditAnywhere, Category = "Interaction|Style") - FLinearColor HighlightedColor = FLinearColor(1.0f, 0.85f, 0.3f, 1.0f); - - /** Text color used for every other row. */ - UPROPERTY(EditAnywhere, Category = "Interaction|Style") - FLinearColor NormalColor = FLinearColor::White; - /** Ever-present prompt - shows the primary option's DisplayName any time the look trace is on an IInteractable. Optional, place it in the WBP subclass's Designer tree. */ UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional = true)) TObjectPtr PromptText; - /** Container the Context Menu's option rows are built into. Optional, place it in the WBP subclass's Designer tree. */ + /** + * Optional wrapper around PromptText (e.g. a panel/border providing its background) named + * exactly "TextContainer" in the Designer. When bound, its visibility is toggled instead of + * PromptText's own - so a background that lives alongside PromptText, not inside it, actually + * hides too. Falls back to toggling PromptText directly when this isn't bound. + */ UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional = true)) - TObjectPtr OptionsBox; + TObjectPtr TextContainer; + + /** + * The Context Menu's option list. Optional, place it in the WBP subclass's Designer + * tree as a ListView, single-selection, with its Entry Widget Class set to a WBP + * subclass of UInteractionOptionEntryWidget - that class receives each row's data + * and highlighted state natively, no BP event graph logic needed. + */ + UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional = true)) + TObjectPtr OptionsList; UPROPERTY() TArray CachedOptions; + /** UObject wrappers backing OptionsList - one per CachedOptions entry, rebuilt in PopulateOptionsList. */ + UPROPERTY() + TArray> ListItems; + UPROPERTY() TObjectPtr InteractionComponent; + +private: + + /** Rebuilds PromptText from LastFocused*, collapsing it while the Context Menu is open. Called on focus change and on menu close. */ + void UpdatePromptVisibility(); + + TWeakObjectPtr LastFocusedActor; + + UPROPERTY() + TArray LastFocusedOptions; }; diff --git a/Source/KingshearthLegacy/UI/InteractionOptionEntryWidget.cpp b/Source/KingshearthLegacy/UI/InteractionOptionEntryWidget.cpp new file mode 100644 index 0000000..5a70655 --- /dev/null +++ b/Source/KingshearthLegacy/UI/InteractionOptionEntryWidget.cpp @@ -0,0 +1,84 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "InteractionOptionEntryWidget.h" +#include "InteractionOptionListItem.h" +#include "Components/Border.h" +#include "Components/Image.h" +#include "Components/TextBlock.h" +#include "Components/Widget.h" + +void UInteractionOptionEntryWidget::NativeConstruct() +{ + Super::NativeConstruct(); + + // The ListView only calls NativeOnItemSelectionChanged when a row's selection state + // actually changes, so a freshly-spawned row that has never been (de)selected would + // otherwise keep whatever visibility Highlight has in the Designer - force it into + // the correct "not highlighted" state right away instead. + ApplyHighlightVisuals(); +} + +void UInteractionOptionEntryWidget::NativeOnListItemObjectSet(UObject* ListItemObject) +{ + if (const UInteractionOptionListItem* ListItem = Cast(ListItemObject)) + { + Option = ListItem->Option; + ApplyOptionVisuals(); + + // SListView recycles row widgets between items; a row reassigned from a previously- + // selected item to a new one doesn't necessarily get a fresh NativeOnItemSelectionChanged + // call in the same pass, so re-derive the real selection state here rather than trusting + // whatever bHighlighted this (possibly recycled) widget already had. + bHighlighted = IsListItemSelected(); + ApplyHighlightVisuals(); + } +} + +void UInteractionOptionEntryWidget::NativeOnItemSelectionChanged(bool bIsSelected) +{ + bHighlighted = bIsSelected; + ApplyHighlightVisuals(); +} + +void UInteractionOptionEntryWidget::ApplyOptionVisuals() +{ + if (InteractionText) + { + InteractionText->SetText(Option.DisplayName); + } + + if (Icon) + { + if (Option.Icon) + { + Icon->SetBrushFromTexture(Option.Icon); + Icon->SetVisibility(ESlateVisibility::HitTestInvisible); + } + else + { + Icon->SetVisibility(ESlateVisibility::Collapsed); + } + } +} + +void UInteractionOptionEntryWidget::ApplyHighlightVisuals() +{ + if (Highlight) + { + Highlight->SetVisibility(bHighlighted ? ESlateVisibility::HitTestInvisible : ESlateVisibility::Hidden); + + if (UImage* HighlightImage = Cast(Highlight.Get())) + { + HighlightImage->SetColorAndOpacity(HighlightColor); + } + else if (UBorder* HighlightBorder = Cast(Highlight.Get())) + { + HighlightBorder->SetBrushColor(HighlightColor); + } + } + + if (InteractionText) + { + InteractionText->SetColorAndOpacity(bHighlighted ? HighlightedTextColor : NormalTextColor); + } +} diff --git a/Source/KingshearthLegacy/UI/InteractionOptionEntryWidget.h b/Source/KingshearthLegacy/UI/InteractionOptionEntryWidget.h new file mode 100644 index 0000000..465d392 --- /dev/null +++ b/Source/KingshearthLegacy/UI/InteractionOptionEntryWidget.h @@ -0,0 +1,81 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "Blueprint/IUserObjectListEntry.h" +#include "Interaction/InteractionTypes.h" +#include "InteractionOptionEntryWidget.generated.h" + +class UImage; +class UTextBlock; +class UWidget; + +/** + * One row of the Context Menu's OptionsList (a UListView). Assign a WBP + * subclass of this as that ListView's Entry Widget Class in the Designer - + * name your widgets exactly "InteractionText" (Text), "Icon" (Image) and + * "Highlight" (a Border, or an Image - either works, tinted with + * HighlightColor) and all population/highlight styling is handled here in + * C++, driven by the ListView itself via IUserObjectListEntry; no BP event + * graph logic needed. + */ +UCLASS(abstract) +class KINGSHEARTHLEGACY_API UInteractionOptionEntryWidget : public UUserWidget, public IUserObjectListEntry +{ + GENERATED_BODY() + +public: + + UFUNCTION(BlueprintPure, Category = "Interaction") + const FInteractionOption& GetOption() const { return Option; } + + UFUNCTION(BlueprintPure, Category = "Interaction") + bool IsHighlighted() const { return bHighlighted; } + +protected: + + virtual void NativeConstruct() override; + + /** IUserObjectListEntry - called by the owning ListView when this row is assigned an UInteractionOptionListItem. */ + virtual void NativeOnListItemObjectSet(UObject* ListItemObject) override; + + /** IUserObjectListEntry - called by the owning ListView when this row's selected state changes (drives the Context Menu highlight). */ + virtual void NativeOnItemSelectionChanged(bool bIsSelected) override; + + void ApplyOptionVisuals(); + + /** Applies bHighlighted to Highlight's visibility/tint and InteractionText's color. Called on construct (so freshly-spawned rows never default to "selected") and on every selection change. */ + void ApplyHighlightVisuals(); + + /** Row label - bind a TextBlock named exactly "InteractionText" in the Designer. */ + UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional = true)) + TObjectPtr InteractionText; + + /** Option icon - bind an Image named exactly "Icon" in the Designer. Hidden automatically when the option has no Icon set. */ + UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional = true)) + TObjectPtr Icon; + + /** Highlight background - bind a Border or an Image named exactly "Highlight" in the Designer. Shown and tinted HighlightColor only while this row is selected/highlighted. */ + UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional = true)) + TObjectPtr Highlight; + + /** Tint applied to Highlight while this row is highlighted. */ + UPROPERTY(EditAnywhere, Category = "Interaction|Style") + FLinearColor HighlightColor = FLinearColor(1.0f, 0.85f, 0.3f, 1.0f); + + /** InteractionText color while this row is NOT highlighted. */ + UPROPERTY(EditAnywhere, Category = "Interaction|Style") + FLinearColor NormalTextColor = FLinearColor::White; + + /** InteractionText color while this row IS highlighted. */ + UPROPERTY(EditAnywhere, Category = "Interaction|Style") + FLinearColor HighlightedTextColor = FLinearColor::Black; + + UPROPERTY(BlueprintReadOnly, Category = "Interaction") + FInteractionOption Option; + + UPROPERTY(BlueprintReadOnly, Category = "Interaction") + bool bHighlighted = false; +}; diff --git a/Source/KingshearthLegacy/UI/InteractionOptionListItem.h b/Source/KingshearthLegacy/UI/InteractionOptionListItem.h new file mode 100644 index 0000000..fd1bb85 --- /dev/null +++ b/Source/KingshearthLegacy/UI/InteractionOptionListItem.h @@ -0,0 +1,24 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/Object.h" +#include "Interaction/InteractionTypes.h" +#include "InteractionOptionListItem.generated.h" + +/** + * Plain UObject wrapper around one FInteractionOption - UListView items must be + * UObjects, not structs, so UInteractionContextMenuWidget wraps each option in + * one of these before calling OptionsList->SetListItems. + */ +UCLASS() +class KINGSHEARTHLEGACY_API UInteractionOptionListItem : public UObject +{ + GENERATED_BODY() + +public: + + UPROPERTY(BlueprintReadOnly, Category = "Interaction") + FInteractionOption Option; +};