aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/loaders/postload/recipes/CircuitAssemblerRecipes.java
blob: 10aaff6b4d9a74a565caf3a24c665d4fed4ee9ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
package gregtech.loaders.postload.recipes;

import static gregtech.api.enums.Mods.Forestry;
import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
import static gregtech.api.enums.Mods.Railcraft;
import static gregtech.api.recipe.RecipeMaps.circuitAssemblerRecipes;
import static gregtech.api.util.GT_ModHandler.getModItem;
import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
import static gregtech.loaders.postload.GT_MachineRecipeLoader.solderingMats;

import net.minecraft.item.ItemStack;

import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.SubTag;
import gregtech.api.enums.TierEU;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;

public class CircuitAssemblerRecipes implements Runnable {

    @Override
    public void run() {
        registerRailcraftRecipes();
        registerForestryRecipes();

    }

    public void registerRailcraftRecipes() {
        if (!Railcraft.isModLoaded()) {
            return;
        }

        for (Materials tMat : solderingMats) {
            int tMultiplier = tMat.contains(SubTag.SOLDERING_MATERIAL_GOOD) ? 1
                : tMat.contains(SubTag.SOLDERING_MATERIAL_BAD) ? 4 : 2;

            // Railcraft Circuits

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Coated_Basic.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 1),
                    ItemList.Cover_Controller.get(1))
                .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 4L, 0))
                .fluidInputs(tMat.getMolten(144L * tMultiplier / 2))
                .duration(15 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Coated_Basic.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 1),
                    ItemList.Sensor_LV.get(1))
                .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 4L, 1))
                .fluidInputs(tMat.getMolten(144L * tMultiplier / 2))
                .duration(15 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Coated_Basic.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 1),
                    getModItem(Railcraft.ID, "part.signal.lamp", 1L, 0))
                .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 4L, 2))
                .fluidInputs(tMat.getMolten(144L * tMultiplier / 2))
                .duration(15 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Phenolic_Good.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1),
                    ItemList.Cover_Controller.get(1))
                .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 8L, 0))
                .fluidInputs(tMat.getMolten(144L * tMultiplier / 2))
                .duration(20 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Phenolic_Good.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1),
                    ItemList.Sensor_LV.get(1))
                .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 8L, 1))
                .fluidInputs(tMat.getMolten(144L * tMultiplier / 2))
                .duration(20 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Phenolic_Good.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1),
                    getModItem(Railcraft.ID, "part.signal.lamp", 1L, 0))
                .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 8L, 2))
                .fluidInputs(tMat.getMolten(144L * tMultiplier / 2))
                .duration(20 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Epoxy_Advanced.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1),
                    ItemList.Cover_Controller.get(1))
                .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 16L, 0))
                .fluidInputs(tMat.getMolten(144L * tMultiplier / 2))
                .duration(25 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Epoxy_Advanced.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1),
                    ItemList.Sensor_LV.get(1))
                .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 16L, 1))
                .fluidInputs(tMat.getMolten(144L * tMultiplier / 2))
                .duration(25 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Epoxy_Advanced.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1),
                    getModItem(Railcraft.ID, "part.signal.lamp", 1L, 0))
                .itemOutputs(getModItem(Railcraft.ID, "part.circuit", 16L, 2))
                .fluidInputs(tMat.getMolten(144L * tMultiplier / 2))
                .duration(25 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Coated_Basic.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Primitive, 2),
                    GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Iron, 2),
                    GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Iron, 4),
                    GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Iron, 1),
                    GT_Utility.getIntegratedCircuit(1))
                .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 0))
                .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2))
                .duration(10 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Coated_Basic.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 2),
                    GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Bronze, 2),
                    GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Bronze, 4),
                    GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Bronze, 1),
                    GT_Utility.getIntegratedCircuit(1))
                .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 1))
                .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2))
                .duration(10 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Phenolic_Good.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 2),
                    GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Steel, 2),
                    GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4),
                    GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Steel, 1),
                    GT_Utility.getIntegratedCircuit(1))
                .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 2))
                .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2))
                .duration(10 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Phenolic_Good.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2),
                    GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, 2),
                    GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Electrum, 4),
                    GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Electrum, 1),
                    GT_Utility.getIntegratedCircuit(1))
                .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 3))
                .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2))
                .duration(10 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

        }
    }

    public void registerForestryRecipes() {
        if (!Forestry.isModLoaded()) {
            return;
        }

        // alternative version of the copper electron tube

        GT_Values.RA.stdBuilder()
            .itemInputs(
                GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedAlloy, 1),
                GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Gold, 2),
                GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Copper, 2),
                GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.AnnealedCopper, 2))
            .itemOutputs(getModItem(Forestry.ID, "thermionicTubes", 4L, 0))
            .fluidInputs(Materials.Glass.getMolten(576))
            .duration(10 * SECONDS)
            .eut((int) TierEU.RECIPE_LV)
            .addTo(circuitAssemblerRecipes);

        // alternative version of the iron electron tube

        GT_Values.RA.stdBuilder()
            .itemInputs(
                GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedAlloy, 1),
                GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Gold, 2),
                GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Copper, 2),
                GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.WroughtIron, 2))
            .itemOutputs(getModItem(Forestry.ID, "thermionicTubes", 4L, 3))
            .fluidInputs(Materials.Glass.getMolten(576))
            .duration(10 * SECONDS)
            .eut((int) TierEU.RECIPE_LV)
            .addTo(circuitAssemblerRecipes);

        ItemStack[] rodMaterials = new ItemStack[] {
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Copper, 2L),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Tin, 2L),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Bronze, 2L),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Iron, 2L),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Gold, 2L),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Diamond, 2L),
            getModItem(NewHorizonsCoreMod.ID, "item.LongObsidianRod", 2L, 0),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Blaze, 2L),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Rubber, 2L),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Emerald, 2L),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Apatite, 2L),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Lapis, 2L),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.EnderEye, 2L),
            GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Uranium, 2L), };

        for (int metaid = 0; metaid < rodMaterials.length; metaid++) {
            GT_Values.RA.stdBuilder()
                .itemInputs(
                    GT_OreDictUnificator.get(OrePrefixes.plate, Materials.RedAlloy, 1),
                    GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Gold, 2),
                    GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Copper, 2),
                    rodMaterials[metaid])
                .itemOutputs(getModItem(Forestry.ID, "thermionicTubes", 4L, metaid))
                .fluidInputs(Materials.Glass.getMolten(576))
                .duration(10 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);
        }

        for (Materials tMat : solderingMats) {

            int tMultiplier = tMat.contains(SubTag.SOLDERING_MATERIAL_GOOD) ? 1
                : tMat.contains(SubTag.SOLDERING_MATERIAL_BAD) ? 4 : 2;

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Coated_Basic.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Primitive, 2),
                    GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Iron, 2),
                    GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Iron, 4),
                    GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Iron, 1),
                    GT_Utility.getIntegratedCircuit(1))
                .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 0))
                .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2))
                .duration(10 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Coated_Basic.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 2),
                    GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Bronze, 2),
                    GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Bronze, 4),
                    GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Bronze, 1),
                    GT_Utility.getIntegratedCircuit(1))
                .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 1))
                .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2))
                .duration(10 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Phenolic_Good.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 2),
                    GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Steel, 2),
                    GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4),
                    GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Steel, 1),
                    GT_Utility.getIntegratedCircuit(1))
                .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 2))
                .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2))
                .duration(10 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

            GT_Values.RA.stdBuilder()
                .itemInputs(
                    ItemList.Circuit_Board_Phenolic_Good.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2),
                    GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Electrum, 2),
                    GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Electrum, 4),
                    GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Electrum, 1),
                    GT_Utility.getIntegratedCircuit(1))
                .itemOutputs(getModItem(Forestry.ID, "chipsets", 1L, 3))
                .fluidInputs(tMat.getMolten(1152L * tMultiplier / 2))
                .duration(10 * SECONDS)
                .eut((int) TierEU.RECIPE_LV)
                .addTo(circuitAssemblerRecipes);

        }
    }
}