Class AchievementPlatformTableGui
The Studio's Platform Ids tab: every achievement down the side, every storefront across the top, each identifier editable in place — plus the export that turns the whole table into the manifest a storefront's bulk importer reads.
Inherited Members
Namespace: Serenity.Achievements.Infrastructure.Editor.Studio
Assembly: Serenity.UnityAchievements.Infrastructure.Editor.dll
Syntax
public sealed class AchievementPlatformTableGui
Remarks
This tab exists because the identifiers are the one part of an achievement that is never authored one at a time. A storefront's dashboard hands over a list of API names in one sitting, and typing them into two hundred inspectors one field at a time is how three of them end up transposed. A grid is also the only shape in which "which of these has no Xbox id yet" is a glance rather than a search.
Every cell writes through the achievement's own UnityEditor.SerializedObject, so undo, dirtying and the deferred save behave exactly as they do in the detail pane and in the inspector — this tab is a second view of those fields, never a second writer of them.
[Serializable] because the chosen manifest format and the scroll position have to survive the
domain reload a script compile causes; the serialized objects behind the cells deliberately do not, and
are rebuilt whenever the set of achievements changes underneath them.
Constructors
AchievementPlatformTableGui()
Declaration
public AchievementPlatformTableGui()
Fields
AchievementColumnHeader
The heading of the column naming each achievement.
Declaration
public const string AchievementColumnHeader = "Achievement"
Field Value
| Type | Description |
|---|---|
| string |
ExportButtonLabel
The button that writes a manifest.
Declaration
public const string ExportButtonLabel = "Export manifest…"
Field Value
| Type | Description |
|---|---|
| string |
FillSteamNamesButtonLabel
The button that fills every blank Steam API name from its achievement's id.
Declaration
public const string FillSteamNamesButtonLabel = "Fill blank Steam names from Ids"
Field Value
| Type | Description |
|---|---|
| string |
GradeColumnHeader
The heading of the trophy-tier column.
Declaration
public const string GradeColumnHeader = "Grade"
Field Value
| Type | Description |
|---|---|
| string |
NoAchievementsMessage
What the tab says when the project has no achievements to tabulate.
Declaration
public const string NoAchievementsMessage = "This project has no achievement assets yet, so there are no identifiers to map. Author one on the Achievements tab first."
Field Value
| Type | Description |
|---|---|
| string |
SyncButtonLabel
The button that opens the Achievement Platform Sync wizard.
Declaration
public const string SyncButtonLabel = "Achievement Platform Sync…"
Field Value
| Type | Description |
|---|---|
| string |
TableHeader
The heading above the table.
Declaration
public const string TableHeader = "Storefront identifiers"
Field Value
| Type | Description |
|---|---|
| string |
Methods
Draw(IReadOnlyList<UnityAchievementDefinition>, IReadOnlyList<AchievementsStudioRowModel>, IReadOnlyCollection<AchievementPlatformKind>)
Draws the whole tab and reports what the author did.
Declaration
public AchievementPlatformTableGui.Result Draw(IReadOnlyList<UnityAchievementDefinition> definitions, IReadOnlyList<AchievementsStudioRowModel> judgedRows, IReadOnlyCollection<AchievementPlatformKind> enabledPlatforms)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyList<UnityAchievementDefinition> | definitions | Every achievement in the project. May be null and may contain null. |
| IReadOnlyList<AchievementsStudioRowModel> | judgedRows | What the Studio's rules said about each of them, in the same order, so a broken achievement is kept out of every manifest. May be null. |
| IReadOnlyCollection<AchievementPlatformKind> | enabledPlatforms | The storefronts the project ships on. May be null. |
Returns
| Type | Description |
|---|---|
| AchievementPlatformTableGui.Result | What changed, and what to say about it. |