Expose gameplay coach cached signals and summaries
This commit is contained in:
parent
bc6e7f0fdc
commit
021ec97cc9
7 changed files with 136 additions and 3 deletions
|
|
@ -426,6 +426,39 @@ FString UHyperTwistTrainingPanelWidget::ResolvePrimaryCoachActionStartActionSour
|
|||
);
|
||||
}
|
||||
|
||||
TArray<FHyperTwistCoachSignal> UHyperTwistTrainingPanelWidget::GetDisplayedCoachSignals() const
|
||||
{
|
||||
return CachedCoachSignals;
|
||||
}
|
||||
|
||||
FHyperTwistCoachBrief UHyperTwistTrainingPanelWidget::GetDisplayedCoachBrief() const
|
||||
{
|
||||
return CachedCoachBrief;
|
||||
}
|
||||
|
||||
FHyperTwistCoachBrief UHyperTwistTrainingPanelWidget::GetDisplayedCoachFollowUpBrief() const
|
||||
{
|
||||
return CachedCoachFollowUpBrief;
|
||||
}
|
||||
|
||||
FHyperTwistCoachSessionQueueSummary
|
||||
UHyperTwistTrainingPanelWidget::GetDisplayedCoachSessionQueueSummary() const
|
||||
{
|
||||
return CachedCoachSessionQueueSummary;
|
||||
}
|
||||
|
||||
FHyperTwistCoachScheduleHorizonSummary
|
||||
UHyperTwistTrainingPanelWidget::GetDisplayedCoachScheduleHorizonSummary() const
|
||||
{
|
||||
return CachedCoachScheduleHorizonSummary;
|
||||
}
|
||||
|
||||
FHyperTwistCoachSchedulePolicySummary
|
||||
UHyperTwistTrainingPanelWidget::GetDisplayedCoachSchedulePolicySummary() const
|
||||
{
|
||||
return CachedCoachSchedulePolicySummary;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCoachPrimaryActionSurface
|
||||
UHyperTwistTrainingPanelWidget::GetDisplayedPrimaryCoachActionSurface() const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -407,6 +407,39 @@ FString AHyperTwistTrainingSessionActor::ResolvePrimaryCoachActionStartActionSou
|
|||
);
|
||||
}
|
||||
|
||||
TArray<FHyperTwistCoachSignal> AHyperTwistTrainingSessionActor::GetDisplayedCoachSignals() const
|
||||
{
|
||||
return CachedCoachSignals;
|
||||
}
|
||||
|
||||
FHyperTwistCoachBrief AHyperTwistTrainingSessionActor::GetDisplayedCoachBrief() const
|
||||
{
|
||||
return CachedCoachBrief;
|
||||
}
|
||||
|
||||
FHyperTwistCoachBrief AHyperTwistTrainingSessionActor::GetDisplayedCoachFollowUpBrief() const
|
||||
{
|
||||
return CachedCoachFollowUpBrief;
|
||||
}
|
||||
|
||||
FHyperTwistCoachSessionQueueSummary
|
||||
AHyperTwistTrainingSessionActor::GetDisplayedCoachSessionQueueSummary() const
|
||||
{
|
||||
return CachedCoachSessionQueueSummary;
|
||||
}
|
||||
|
||||
FHyperTwistCoachScheduleHorizonSummary
|
||||
AHyperTwistTrainingSessionActor::GetDisplayedCoachScheduleHorizonSummary() const
|
||||
{
|
||||
return CachedCoachScheduleHorizonSummary;
|
||||
}
|
||||
|
||||
FHyperTwistCoachSchedulePolicySummary
|
||||
AHyperTwistTrainingSessionActor::GetDisplayedCoachSchedulePolicySummary() const
|
||||
{
|
||||
return CachedCoachSchedulePolicySummary;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCoachPrimaryActionSurface
|
||||
AHyperTwistTrainingSessionActor::GetDisplayedPrimaryCoachActionSurface() const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -214,6 +214,24 @@ public:
|
|||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FString ResolvePrimaryCoachActionStartActionSourceLabel() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
TArray<FHyperTwistCoachSignal> GetDisplayedCoachSignals() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistCoachBrief GetDisplayedCoachBrief() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistCoachBrief GetDisplayedCoachFollowUpBrief() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistCoachSessionQueueSummary GetDisplayedCoachSessionQueueSummary() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistCoachScheduleHorizonSummary GetDisplayedCoachScheduleHorizonSummary() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistCoachSchedulePolicySummary GetDisplayedCoachSchedulePolicySummary() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistTrainingCoachPrimaryActionSurface GetDisplayedPrimaryCoachActionSurface() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -195,6 +195,24 @@ public:
|
|||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FString ResolvePrimaryCoachActionStartActionSourceLabel() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
TArray<FHyperTwistCoachSignal> GetDisplayedCoachSignals() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistCoachBrief GetDisplayedCoachBrief() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistCoachBrief GetDisplayedCoachFollowUpBrief() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistCoachSessionQueueSummary GetDisplayedCoachSessionQueueSummary() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistCoachScheduleHorizonSummary GetDisplayedCoachScheduleHorizonSummary() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistCoachSchedulePolicySummary GetDisplayedCoachSchedulePolicySummary() const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach")
|
||||
FHyperTwistTrainingCoachPrimaryActionSurface GetDisplayedPrimaryCoachActionSurface() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -68,8 +68,8 @@ Current correction call from the source-exposed audit and current execution refr
|
|||
- the imported generated-mode gap is closed; request/config/selection plumbing and the bounded clean-room executor are already landed in first-party code
|
||||
- the latest landed bounded `Phase 4` packet closes the retained-idle comparison/outcome actionability gap at the end of the recognition-assisted coach-to-review continuity lane, and the final retained-surface confirmation pass now leaves that closure lane functionally complete
|
||||
- the retained idle widget surface now keeps retained comparison and decision history inspectable without continuing to advertise live launch or guidance-outcome actions once the coach-to-review loop has already collapsed to truthful closed-loop idle
|
||||
- the latest landed bounded `Phase 4` packet stays on that same gameplay-facing consumer lane and adds one thin generated-mode selector option owned execution split-phase current-selection label-provenance partition merged ordered roster evaluation-order lookup inspect surface over the already-cached selector/runtime/request state, so gameplay/Blueprint callers can inspect one retained split-phase row by evaluation order without scanning the merged ordered roster array themselves
|
||||
- the current next bounded packet should stay on that same gameplay-facing consumer lane and only add another thin retained-row convenience inspect surface if a real gameplay or Blueprint caller still needs one over the already-landed merged ordered roster inspect surface, instead of widening into broader UI or backend work
|
||||
- the latest landed bounded `Phase 4` packet stays on that same gameplay-facing consumer lane and exposes the already-cached coach signals, coach brief, coach follow-up brief, coach session queue summary, coach schedule horizon summary, and coach schedule policy summary directly on those gameplay consumers, so gameplay/Blueprint callers can inspect upstream coaching recommendation and scheduling primitives without reading raw cached properties off the widget or actor instances
|
||||
- the current next bounded packet should stay on that same gameplay-facing consumer lane only if a real gameplay or Blueprint caller still needs one more thin display-contract getter or wrapper over already-cached coach state; otherwise choose the next roadmap lane deliberately instead of extending consumer widening by drift
|
||||
- the current execution-discipline rule that broad refactor / monolith-splitting work should not interrupt the active bounded roadmap packet unless structure is actually blocking it
|
||||
|
||||
## Current execution-reality references
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
# HyperTwist Phase 4 gameplay coach cached signals briefs queue summary schedule summaries expose surface packet
|
||||
|
||||
## Goal
|
||||
|
||||
Close the next thin gameplay-facing consumer seam above the already-cached coach scheduling and recommendation state by exposing the cached coach signals, coach brief, coach follow-up brief, coach session queue summary, coach schedule horizon summary, and coach schedule policy summary directly on the gameplay-facing consumers.
|
||||
|
||||
## Why this packet exists
|
||||
|
||||
`UHyperTwistTrainingPanelWidget` and `AHyperTwistTrainingSessionActor` already cache the upstream coaching recommendation and scheduling primitives that later display surfaces compose over. Gameplay and Blueprint callers could technically reach into those raw cached properties, but that leaked storage detail into caller code and left this gameplay-facing consumer contract inconsistent with the rest of the widening lane, where callers read stable displayed getters instead of inspecting instance fields directly.
|
||||
|
||||
This packet closes that gap. It exposes thin displayed getters for the already-cached coach primitives without widening backend behavior, changing derivation semantics, or introducing new intermediate types.
|
||||
|
||||
## What changed
|
||||
|
||||
- expose the cached coach signals directly on both gameplay-facing consumers
|
||||
- expose the cached coach brief and coach follow-up brief directly on both gameplay-facing consumers
|
||||
- expose the cached coach session queue summary directly on both gameplay-facing consumers
|
||||
- expose the cached coach schedule horizon summary and coach schedule policy summary directly on both gameplay-facing consumers
|
||||
- keep the packet scoped to consumer contract widening only, with no backend derivation or runtime-state churn
|
||||
|
||||
## Validation
|
||||
|
||||
- full `Development Editor|Win64` solution build for `C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.sln`
|
||||
|
||||
## Result
|
||||
|
||||
Gameplay and Blueprint callers can now inspect the already-cached upstream coach recommendation and scheduling primitives through stable displayed getters instead of depending on raw cached properties on the widget or actor instances.
|
||||
|
||||
## Next bounded slice
|
||||
|
||||
Stay on the same gameplay-facing consumer lane only if a real gameplay or Blueprint caller still needs one more thin display-contract getter or wrapper over already-cached coach state; otherwise choose the next roadmap lane deliberately instead of extending consumer widening by drift.
|
||||
|
|
@ -30,4 +30,4 @@ Gameplay and Blueprint callers can now inspect one retained split-phase row for
|
|||
|
||||
## Next bounded slice
|
||||
|
||||
Stay on the same gameplay-facing consumer lane and only add another thin retained-row convenience inspect surface if a real gameplay or Blueprint caller still needs one over the already-landed merged ordered roster inspect surface; otherwise keep broader UI and backend widening deferred.
|
||||
Stay on the same gameplay-facing consumer lane and expose the already-cached coach signals, coach brief, coach follow-up brief, coach session queue summary, coach schedule horizon summary, and coach schedule policy summary directly on the gameplay-facing consumers so callers can inspect that cached coach state without depending on raw widget or actor properties.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue