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
### 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é.

