Skip to content

Implement Registry for Custom Coils#2874

Merged
ALongStringOfNumbers merged 23 commits into
masterfrom
gh/extendable-coil-type
Nov 13, 2025
Merged

Implement Registry for Custom Coils#2874
ALongStringOfNumbers merged 23 commits into
masterfrom
gh/extendable-coil-type

Conversation

@ghzdude

@ghzdude ghzdude commented Oct 2, 2025

Copy link
Copy Markdown
Contributor

What

Implements a registry for custom coils much like the MTE registry. Also implements a generic coil texture to be tinted by the material's RGB instead of a dedicated texture. Custom Coils can also have additional tooltips on top of the existing tooltips.

Implementation Details

The enum type restriction for the variant type paramater has been replaced by IStringSerializable and Comparable<>
The enum property has been replaced by a new property class PropertyIntMap
CoilType is done with a builder and is no longer an enum
search for inner enum classes to reduce the usage of getActualTypeParamaters()

Outcome

Custom Coils are now much easier to create for addons (and potentially groovyscript)

Additional Information

using the generic texture causes a visual issue for CTM for some reason

ghzdude added 21 commits March 8, 2025 02:56
register coils to a list
remove StoneVariantBlock property
move harvest level into own method
mostly working
ignore .ase files
this conflicts with the render layer
create manager and registries like MTEs
remove color method
rollback custom rendering changes
add color back with material rgb
freeze/unfreeze in CoreModule
add static reference in GregTechAPI
add color and model register
simplify BlockWireCoil
simplify texture
pass modid down to CoilStatBuilder
split texture and generic
make generic false by default
add custom tooltips for custom coils
use boolean instead of client only class
@ghzdude ghzdude added the type: feature New feature or request label Oct 2, 2025
@ghzdude ghzdude marked this pull request as ready for review October 3, 2025 04:21
@ghzdude ghzdude requested review from a team as code owners October 3, 2025 04:21
Comment thread src/main/java/gregtech/api/block/coil/CustomCoilBlock.java Outdated
Comment thread src/main/java/gregtech/api/block/coil/CustomCoilStats.java Outdated
Comment thread src/main/java/gregtech/common/CommonProxy.java Outdated
import java.util.Map;
import java.util.function.BooleanSupplier;

public class BlockWireCoil extends VariantActiveBlock<BlockWireCoil.CoilType> {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The existence of this class now leads to some level of duplication. It might be better to merge this and the custom coil class together so we don't have two systems to do the same thing.

Comment thread src/main/java/gregtech/core/CoreModule.java Outdated
Comment thread src/main/java/gregtech/core/CoreModule.java Outdated
create BuilderFactory so only `makeBuilder()` is visible
remove event testing code
@ALongStringOfNumbers ALongStringOfNumbers merged commit b6960a5 into master Nov 13, 2025
3 checks passed
@ALongStringOfNumbers ALongStringOfNumbers deleted the gh/extendable-coil-type branch November 13, 2025 06:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants