Extract training media export plan validator

This commit is contained in:
axiomlogicnexus 2026-06-25 02:46:34 +00:00
parent bb0402b1e4
commit b76a345250
3 changed files with 66 additions and 35 deletions

View file

@ -493,6 +493,43 @@ UHyperTwistTrainingMediaExportLibrary::BuildBundledMediaExportReferenceBundle()
return Bundle;
}
bool FHyperTwistTrainingClassicCubeMediaExportPlan::IsStructurallyValid() const
{
return !PlanVersion.IsEmpty()
&& !ReplayId.IsEmpty()
&& !PuzzleId.IsEmpty()
&& !MapPath.IsEmpty()
&& !LevelSequencePath.IsEmpty()
&& !VideoRoute.IsEmpty()
&& !StillRoute.IsEmpty()
&& !ShareImageRoute.IsEmpty()
&& !OutputDirectory.IsEmpty()
&& !OutputBaseName.IsEmpty()
&& !VideoOutputDirectory.IsEmpty()
&& !StillOutputDirectory.IsEmpty()
&& !ValidationDirectory.IsEmpty()
&& !ExpectedVideoPath.IsEmpty()
&& !ExpectedStillFramePath.IsEmpty()
&& !ExpectedShareCardPath.IsEmpty()
&& !ExpectedReportPath.IsEmpty()
&& !ExpectedVideoReportPath.IsEmpty()
&& !ExpectedStillReportPath.IsEmpty()
&& OutputWidth > 0
&& OutputHeight > 0
&& OutputFrameRate > 0
&& ReplayDurationMs >= 0
&& TailDurationMs >= 0
&& RenderStartFrame >= 0
&& RenderEndFrame > RenderStartFrame
&& StillFrame >= RenderStartFrame
&& StillFrame < RenderEndFrame
&& MoveCount >= 0
&& InspectionTimeMs >= 0
&& FinalTimeMs >= 0
&& ReviewAnchorCount >= 0;
}
bool UHyperTwistTrainingMediaExportLibrary::TryGetPackageReferenceById(
const FHyperTwistTrainingMediaExportReferenceBundle& Bundle,
const FString& PackageId,

View file

@ -426,41 +426,7 @@ struct FHyperTwistTrainingClassicCubeMediaExportPlan
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
bool bCanExportShareImage = false;
bool IsStructurallyValid() const
{
return !PlanVersion.IsEmpty()
&& !ReplayId.IsEmpty()
&& !PuzzleId.IsEmpty()
&& !MapPath.IsEmpty()
&& !LevelSequencePath.IsEmpty()
&& !VideoRoute.IsEmpty()
&& !StillRoute.IsEmpty()
&& !ShareImageRoute.IsEmpty()
&& !OutputDirectory.IsEmpty()
&& !OutputBaseName.IsEmpty()
&& !VideoOutputDirectory.IsEmpty()
&& !StillOutputDirectory.IsEmpty()
&& !ValidationDirectory.IsEmpty()
&& !ExpectedVideoPath.IsEmpty()
&& !ExpectedStillFramePath.IsEmpty()
&& !ExpectedShareCardPath.IsEmpty()
&& !ExpectedReportPath.IsEmpty()
&& !ExpectedVideoReportPath.IsEmpty()
&& !ExpectedStillReportPath.IsEmpty()
&& OutputWidth > 0
&& OutputHeight > 0
&& OutputFrameRate > 0
&& ReplayDurationMs >= 0
&& TailDurationMs >= 0
&& RenderStartFrame >= 0
&& RenderEndFrame > RenderStartFrame
&& StillFrame >= RenderStartFrame
&& StillFrame < RenderEndFrame
&& MoveCount >= 0
&& InspectionTimeMs >= 0
&& FinalTimeMs >= 0
&& ReviewAnchorCount >= 0;
}
bool IsStructurallyValid() const;
};
UCLASS()

View file

@ -535,6 +535,34 @@ Latest same-day core header cleanup follow-up still on `2026-06-25`:
- if we continue this structural hardening lane, the next honest family is
now viewer/training or a return to the remaining smaller memory seams
Latest same-day training media-export header cleanup follow-up still on
`2026-06-25`:
- the next bounded training-family packet then moved
`FHyperTwistTrainingClassicCubeMediaExportPlan::IsStructurallyValid()` out of
`Public/HyperTwistTraining/HyperTwistTrainingMediaExportLibrary.h` and into
`Private/HyperTwistTraining/HyperTwistTrainingMediaExportLibrary.cpp`
- that keeps the heavier classic-cube export-plan validation beside the live
media-export reference bundle and plan-construction routines already owned by
the training media-export library instead of leaving the public training
export header to carry the lead validator inline
- `scripts/run-hypertwist-sentrux-source-only.sh` then improved again to:
- `Quality: 6197`
- all `7` rules passing
- the overall public-header inline-validator hotspots now shift again toward
viewer plus the remaining smaller recognition and memory seams:
- `36` lines for the current `HyperTwistViewerTypes.h` lead seam
- `30` lines for `FHyperTwistVisionCommittedFaceState`
- `30` lines for `FHyperTwistMemoryCognitiveFact`
- `28` lines for `FHyperTwistMemoryDigestView`
- `27` lines for the remaining memory-state cluster
- current truthful “vanilla refactor” reading tightens again:
- the training media-export header is no longer a meaningful large
inline-validator hotspot
- the next honest structural continuation is now either the viewer family or
a return to the remaining smaller memory seams, not more training
media-export cleanup
Latest same-day browser/distribution continuity follow-up still on `2026-06-24`:
- auth-entry, protected-route loading, dashboard auth health, and release-authority fallback states now share a more deliberate operator-facing recovery shape instead of scattering single-line warnings across public and protected surfaces