aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/bartworks/common/loaders
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-02 23:17:17 +0200
committerGitHub <noreply@github.com>2024-09-02 23:17:17 +0200
commit1b820de08a05070909a267e17f033fcf58ac8710 (patch)
tree02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/bartworks/common/loaders
parentafd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff)
downloadGT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.gz
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.bz2
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.zip
The Great Renaming (#3014)
* move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names
Diffstat (limited to 'src/main/java/bartworks/common/loaders')
-rw-r--r--src/main/java/bartworks/common/loaders/ArtificialMicaLine.java191
-rw-r--r--src/main/java/bartworks/common/loaders/BioCultureLoader.java104
-rw-r--r--src/main/java/bartworks/common/loaders/BioItemList.java106
-rw-r--r--src/main/java/bartworks/common/loaders/BioLabLoader.java23
-rw-r--r--src/main/java/bartworks/common/loaders/BioRecipeLoader.java211
-rw-r--r--src/main/java/bartworks/common/loaders/ElectricImplosionCompressorRecipes.java229
-rw-r--r--src/main/java/bartworks/common/loaders/FluidLoader.java145
-rw-r--r--src/main/java/bartworks/common/loaders/ItemRegistry.java654
-rw-r--r--src/main/java/bartworks/common/loaders/LocalisationLoader.java62
-rw-r--r--src/main/java/bartworks/common/loaders/RadioHatchMaterialLoader.java365
-rw-r--r--src/main/java/bartworks/common/loaders/RecipeLoader.java59
-rw-r--r--src/main/java/bartworks/common/loaders/RegisterGlassTiers.java118
-rw-r--r--src/main/java/bartworks/common/loaders/RegisterServerCommands.java34
-rw-r--r--src/main/java/bartworks/common/loaders/StaticRecipeChangeLoaders.java562
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Assembler.java270
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/AssemblyLine.java81
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Autoclave.java40
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Centrifuge.java141
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/ChemicalBath.java83
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/ChemicalReactor.java28
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/CraftingRecipes.java468
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Electrolyzer.java151
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Extractor.java44
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/FakeRecipes.java11
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/FluidHeater.java26
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/FluidSolidifier.java102
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/FormingPress.java76
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/LaserEngraver.java27
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Mixer.java62
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/Pulverizer.java97
-rw-r--r--src/main/java/bartworks/common/loaders/recipes/PyrolyseOven.java27
31 files changed, 4597 insertions, 0 deletions
diff --git a/src/main/java/bartworks/common/loaders/ArtificialMicaLine.java b/src/main/java/bartworks/common/loaders/ArtificialMicaLine.java
new file mode 100644
index 0000000000..4ec5f2edf8
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/ArtificialMicaLine.java
@@ -0,0 +1,191 @@
+package bartworks.common.loaders;
+
+import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
+import static gregtech.api.recipe.RecipeMaps.benderRecipes;
+import static gregtech.api.recipe.RecipeMaps.blastFurnaceRecipes;
+import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes;
+import static gregtech.api.recipe.RecipeMaps.mixerRecipes;
+import static gregtech.api.recipe.RecipeMaps.vacuumFreezerRecipes;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeBuilder.TICKS;
+import static gregtech.api.util.GTRecipeConstants.COIL_HEAT;
+import static gregtech.api.util.GTRecipeConstants.UniversalChemical;
+
+import bartworks.system.material.BWGTMaterialReference;
+import bartworks.system.material.WerkstoffLoader;
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.util.GTModHandler;
+import gregtech.api.util.GTUtility;
+
+public class ArtificialMicaLine {
+
+ public static void runArtificialMicaRecipe() {
+ // Mg + O = MgO
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Magnesium.getDust(1))
+ .itemOutputs(Materials.Magnesia.getDust(2))
+ .fluidInputs(Materials.Oxygen.getGas(1000))
+ .duration(2 * SECONDS)
+ .eut(8)
+ .addTo(UniversalChemical);
+ // Si + 6HF = H2SiF6 + 4H
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Silicon.getDust(1), Materials.Empty.getCells(4))
+ .itemOutputs(Materials.Hydrogen.getCells(4))
+ .fluidInputs(Materials.HydrofluoricAcid.getFluid(6000))
+ .fluidOutputs(WerkstoffLoader.HexafluorosilicicAcid.getFluidOrGas(1000))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(UniversalChemical);
+ // K + Cl = KCl
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Potassium.getDust(1), GTUtility.getIntegratedCircuit(2))
+ .itemOutputs(Materials.RockSalt.getDust(2))
+ .fluidInputs(Materials.Chlorine.getGas(1000))
+ .duration(20 * TICKS)
+ .eut(8)
+ .addTo(UniversalChemical);
+
+ // 2KCl + H2SiF6 = 2HCl + K2SiF6
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.RockSalt.getDust(4))
+ .itemOutputs(WerkstoffLoader.Potassiumfluorosilicate.get(OrePrefixes.dust, 9))
+ .fluidInputs(WerkstoffLoader.HexafluorosilicicAcid.getFluidOrGas(1000))
+ .fluidOutputs(Materials.HydrochloricAcid.getFluid(2000))
+ .duration(1 * SECONDS)
+ .eut(8)
+ .addTo(mixerRecipes);
+
+ // 2K + CO2 + O = K2CO3
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Potassium.getDust(2), Materials.CarbonDioxide.getCells(1))
+ .itemOutputs(WerkstoffLoader.PotassiumCarbonate.get(OrePrefixes.dust, 6), Materials.Empty.getCells(1))
+ .fluidInputs(Materials.Oxygen.getGas(1000))
+ .duration(2 * SECONDS)
+ .eut(8)
+ .addTo(UniversalChemical);
+ // K2O + CO2 = K2CO3
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Potash.getDust(3), Materials.CarbonDioxide.getCells(1))
+ .itemOutputs(WerkstoffLoader.PotassiumCarbonate.get(OrePrefixes.dust, 6), Materials.Empty.getCells(1))
+ .duration(2 * SECONDS)
+ .eut(8)
+ .addTo(UniversalChemical);
+
+ // 55Quartz Dust + 20K2SiF6 + 12Al2O3 + 4K2CO3 = 91Raw Fluorophlogopite Dust
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ Materials.QuartzSand.getDust(55),
+ WerkstoffLoader.Potassiumfluorosilicate.get(OrePrefixes.dust, 20),
+ WerkstoffLoader.Alumina.get(OrePrefixes.dust, 12),
+ WerkstoffLoader.PotassiumCarbonate.get(OrePrefixes.dust, 4),
+ GTUtility.getIntegratedCircuit(4))
+ .itemOutputs(
+ WerkstoffLoader.RawFluorophlogopite.get(OrePrefixes.dust, 64),
+ WerkstoffLoader.RawFluorophlogopite.get(OrePrefixes.dust, 27))
+ .duration(20 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(mixerRecipes);
+
+ // 55Quartzite/Nether Quartz Dust + 20K2SiF6 + 57Al2O3 + 4K2CO3 = 136Raw Fluorophlogopite Dust
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ Materials.Quartzite.getDust(55),
+ WerkstoffLoader.Potassiumfluorosilicate.get(OrePrefixes.dust, 20),
+ WerkstoffLoader.Alumina.get(OrePrefixes.dust, 57),
+ WerkstoffLoader.PotassiumCarbonate.get(OrePrefixes.dust, 4),
+ GTUtility.getIntegratedCircuit(4))
+ .itemOutputs(
+ WerkstoffLoader.RawFluorophlogopite.get(OrePrefixes.dust, 64),
+ WerkstoffLoader.RawFluorophlogopite.get(OrePrefixes.dust, 64),
+ WerkstoffLoader.RawFluorophlogopite.get(OrePrefixes.dust, 8))
+ .fluidInputs()
+ .fluidOutputs()
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(mixerRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ Materials.NetherQuartz.getDust(55),
+ WerkstoffLoader.Potassiumfluorosilicate.get(OrePrefixes.dust, 20),
+ WerkstoffLoader.Alumina.get(OrePrefixes.dust, 57),
+ WerkstoffLoader.PotassiumCarbonate.get(OrePrefixes.dust, 4),
+ GTUtility.getIntegratedCircuit(4))
+ .itemOutputs(
+ WerkstoffLoader.RawFluorophlogopite.get(OrePrefixes.dust, 64),
+ WerkstoffLoader.RawFluorophlogopite.get(OrePrefixes.dust, 64),
+ WerkstoffLoader.RawFluorophlogopite.get(OrePrefixes.dust, 8))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(mixerRecipes);
+
+ // 62Certus Quartz Dust + 10K2SiF6 + 12Al2O3 + 7K2CO3 = 91Raw Fluorophlogopite Dust
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ Materials.CertusQuartz.getDust(62),
+ WerkstoffLoader.Potassiumfluorosilicate.get(OrePrefixes.dust, 10),
+ WerkstoffLoader.Alumina.get(OrePrefixes.dust, 12),
+ WerkstoffLoader.PotassiumCarbonate.get(OrePrefixes.dust, 7),
+ GTUtility.getIntegratedCircuit(4))
+ .itemOutputs(
+ WerkstoffLoader.RawFluorophlogopite.get(OrePrefixes.dust, 64),
+ WerkstoffLoader.RawFluorophlogopite.get(OrePrefixes.dust, 27))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(mixerRecipes);
+
+ // MgO(s) = MgO(l)
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(Materials.Magnesia.getDust(1))
+ .fluidOutputs(Materials.Magnesia.getMolten(144))
+ .duration(20 * TICKS)
+ .eut(TierEU.RECIPE_MV)
+ .addTo(fluidExtractionRecipes);
+
+ // 27Raw Fluorophlogopite Dust + 720MgO(l) = 4608Fluorophlogopite(l)
+ GTValues.RA.stdBuilder()
+ .itemInputs(WerkstoffLoader.RawFluorophlogopite.get(OrePrefixes.dust, 27))
+ .itemOutputs(Materials.Glass.getDust(1))
+ .fluidInputs(BWGTMaterialReference.Magnesia.getMolten(720))
+ .fluidOutputs(WerkstoffLoader.HotFluorophlogopite.getFluidOrGas(4608))
+ .duration(30 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .metadata(COIL_HEAT, 1700)
+ .addTo(blastFurnaceRecipes);
+
+ // 144Fluorophlogopite(l) = Fluorophlogopite
+ GTValues.RA.stdBuilder()
+ .itemInputs(ItemList.Shape_Mold_Plate.get(0))
+ .itemOutputs(WerkstoffLoader.Fluorophlogopite.get(OrePrefixes.plate, 1))
+ .fluidInputs(WerkstoffLoader.HotFluorophlogopite.getFluidOrGas(144))
+ .duration(10 * TICKS)
+ .eut(TierEU.RECIPE_MV)
+ .noOptimize()
+ .addTo(vacuumFreezerRecipes);
+
+ // Fluorophlogopite = 4Insulator Foil
+ if (NewHorizonsCoreMod.isModLoaded()) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(
+ WerkstoffLoader.Fluorophlogopite.get(OrePrefixes.plate, 1),
+ GTUtility.getIntegratedCircuit(1))
+ .itemOutputs(GTModHandler.getModItem(NewHorizonsCoreMod.ID, "item.MicaInsulatorFoil", 4))
+ .duration(10 * TICKS)
+ .eut(600)
+ .addTo(benderRecipes);
+
+ }
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/BioCultureLoader.java b/src/main/java/bartworks/common/loaders/BioCultureLoader.java
new file mode 100644
index 0000000000..f97f23347f
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/BioCultureLoader.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
+ * conditions: The above copyright notice and this permission notice shall be included in all copies or substantial
+ * portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+package bartworks.common.loaders;
+
+import java.awt.Color;
+
+import net.minecraft.item.EnumRarity;
+
+import bartworks.util.BioCulture;
+import bartworks.util.BioDNA;
+import bartworks.util.BioData;
+import bartworks.util.BioPlasmid;
+
+public class BioCultureLoader {
+
+ public static final BioData BIO_DATA_BETA_LACMATASE = BioData
+ .createAndRegisterBioData("beta-Lactamase", EnumRarity.uncommon, 10000, 0);
+ private static final BioData BIO_DATA_YEAST = BioData
+ .createAndRegisterBioData("Saccharomyces cerevisiae", EnumRarity.common);
+ private static final BioDNA BIO_DNA_WHINE_YEAST = BioDNA
+ .createAndRegisterBioDNA("Saccharomyces cerevisiae var bayanus", EnumRarity.uncommon);
+ private static final BioDNA BIO_DNA_BEER_YEAST = BioDNA
+ .createAndRegisterBioDNA("Saccharomyces cerevisiae var cerevisiae", EnumRarity.uncommon);
+ private static final BioData eColiData = BioData
+ .createAndRegisterBioData("Escherichia koli", EnumRarity.uncommon, 10000, 0);
+ private static final BioDNA BIO_DNA_ANAEROBIC_OIL = BioDNA
+ .createAndRegisterBioDNA("Pseudomonas Veronii", EnumRarity.uncommon);
+ private static final BioData BIO_DATA_ANAEROBIC_OIL = BioData
+ .createAndRegisterBioData("Pseudomonas Veronii", EnumRarity.uncommon, 5000, 1);
+ public static BioCulture CommonYeast;
+ public static BioCulture WhineYeast;
+ public static BioCulture BeerYeast;
+ public static BioCulture rottenFleshBacteria;
+ public static BioCulture eColi;
+ public static BioCulture anaerobicOil;
+ public static BioCulture generalPurposeFermentingBacteria;
+
+ public static void run() {
+ BioCultureLoader.CommonYeast = BioCulture.createAndRegisterBioCulture(
+ new Color(255, 248, 200),
+ "Saccharomyces cerevisiae",
+ BioPlasmid.convertDataToPlasmid(BioCultureLoader.BIO_DATA_YEAST),
+ BioDNA.convertDataToDNA(BioCultureLoader.BIO_DATA_YEAST),
+ true);
+ BioCultureLoader.WhineYeast = BioCulture.createAndRegisterBioCulture(
+ new Color(255, 248, 200),
+ "Saccharomyces cerevisiae var bayanus",
+ BioPlasmid.convertDataToPlasmid(BioCultureLoader.BIO_DNA_WHINE_YEAST),
+ BioCultureLoader.BIO_DNA_WHINE_YEAST,
+ EnumRarity.uncommon,
+ true);
+ BioCultureLoader.BeerYeast = BioCulture.createAndRegisterBioCulture(
+ new Color(255, 248, 200),
+ "Saccharomyces cerevisiae var cerevisiae",
+ BioPlasmid.convertDataToPlasmid(BioCultureLoader.BIO_DNA_BEER_YEAST),
+ BioCultureLoader.BIO_DNA_BEER_YEAST,
+ EnumRarity.uncommon,
+ true);
+ BioCultureLoader.rottenFleshBacteria = BioCulture.createAndRegisterBioCulture(
+ new Color(110, 40, 25),
+ "Escherichia cadaver",
+ BioPlasmid.convertDataToPlasmid(BioCultureLoader.BIO_DATA_BETA_LACMATASE),
+ BioDNA.convertDataToDNA(BioCultureLoader.BIO_DATA_BETA_LACMATASE),
+ false);
+ BioCultureLoader.eColi = BioCulture.createAndRegisterBioCulture(
+ new Color(149, 132, 75),
+ "Escherichia koli",
+ BioPlasmid.convertDataToPlasmid(BioCultureLoader.eColiData),
+ BioDNA.convertDataToDNA(BioCultureLoader.eColiData),
+ true);
+ BioCultureLoader.anaerobicOil = BioCulture.createAndRegisterBioCulture(
+ new Color(0, 0, 0),
+ "Pseudomonas Veronii",
+ BioPlasmid.convertDataToPlasmid(BioCultureLoader.BIO_DNA_ANAEROBIC_OIL),
+ BioDNA.convertDataToDNA(BioCultureLoader.BIO_DATA_ANAEROBIC_OIL),
+ true);
+ BioCultureLoader.generalPurposeFermentingBacteria = BioCulture.createAndRegisterBioCulture(
+ new Color(127, 69, 26),
+ "Saccharomyces escherichia",
+ BioCultureLoader.CommonYeast.getPlasmid(),
+ BioCultureLoader.eColi.getdDNA(),
+ EnumRarity.epic,
+ true);
+
+ BioCultureLoader.CommonYeast.setLocalisedName("Common Yeast");
+ BioCultureLoader.WhineYeast.setLocalisedName("Whine Yeast");
+ BioCultureLoader.BeerYeast.setLocalisedName("Beer Yeast");
+ BioCultureLoader.rottenFleshBacteria.setLocalisedName("Rotten Flesh Bacteria");
+ BioCultureLoader.eColi.setLocalisedName("eColi Bacteria");
+ BioCultureLoader.anaerobicOil.setLocalisedName("Anaerobic Oil Bacteria");
+ BioCultureLoader.generalPurposeFermentingBacteria.setLocalisedName("General Purpose Fermenting Bacteria");
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/BioItemList.java b/src/main/java/bartworks/common/loaders/BioItemList.java
new file mode 100644
index 0000000000..d845c5048d
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/BioItemList.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
+ * conditions: The above copyright notice and this permission notice shall be included in all copies or substantial
+ * portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+package bartworks.common.loaders;
+
+import java.util.Collection;
+import java.util.HashSet;
+
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+
+import bartworks.common.items.ItemLabModule;
+import bartworks.common.items.ItemLabParts;
+import bartworks.util.BioCulture;
+import bartworks.util.BioDNA;
+import bartworks.util.BioData;
+import bartworks.util.BioPlasmid;
+import cpw.mods.fml.common.registry.GameRegistry;
+
+public class BioItemList {
+
+ private BioItemList() {}
+
+ private static final Item mItemBioLabParts = new ItemLabModule(
+ new String[] { "DNAExtractionModule", "PCRThermoclyclingModule", "PlasmidSynthesisModule",
+ "TransformationModule", "ClonalCellularSynthesisModule" });
+ public static final ItemStack[] mBioLabParts = { new ItemStack(BioItemList.mItemBioLabParts),
+ new ItemStack(BioItemList.mItemBioLabParts, 1, 1), new ItemStack(BioItemList.mItemBioLabParts, 1, 2),
+ new ItemStack(BioItemList.mItemBioLabParts, 1, 3), new ItemStack(BioItemList.mItemBioLabParts, 1, 4) };
+ private static final Item vanillaBioLabParts = new ItemLabParts(
+ new String[] { "petriDish", "DNASampleFlask", "PlasmidCell", "DetergentPowder", "Agarose", "IncubationModule",
+ "PlasmaMembrane" });
+
+ public static void registerBioItems() {
+ GameRegistry.registerItem(BioItemList.mItemBioLabParts, "BioLabModules");
+ GameRegistry.registerItem(BioItemList.vanillaBioLabParts, "BioLabParts");
+ }
+
+ public static Collection<ItemStack> getAllPetriDishes() {
+ HashSet<ItemStack> ret = new HashSet<>();
+ for (BioCulture Culture : BioCulture.BIO_CULTURE_ARRAY_LIST) {
+ ret.add(BioItemList.getPetriDish(Culture));
+ }
+ return ret;
+ }
+
+ public static Collection<ItemStack> getAllDNASampleFlasks() {
+ HashSet<ItemStack> ret = new HashSet<>();
+ for (BioData dna : BioData.BIO_DATA_ARRAY_LIST) {
+ ret.add(BioItemList.getDNASampleFlask(BioDNA.convertDataToDNA(dna)));
+ }
+ return ret;
+ }
+
+ public static Collection<ItemStack> getAllPlasmidCells() {
+ HashSet<ItemStack> ret = new HashSet<>();
+ for (BioData dna : BioData.BIO_DATA_ARRAY_LIST) {
+ ret.add(BioItemList.getPlasmidCell(BioPlasmid.convertDataToPlasmid(dna)));
+ }
+ return ret;
+ }
+
+ public static ItemStack getPetriDish(BioCulture Culture) {
+ if (Culture == null) return new ItemStack(BioItemList.vanillaBioLabParts);
+ ItemStack ret = new ItemStack(BioItemList.vanillaBioLabParts);
+ ret.setTagCompound(BioCulture.getNBTTagFromCulture(Culture));
+ return ret;
+ }
+
+ public static ItemStack getDNASampleFlask(BioDNA dna) {
+ if (dna == null) return new ItemStack(BioItemList.vanillaBioLabParts, 1, 1);
+
+ ItemStack ret = new ItemStack(BioItemList.vanillaBioLabParts, 1, 1);
+ ret.setTagCompound(BioData.getNBTTagFromBioData(dna));
+ return ret;
+ }
+
+ public static ItemStack getPlasmidCell(BioPlasmid plasmid) {
+ if (plasmid == null) return new ItemStack(BioItemList.vanillaBioLabParts, 1, 2);
+ ItemStack ret = new ItemStack(BioItemList.vanillaBioLabParts, 1, 2);
+ ret.setTagCompound(BioData.getNBTTagFromBioData(plasmid));
+ return ret;
+ }
+
+ /**
+ * 1 - Detergent Powder 2 - Agarose 3 - Incubation Module 4 - Plasma Membrane others are null
+ *
+ * @param selection see above
+ * @return the selected Item
+ */
+ public static ItemStack getOther(int selection) {
+ if (selection < 1 || selection > 4) return null;
+
+ return new ItemStack(BioItemList.vanillaBioLabParts, 1, 2 + selection);
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/BioLabLoader.java b/src/main/java/bartworks/common/loaders/BioLabLoader.java
new file mode 100644
index 0000000000..4a625ea33c
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/BioLabLoader.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
+ * conditions: The above copyright notice and this permission notice shall be included in all copies or substantial
+ * portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+package bartworks.common.loaders;
+
+public class BioLabLoader {
+
+ public static void run() {
+ FluidLoader.run();
+ BioItemList.registerBioItems();
+ BioRecipeLoader.run();
+ }
+}
diff --git a/src/main/java/bartworks/common/loaders/BioRecipeLoader.java b/src/main/java/bartworks/common/loaders/BioRecipeLoader.java
new file mode 100644
index 0000000000..77ae6b8c2c
--- /dev/null
+++ b/src/main/java/bartworks/common/loaders/BioRecipeLoader.java
@@ -0,0 +1,211 @@
+/*
+ * Copyright (c) 2018-2020 bartimaeusnek Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
+ * conditions: The above copyright notice and this permission notice shall be included in all copies or substantial
+ * portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+package bartworks.common.loaders;
+
+import static bartworks.API.recipe.BartWorksRecipeMaps.bacterialVatRecipes;
+import static bartworks.API.recipe.BartWorksRecipeMaps.bioLabRecipes;
+import static gregtech.api.enums.Mods.CropsPlusPlus;
+import static gregtech.api.util.GTRecipeBuilder.MINUTES;
+import static gregtech.api.util.GTRecipeBuilder.SECONDS;
+import static gregtech.api.util.GTRecipeBuilder.TICKS;
+import static gregtech.api.util.GTRecipeConstants.SIEVERTS;
+
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+import gregtech.api.enums.GTValues;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.TierEU;
+import gregtech.api.recipe.RecipeMaps;
+import gregtech.api.util.GTOreDictUnificator;
+import gregtech.api.util.GTUtility;
+
+public class BioRecipeLoader {
+
+ public static void run() {
+ registerWaterBasedBioLabIncubations();
+ registerBacterialVatRecipes();
+ }
+
+ public static void registerWaterBasedBioLabIncubations() {
+ FluidStack[] easyFluids = { Materials.Water.getFluid(1000L),
+ FluidRegistry.getFluidStack("ic2distilledwater", 1000) };
+ for (FluidStack fluidStack : easyFluids) {
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(BioItemList.getPetriDish(null), new ItemStack(Items.rotten_flesh))
+ .itemOutputs(BioItemList.getPetriDish(BioCultureLoader.rottenFleshBacteria))
+ .outputChances(33_00)
+ .fluidInputs(fluidStack)
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(bioLabRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(BioItemList.getPetriDish(null), new ItemStack(Items.fermented_spider_eye))
+ .itemOutputs(BioItemList.getPetriDish(BioCultureLoader.eColi))
+ .outputChances(45_00)
+ .fluidInputs(fluidStack)
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(bioLabRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(BioItemList.getPetriDish(null), ItemList.Food_Dough.get(1L))
+ .itemOutputs(BioItemList.getPetriDish(BioCultureLoader.CommonYeast))
+ .outputChances(75_00)
+ .fluidInputs(fluidStack)
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(bioLabRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(BioItemList.getPetriDish(null), ItemList.Food_Dough_Sugar.get(1L))
+ .itemOutputs(BioItemList.getPetriDish(BioCultureLoader.WhineYeast))
+ .outputChances(25_00)
+ .fluidInputs(fluidStack)
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(bioLabRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(BioItemList.getPetriDish(null), ItemList.Bottle_Wine.get(1L))
+ .itemOutputs(BioItemList.getPetriDish(BioCultureLoader.WhineYeast))
+ .outputChances(33_00)
+ .fluidInputs(fluidStack)
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(bioLabRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(BioItemList.getPetriDish(null), ItemList.Bottle_Beer.get(1L))
+ .itemOutputs(BioItemList.getPetriDish(BioCultureLoader.BeerYeast))
+ .outputChances(25_00)
+ .fluidInputs(fluidStack)
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(bioLabRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(BioItemList.getPetriDish(null), ItemList.Bottle_Dark_Beer.get(1L))
+ .itemOutputs(BioItemList.getPetriDish(BioCultureLoader.BeerYeast))
+ .outputChances(33_00)
+ .fluidInputs(fluidStack)
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_HV)
+ .addTo(bioLabRecipes);
+
+ GTValues.RA.stdBuilder()
+ .itemInputs(BioItemList.getPetriDish(null), new ItemStack(Blocks.dirt))
+ .itemOutputs(BioItemList.getPetriDish(BioCultureLoader.anaerobicOil))
+ .outputChances(100)
+ .fluidInputs(fluidStack)
+ .duration(1 * MINUTES + 15 * SECONDS)
+ .eut(TierEU.RECIPE_EV)
+ .addTo(bioLabRecipes);
+ }
+ }
+