Skip to content

Commit 11a51c5

Browse files
committed
Add second generic to MachineBuilder and reduce code duplication
1 parent d7a411b commit 11a51c5

File tree

11 files changed

+337
-563
lines changed

11 files changed

+337
-563
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: "Version 7.4.1"
3+
---
4+
5+
6+
# Updating from `7.4.0` to `7.4.1`
7+
## MachineBuilder Generics
8+
We have added a second Generic argument to our (Multiblock)MachineBuilder. This effectively means that anywhere where you used to store a partially finished `MachineBuilder<?>`, you now need to store a `MachineBuilder<?, ?>`. The same holds for `MultiblockMachineBuilder<?,?>`.

src/main/java/com/gregtechceu/gtceu/api/registry/registrate/GTRegistrate.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -126,34 +126,34 @@ public IGTFluidBuilder createFluid(String name, String langKey, Material materia
126126
return fluid(this, material, name, langKey, stillTexture, flowingTexture);
127127
}
128128

129-
public <DEFINITION extends MachineDefinition> MachineBuilder<DEFINITION> machine(String name,
130-
Function<ResourceLocation, DEFINITION> definitionFactory,
131-
Function<IMachineBlockEntity, MetaMachine> metaMachine,
132-
BiFunction<BlockBehaviour.Properties, DEFINITION, IMachineBlock> blockFactory,
133-
BiFunction<IMachineBlock, Item.Properties, MetaMachineItem> itemFactory,
134-
TriFunction<BlockEntityType<?>, BlockPos, BlockState, IMachineBlockEntity> blockEntityFactory) {
129+
public <DEFINITION extends MachineDefinition> MachineBuilder<DEFINITION, ?> machine(String name,
130+
Function<ResourceLocation, DEFINITION> definitionFactory,
131+
Function<IMachineBlockEntity, MetaMachine> metaMachine,
132+
BiFunction<BlockBehaviour.Properties, DEFINITION, IMachineBlock> blockFactory,
133+
BiFunction<IMachineBlock, Item.Properties, MetaMachineItem> itemFactory,
134+
TriFunction<BlockEntityType<?>, BlockPos, BlockState, IMachineBlockEntity> blockEntityFactory) {
135135
return new MachineBuilder<>(this, name, definitionFactory, metaMachine,
136136
blockFactory, itemFactory, blockEntityFactory);
137137
}
138138

139-
public MachineBuilder<MachineDefinition> machine(String name,
140-
Function<IMachineBlockEntity, MetaMachine> metaMachine) {
139+
public MachineBuilder<MachineDefinition, ?> machine(String name,
140+
Function<IMachineBlockEntity, MetaMachine> metaMachine) {
141141
return new MachineBuilder<>(this, name, MachineDefinition::new, metaMachine,
142142
MetaMachineBlock::new, MetaMachineItem::new, MetaMachineBlockEntity::new);
143143
}
144144

145-
public MultiblockMachineBuilder multiblock(String name,
146-
Function<IMachineBlockEntity, ? extends MultiblockControllerMachine> metaMachine,
147-
BiFunction<BlockBehaviour.Properties, MultiblockMachineDefinition, IMachineBlock> blockFactory,
148-
BiFunction<IMachineBlock, Item.Properties, MetaMachineItem> itemFactory,
149-
TriFunction<BlockEntityType<?>, BlockPos, BlockState, IMachineBlockEntity> blockEntityFactory) {
150-
return new MultiblockMachineBuilder(this, name, metaMachine,
145+
public MultiblockMachineBuilder<MultiblockMachineDefinition, ?> multiblock(String name,
146+
Function<IMachineBlockEntity, ? extends MultiblockControllerMachine> metaMachine,
147+
BiFunction<BlockBehaviour.Properties, MultiblockMachineDefinition, IMachineBlock> blockFactory,
148+
BiFunction<IMachineBlock, Item.Properties, MetaMachineItem> itemFactory,
149+
TriFunction<BlockEntityType<?>, BlockPos, BlockState, IMachineBlockEntity> blockEntityFactory) {
150+
return new MultiblockMachineBuilder<>(this, name, metaMachine,
151151
blockFactory, itemFactory, blockEntityFactory);
152152
}
153153

154-
public MultiblockMachineBuilder multiblock(String name,
155-
Function<IMachineBlockEntity, ? extends MultiblockControllerMachine> metaMachine) {
156-
return new MultiblockMachineBuilder(this, name, metaMachine,
154+
public MultiblockMachineBuilder<MultiblockMachineDefinition, ?> multiblock(String name,
155+
Function<IMachineBlockEntity, ? extends MultiblockControllerMachine> metaMachine) {
156+
return new MultiblockMachineBuilder<>(this, name, metaMachine,
157157
MetaMachineBlock::new, MetaMachineItem::new, MetaMachineBlockEntity::new);
158158
}
159159

0 commit comments

Comments
 (0)