Class FormationIconBuilder
FormationLevel
the engine can produce — not just the lance / company pair the legacy AbstractCompanyGenerator
supported.
For each non-leaf Formation, the icon stacks three layers:
- TYPE — a weight-class-based 'Mek silhouette computed from the units in the formation's subtree (Light / Medium / Heavy / Assault / Super-Heavy).
- FORMATION — a shape file matching the formation's
FormationLeveland faction family (IS / Clan / ComStar). All echelons from Team / Point / Level I up through Brigade / Galaxy / Level VI are covered. - BACKGROUND — the faction's standard background, when defined.
The campaign root Formation additionally gets a LOGO layer (or a generic-'Mek TYPE fallback)
driven by CommandGenerationOptions.isUseOriginNodeFormationIconLogo().
This is the spiritual replacement for AbstractCompanyGenerator.createLayeredFormationIcon
scaled up to the full FormationLevel space.
-
Method Summary
Modifier and TypeMethodDescriptionstatic voidapplyIcons(Formation root, Campaign campaign, CommandGenerationOptions options) Walks the campaign's Formation tree rooted atrootand applies a layered icon to every non-leaf Formation.static intapplyIconsToFormations(List<Formation> formations, Campaign campaign) Decorates the named formations and everything under them, using the campaign's own faction.static intapplyIconsToSubtree(Formation root, Campaign campaign) Decorates one existing formation and everything under it, using the campaign's own faction.static intdecorateUndecorated(Formation root, Campaign campaign) Draws the icon ofrootand every formation under it that still carries the blank default icon, and leaves every other icon alone.static booleanrefreshEchelonPiece(Formation formation, Campaign campaign) Brings the echelon symbol on a formation's icon into line with its level, and leaves the rest of the icon alone.static booleanrefreshPurposePiece(Formation formation, Campaign campaign) Swaps the generic 'Mek silhouette on a formation's icon for its support job's icon, once its vehicles show what that job is.
-
Method Details
-
applyIcons
Walks the campaign's Formation tree rooted atrootand applies a layered icon to every non-leaf Formation. Honors the icon-related toggles onCommandGenerationOptions: ifisGenerateFormationIcons()is off, returns immediately.- Parameters:
root- the campaign's top-level Formation (typicallycampaign.getPlayerForce().getFormations())campaign- the campaign whose units feed the weight-class mathoptions- the options driving icon-generation toggles
-
applyIconsToSubtree
Decorates one existing formation and everything under it, using the campaign's own faction.The generation pass above needs
CommandGenerationOptionsbecause it also decides the origin node's icon. Support teams organized after generation - a campaign that switched the option on - have no generation options to consult, but their formations should look like the generated ones, so this is the same builder without the origin-node question.- Parameters:
root- the formation to decorate, along with its subtreecampaign- the campaign the formation belongs to- Returns:
- the number of formations decorated
-
applyIconsToFormations
Decorates the named formations and everything under them, using the campaign's own faction.Used by the support-team conversion, which knows exactly which formations it created and must not touch the player's own - their icons are their business.
- Parameters:
formations- the formations to decorate, each along with its subtreecampaign- the campaign the formations belong to- Returns:
- the number of formations decorated
-
refreshEchelonPiece
public static boolean refreshEchelonPiece(@Nullable Formation formation, @Nullable Campaign campaign) Brings the echelon symbol on a formation's icon into line with its level, and leaves the rest of the icon alone.Support formations are re-sized as their teams and vehicles change, long after their icons were drawn. A Medical section drawn while it held one MASH truck kept the Team symbol after ten more trucks made it a company. Only an icon whose formation layer is a single echelon shape from this builder's folder is touched, so an icon the player designed is never overwritten.
- Parameters:
formation- the formation whose icon may be stalecampaign- the campaign, for the faction family that decides the shape set- Returns:
trueif the symbol was changed
-
decorateUndecorated
Draws the icon ofrootand every formation under it that still carries the blank default icon, and leaves every other icon alone.Support formations granted mid-campaign - a convoy when StratCon is switched on, canteens under fatigue, the security detail - were filed with no icon at all, because only command generation and the Support Teams conversion drew them. A formation already decorated, by this builder or by the player, is never redrawn.
- Parameters:
root- the formation to decorate, along with its subtreecampaign- the campaign the formation belongs to- Returns:
- the number of formations decorated
-
refreshPurposePiece
public static boolean refreshPurposePiece(@Nullable Formation formation, @Nullable Campaign campaign) Swaps the generic 'Mek silhouette on a formation's icon for its support job's icon, once its vehicles show what that job is. Only the fallback silhouette this builder draws is replaced, so an icon the player chose is left alone.- Parameters:
formation- the formation whose icon may predate its vehiclescampaign- the campaign- Returns:
trueif the icon was changed
-