Skip to content

Match Painted Output Busses to Painted Input Busses#4273

Merged
jurrejelle merged 9 commits into1.20.1from
dt/painted-outputs
Feb 8, 2026
Merged

Match Painted Output Busses to Painted Input Busses#4273
jurrejelle merged 9 commits into1.20.1from
dt/painted-outputs

Conversation

@DilithiumThoride
Copy link
Copy Markdown
Contributor

What

So apparently, painting Output Busses has no effect.
This changes that, to make machines with Painted Input and Output Busses, which drew items from a Painted Import, only allowed to output to a Painted Output of the same color (or unpainted, unpainted is always valid).

Implementation Details

Upon successful RecipeHelper.handleRecipe() on IO.IN and simulated, saves the Color of the Handler Group that the Helper succeeded with. Save this color to the Recipe, because that's the only object that I have access to that I can pass data through.
On isTick=true, !simulated, or IO.OUT, recall that group color and skip handler groups that are not that color (or colorless).

Outcome

PAINTING OUTPUT BUSSES DOES SOMETHING NOW and matches the outputs to the inputs.

Additional Information

The first commit on this branch, always copying recipes, is technically a de-optimization. However, it is necessary to ensure that using a GTRecipe as a data carrier does not modify the master recipe registry. (This is actually an issue I encountered before on another branch, the distant future Linked Ranged Ingredients and Chanced Ingredient Groups reworks.)

Potential Compatibility Issues

This does add an extra parameter to GTRecipe. Internal builders and codecs have been adjusted, but if for some reason an addon mod manually creates or copies a GTRecipe not using an internal method, they will need to add the Group Color parameter to their constructor or copy calls. (-1 for a fresh recipe, recipe.groupColor for a copy.)

@DilithiumThoride DilithiumThoride added the type: bugfix General bug fixes label Dec 6, 2025
@DilithiumThoride DilithiumThoride requested a review from a team as a code owner December 6, 2025 05:07
@DilithiumThoride DilithiumThoride added 1.20.1 Release: Patch - 0.0.X Smaller changes that either are bug fixes or very minor tweaks. labels Dec 6, 2025
@github-actions github-actions bot added the Tests: Passed Game Tests have passed on this PR label Dec 6, 2025
@DilithiumThoride DilithiumThoride added Release: Major - 0.X.0 Releases focused on Content, changes to gameplay; While maintaining mostly API stability. and removed Release: Patch - 0.0.X Smaller changes that either are bug fixes or very minor tweaks. labels Dec 6, 2025
@jurrejelle
Copy link
Copy Markdown
Contributor

banger pr :lfg: putting do not merge on it until project leads decide if it's allowed in or nah

@jurrejelle jurrejelle added the Do Not Merge DO NOT MERGE THIS PR YET! label Dec 6, 2025
@jurrejelle jurrejelle removed the Do Not Merge DO NOT MERGE THIS PR YET! label Feb 8, 2026
@jurrejelle jurrejelle merged commit d01721e into 1.20.1 Feb 8, 2026
4 checks passed
@jurrejelle jurrejelle deleted the dt/painted-outputs branch February 8, 2026 06:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.20.1 Release: Major - 0.X.0 Releases focused on Content, changes to gameplay; While maintaining mostly API stability. Tests: Passed Game Tests have passed on this PR type: bugfix General bug fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants