Skip to content

Commit 320e60a

Browse files
committed
address some reviews
create BuilderFactory so only `makeBuilder()` is visible remove event testing code
1 parent 23dc7f9 commit 320e60a

File tree

7 files changed

+24
-53
lines changed

7 files changed

+24
-53
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package gregtech.api.block.coil;
2+
3+
public interface BuilderFactory {
4+
5+
CoilBlockBuilder makeBuilder(int id, String name);
6+
}

src/main/java/gregtech/api/block/coil/CoilBlockBuilder.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,11 @@ public class CoilBlockBuilder {
1515
private final String modid;
1616
private final Consumer<CustomCoilBlock> onBuild;
1717

18-
private CoilBlockBuilder(String modid, Consumer<CustomCoilBlock> onBuild) {
18+
CoilBlockBuilder(String modid, Consumer<CustomCoilBlock> onBuild) {
1919
this.modid = modid;
2020
this.onBuild = onBuild;
2121
}
2222

23-
static CoilBlockBuilder builder(String modid, Consumer<CustomCoilBlock> onBuild) {
24-
return new CoilBlockBuilder(modid, onBuild);
25-
}
26-
2723
public CoilBlockBuilder addCoilType(UnaryOperator<CoilStatBuilder> builder) {
2824
if (stats.size() >= ACTIVE_META_LIMIT) {
2925
throw new IllegalStateException("Cannot exceed active meta limit!");
@@ -35,9 +31,7 @@ public CoilBlockBuilder addCoilType(UnaryOperator<CoilStatBuilder> builder) {
3531
public CustomCoilBlock build() {
3632
if (this.stats.isEmpty())
3733
throw new IllegalArgumentException("Variants is empty!");
38-
CustomCoilBlock.setActiveList(this.stats);
39-
var block = new CustomCoilBlock();
40-
CustomCoilBlock.clearActiveList();
34+
var block = new CustomCoilBlock(this.stats);
4135
for (var stat : this.stats) {
4236
GregTechAPI.HEATING_COILS.put(block.getState(stat), stat);
4337
}

src/main/java/gregtech/api/block/coil/CoilManager.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class CoilManager {
1515

1616
private static CoilManager instance;
1717
private static int networkId;
18-
private static CoilRegistry internal;
18+
private static BuilderFactory internal;
1919

2020
private final Object2ObjectMap<String, CoilRegistry> registryMap = new Object2ObjectOpenHashMap<>();
2121
private final Int2ObjectMap<CoilRegistry> networkMap = new Int2ObjectOpenHashMap<>();
@@ -30,15 +30,15 @@ public static CoilManager getInstance() {
3030

3131
private CoilManager() {}
3232

33-
public CoilRegistry getRegistry(String modid) {
33+
public BuilderFactory getRegistry(String modid) {
3434
CoilRegistry coilRegistry = registryMap.get(modid);
3535
if (coilRegistry == null) {
3636
throw new IllegalArgumentException("No MTE registry exists for modid \"" + modid + "\"");
3737
}
3838
return coilRegistry;
3939
}
4040

41-
public CoilRegistry createRegistry(String modid) {
41+
public BuilderFactory createRegistry(String modid) {
4242
if (registryMap.containsKey(modid)) {
4343
throw new IllegalArgumentException("MTE Registry for modid \"" + modid + "\" is already registered");
4444
}
@@ -48,7 +48,7 @@ public CoilRegistry createRegistry(String modid) {
4848
return registry;
4949
}
5050

51-
public CoilRegistry getRegistry(int networkId) {
51+
public BuilderFactory getRegistry(int networkId) {
5252
CoilRegistry coilRegistry = networkMap.get(networkId);
5353
return coilRegistry == null ? internal : coilRegistry;
5454
}

src/main/java/gregtech/api/block/coil/CoilRegistry.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import org.jetbrains.annotations.NotNull;
88

9-
public class CoilRegistry extends GTControlledRegistry<ResourceLocation, CustomCoilBlock> {
9+
public class CoilRegistry extends GTControlledRegistry<ResourceLocation, CustomCoilBlock> implements BuilderFactory {
1010

1111
private final String modid;
1212
private final int networkId;
@@ -17,9 +17,10 @@ public CoilRegistry(String modId, int networkId) {
1717
this.networkId = networkId;
1818
}
1919

20+
@Override
2021
public CoilBlockBuilder makeBuilder(int id, String name) {
2122
ResourceLocation loc = new ResourceLocation(this.modid, name);
22-
return CoilBlockBuilder.builder(this.modid, b -> register(id, loc, b));
23+
return new CoilBlockBuilder(this.modid, b -> register(id, loc, b));
2324
}
2425

2526
@Override

src/main/java/gregtech/api/block/coil/CustomCoilBlock.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,18 @@ public final class CustomCoilBlock extends VariantActiveBlock<CustomCoilStats> {
4242

4343
private static final AtomicReference<List<CustomCoilStats>> activeSublist = new AtomicReference<>();
4444

45-
static void setActiveList(List<CustomCoilStats> sublist) {
45+
// called in constructor to handle super constructor nonsense
46+
private static net.minecraft.block.material.Material setActiveList(List<CustomCoilStats> sublist) {
4647
activeSublist.set(sublist);
48+
return net.minecraft.block.material.Material.IRON;
4749
}
4850

49-
static void clearActiveList() {
51+
private static void clearActiveList() {
5052
activeSublist.set(null);
5153
}
5254

53-
public CustomCoilBlock() {
54-
super(net.minecraft.block.material.Material.IRON);
55+
public CustomCoilBlock(List<CustomCoilStats> stats) {
56+
super(setActiveList(stats));
5557
setTranslationKey("wire_coil");
5658
setHardness(5.0f);
5759
setResistance(10.0f);
@@ -68,7 +70,9 @@ public BlockRenderLayer getRenderLayer(CustomCoilStats value) {
6870

6971
@Override
7072
protected @NotNull Collection<CustomCoilStats> computeVariants() {
71-
return activeSublist.get(); // stupid super constructor nonsense
73+
List<CustomCoilStats> stats = activeSublist.get();
74+
clearActiveList();
75+
return stats;
7276
}
7377

7478
@Override

src/main/java/gregtech/common/CommonProxy.java

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import gregtech.api.GTValues;
44
import gregtech.api.GregTechAPI;
55
import gregtech.api.block.VariantItemBlock;
6-
import gregtech.api.block.coil.CoilManager;
76
import gregtech.api.block.coil.CoilRegistry;
87
import gregtech.api.block.coil.CustomCoilBlock;
98
import gregtech.api.block.machines.MachineItemBlock;
@@ -15,7 +14,6 @@
1514
import gregtech.api.recipes.ingredients.GTRecipeOreInput;
1615
import gregtech.api.recipes.properties.impl.FusionEUToStartProperty;
1716
import gregtech.api.unification.material.Material;
18-
import gregtech.api.unification.material.Materials;
1917
import gregtech.api.unification.material.info.MaterialFlags;
2018
import gregtech.api.unification.material.properties.DustProperty;
2119
import gregtech.api.unification.material.properties.PropertyKey;
@@ -228,31 +226,6 @@ public static void registerBlocksLast(RegistryEvent.Register<Block> event) {
228226
FLUID_BLOCKS.forEach(event.getRegistry()::register);
229227
}
230228

231-
// todo REMOVE, THIS IS FOR TESTING
232-
@SubscribeEvent
233-
public static void registerCoils(CoilManager.CoilRegistryEvent event) {
234-
final String modid = "test";
235-
CoilRegistry registry = CoilManager.getInstance().createRegistry(modid);
236-
237-
registry.makeBuilder(0, "coil_block")
238-
.addCoilType(b -> b
239-
.coilTemp(42069)
240-
.generic()
241-
.tooltip((stack, world, strings, advanced) -> {
242-
strings.add("this is a custom coil!");
243-
})
244-
.tier(GTValues.UHV)
245-
.multiSmelter(69, 98)
246-
.material(Materials.Chlorine))
247-
.addCoilType(b -> b
248-
.coilTemp(696969)
249-
.generic()
250-
.tier(GTValues.UHV)
251-
.multiSmelter(69, 99)
252-
.material(Materials.Neutronium))
253-
.build();
254-
}
255-
256229
@SubscribeEvent
257230
public static void registerItems(RegistryEvent.Register<Item> event) {
258231
GTLog.logger.info("Registering Items...");

src/main/java/gregtech/core/CoreModule.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -201,10 +201,6 @@ public void preInit(FMLPreInitializationEvent event) {
201201
OreDictUnifier.init();
202202

203203
MetaBlocks.init();
204-
205-
// for (CoilRegistry registry : coilManager.getRegistries()) {
206-
// registry.unfreeze();
207-
// }
208204
logger.info("Registering Coils");
209205
MinecraftForge.EVENT_BUS.post(new CoilManager.CoilRegistryEvent());
210206

@@ -263,9 +259,6 @@ public void init(FMLInitializationEvent event) {
263259
for (MTERegistry registry : mteManager.getRegistries()) {
264260
registry.freeze();
265261
}
266-
// for (CoilRegistry r : coilManager.getRegistries()) {
267-
// r.freeze();
268-
// }
269262
proxy.onLoad();
270263
if (RecipeMap.isFoundInvalidRecipe()) {
271264
logger.fatal("Seems like invalid recipe was found.");

0 commit comments

Comments
 (0)