• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CyclopsMC / IntegratedCrafting / 33430959681
64%
master-1.12: 27%

Build:
Build:
LAST BUILD BRANCH: claude/attuned-crafting-recipe-list-x0ogkw
DEFAULT BRANCH: master-1.12
Ran 31 Aug 2026 07:36PM UTC
Jobs 1
Files 73
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

31 Aug 2026 07:30PM UTC coverage: 61.49% (-2.4%) from 63.899%
33430959681

Pull #221

github

claude
Let the Attuned Crafting Interface enable and disable individual recipes

The Attuned Crafting Interface exposes every recipe of its target machine, with
no way to leave any of them out. Pointing one at a crafting table therefore hands
the network thousands of recipes, and a crafting job may pick one the player
never wanted to be automated.

This gives the part a gui of its own that lists all recipes of its target, with
the output icon and name of each. Clicking a row toggles it, and "Enable all",
"Disable all" and "Invert" apply to whatever the search field currently matches,
which is what makes a machine with thousands of recipes workable. The settings
gui, which used to be the part's main gui, moved behind a button.

Disabled recipes are stored as a blacklist of recipe keys on the part state, so
an interface that has nothing disabled costs no extra NBT, and a pack update that
adds recipes does not silently disable them. A recipe key is the recipe id where
there is one, and the full structural serialization otherwise. Keys are never
resolved back into recipes for storage, since that throws once a recipe is gone,
and an unresolvable key must stay opaque so that a pack update cannot silently
re-enable something the player disabled.

The part state now exposes the filtered recipes through getRecipes, and the full
list through getAllRecipes for the gui. Every toggle updates the filtered list
and then tells the network about exactly the recipes that changed, because the
network unregisters a crafting interface by iterating over the recipes it
exposes: had that set changed silently, the disabled recipes would have leaked
into the network's recipe index for good. A game test covers that invariant.

Recipes reach the client through the gui data buffer at open time. Ones that come
from a built-in recipe are sent by id and resolved from the client's own recipe
manager, so a crafting table costs a few tens of kilobytes rather than a full
structural dump. Sorti... (continued)
Pull Request #221: Let the Attuned Crafting Interface enable and disable individual recipes

936 of 1811 branches covered (51.68%)

Branch coverage included in aggregate %.

3233 of 4969 relevant lines covered (65.06%)

3.37 hits per line

Coverage Regressions

Lines Coverage ∆ File
28
73.4
22.75% org/cyclops/integratedcrafting/part/PartTypeInterfaceCraftingAttuned.java
27
0.0
0.0% org/cyclops/integratedcrafting/IntegratedCrafting.java
14
43.69
-18.45% org/cyclops/integratedcrafting/core/MissingIngredients.java
4
0.0
0.0% org/cyclops/integratedcrafting/RegistryEntries.java
3
85.0
5.0% org/cyclops/integratedcrafting/core/network/CraftingNetwork.java
2
65.32
3.5% org/cyclops/integratedcrafting/core/CraftingJobHandler.java
Jobs
ID Job ID Ran Files Coverage
1 33430959681.1 31 Aug 2026 07:36PM UTC 73
61.49
GitHub Action Run
Source Files on build 33430959681
  • Tree
  • List 73
  • Changed 8
  • Source Changed 0
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #33430959681
  • Pull Request #221
  • PR Base - master-1.21-lts (#33258018849)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc