Skip to content

Commit bad61cb

Browse files
committed
Re:Fix Implosion logic
1 parent dec03b0 commit bad61cb

File tree

5 files changed

+46
-120
lines changed

5 files changed

+46
-120
lines changed

src/main/java/com/github/gtexpert/core/integration/deda/DEDAModule.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,5 @@ public void registerRecipesLowest(RegistryEvent.Register<IRecipe> event) {
5252
// Draconic upgrade recipes
5353
DraconicTierupRecipe.init();
5454
DraconicUpgradeRecipe.init();
55-
56-
if (!Mods.ImplosionNoBomb.isModLoaded()) return;
57-
DraconicImplosionMaterialsRecipe.init();
5855
}
5956
}

src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicImplosionMaterialsRecipe.java

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/main/java/com/github/gtexpert/core/integration/deda/recipes/DraconicMaterialsRecipe.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,24 +110,28 @@ public static void init() {
110110
.input(DEFeatures.dragonHeart, 1)
111111
.input(block, GTEMaterials.Draconium, 4)
112112
.output(block, GTEMaterials.AwakenedDraconium, 3)
113+
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
113114
.explosivesType(new ItemStack(MetaBlocks.POWDERBARREL, 8))
114115
.buildAndRegister();
115116
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
116117
.input(DEFeatures.dragonHeart, 1)
117118
.input(block, GTEMaterials.Draconium, 4)
118119
.output(block, GTEMaterials.AwakenedDraconium, 3)
120+
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
119121
.explosivesAmount(4)
120122
.buildAndRegister();
121123
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
122124
.input(DEFeatures.dragonHeart, 1)
123125
.input(block, GTEMaterials.Draconium, 4)
124126
.output(block, GTEMaterials.AwakenedDraconium, 3)
127+
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
125128
.explosivesType(MetaItems.DYNAMITE.getStackForm(2))
126129
.buildAndRegister();
127130
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
128131
.input(DEFeatures.dragonHeart, 1)
129132
.input(block, GTEMaterials.Draconium, 4)
130133
.output(block, GTEMaterials.AwakenedDraconium, 3)
134+
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
131135
.explosivesType(new ItemStack(MetaBlocks.ITNT))
132136
.buildAndRegister();
133137
}

src/main/java/com/github/gtexpert/core/loaders/recipe/handlers/GTEImplosionNoBombRecipeHandler.java

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,34 @@
22

33
import static gregtech.api.unification.ore.OrePrefix.*;
44

5-
import gregtech.api.unification.material.Materials;
5+
import java.util.function.Consumer;
66

77
import net.minecraft.item.ItemStack;
88

9+
import gregtech.api.recipes.builders.SimpleRecipeBuilder;
910
import gregtech.api.unification.material.Material;
11+
import gregtech.api.unification.material.Materials;
1012
import gregtech.api.util.GTUtility;
1113

1214
import com.github.gtexpert.inb.api.recipes.INBRecipeMaps;
1315

1416
public class GTEImplosionNoBombRecipeHandler {
1517

1618
public static void add(Material inputMaterial, Material outputMaterial) {
17-
INBRecipeMaps.FAKE_IMPLOSION_RECIPES.recipeBuilder()
18-
.input(dust, inputMaterial, 4)
19-
.output(gem, outputMaterial, 3)
20-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
21-
.buildAndRegister();
19+
register(builder -> builder.input(dust, inputMaterial, 4).output(gem, outputMaterial, 3));
2220
}
2321

2422
public static void add(Material inputMaterial, ItemStack outputStack) {
25-
INBRecipeMaps.FAKE_IMPLOSION_RECIPES.recipeBuilder()
26-
.input(dust, inputMaterial, 4)
27-
.outputs(GTUtility.copy(3, outputStack))
28-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
29-
.buildAndRegister();
23+
register(builder -> builder.input(dust, inputMaterial, 4).outputs(GTUtility.copy(3, outputStack)));
3024
}
3125

3226
public static void add(String inputOreDict, ItemStack outputStack) {
33-
INBRecipeMaps.FAKE_IMPLOSION_RECIPES.recipeBuilder()
34-
.input(inputOreDict, 4)
35-
.outputs(GTUtility.copy(3, outputStack))
36-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
37-
.buildAndRegister();
27+
register(builder -> builder.input(inputOreDict, 4).outputs(GTUtility.copy(3, outputStack)));
28+
}
29+
30+
private static void register(Consumer<SimpleRecipeBuilder> recipeConfig) {
31+
SimpleRecipeBuilder builder = INBRecipeMaps.FAKE_IMPLOSION_RECIPES.recipeBuilder();
32+
recipeConfig.accept(builder);
33+
builder.chancedOutput(dust, Materials.DarkAsh, 2500, 0).buildAndRegister();
3834
}
3935
}

src/main/java/com/github/gtexpert/core/loaders/recipe/handlers/GTEImplosionRecipeHandler.java

Lines changed: 30 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
import static gregtech.api.unification.ore.OrePrefix.*;
44

5-
import gregtech.api.unification.material.Materials;
5+
import java.util.function.Consumer;
66

77
import net.minecraft.item.ItemStack;
88

99
import gregtech.api.recipes.RecipeMaps;
10+
import gregtech.api.recipes.builders.ImplosionRecipeBuilder;
1011
import gregtech.api.unification.material.Material;
12+
import gregtech.api.unification.material.Materials;
1113
import gregtech.api.util.GTUtility;
1214
import gregtech.common.blocks.MetaBlocks;
1315
import gregtech.common.items.MetaItems;
@@ -16,96 +18,42 @@
1618

1719
public class GTEImplosionRecipeHandler {
1820

21+
private static final Consumer<ImplosionRecipeBuilder>[] EXPLOSIVES = new Consumer[] {
22+
b -> ((ImplosionRecipeBuilder) b).explosivesType(new ItemStack(MetaBlocks.POWDERBARREL, 8)),
23+
b -> ((ImplosionRecipeBuilder) b).explosivesAmount(4),
24+
b -> ((ImplosionRecipeBuilder) b).explosivesType(MetaItems.DYNAMITE.getStackForm(2)),
25+
b -> ((ImplosionRecipeBuilder) b).explosivesType(new ItemStack(MetaBlocks.ITNT))
26+
};
27+
1928
public static void add(Material inputMaterial, Material outputMaterial) {
20-
if (Mods.ImplosionNoBomb.isModLoaded()) {
21-
GTEImplosionNoBombRecipeHandler.add(inputMaterial, outputMaterial);
22-
} else {
23-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
24-
.input(dust, inputMaterial, 4)
25-
.output(gem, outputMaterial, 3)
26-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
27-
.explosivesType(new ItemStack(MetaBlocks.POWDERBARREL, 8))
28-
.buildAndRegister();
29-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
30-
.input(dust, inputMaterial, 4)
31-
.output(gem, outputMaterial, 3)
32-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
33-
.explosivesAmount(4)
34-
.buildAndRegister();
35-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
36-
.input(dust, inputMaterial, 4)
37-
.output(gem, outputMaterial, 3)
38-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
39-
.explosivesType(MetaItems.DYNAMITE.getStackForm(2))
40-
.buildAndRegister();
41-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
42-
.input(dust, inputMaterial, 4)
43-
.output(gem, outputMaterial, 3)
44-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
45-
.explosivesType(new ItemStack(MetaBlocks.ITNT))
46-
.buildAndRegister();
47-
}
29+
register(
30+
builder -> builder.input(dust, inputMaterial, 4).output(gem, outputMaterial, 3),
31+
() -> GTEImplosionNoBombRecipeHandler.add(inputMaterial, outputMaterial));
4832
}
4933

5034
public static void add(Material inputMaterial, ItemStack outputStack) {
51-
if (Mods.ImplosionNoBomb.isModLoaded()) {
52-
GTEImplosionNoBombRecipeHandler.add(inputMaterial, outputStack);
53-
} else {
54-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
55-
.input(dust, inputMaterial, 4)
56-
.outputs(GTUtility.copy(3, outputStack))
57-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
58-
.explosivesType(new ItemStack(MetaBlocks.POWDERBARREL, 8))
59-
.buildAndRegister();
60-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
61-
.input(dust, inputMaterial, 4)
62-
.outputs(GTUtility.copy(3, outputStack))
63-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
64-
.explosivesAmount(4)
65-
.buildAndRegister();
66-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
67-
.input(dust, inputMaterial, 4)
68-
.outputs(GTUtility.copy(3, outputStack))
69-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
70-
.explosivesType(MetaItems.DYNAMITE.getStackForm(2))
71-
.buildAndRegister();
72-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
73-
.input(dust, inputMaterial, 4)
74-
.outputs(GTUtility.copy(3, outputStack))
75-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
76-
.explosivesType(new ItemStack(MetaBlocks.ITNT))
77-
.buildAndRegister();
78-
}
35+
register(
36+
builder -> builder.input(dust, inputMaterial, 4).outputs(GTUtility.copy(3, outputStack)),
37+
() -> GTEImplosionNoBombRecipeHandler.add(inputMaterial, outputStack));
7938
}
8039

8140
public static void add(String inputOreDict, ItemStack outputStack) {
41+
register(
42+
builder -> builder.input(inputOreDict, 4).outputs(GTUtility.copy(3, outputStack)),
43+
() -> GTEImplosionNoBombRecipeHandler.add(inputOreDict, outputStack));
44+
}
45+
46+
private static void register(Consumer<ImplosionRecipeBuilder> recipeConfig, Runnable noBombHandler) {
8247
if (Mods.ImplosionNoBomb.isModLoaded()) {
83-
GTEImplosionNoBombRecipeHandler.add(inputOreDict, outputStack);
48+
noBombHandler.run();
8449
} else {
85-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
86-
.input(inputOreDict, 4)
87-
.outputs(GTUtility.copy(3, outputStack))
88-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
89-
.explosivesType(new ItemStack(MetaBlocks.POWDERBARREL, 8))
90-
.buildAndRegister();
91-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
92-
.input(inputOreDict, 4)
93-
.outputs(GTUtility.copy(3, outputStack))
94-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
95-
.explosivesAmount(4)
96-
.buildAndRegister();
97-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
98-
.input(inputOreDict, 4)
99-
.outputs(GTUtility.copy(3, outputStack))
100-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
101-
.explosivesType(MetaItems.DYNAMITE.getStackForm(2))
102-
.buildAndRegister();
103-
RecipeMaps.IMPLOSION_RECIPES.recipeBuilder()
104-
.input(inputOreDict, 4)
105-
.outputs(GTUtility.copy(3, outputStack))
106-
.chancedOutput(dust, Materials.DarkAsh, 2500, 0)
107-
.explosivesType(new ItemStack(MetaBlocks.ITNT))
108-
.buildAndRegister();
50+
for (Consumer<ImplosionRecipeBuilder> explosive : EXPLOSIVES) {
51+
ImplosionRecipeBuilder builder = RecipeMaps.IMPLOSION_RECIPES.recipeBuilder();
52+
recipeConfig.accept(builder);
53+
builder.chancedOutput(dust, Materials.DarkAsh, 2500, 0);
54+
explosive.accept(builder);
55+
builder.buildAndRegister();
56+
}
10957
}
11058
}
11159
}

0 commit comments

Comments
 (0)