Skip to content

Conversation

@blockninja124
Copy link
Contributor

What

This PR adds a CC: Tweaked generic peripheral with getProgrammedCircuit() -> nil|0-32 and setProgrammedCircuit(nil|0-32).

This properly finishes the implementation for CC:T described here #806

Implementation Details

The generic peripheral applies to all machines / machine traits that implement IHasCircuitSlot. To do this, I have added a capability CAPABILITY_CIRCUIT_SLOT which is added in MetaMachineBlockEntity like all the other GregTech CC compat capabilities.

@blockninja124 blockninja124 requested a review from a team as a code owner January 13, 2026 22:21
Copy link
Contributor

@TarLaboratories TarLaboratories left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM except one comment

// CC: Tweaked
modCompileOnly(forge.cc.tweaked.core.api)
modCompileOnly(forge.cc.tweaked.forge.api)
//modLocalRuntime(forge.cc.tweaked.forge.impl)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why add a commented out line?

Copy link
Contributor Author

@blockninja124 blockninja124 Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So that it can be uncommented easily for testing in runtime, I saw some of the other dependencies doing that aswell. I can remove the line if you want.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it not already a part of the extraLocalRuntime group?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it is, I couldn't find it?

@TarLaboratories TarLaboratories added type: feature New feature or request bundled for a 0.X.0 Update Release: Patch - 0.0.X Smaller changes that either are bug fixes or very minor tweaks. labels Jan 14, 2026
@TarLaboratories
Copy link
Contributor

Also please run the spotlessApply gradle task for formatting

@blockninja124
Copy link
Contributor Author

spotlessApply didn't seem to change any files to commit?

@blockninja124
Copy link
Contributor Author

I have moved the commented out CC dependency to where the other modExtraLocalRuntime dependencies are. (I have also uncommented it).

I managed to run ./gradlew spotlessCheck --warning-mode all, then ./gradlew spotlessApply, and committed the changes it performed.

@TarLaboratories TarLaboratories merged commit ce64595 into GregTechCEu:1.20.1 Jan 15, 2026
4 checks passed
@Ghostipedia
Copy link
Member

This should have absolutely not have been merged.
There is under no circumstances meant to be ways in our API to change circuit #'s and this should strictly be either add-on territory or mod-pack territory. This is an extreme balance implication that should have been discussed prior.

This PR will be forcibly reverted and this is a friendly reminder to please discuss heavy balance / cross mod integration on discord before submitting PR's.

Ghostipedia added a commit that referenced this pull request Jan 15, 2026
@blockninja124
Copy link
Contributor Author

I was told when I asked in the github issue #806 that if I made a PR for this, it would be considered for merging. I was not informed that it would go against balancing, which is why I submitted it.

I think its unfortunate this is considered unbalanced, considering most modpacks I have played gate computers at about HV, and to make use of this circuit api you would need to write a decently clever script to manage items in and out of your machine. It could even be considered an improvement for servers, since the alternative is building more machines, one for each programmed circuit. (Which, admittedly, is probably more expensive, but definitely not out of the question for some players).

@blockninja124
Copy link
Contributor Author

Additionally, with using a computer and one machine to automate many recipes, you are trading off the speed at which you can process multiple recipes. Sure, it may have been cheaper to setup, but you will end up with a backlog of items if you need to queue two different circuit recipes at once. Meaning that a dedicated machine for each recipe is the ideal solution to aim for anyway, and this api is simply something to engineer with in the meantime.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.20.1 Release: Patch - 0.0.X Smaller changes that either are bug fixes or very minor tweaks. type: feature New feature or request bundled for a 0.X.0 Update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants