Skip to content

[Epic] Expand deterministic vanilla recipe support #2

Description

@swear01

Goal

Expand Magic Storage beyond its current exact crafting, cooking, stonecutting, Smithing Transform, and deterministic axe-transformation families while preserving server authority and atomic execution.

Candidate families

Evaluate and implement each family separately:

  • Smithing Trim with exact component preservation.
  • Loom and cartography operations.
  • Grindstone, anvil, and enchanting operations.
  • Supported special/dynamic vanilla recipe subclasses.
  • Explicit block-tool transformations and mod block hooks.
  • Other player/world/event-dependent transformations only when their complete behavior can be modeled and revalidated.

Required approach

  • Build each family through the normalized adapter platform tracked in [Epic] Build a modded recipe and station compatibility platform #1.
  • Audit the real vanilla/NeoForge implementation before defining its contract.
  • Define exact input identities, output assembly, component preservation, catalysts/tools, costs, remainders, station requirements, simulation, and commit behavior.
  • Keep unsupported or context-incomplete operations fail closed.
  • Preserve deterministic recipe ordering and component-sensitive output variants.

Non-goals

  • No blanket support based only on Recipe#getIngredients().
  • No approximate registry-default reconstruction when output depends on source components.
  • No event, random, player-state, or world mutation that cannot be simulated and atomically committed.
  • Brewing is tracked separately.

Acceptance criteria

  • Every added family has a written execution contract and dedicated adapter.
  • Preview and execution use the current server RecipeManager or an explicitly bounded server catalog.
  • Exact components, multiplicity, tools/catalysts, remainders, destinations, capacity, and rollback are tested.
  • Craftable discovery preserves distinct component-sensitive output variants.
  • Unsupported variants produce a neutral unsupported/no-recipe state rather than an incorrect craft.
  • Tests cover recipe reloads, stale selections, missing stations, full destinations, and dedicated-server classloading.
  • RED-first SelfTest/GameTest coverage and all CI gates pass.
  • GUI-visible recipe presentations pass the current fullscreen Prism manual gate.

Dependencies

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions