· 6 years ago · Jan 21, 2020, 03:24 AM
1#priority 110
2
3import crafttweaker.liquid.ILiquidStack;
4import crafttweaker.oredict.IOreDict;
5
6print("~~~ Begin Ore Processing Init ~~~");
7
8//Remove existing methods of ore processing
9function removeExistingCraftingRecipes(craftingMaterial as string)
10{
11 var nativeCluster = oreDict.get("cluster" ~ craftingMaterial);
12 var oreDust = oreDict.get("dust" ~ craftingMaterial);
13 var oreBlock = oreDict.get("ore" ~ craftingMaterial);
14 var oreIngot = oreDict.get("ingot" ~ craftingMaterial);
15 var oreGem = oreDict.get("gem" ~ craftingMaterial);
16 var oreClump = oreDict.get("clump" ~ craftingMaterial);
17 var oreShard = oreDict.get("shard" ~ craftingMaterial);
18 var rockyChunk = oreDict.get("rockyChunk" ~ craftingMaterial);
19
20 if(!oreBlock.empty)
21 {
22 //Remove blood magic alchemy array recipe if it exists
23 if(!oreDust.empty)
24 {
25 for ore in oreBlock.items
26 {
27 mods.bloodmagic.AlchemyTable.removeRecipe([ore, <bloodmagic:cutting_fluid>]);
28 }
29 }
30
31 //Remove native cluster if it exists
32 if(!nativeCluster.empty)
33 {
34 mods.thaumcraft.Crucible.removeRecipe(nativeCluster.firstItem);
35 }
36
37 //Remove vanilla furnace recipes
38 for ore in oreBlock.items
39 {
40 if(!oreGem.empty)
41 {
42 for gem in oreGem.items
43 {
44 furnace.remove(gem, ore);
45 }
46 }
47 else if (!oreIngot.empty)
48 {
49 for ingot in oreIngot.items
50 {
51 furnace.remove(ingot, ore);
52 }
53 }
54 else if (!oreDust.empty)
55 {
56 for dust in oreDust.items
57 {
58 furnace.remove(dust, ore);
59 }
60 }
61 }
62
63 //Remove Pulverizer Recipe (TE Automatically OreDicts results)
64 if(!oreDust.empty)
65 {
66 if(oreBlock.name != "oreChrome" & oreBlock.name != "oreChargedCertusQuartz")
67 {
68 mods.thermalexpansion.Pulverizer.removeRecipe(oreBlock.firstItem);
69 }
70 }
71 }
72 else
73 {
74 print("Could not find an ore for the material: " ~ craftingMaterial);
75 }
76}
77
78function addNewRecipe(craftingMaterial as string, tier as int)
79{
80 var nativeCluster = oreDict.get("cluster" ~ craftingMaterial);
81 var oreDust = oreDict.get("dust" ~ craftingMaterial);
82 var oreBlock = oreDict.get("ore" ~ craftingMaterial);
83 var oreIngot = oreDict.get("ingot" ~ craftingMaterial);
84 var oreGem = oreDict.get("gem" ~ craftingMaterial);
85 var oreClump = oreDict.get("clump" ~ craftingMaterial);
86 var oreShard = oreDict.get("shard" ~ craftingMaterial);
87 var oreDirtyDust = oreDict.get("dirtyDust" ~ craftingMaterial);
88 var oreCrystal = oreDict.get("crystal" ~ craftingMaterial);
89 var orePoor = oreDict.get("poorOre" ~ craftingMaterial);
90 var oreDustSmall = oreDict.get("dustSmall" ~ craftingMaterial);
91 var oreNugget = oreDict.get("nugget" ~ craftingMaterial);
92 var rockyChunk = oreDict.get("rockyChunk" ~ craftingMaterial);
93 var processedChunk = oreDict.get("chunk" ~ craftingMaterial);
94
95 if(!oreBlock.empty)
96 {
97 //Furnace -- Tier 0 (1x)
98 if(tier == 0)
99 {
100 //Iterate through all varieties of the ore and add furnace recipes
101 for ore in oreBlock.items
102 {
103 if(!oreGem.empty)
104 {
105 furnace.addRecipe(oreGem.firstItem *2, ore, 0.7);
106 mods.minecraftfuture.BlastFurnace.addRecipe(ore, oreGem.firstItem * 2);
107 }
108 else if (!oreIngot.empty)
109 {
110 furnace.addRecipe(oreIngot.firstItem, ore, 0.7);
111 mods.minecraftfuture.BlastFurnace.addRecipe(ore, oreIngot.firstItem);
112 }
113 else if (!oreDust.empty & oreIngot.empty)
114 {
115 furnace.addRecipe(oreDust.firstItem, ore, 0.7);
116 mods.minecraftfuture.BlastFurnace.addRecipe(ore, oreDust.firstItem);
117 }
118 else
119 {
120 print("Unable to add furnace recipe for " ~ craftingMaterial);
121 }
122 }
123
124 //Add Poor Ore Smelting if Available
125 if(!orePoor.empty)
126 {
127 for poorOre in orePoor.items
128 {
129 if(!oreDustSmall.empty)
130 {
131 furnace.addRecipe(oreDustSmall.firstItem * 2, poorOre, 0.1);
132 }
133 else
134 {
135 if(!oreNugget.empty)
136 {
137 furnace.addRecipe(oreNugget.firstItem * 2, poorOre, 0.1);
138 }
139 else
140 {
141 print("Could not create poor ore smelting recipe for " ~ craftingMaterial ~ " as no nuggets or small dust oreDict was found.");
142 }
143 }
144 }
145 }
146 else
147 {
148 print("Skipped poor ore furnace recipes for " ~ craftingMaterial ~ " as no ore was found.");
149 }
150 }
151
152 //Thaumcraft Crucible -- Tier 1 (2x)
153 if(tier <= 1)
154 {
155 for ore in oreBlock.items
156 {
157 if(!nativeCluster.empty)
158 {
159 mods.thaumcraft.Crucible.registerRecipe("fantastek:metalpurification/" ~ craftingMaterial, "METALPURIFICATION", nativeCluster.firstItem, ore, [<aspect:metallum> * 5, <aspect:ordo> * 5]);
160 }
161 else if (!oreDust.empty)
162 {
163 mods.thaumcraft.Crucible.registerRecipe("fantastek:metalpurification/" ~ craftingMaterial, "METALPURIFICATION", oreDust.firstItem * 2, ore, [<aspect:metallum> * 5, <aspect:ordo> * 5]);
164 }
165 else if (!oreGem.empty)
166 {
167 mods.thaumcraft.Crucible.registerRecipe("fantastek:metalpurification/" ~ craftingMaterial, "METALPURIFICATION", oreGem.firstItem * 2, ore, [<aspect:vitreus> * 5, <aspect:ordo> * 5]);
168 }
169 else
170 {
171 print("Skipped thaumcraft Crucible outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
172 }
173 }
174 }
175
176 //AE2 Grindstone -- Tier 1 (2x)
177 if(tier <= 1)
178 {
179 for ore in oreBlock.items
180 {
181 if (!oreDust.empty)
182 {
183 for ore in oreBlock.items
184 {
185 if(!oreDustSmall.empty)
186 {
187 mods.appliedenergistics2.Grinder.addRecipe(oreDustSmall.firstItem * (3 * (3 - tier)), ore, (tier + 1) * 4, oreDustSmall.firstItem * (4 - tier), 0.66, oreDustSmall.firstItem * (2 - tier), 0.33);
188 }
189 else
190 {
191 mods.appliedenergistics2.Grinder.addRecipe(oreDust.firstItem * (2 - tier), ore, (tier + 1) * 4);
192 }
193 }
194 }
195 else
196 {
197 print("Skipped Magneticraft Crushing Table outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
198 }
199 }
200 }
201
202 //Magneticraft Grinder -- Tier 2 (2x)
203 if(tier <= 2)
204 {
205 for ore in oreBlock.items
206 {
207 if(!rockyChunk.empty)
208 {
209 mods.magneticraft.Grinder.addRecipe(ore, rockyChunk.firstItem, <minecraft:gravel>, 0.33, (tier + 1) * 40, true);
210 }
211 else if (!nativeCluster.empty)
212 {
213 mods.magneticraft.Grinder.addRecipe(ore, nativeCluster.firstItem, <minecraft:gravel>, 0.5, (tier + 1) * 40, true);
214 }
215 else if (!oreDust.empty)
216 {
217 mods.magneticraft.Grinder.addRecipe(ore, oreDust.firstItem * 2, <minecraft:gravel>, 0.5, (tier + 1) * 40, true);
218 }
219 else
220 {
221 print("Skipped Magneticraft Grinder outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
222 }
223 }
224 }
225
226 //Blood Magic Alchemy Table -- Tier 2 (2x)
227 if(tier <= 2)
228 {
229 for ore in oreBlock.items
230 {
231 if(!nativeCluster.empty)
232 {
233 mods.bloodmagic.AlchemyTable.addRecipe(nativeCluster.firstItem, [<bloodmagic:cutting_fluid>, ore], (tier + 1) * 4, (tier + 1) * 60, tier + 1);
234 }
235 else if (!oreGem.empty)
236 {
237 mods.bloodmagic.AlchemyTable.addRecipe(oreGem.firstItem * 2, [<bloodmagic:cutting_fluid>, ore], (tier + 1) * 4, (tier + 1) * 60, tier + 1);
238 }
239 else if (!oreDust.empty)
240 {
241 mods.bloodmagic.AlchemyTable.addRecipe(oreDust.firstItem * 2, [<bloodmagic:cutting_fluid>, ore], (tier + 1) * 4, (tier + 1) * 60, tier + 1);
242 }
243 else
244 {
245 print("Skipped Blood Magic Alchemy Table outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
246 }
247 }
248 }
249
250 //Magneticraft Sluice Box -- Tier 2 (2.5x)
251 if(tier <= 2)
252 {
253 //Always output 2x, 50% of the time output an additional 1x
254 //Average to 2.5x output
255 //Only process native clusters and rocky chunks!!
256 if(!nativeCluster.empty)
257 {
258 //Native Cluster Based output
259 if (!oreGem.empty)
260 {
261 mods.magneticraft.SluiceBox.addRecipe(nativeCluster.firstItem, 1.0, oreGem.firstItem * 2, 0.5, oreGem.firstItem * 3, 0.15, <minecraft:cobblestone>, true);
262 }
263 else if (!oreDust.empty)
264 {
265 mods.magneticraft.SluiceBox.addRecipe(nativeCluster.firstItem, 1.0, oreDust.firstItem * 2, 0.5, oreDust.firstItem, 0.15, <minecraft:cobblestone>, true);
266 }
267 else
268 {
269 print("Skipped Magneticraft Sluice Box outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
270 }
271 }
272
273 if (!rockyChunk.empty)
274 {
275 //Rocky Chunk Based Output
276 if (!oreGem.empty)
277 {
278 mods.magneticraft.SluiceBox.addRecipe(rockyChunk.firstItem, 1.0, processedChunk.firstItem, 0.5, oreGem.firstItem * 3, 0.15, <minecraft:cobblestone>, true);
279 }
280 else if (!oreDust.empty)
281 {
282 mods.magneticraft.SluiceBox.addRecipe(rockyChunk.firstItem, 1.0, processedChunk.firstItem, 0.5, oreDust.firstItem, 0.15, <minecraft:cobblestone>, true);
283 }
284 else
285 {
286 print("Skipped Magneticraft Sluice Box outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
287 }
288 }
289 }
290
291 //Magneticraft Sieve -- Tier 2 (2.75x)
292 if(tier <= 2)
293 {
294 //Always output 2x, 50% of the time output an additional 1x, 25% of the time output an additonal 1x
295 //Average to 2.75x output
296 //Only process native clusters and rocky chunks!!
297 if(!nativeCluster.empty)
298 {
299 if (!oreGem.empty)
300 {
301 mods.magneticraft.Sieve.addRecipe(nativeCluster.firstItem, oreGem.firstItem * 4, 1.0, oreGem.firstItem * 2, 0.5, oreGem.firstItem, 0.25, (tier + 1) * 40, true);
302 }
303 else if (!oreDust.empty)
304 {
305 mods.magneticraft.Sieve.addRecipe(nativeCluster.firstItem, oreDust.firstItem * 2, 1.0, oreDust.firstItem, 0.5, oreDust.firstItem, 0.25, (tier + 1) * 40, true);
306 }
307 else
308 {
309 print("Skipped Magneticraft Sieve outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
310 }
311 }
312
313 if (!rockyChunk.empty)
314 {
315 if (!oreGem.empty)
316 {
317 mods.magneticraft.Sieve.addRecipe(rockyChunk.firstItem, processedChunk.firstItem, 1.0, oreGem.firstItem, 0.5, oreGem.firstItem, 0.25, (tier + 1) * 40, true);
318 }
319 else if (!oreDust.empty)
320 {
321 mods.magneticraft.Sieve.addRecipe(rockyChunk.firstItem, processedChunk.firstItem, 1.0, oreDust.firstItem, 0.5, oreDust.firstItem, 0.25, (tier + 1) * 40, true);
322 }
323 else
324 {
325 print("Skipped Magneticraft Sieve outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
326 }
327 }
328 }
329
330 //Ore Washing Factory -- Tier 3 (3x)
331 if(tier <= 3)
332 {
333 //Use method in mmhelper.zs file.
334 scripts.mmhelper.AddOreWashingRecipe(craftingMaterial, tier);
335 }
336
337 //Astral Sorcery Starlight Infusion -- Tier 3 (3x)
338 if(tier <= 3)
339 {
340 for ore in oreBlock.items
341 {
342 if (!oreGem.empty)
343 {
344 mods.astralsorcery.StarlightInfusion.addInfusion(ore, oreGem.firstItem * 6, false, 0.5, (tier+1) * 80);
345 }
346 else if (!oreDust.empty)
347 {
348 mods.astralsorcery.StarlightInfusion.addInfusion(ore, oreDust.firstItem * 3, false, 0.5, (tier+1) * 60);
349 }
350 else
351 {
352 print("Skipped Astral Sorcery Starlight Infusion outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
353 }
354 }
355 }
356
357 //Thermal Expansion Pulverizer -- Tier 4 (3x)
358 if(tier <= 4)
359 {
360 if(!oreGem.empty)
361 {
362 mods.thermalexpansion.Pulverizer.addRecipe(oreGem.firstItem * 6, oreBlock.firstItem, (tier + 1) * 6000, oreGem.firstItem * 3, 50);
363 }
364 else if(!oreDust.empty)
365 {
366 mods.thermalexpansion.Pulverizer.addRecipe(oreDust.firstItem * 3, oreBlock.firstItem, (tier + 1) * 6000, oreDust.firstItem, 50);
367 }
368 else
369 {
370 print("Skipped Thermal Expansion Pulverizer outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
371 }
372 }
373
374 //Induction Furnace (Basic Catalysts) -- Tier 4 (3x)
375 if(tier <= 4)
376 {
377 if(!oreGem.empty)
378 {
379 //Normal Slag
380 mods.thermalexpansion.InductionSmelter.addRecipe(oreGem.firstItem * 6, <thermalfoundation:material:864>, oreBlock.firstItem, (tier + 1) * 9000, oreGem.firstItem * 1, 33);
381
382 //Rich Slag
383 mods.thermalexpansion.InductionSmelter.addRecipe(oreGem.firstItem * 8, <thermalfoundation:material:864>, oreBlock.firstItem, (tier + 1) * 9000, oreGem.firstItem * 2, 80);
384 }
385 else if(!oreIngot.empty)
386 {
387 if(!oreDustSmall.empty)
388 {
389 //Normal Slag
390 mods.thermalexpansion.InductionSmelter.addRecipe(oreIngot.firstItem * 3, <thermalfoundation:material:864>, oreBlock.firstItem, (tier + 1) * 9000, oreDustSmall.firstItem * 3, 33);
391 //Rich Slag
392 mods.thermalexpansion.InductionSmelter.addRecipe(oreIngot.firstItem * 4, <thermalfoundation:material:865>, oreBlock.firstItem, (tier + 1) * 9000, oreDustSmall.firstItem * 6, 80);
393 }
394 else
395 {
396 //Normal Slag
397 mods.thermalexpansion.InductionSmelter.addRecipe(oreIngot.firstItem * 3, <thermalfoundation:material:864>, oreBlock.firstItem, (tier + 1) * 9000, oreIngot.firstItem, 33);
398
399 //Rich Slag
400 mods.thermalexpansion.InductionSmelter.addRecipe(oreIngot.firstItem * 4, <thermalfoundation:material:865>, oreBlock.firstItem, (tier + 1) * 9000, oreIngot.firstItem * 2, 80);
401 }
402 }
403 else
404 {
405 print("Skipped Thermal Expansion Induction Furnace (Basic Catalysts) outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
406 }
407 }
408
409 //Mekanism Purification Chamber -- Tier 5 (3x)
410 if(tier <= 5)
411 {
412 if(!oreClump.empty)
413 {
414 for ore in oreBlock.items
415 {
416 mods.mekanism.purification.addRecipe(ore, <gas:oxygen> * 200, oreClump.firstItem * 3);
417 }
418 }
419 else if(!oreGem.empty)
420 {
421 for ore in oreBlock.items
422 {
423 mods.mekanism.purification.addRecipe(ore, <gas:oxygen> * 200, oreGem.firstItem * 6);
424 }
425 }
426 else
427 {
428 print("Skipped Mekanism Purification Chamber outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
429 }
430 }
431
432 //Mekanism Enrichment Chamber -- Tier 5 (2x)
433 if(tier <= 5)
434 {
435 if(!oreGem.empty)
436 {
437 for ore in oreBlock.items
438 {
439 mods.mekanism.enrichment.addRecipe(ore, oreGem.firstItem * 4);
440 }
441 }
442 else if(!oreDust.empty)
443 {
444 for ore in oreBlock.items
445 {
446 mods.mekanism.enrichment.addRecipe(ore, oreDust.firstItem * 2);
447 }
448 }
449 else
450 {
451 print("Skipped Mekanism Enrichment Chamber outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
452 }
453 }
454
455 //Induction Furnace (Advanced Catalysts) -- Tier 5 (4x)
456 if(tier <= 5)
457 {
458 //TODO
459 }
460
461 //Mekanism Chemical Injection Chamber -- Tier 6 (4x)
462 if(tier <= 6)
463 {
464 for ore in oreBlock.items
465 {
466 if(!oreShard.empty)
467 {
468 mods.mekanism.chemical.injection.addRecipe(ore, <gas:hydrogenchloride> * 200, oreShard.firstItem * 4);
469 }
470 else if(!oreGem.empty)
471 {
472 mods.mekanism.chemical.injection.addRecipe(ore, <gas:hydrogenchloride> * 200, oreGem.firstItem * 8);
473 }
474 else
475 {
476 print("Skipped Mekanism Chemical Injection Chamber outputs for " ~ ore.name ~ " as no possible outputs were found.");
477 }
478 }
479 }
480
481 //Advanced Rocketry Arc Furnace -- Tier 6 (4x)
482 if(tier <= 6)
483 {
484 if(!oreGem.empty)
485 {
486 for ore in oreBlock.items
487 {
488 mods.advancedrocketry.ArcFurnace.addRecipe(oreGem.firstItem * 8, ((tier + 1) * 120) / 3, (tier + 1) * 75, ore, <minecraft:sand>);
489 }
490 }
491 else if(!oreIngot.empty)
492 {
493 for ore in oreBlock.items
494 {
495 mods.advancedrocketry.ArcFurnace.addRecipe(oreIngot.firstItem * 4, ((tier + 1) * 120) / 3, (tier + 1) * 75, ore, <minecraft:sand>);
496 }
497 }
498 else
499 {
500 print("Skipped Mekanism Chemical Injection Chamber outputs for " ~ craftingMaterial ~ " as no possible outputs were found.");
501 }
502 }
503
504 //Mekanism Chemical Dissolution Chamber -- Tier 7 (5x)
505 if(tier <= 7)
506 {
507 //Use method in mmhelper.zs file.
508 scripts.mmhelper.ChemicalOreFactoryRecipe(craftingMaterial, tier);
509
510 //Add other mekanism oreprocessing for compat
511 if(!oreCrystal.empty & !oreShard.empty)
512 {
513 mods.mekanism.chemical.injection.addRecipe(oreCrystal.firstItem, <gas:hydrogenchloride> * 200, oreShard.firstItem);
514
515 if(!oreClump.empty)
516 {
517 mods.mekanism.purification.addRecipe(oreShard.firstItem, <gas:oxygen> * 200, oreClump.firstItem);
518
519 if(!oreDirtyDust.empty)
520 {
521 mods.mekanism.crusher.addRecipe(oreClump.firstItem, oreDirtyDust.firstItem);
522
523 if(!oreDust.empty)
524 {
525 mods.mekanism.enrichment.addRecipe(oreDirtyDust.firstItem, oreDust.firstItem);
526 }
527 }
528 else if (!oreDict.get("dustDirty" ~ craftingMaterial).empty)
529 {
530 mods.mekanism.crusher.addRecipe(oreClump.firstItem, oreDict.get("dustDirty" ~ craftingMaterial).firstItem);
531
532 if(!oreDust.empty)
533 {
534 mods.mekanism.enrichment.addRecipe(oreDict.get("dustDirty" ~ craftingMaterial).firstItem, oreDust.firstItem);
535 }
536 }
537 }
538 }
539 }
540
541 //Further ore processing goes here
542 }
543}
544
545function AddMeltedRecipes(craftingMaterial as string, tier as int, molten as ILiquidStack)
546{
547 var oreBlock = oreDict.get("ore" ~ craftingMaterial);
548
549 if(!oreBlock.empty)
550 {
551 if(tier <= 1)
552 {
553 for ore in oreBlock.items
554 {
555 //TCon Smeltery -- Tier 1 (1x)
556 mods.tconstruct.Melting.addRecipe(molten * ((2 - tier) * 144), ore);
557
558 //Embers Melter -- Tier 1 (2x)
559 mods.embers.Melter.add(molten * 288, ore);
560 }
561 }
562 }
563 else
564 {
565 print("Could not add melting recipes for " ~ craftingMaterial ~ " as no ore blocks were found.");
566 }
567}
568
569function markwithProcessingTier(craftingMaterial as string, tier as int)
570{
571 if(craftingMaterial != "Chromium" & craftingMaterial != "ChargedCertusQuartz")
572 {
573 val OreDicts = [
574 oreDict.get("ore" ~ craftingMaterial),
575 oreDict.get("cluster" ~ craftingMaterial),
576 oreDict.get("dust" ~ craftingMaterial),
577 oreDict.get("ingot" ~ craftingMaterial),
578 oreDict.get("gem" ~ craftingMaterial),
579 oreDict.get("clump" ~ craftingMaterial),
580 oreDict.get("shard" ~ craftingMaterial),
581 oreDict.get("dirtyDust" ~ craftingMaterial),
582 oreDict.get("crystal" ~ craftingMaterial),
583 oreDict.get("poorOre" ~ craftingMaterial),
584 oreDict.get("dustSmall" ~ craftingMaterial),
585 oreDict.get("rockyChunk" ~ craftingMaterial),
586 oreDict.get("chunk" ~ craftingMaterial),
587 oreDict.get("dustDirty" ~ craftingMaterial),
588 oreDict.get("nugget" ~ craftingMaterial),
589 oreDict.get("block" ~ craftingMaterial)
590 ] as crafttweaker.oredict.IOreDictEntry[];
591
592 for oreDict in OreDicts
593 {
594 //Check if ore even exists
595 if(!oreDict.empty)
596 {
597 for ore in oreDict.items
598 {
599 if(tier == 0)
600 {
601 ore.addTooltip(format.italic(format.white("Ore Processing Tier: ")) ~ format.bold(format.darkGray("0")));
602 }
603 else if(tier == 1)
604 {
605 ore.addTooltip(format.italic(format.white("Ore Processing Tier: ")) ~ format.bold(format.gray("1")));
606 }
607 else if(tier == 2)
608 {
609 ore.addTooltip(format.italic(format.white("Ore Processing Tier: ")) ~ format.bold(format.yellow("2")));
610 }
611 else if(tier == 3)
612 {
613 ore.addTooltip(format.italic(format.white("Ore Processing Tier: ")) ~ format.bold(format.gold("3")));
614 }
615 else if(tier == 4)
616 {
617 ore.addTooltip(format.italic(format.white("Ore Processing Tier: ")) ~ format.bold(format.red("4")));
618 }
619 else if(tier == 5)
620 {
621 ore.addTooltip(format.italic(format.white("Ore Processing Tier: ")) ~ format.bold(format.darkRed("5")));
622 }
623 if(tier == 6)
624 {
625 ore.addTooltip(format.italic(format.white("Ore Processing Tier: ")) ~ format.bold(format.aqua("6")));
626 }
627 if(tier == 7)
628 {
629 ore.addTooltip(format.italic(format.white("Ore Processing Tier: ")) ~ format.bold(format.darkGreen("7")));
630 }
631 if(tier == 8)
632 {
633 ore.addTooltip(format.italic(format.white("Ore Processing Tier: ")) ~ format.bold(format.green("8")));
634 }
635 }
636 }
637 }
638 }
639}
640
641//Stop Issues with Galena Ore!
642<ore:oreSilver>.remove(<magneticraft:ores:1>);
643<ore:oreLead>.remove(<magneticraft:ores:1>);
644
645//Embers Melter
646val EmberMelting = [
647 <forestry:resources:2>,
648 <thermalfoundation:ore:5>,
649 <embers:ore_aluminum>,
650 <embers:ore_lead>,
651 <libvulpes:ore0:4>,
652 <iceandfire:silver_ore>,
653 <minecraft:gold_ore>,
654 <minecraft:iron_ore>
655] as crafttweaker.item.IItemStack[];
656
657for ore in EmberMelting
658{
659 mods.embers.Melter.remove(ore);
660}
661
662//Remove some specific Furnace Recipes that still manage to persist
663furnace.remove(<minecraft:redstone>);
664furnace.remove(<magneticraft:ingots:3>, <magneticraft:ores:1>);
665furnace.remove(<draconicevolution:draconium_ingot>);
666furnace.remove(<libvulpes:productdust>);
667mods.thermalexpansion.RedstoneFurnace.removeRecipe(<minecraft:redstone_ore>);
668mods.thermalexpansion.RedstoneFurnace.removeRecipe(<minecraft:lapis_ore>);
669
670//Electric Arc Furnace Titanium Ingot
671mods.advancedrocketry.ArcFurnace.removeRecipe(<libvulpes:productingot:7>);
672
673//Remove Mekanism Ore Processing Recipes
674mods.mekanism.chemical.injection.removeAllRecipes();
675mods.mekanism.purification.removeAllRecipes();
676mods.mekanism.enrichment.removeRecipe(<minecraft:stonebrick:1>);
677
678//Remove Sluice Box Recipes
679val SluiceBox = [
680 <minecraft:sand:1>,
681 <minecraft:gravel>,
682 <magneticraft:rocky_chunks:14>,
683 <magneticraft:rocky_chunks:13>,
684 <magneticraft:rocky_chunks:12>,
685 <magneticraft:rocky_chunks:11>,
686 <magneticraft:rocky_chunks:10>,
687 <magneticraft:rocky_chunks:9>,
688 <magneticraft:rocky_chunks:7>,
689 <magneticraft:rocky_chunks:5>,
690 <magneticraft:rocky_chunks:4>,
691 <magneticraft:rocky_chunks:3>,
692 <magneticraft:rocky_chunks:2>,
693 <magneticraft:rocky_chunks:1>,
694 <magneticraft:rocky_chunks>
695] as crafttweaker.item.IItemStack[];
696
697for ore in SluiceBox
698{
699 mods.magneticraft.SluiceBox.removeRecipe(ore);
700}
701
702//Remove Magneticraft Sieve Recipes
703val SieveRecipes = [
704 <minecraft:soul_sand>,
705 <minecraft:sand>,
706 <minecraft:gravel>,
707 <magneticraft:rocky_chunks:14>,
708 <magneticraft:rocky_chunks:13>,
709 <magneticraft:rocky_chunks:12>,
710 <magneticraft:rocky_chunks:11>,
711 <magneticraft:rocky_chunks:10>,
712 <magneticraft:rocky_chunks:9>,
713 <magneticraft:rocky_chunks:7>,
714 <magneticraft:rocky_chunks:5>,
715 <magneticraft:rocky_chunks:4>,
716 <magneticraft:rocky_chunks:3>,
717 <magneticraft:rocky_chunks:2>,
718 <magneticraft:rocky_chunks:1>,
719 <magneticraft:rocky_chunks>
720] as crafttweaker.item.IItemStack[];
721
722for ore in SieveRecipes
723{
724 mods.magneticraft.Sieve.removeRecipe(ore);
725}
726
727val CrusherRecipes = [
728 <mekanism:dirtydust>,
729 <mekanism:dirtydust:6>,
730 <mekanism:dirtydust:1>,
731 <mekanism:dirtydust:2>,
732 <mekanism:dirtydust:4>,
733 <mekanism:dirtydust:5>,
734 <mekanism:dirtydust:3>
735] as crafttweaker.item.IItemStack[];
736
737for dust in CrusherRecipes
738{
739 mods.mekanism.crusher.removeRecipe(dust);
740}
741
742//Remove Enrichment Chamber Recipes
743val EnrichmentChamber = [
744 <mekanism:dirtydust:1>,
745 <mekanism:dirtydust>,
746 <mekanism:dirtydust:3>,
747 <mekanism:dirtydust:2>,
748 <mekanism:dirtydust:5>,
749 <mekanism:dirtydust:4>,
750 <mekanism:dirtydust:6>,
751 <draconicevolution:draconium_ore:1>,
752 <draconicevolution:draconium_ore>,
753 <draconicevolution:draconium_ore:2>,
754 <biomesoplenty:gem_ore:2>,
755 <biomesoplenty:gem_ore:3>,
756 <biomesoplenty:gem_ore:1>,
757 <biomesoplenty:gem_ore:7>,
758 <biomesoplenty:gem_ore>,
759 <iceandfire:silver_ore>,
760 <biomesoplenty:gem_ore:5>,
761 <biomesoplenty:gem_ore:6>,
762 <minecraft:coal_ore>,
763 <biomesoplenty:gem_ore:4>,
764 <embers:ore_silver>,
765 <libvulpes:ore0:9>,
766 <appliedenergistics2:quartz_ore>,
767 <libvulpes:ore0:10>,
768 <minecraft:lapis_ore>,
769 <forestry:resources>,
770 <forestry:resources:2>,
771 <forestry:resources:1>,
772 <libvulpes:ore0:5>,
773 <libvulpes:ore0:4>,
774 <minecraft:gold_ore>,
775 <minecraft:diamond_ore>,
776 <magneticraft:ores>,
777 <magneticraft:ores:1>,
778 <thaumcraft:ore_amber>,
779 <mekanism:oreblock>,
780 <mekanism:oreblock:1>,
781 <mekanism:oreblock:2>,
782 <minecraft:quartz_ore>,
783 <contenttweaker:sub_block_holder_10:14>,
784 <contenttweaker:sub_block_holder_11:2>,
785 <contenttweaker:sub_block_holder_11:4>,
786 <minecraft:emerald_ore>,
787 <embers:ore_quartz>,
788 <embers:ore_tin>,
789 <minecraft:redstone_ore>,
790 <embers:ore_nickel>,
791 <embers:ore_aluminum>,
792 <minecraft:iron_ore>,
793 <embers:ore_lead>,
794 <appliedenergistics2:charged_quartz_ore>,
795 <thermalfoundation:ore:8>,
796 <thermalfoundation:ore:3>,
797 <thermalfoundation:ore:2>,
798 <thermalfoundation:ore:1>,
799 <thermalfoundation:ore>,
800 <thermalfoundation:ore:7>,
801 <thermalfoundation:ore:6>,
802 <thermalfoundation:ore:4>,
803 <thermalfoundation:ore:5>,
804 <iceandfire:sapphire_ore>,
805 <embers:ore_copper>,
806 <thaumcraft:ore_quartz>
807] as crafttweaker.item.IItemStack[];
808
809for ore in EnrichmentChamber
810{
811 mods.mekanism.enrichment.removeRecipe(ore);
812}
813
814//Magneticraft Grinder Ores
815val GrinderOres = [
816 <forestry:resources:1>,
817 <thermalfoundation:ore:3>,
818 <tconstruct:ore>,
819 <magneticraft:ores:3>,
820 <embers:ore_aluminum>,
821 <thermalfoundation:ore:8>,
822 <thermalfoundation:ore:5>,
823 <mekanism:oreblock>,
824 <thermalfoundation:ore:2>,
825 <forestry:resources:2>,
826 <contenttweaker:sub_block_holder_11:6>,
827 <rftools:dimensional_shard_ore>,
828 <minecraft:lapis_ore>,
829 <minecraft:redstone_ore>,
830 <minecraft:quartz_ore>,
831 <minecraft:emerald_ore>,
832 <minecraft:diamond_ore>,
833 <minecraft:coal_ore>,
834 <minecraft:gold_ore>,
835 <minecraft:iron_ore>
836] as crafttweaker.item.IItemStack[];
837
838for oreBlock in GrinderOres
839{
840 mods.magneticraft.Grinder.removeRecipe(oreBlock);
841}
842
843//Remove TCon Melting
844val MeltingMaterials =
845{
846 "Iron" : <liquid:iron>,
847 "Gold" : <liquid:gold>,
848 "Redstone" : <liquid:redstone>,
849 "Diamond" : <liquid:water>,
850 "Emerald" : <liquid:emerald>,
851 "Chrome" : <liquid:chromium>,
852 "Aluminum" : <liquid:aluminum>,
853 "Copper" : <liquid:copper>,
854 "Iridium" : <liquid:iridium>,
855 "Lead" : <liquid:lead>,
856 "Nickel" : <liquid:nickel>,
857 "Platinum" : <liquid:platinum>,
858 "Silver" : <liquid:silver>,
859 "Tin" : <liquid:tin>,
860 "Titanium" : <liquid:titanium>,
861 "Tungsten" : <liquid:tungsten>,
862 "Zinc" : <liquid:zinc>,
863 "Mithril" : <liquid:mithril>,
864 "Yellorium" : <liquid:yellorium>,
865 "Vibranium" : <liquid:vibranium>,
866 "Necrodermis" : <liquid:necrodermis>,
867 "Thorium" : <liquid:thorium>,
868 "Chromium" : <liquid:chromium>,
869 "Ardite" : <liquid:ardite>,
870 "AstralStarmetal" : <liquid:astral_starmetal>,
871 "Cobalt" : <liquid:cobalt>,
872 "Draconium" : <liquid:draconium>,
873 "Uranium" : <liquid:uranium>,
874 "Osmium" : <liquid:osmium>,
875 "Galena" : <liquid:lead>
876} as ILiquidStack[string];
877
878for oreString, molten in MeltingMaterials
879{
880 for ore in oreDict.get("ore" ~ oreString).items
881 {
882 mods.tconstruct.Melting.removeRecipe(molten, ore);
883 }
884}
885
886//EnderIO Sag Mill Ores
887val SagMillOres =
888[
889 <libvulpes:ore0:9>,
890 <thaumcraft:ore_quartz>,
891 <libvulpes:ore0>,
892 <astralsorcery:blockcustomore:1>,
893 <contenttweaker:sub_block_holder_0:5>,
894 <libvulpes:ore0:10>,
895 <quark:biotite_ore>,
896 <draconicevolution:draconium_ore:2>,
897 <draconicevolution:draconium_ore:1>,
898 <draconicevolution:draconium_ore>,
899 <magneticraft:ores:3>,
900 <libvulpes:ore0:8>,
901 <contenttweaker:sub_block_holder_10:14>,
902 <tconstruct:ore>,
903 <tconstruct:ore:1>,
904 <mekanism:oreblock>,
905 <thermalfoundation:ore:8>,
906 <thermalfoundation:ore:6>,
907 <contenttweaker:sub_block_holder_11:6>,
908 <biomesoplenty:gem_ore>,
909 <biomesoplenty:gem_ore:7>,
910 <biomesoplenty:gem_ore:6>,
911 <biomesoplenty:gem_ore:5>,
912 <biomesoplenty:gem_ore:4>,
913 <biomesoplenty:gem_ore:3>,
914 <biomesoplenty:gem_ore:2>,
915 <biomesoplenty:gem_ore:1>,
916 <appliedenergistics2:charged_quartz_ore>,
917 <appliedenergistics2:quartz_ore>,
918 <forestry:resources>,
919 <minecraft:quartz_ore>,
920 <minecraft:lapis_ore>,
921 <minecraft:emerald_ore>,
922 <minecraft:diamond_ore>,
923 <minecraft:redstone_ore>,
924 <minecraft:coal_ore>,
925 <embers:ore_nickel>,
926 <iceandfire:silver_ore>,
927 <embers:ore_lead>,
928 <libvulpes:ore0:5>,
929 <magneticraft:ores>,
930 <minecraft:gold_ore>,
931 <minecraft:iron_ore>,
932 <contenttweaker:sub_block_holder_1:12>,
933 <contenttweaker:sub_block_holder_12:15>,
934 <contenttweaker:sub_block_holder_1:13>,
935 <rftools:dimensional_shard_ore>
936] as crafttweaker.item.IItemStack[];
937
938for oreBlock in SagMillOres
939{
940 mods.enderio.SagMill.removeRecipe(oreBlock);
941}
942
943//Starlight Infusion Output
944val StarlightInfusionOutput =
945[
946 <minecraft:iron_ingot> * 3,
947 <minecraft:gold_ingot> * 3,
948 <minecraft:lapis_block>,
949 <minecraft:redstone_block>,
950 <minecraft:diamond>,
951 <minecraft:emerald>
952] as crafttweaker.item.IItemStack[];
953
954for infusionOutput in StarlightInfusionOutput
955{
956 mods.astralsorcery.StarlightInfusion.removeInfusion(infusionOutput);
957}
958
959//List of Induction Smelter Ores to Handle
960val InductionSmelterOres =
961[
962 "Tungsten",
963 "Copper",
964 "Iridium",
965 "Lead",
966 "Silver",
967 "Mithril",
968 "Uranium",
969 "Nickel",
970 "Zinc",
971 "Aluminum",
972 "Platinum",
973 "Gold",
974 "Osmium",
975 "Cobalt",
976 "Iron",
977 "Yellorium",
978 "Tin",
979 "Ardite",
980 "Titanium"
981] as string[];
982
983for ore in InductionSmelterOres
984{
985 //Sand-based input
986 mods.thermalexpansion.InductionSmelter.removeRecipe(oreDict.get("ore" ~ ore).firstItem, <minecraft:sand>);
987
988 //Rich slag-based input
989 mods.thermalexpansion.InductionSmelter.removeRecipe(oreDict.get("ore" ~ ore).firstItem, <thermalfoundation:material:865>);
990
991 //Cinnabar-based input
992 mods.thermalexpansion.InductionSmelter.removeRecipe(oreDict.get("ore" ~ ore).firstItem, <thermalfoundation:material:866>);
993}
994
995//Remove Magma Crucible Ore Smelting
996val MagmaCrucible =
997[
998 <minecraft:emerald_ore>,
999 <tconstruct:ore>,
1000 <embers:ore_nickel>,
1001 <magneticraft:ores:3>,
1002 <contenttweaker:sub_block_holder_7:1>,
1003 <thermalfoundation:ore:2>,
1004 <contenttweaker:sub_block_holder_11:6>,
1005 <draconicevolution:draconium_ore:1>,
1006 <astralsorcery:blockcustomore:1>,
1007 <tconstruct:ore:1>,
1008 <thermalfoundation:ore:7>,
1009 <minecraft:iron_ore>,
1010 <contenttweaker:sub_block_holder_10:14>,
1011 <libvulpes:ore0:8>,
1012 <embers:ore_lead>,
1013 <contenttweaker:sub_block_holder_12:14>,
1014 <mekanism:oreblock>,
1015 <thermalfoundation:ore>,
1016 <mekanism:oreblock:2>,
1017 <thermalfoundation:ore:6>,
1018 <contenttweaker:sub_block_holder_0>,
1019 <minecraft:gold_ore>,
1020 <libvulpes:ore0:9>,
1021 <contenttweaker:sub_block_holder_9:4>,
1022 <contenttweaker:sub_block_holder_4:1>
1023] as crafttweaker.item.IItemStack[];
1024
1025for ore in MagmaCrucible
1026{
1027 mods.thermalexpansion.Crucible.removeRecipe(ore);
1028}
1029
1030//Remove some extra Induction Smelter Recipes
1031mods.thermalexpansion.InductionSmelter.removeRecipe(<minecraft:redstone_ore>, <minecraft:sand>);
1032mods.thermalexpansion.InductionSmelter.removeRecipe(<minecraft:lapis_ore>, <minecraft:sand>);
1033mods.thermalexpansion.InductionSmelter.removeRecipe(<minecraft:quartz_ore>, <minecraft:sand>);
1034
1035//Remove Mekanism Ore Crystallization
1036val ChemicalCrystallizer =
1037[
1038 <mekanism:crystal>,
1039 <mekanism:crystal:1>,
1040 <mekanism:crystal:2>,
1041 <mekanism:crystal:3>,
1042 <mekanism:crystal:4>,
1043 <mekanism:crystal:5>,
1044 <mekanism:crystal:6>
1045] as crafttweaker.item.IItemStack[];
1046
1047for ore in ChemicalCrystallizer
1048{
1049 mods.mekanism.chemical.crystallizer.removeRecipe(ore);
1050}
1051
1052//Remove all chemical washer recipes
1053mods.mekanism.chemical.washer.removeAllRecipes();
1054
1055for materialString, oreValue in scripts.helpers.OresWithProcessingTier
1056{
1057 //Remove the existing ore processing methods available
1058 removeExistingCraftingRecipes(materialString);
1059
1060 //Add new ones based on the tier/stage of the material
1061 addNewRecipe(materialString, oreValue);
1062
1063 //Add Melting Processing too
1064 if(scripts.helpers.OresWithMolten[materialString].name != "water")
1065 {
1066 AddMeltedRecipes(materialString, oreValue, scripts.helpers.OresWithMolten[materialString]);
1067 }
1068
1069 //Mark each ore with it's tier
1070 markwithProcessingTier(materialString, oreValue);
1071}
1072
1073print("### Ore Processing Init Complete ###");