Skip to content

Commit 4d10523

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

File tree

11 files changed

+324
-505
lines changed

11 files changed

+324
-505
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: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ 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,
129+
public <DEFINITION extends MachineDefinition> MachineBuilder<DEFINITION, ?> machine(String name,
130130
Function<ResourceLocation, DEFINITION> definitionFactory,
131131
Function<IMachineBlockEntity, MetaMachine> metaMachine,
132132
BiFunction<BlockBehaviour.Properties, DEFINITION, IMachineBlock> blockFactory,
@@ -136,24 +136,24 @@ public <DEFINITION extends MachineDefinition> MachineBuilder<DEFINITION> machine
136136
blockFactory, itemFactory, blockEntityFactory);
137137
}
138138

139-
public MachineBuilder<MachineDefinition> machine(String name,
139+
public MachineBuilder<MachineDefinition, ?> machine(String name,
140140
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,
145+
public MultiblockMachineBuilder<MultiblockMachineDefinition, ?> multiblock(String name,
146146
Function<IMachineBlockEntity, ? extends MultiblockControllerMachine> metaMachine,
147147
BiFunction<BlockBehaviour.Properties, MultiblockMachineDefinition, IMachineBlock> blockFactory,
148148
BiFunction<IMachineBlock, Item.Properties, MetaMachineItem> itemFactory,
149149
TriFunction<BlockEntityType<?>, BlockPos, BlockState, IMachineBlockEntity> blockEntityFactory) {
150-
return new MultiblockMachineBuilder(this, name, metaMachine,
150+
return new MultiblockMachineBuilder<>(this, name, metaMachine,
151151
blockFactory, itemFactory, blockEntityFactory);
152152
}
153153

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

0 commit comments

Comments
 (0)