Skip to content

Preferred defaults ("Favorites") for machines, modules & solid fuel #18

Description

@ApocDev

Remember a preferred pick for interchangeable choices and apply it to newly created blocks, leaving existing blocks alone unless they are explicitly migrated.

Choices to cover:

  • Machine tier, furnace, and mining drill, per machine category.
  • Module loadout.
  • Solid fuel, per fuel category. Solid fuels stay explicit picks because they leave fuel-specific byproducts (coal burns to ash, nuclear fuel to a used cell) that the rest of the factory has to deal with.
  • Fluid fuel: only which fluid to prefer. Fluid fuel is otherwise modelled as a shared energy pool (tracked in Generic fluid-fuel energy commodity (energy:fluid) for fungible fuel demand #25); this issue supplies the fuel that pool's allocator falls back to.

Solid fuel already has the data it needs: items carry fuelCategory and fuelValueJ, machines map to fuel categories through the machineFuelCategories table, and computeBlock currently auto-picks the cheapest fuel in a category. This replaces that auto-pick with a stored preference.

Behaviour:

  • New blocks only. Existing blocks keep their current picks; migrating them is an explicit action, never a silent rewrite.
  • A preference for something not yet researched, or for an unpicked TURD option, is stored but inert and takes effect once it becomes available. TURD picks are never auto-applied.
  • Scope is probably per-project with an optional global fallback, but that needs deciding.

Open questions: where the UI lives (a settings page versus an inline "set as default" control on the block view), and whether the module-loadout default is global or per machine category.

Related: #25.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: plannerProduction block / planning modelarea: webWeb UI (React/TanStack/vite-plus)enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions