feat(ugc): processing totals on the UGC page; no shared icon preset for player models

- IUgc::GetUgcProcessTotals sums what the UGC server made, for models and
  for car and rocket builds: count, time spent (and how many are timed),
  CPU time, average and slowest, average and most memory (estimate),
  bricks, triangles and triangles saved (models whose count before hidden
  face removal is known). /api/ugc returns them as totals and the UGC page
  shows a card for each kind. Parity tested.
- Player models no longer have a shared icon preset: every one is a
  different size and shape, so its icon is fitted to it from the settings.
  The UGC server ignores a kind:model preset, the dashboard refuses to save
  one, and the icon editor hides the type buttons for models. One model's
  own icon values still work. Car and rocket build types keep theirs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-28 19:27:37 -05:00
parent bdb4c39db3
commit 4679edd2b2
13 changed files with 121 additions and 8 deletions

View File

@@ -174,8 +174,10 @@ and the notices (see Threads). Cars and rockets are made once per combination of
`icon_ambient`, `icon_sun_strength` and `icon_shadows` lines of existing ugcconfig.ini files, with the darker
values, are no longer read). Every framing and light value (key, `icon_*` setting, range, default) is listed once in `UgcIconParams`; the
settings, the dashboard's settings page and its icon editor are built from that list. Values come from the settings,
then the kind's preset (player models, or a car or rocket build type from the client's `ModularBuildComponent`),
then the item's own (a model, or a combination of car or rocket modules), the last two in `ugc_icon_settings`.
then the kind's preset (a car or rocket build type from the client's `ModularBuildComponent`; player models have none:
each is a different size and shape, so its icon is fitted to it from the settings, and the dashboard refuses a player
model preset), then the item's own (a model, or a combination of car or rocket modules), the last two in
`ugc_icon_settings`.
**The pose.** The camera, the model's turn and the crop are worked out in `UgcIconPose` (shared with the
dashboard's editor, see below), in this order: the model is turned about its origin by `modelYaw` (around +Y),