promotional bannermobile promotional banner

Polymorphic Refined Storage

Polymorph recipe selection button directly into Refined Storage 2 Crafting Grids and Pattern Grids.

File Details

rspolymorph-1.0.7

  • R
  • Apr 19, 2026
  • 39.28 KB
  • 44.7K
  • 1.21.1
  • NeoForge

File Name

rspolymorph-1.0.7.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:rs-polymorph-1492934:7953252"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

### Fixed

- **Pattern Grid preview stuck on previous recipe (RS 2.0.2)** — After selecting a different recipe via the Polymorph popup, the Pattern Grid preview kept showing the previous recipe's output until the pattern was printed once. `MixinRecipeMatrix` only updated the `ResultContainer` via `setResult` but left `currentRecipe` unchanged, so the next `updateResult` short-circuit (`currentRecipe.matches(input)` returns true) re-assembled the old recipe and overwrote the preview. Now also syncs `currentRecipe` via the accessor whenever a Polymorph override is applied.
- **Singleplayer selection not applied server-side** — On singleplayer, `selectRecipe()` used `server.execute` with an `activeBlockEntity` captured from the client-side menu scan. That BE lives on the client level, so the subsequent `isClientSide` guard either skipped `updateResult` or ran it on the wrong level; the selection worked only as a side-effect of later `matrixChanged()` triggers. Unified the SP and MP paths: both now dispatch `SelectRecipePacket` over the local loopback (SP) or network (MP). The handler resolves the server-side BlockEntity via `player.containerMenu`, correctly scoped to the server level, and persists the selection in `RsGridRecipeData.selections`.

### Correctifs

- **Aperçu du Pattern Grid figé sur la recette précédente (RS 2.0.2)** — Après avoir choisi une autre recette via le popup Polymorph, l'aperçu du Pattern Grid gardait le résultat de la recette précédente jusqu'à la prochaine impression de patron. `MixinRecipeMatrix` ne mettait à jour que le `ResultContainer` via `setResult` sans toucher à `currentRecipe` ; le prochain `updateResult` court-circuitait (`currentRecipe.matches(input)` retourne vrai) et ré-assemblait l'ancienne recette, écrasant l'aperçu. Synchronise désormais aussi `currentRecipe` via l'accessor à chaque override Polymorph.
- **Sélection non appliquée côté serveur en solo** — En solo, `selectRecipe()` utilisait `server.execute` avec un `activeBlockEntity` capturé depuis le scan du menu côté client. Ce BE vit sur le niveau client, donc le garde `isClientSide` qui suivait faisait soit sauter `updateResult`, soit le lançait sur le mauvais niveau ; la sélection ne fonctionnait que par effet de bord des déclenchements ultérieurs de `matrixChanged()`. Chemins SP et MP unifiés : les deux expédient maintenant `SelectRecipePacket` via la boucle locale (SP) ou le réseau (MP). Le handler résout le BlockEntity côté serveur via `player.containerMenu`, correctement scopé sur le niveau serveur, et persiste la sélection dans `RsGridRecipeData.selections`.

### Cleanup

- **Nested duplicate clone removed** — An accidental inner `Arcadia-RsPolymorph/` git clone was sitting inside the working tree. It shadowed the main repo with a stale copy (one commit behind) and caused confusion. Deleted.

### Nettoyage

- **Clone imbriqué en double supprimé** — Un clone git interne accidentel `Arcadia-RsPolymorph/` se trouvait dans l'arbre de travail. Il masquait le dépôt principal avec une copie périmée (un commit de retard) et semait la confusion. Supprimé.