logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Namespace Serenity.Leaderboard.Infrastructure.Views

    Classes

    LeaderboardButtonActionRunner

    Runs one LeaderboardViewButton's LeaderboardButtonAction when it is submitted. Show View mirrors UnityMenuView.ExecuteTransitionateToView's history bookkeeping (push the owner before navigating) through the same direct IViewRouter calls UnityLeaderboardView.ReturnToOpener already uses; Dispatch Signal mirrors UnityMenuSubmitService.DispatchOptionSignal.

    LeaderboardButtonBar

    Owns a leaderboard view's built buttons: their focus (LeaderboardButtonFocus) and what running the focused one does (LeaderboardButtonActionRunner). Polls keyboard/gamepad navigation and confirm input in Tick() the same way CascadeMenuRenderer.Tick does, including its same-frame arming guard so the input that opened the view is not immediately consumed as a button press; mouse submit instead flows through each handle's own Submitted.

    LeaderboardButtonFactory

    Builds one LeaderboardButtonHandle for an authored LeaderboardViewButton, in priority order: the active theme's Submittable (via CreateOptionComponent(string, int, string, bool), same real themed component the cascade menu renders its options with), the theme's raw submittable template instantiated directly when no ready SerenityUiContext is available, or a bare procedural image + label when neither exists. Mirrors the theme/template/procedural fallback chain CreateProcedural(Transform, GameObject) and CascadeMenuRenderer already use.

    LeaderboardButtonFocus

    Which of a leaderboard view's buttons currently has focus, and the rules for moving it: wraps at either end and skips any button whose Placement is Hidden. Pure list bookkeeping — no Unity input is polled here; LeaderboardButtonBar owns that and calls into this class.

    LeaderboardButtonHandle

    One built button on a leaderboard view: the authored data it renders, the rect LeaderboardPanelPlacementApplier places, and however it shows focus — a themed UnityUiSubmitComponent's native highlight when the theme built it, or a tinted UnityEngine.UI.Image for the template/procedural fallbacks. Built only by LeaderboardButtonFactory.

    LeaderboardColumnLayout

    A resolved, engine-free description of how a leaderboard view's rows split into columns: which columns show, in what order, with what header/width/alignment, whether a header row renders, and how an ACHIEVED_AT column formats its timestamp. Mirrors UnityLeaderboardViewDefinition.ResolveValueSpec(): authored settings resolve once into the single shape the rest of the pipeline reads, so callers never carry the raw fields around separately.

    LeaderboardPanelPlacementApplier

    Applies authored LeaderboardElementPlacements onto a leaderboard panel's element rects, pulling each element out of the panel's stacking layout so it renders wherever it was placed. Stateless and idempotent: every call fully re-derives its result from its own inputs, so re-applying the same placements (e.g. once after SetRows rebuilds the rows, once after the rows table's own scroll-shell extent catches up) yields the same rects.

    LeaderboardRowContentMapper

    Maps ranked domain entries to already-formatted LeaderboardRowContent rows. Pure: no Unity or engine dependencies, so it can be unit tested without an editor/player context.

    LeaderboardValueFormatter

    Renders a raw leaderboard entry value as invariant-culture display text according to a LeaderboardValueFormat.

    UnityLeaderboardPanel

    Script on a leaderboard panel (theme's LeaderboardTemplate, or the procedural fallback built by CreateProcedural(Transform, GameObject)): a header slot, a container the ranked rows render through, and an empty-state slot shown when the board has no entries. Filled and driven by UnityLeaderboardView. The rows container is itself a UnityTablePanel root (see Serenity.Leaderboard.Infrastructure.Views.UnityLeaderboardPanel.EnsureTable): rows grow with the list, and scroll once the ROWS element's own authored placement Size clips them.

    UnityLeaderboardView

    Runtime view that hosts a UnityLeaderboardPanel and is resolvable by Id from a menu transition or a ShowLeaderboardSignal (registered with the IViewRouter via UnityLeaderboardViewService). On Show() it fetches the configured slice of the board (Mode) and fills the panel; it also refreshes whenever a LeaderboardEntrySubmittedSignal for its board arrives while shown.

    Structs

    LeaderboardBackgroundStyle

    A resolved, ready-to-apply description of how a leaderboard view's background renders: mode, sprite override, tint, slicing and pixels-per-unit multiplier. Mirrors UnityLeaderboardViewDefinition.ResolveValueSpec()/ ResolveColumnLayout(): the raw authored fields resolve once into this single shape, so ConfigureBackground(LeaderboardBackgroundStyle) never has to re-derive what a mode/slicing combination means. Ported from the Theme Builder's own sprite-slot resolution (ThemeSpriteSlot), which this style mirrors field-for-field for the modes it shares.

    LeaderboardColumn

    One resolved, render-ready column of a leaderboard view: what it shows and how it is presented.

    LeaderboardPanelPlacementApplier.ElementTarget

    One element's resolved target rect, paired with which LeaderboardViewElement it is.

    LeaderboardPanelPlacementApplier.PlacedElement

    One rect paired directly with the placement to apply to it — the shape a caller with its own list of owners (e.g. UnityLeaderboardPanel's authored buttons) uses instead of LeaderboardPanelPlacementApplier.ElementTarget, which only covers the fixed LeaderboardViewElements.

    LeaderboardRowContent

    Already-formatted display text for one leaderboard row, one cell per visible column, ready to render without any further lookup or formatting. Produced by LeaderboardRowContentMapper from a ranked domain entry and a LeaderboardColumnLayout.

    Enums

    LeaderboardColumnAffixMode

    Whether a leaderboard column's authored prefix and/or suffix text wraps its cell value.

    LeaderboardColumnKind

    Which piece of ranked-entry data one leaderboard column renders.

    LeaderboardValueFormat

    How a raw leaderboard entry value should be rendered as display text.

    In this article
    © 2026 Serenity. All Rights Reserved