diff --git a/gradle.properties b/gradle.properties index 3f874bc4..aa67fcb2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,7 @@ modId = gregtechfoodoption modGroup = gregtechfoodoption -modVersion = 1.11.3 +modVersion = 1.11.4 # The name of your jar when you produce builds, not including any versioning info modArchivesBaseName = gregtechfoodoption diff --git a/src/main/java/gregtechfoodoption/CommonProxy.java b/src/main/java/gregtechfoodoption/CommonProxy.java index f8cd514b..c823f173 100644 --- a/src/main/java/gregtechfoodoption/CommonProxy.java +++ b/src/main/java/gregtechfoodoption/CommonProxy.java @@ -47,6 +47,8 @@ import java.util.Objects; import java.util.function.Function; +import static gregtech.api.unification.ore.OrePrefix.dust; +import static gregtechfoodoption.GTFOMaterialHandler.RecrystalizedLurdmanine; import static gregtechfoodoption.block.GTFOCrop.CROP_BLOCKS; @Mod.EventBusSubscriber(modid = GregTechFoodOption.MODID) @@ -77,9 +79,12 @@ public void onPostLoad() { LacingEntry.LACING_REGISTRY.register(1, "antischizo", new LacingEntry(GTFOMaterialHandler.LithiumCarbonate.getItemStack(), new PotionEffect(AntiSchizoPotion.INSTANCE, 1000, 0), "14hez98zk7/2/3/5/9/10/")); - LacingEntry.LACING_REGISTRY.register(2, "lungcancer", new LacingEntry(OreDictUnifier.get(OrePrefix.dust, Materials.Asbestos), + LacingEntry.LACING_REGISTRY.register(2, "lungcancer", new LacingEntry(OreDictUnifier.get(dust, Materials.Asbestos), new PotionEffect(LungCancerPotion.INSTANCE, 99999999, 0), "17aaqe0i1q/1/2/3/7/10/")); + LacingEntry.LACING_REGISTRY.register(3, "asphyxiation", new LacingEntry(OreDictUnifier.get(dust, RecrystalizedLurdmanine), + new PotionEffect(asphyxiationpotion.INSTANCE, 100, 0), + "fsdfdss/1/")); if (Loader.isModLoaded(GTFOValues.MODID_NUGT) && GTFOConfig.gtfoOtherFoodModConfig.enableGTFONutrition) { diff --git a/src/main/java/gregtechfoodoption/GTFOMaterialHandler.java b/src/main/java/gregtechfoodoption/GTFOMaterialHandler.java index be4e7fc1..bee69e79 100644 --- a/src/main/java/gregtechfoodoption/GTFOMaterialHandler.java +++ b/src/main/java/gregtechfoodoption/GTFOMaterialHandler.java @@ -5,11 +5,13 @@ import gregtech.api.fluids.FluidBuilder; import gregtech.api.fluids.attribute.FluidAttribute; import gregtech.api.fluids.attribute.FluidAttributes; +import gregtech.api.fluids.store.FluidStorageKeys; import gregtech.api.items.metaitem.MetaOreDictItem; import gregtech.api.unification.OreDictUnifier; import gregtech.api.unification.material.Material; import gregtech.api.unification.material.Materials; import gregtech.api.unification.material.info.MaterialIconSet; +import gregtech.api.unification.material.properties.FluidProperty; import gregtech.api.unification.material.properties.PropertyKey; import gregtech.api.unification.ore.OrePrefix; import gregtech.api.util.FluidTooltipUtil; @@ -21,8 +23,6 @@ import gregtechfoodoption.materials.LacingProperty; import it.unimi.dsi.fastutil.ints.Int2BooleanArrayMap; import it.unimi.dsi.fastutil.ints.Int2BooleanMap; -import it.unimi.dsi.fastutil.objects.Object2BooleanMap; -import it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap; import net.minecraft.util.ResourceLocation; import java.util.Collections; @@ -510,6 +510,235 @@ public class GTFOMaterialHandler { public static final Material EnergizedCoffee = fluidBuilderFood(21991, "energized_coffee", 368) .color(0x695934) .build(); + public static final Material DiethylEther = fluidBuilder(21993, "diethyl_ether") + .color(0xF1F2A2) + .build(); + public static final Material Bromobenzene = fluidBuilder(21994, "bromobenzene") + .color(0xF1F0F3) + .build(); + public static final Material Acetylene = fluidBuilder(21995, "acetylene") + .components(Carbon, 2, Hydrogen, 2) + .color(0xF1F7DD) + .build(); + public static final Material Formaldehyde = fluidBuilder(21996, "formaldehyde") + .components(Carbon, 1, Hydrogen, 2, Oxygen, 1) + .color(0x00B140) + .build(); + public static final Material I_IVButynediol = fluidBuilder(21997, "i_iv_butynediol") + .components(Carbon, 4, Hydrogen, 6, Oxygen, 2) + .color(0xF0FE8A) + .build(); + public static final Material I_IVButanediol = fluidBuilder(21998, "i_iv_butanediol") + .components(Carbon, 4, Hydrogen, 10, Oxygen, 2) + .color(0xF4FCFC) + .build(); + public static final Material Methylamine = fluidBuilder(22000, "methylamine") + .components(Carbon, 1, Nitrogen, 1, Hydrogen, 5) + .color(0xF0F5C2) + .build(); + public static final Material GammaButyrolactone = fluidBuilder(22002, "gamma_butyrolactone") + .color(0xF4FB91) + .build(); + public static final Material AmmoniumGammaButyrolactone = fluidBuilder(22003, "ammonium_gamma_butyrolactone") + .color(0xFAF29C) + .build(); + public static final Material CooledAmmoniumGammaButyrolactone = fluidBuilder(22004, "cooled_ammonium_gamma_butyrolactone") + .color(0xF9FCC2) + .build(); + public static final Material IIPyrrolidone = fluidBuilder(22005, "ii_pyrrolidone") + .color(0xF9F1B3) + .build(); + public static final Material AqueousIIPyrrolidone = fluidBuilder(22006, "aqueous_ii_pyrrolidone") + .color(0xF2F98E) + .build(); + public static final Material AcidicAqueousIIPyrrolidone = fluidBuilder(22007, "acidic_aqueous_ii_pyrrolidone") + .color(0xF6FDE2) + .build(); + public static final Material CooledAcidicAqueousIIPyrrolidone = fluidBuilder(22008, "cooled_acidic_aqueous_ii_pyrrolidone") + .color(0xF7FAF9) + .build(); + public static final Material IVAminoButyricAcid = fluidBuilder(22009, "iv_aminobutyric_acid") + .color(0xF4FAAA) + .build(); + public static final Material AcidicIVAminoButyricAcidSolution = fluidBuilder(22010, "acidic_iv_amino_butyric_acid_solution") + .color(0xFCFB8F) + .build(); + public static final Material IVPiperidone = fluidBuilder(22011, "iv_piperidone") + .color(0xFEFDCA) + .build(); + public static final Material BenzylChloride = fluidBuilder(22012, "benzyl_chloride") + .components(Carbon, 7, Hydrogen, 7, Chlorine, 1) + .color(0xF3F9BE) + .build(); + public static final Material Phenylacetonitrile = fluidBuilder(22013, "phenylacetonitrile") + .color(0xF0F0CC) + .build(); + public static final Material DissolvedPhenylacetonitrile = fluidBuilder(22014, "dissolved_phenylacetonitrile") + .color(0xF0F9E3) + .build(); + public static final Material Phenethylamine = fluidBuilder(22015, "phenethylamine") + .color(0xF3FEF1) + .build(); + public static final Material CrudeNPhenethylIVPiperidone = fluidBuilder(22016, "crude_n_phenethyl_iv_piperidone") + .color(0xF7F58B) + .build(); + public static final Material NPhenethylIVPiperidone = fluidBuilder(22017, "n_phenethyl_iv_piperidone") + .color(0xFDF283) + .build(); + public static final Material SuccinicAcid = fluidBuilder(22018, "succinic_acid") + .components(Carbon, 4, Hydrogen, 6, Oxygen, 2) + .color(0xFFF7A9) + .build(); + public static final Material NChlorosuccinimide = fluidBuilder(22019, "n_chlorosuccinimide") + .color(0xF9F7F2) + .build(); + public static final Material III_IVDichlorobenzophenone = fluidBuilder(22020, "iii_iv_dichlorobenzophenone") + .color(0xFAFED0) + .build(); + public static final Material AmmoniumSuccinate = fluidBuilder(22021, "ammonium_succinate") + .color(0xD3DAAC) + .build(); + public static final Material Succinimide = fluidBuilder(22022, "succinimide") + .color(0xC9D39C) + .build(); +//22023 + public static final Material ChlorinatedSuccinimide = fluidBuilder(22024, "chlorinated_succinimide") + .color(0xE3CDDE) + .build(); + public static final Material LurdmaninePrecursorBase = fluidBuilder(22025, "lurdmanine_precursor_base") + .color(0xFBEE9C) + .build(); + public static final Material LurdmaninePrecursorDimer = fluidBuilder(22026, "lurdmanine_precursor_dimer") + .color(0xFBEE9C) + .build(); + public static final Material NMethylIIPyrrolidinone = fluidBuilder(22027, "n_methyl_ii_pyrrolidinone") + .color(0xF9DAF9) + .build(); + public static final Material CrudeNMethylIIPyrrolidinone = fluidBuilder(22028, "crude_n_methyl_ii_pyrrolidinone") + .color(0xDEDDF1) + .build(); + public static final Material HotNMethylIIPyrrolidinone = fluidBuilder(22029, "hot_n_methyl_ii_pyrrolidinone") + .color(0xFDDBDF) + .build(); + public static final Material CooledNMethylIIPyrrolidinone = fluidBuilder(22030, "cooled_n_methyl_ii_pyrrolidinone") + .color(0xFDDBDF) + .build(); + public static final Material CrudeLurdmanine = fluidBuilder(22031, "crude_lurdmanine") + .color(0xFBEE9C) + .build(); + public static final Material UnrefinedLurdmanine = fluidBuilder(22032, "unrefined_lurdmanine") + .color(0xFBEE9C) + .build(); + public static final Material NPhenethylIVPiperidoneIntermediate = fluidBuilder(22033, "n_phenethyl_iv_piperidone_intermediate") + .color(0xE4EEDA) + .build(); + public static final Material EmulsifiedYolk = fluidBuilder(22034, "emulsified_yolk") + .color(0xFFD700) + .build(); + public static final Material yolkethanol = fluidBuilder(22035, "yolk_ethanol_solution") + .color(0x876c41) + .build(); + public static final Material lipidsolvent = fluidBuilder(22036, "lipid_solvent_solution") + .color(0x9c9488) + .build(); + public static final Material lipidsolution = fluidBuilder(22037, "lipid_solution") + .color(0x817a6f) + .build(); + public static final Material Cholesterol = fluidBuilder(22038, "cholesterol") + .color(0xa87e3c) + .build(); + public static final Material Ozone = fluidBuilder(22039, "ozone") + .color(0x3ca896) + .build(); + public static final Material Pregnenoloneintermediate = fluidBuilder(22040, "pregnenolone_intermediate") + .color(0x4b1cc9) + .build(); + public static final Material Pregnenolone = fluidBuilder(22041, "pregnenolone") + .color(0x4b1cc9) + .build(); + public static final Material hydrogenperoxide = fluidBuilder(22042, "hydrogen_peroxide") + .color(0x1cc9ad) + .components(Hydrogen, 2, Oxygen, 2) + .build(); + public static final Material anthraquinone = fluidBuilder(22043, "anthraquinone") + .color(0x878541) + .build(); + public static final Material anthrahydroquinone = fluidBuilder(22044, "anthrahydroquinone") + .color(0x878541) + .build(); + public static final Material Chromicacid = fluidBuilder(22045, "chromic_acid") + .color(0xf1f0da) + .build(); + public static final Material Progesterone = fluidBuilder(22046, "progesterone") + .color(0xecff00) + .build(); + public static final Material Androstenedioneintermediate = fluidBuilder(22047, "androstenedione_intermediate") + .color(0x10b1ac) + .build(); + public static final Material Androstenedione = fluidBuilder(22048, "androstenedione") + .color(0x10b1ac) + .build(); + public static final Material Testosterone = fluidBuilder(22049, "testosterone") + .color(0xb18a10) + .build(); + public static final Material heatedPhthalicAcid = fluidBuilder(22050, "heated_phthalic_Acid") + .color(0x88b110) + .build(); + public static final Material TrenboloneAcetate = fluidBuilder(22051, "trenbolone_acetate") + .color(0xaf1212) + .build(); + public static final Material TestosteroneEnoneIntermediate = fluidBuilder(22052, "testosterone_enone_intermediate") + .color(0x1012b1) + .build(); + public static final Material Dienedione = fluidBuilder(22053, "dienedione") + .color(0x000154) + .build(); + public static final Material DienoloneIntermediate = fluidBuilder(22054, "dienolone_intermediate") + .color(0x000154) + .build(); + public static final Material Trenbolone = fluidBuilder(22055, "trenbolone") + .color(0x921e1e) + .build(); + public static final Material PurifiedTrenbolone = fluidBuilder(22056, "purified_trenbolone") + .color(0xc94a4a) + .build(); + public static final Material Dimethylformamide = fluidBuilder(22057, "dimethylformamide") + .color(0x2d5400) + .build(); + public static final Material Methyltestosterone = fluidBuilder(22058, "methyl_testosterone") + .color(0x99cba3) + .build(); + public static final Material SuperdrolSolution = fluidBuilder(22059, "superdrol_solution") + .color(0xFF3300) + .build(); + public static final Material PurifiedSuperdrolSolution = fluidBuilder(22060, "purified_superdrol_solution") + .color(0xFF3300) + .build(); + public static final Material FormicAcid = fluidBuilder(22061, "formic_acid") + .color(0xc4cb99) + .build(); + public static final Material PotassiumCarbonate = fluidBuilder(22062, "potassium_carbonate") + .color(0xc399cb) + .build(); + public static final Material PurifiedDianabolSolution = fluidBuilder(22063, "purified_dianabol_solution") + .color(0x8b378e) + .build(); + public static final Material DianabolSolution = fluidBuilder(22064, "dianabol_solution") + .color(0x8b378e) + .build(); + + + + + + + + + + + + + public static final GTFOOredictItem.OreDictValueItem COFFEE_GROUNDS = SHAPED_ITEM.addOreDictItem(1017, "coffee_grounds", 0x1a1612, MaterialIconSet.DULL, OrePrefix.dust); @@ -625,11 +854,52 @@ public class GTFOMaterialHandler { public static final GTFOOredictItem.OreDictValueItem CRACKER_GRAHAM_UNGRADED = SHAPED_ITEM.addOreDictItem(1049, "cracker_graham_ungraded", 0xf0c25d, MaterialIconSet.DULL, OrePrefix.plate); public static final GTFOOredictItem.OreDictValueItem CHOCOLATE_LIQUOR_PRESSED = SHAPED_ITEM.addOreDictItem(1050, "chocolate_liquor_pressed", 0xa6795a, GTFOValues.Organic, OrePrefix.crushed); public static final GTFOOredictItem.OreDictValueItem CHOCOLATE_LIQUOR_DUTCHED_PRESSED = SHAPED_ITEM.addOreDictItem(1051, "chocolate_liquor_dutched_pressed", 0xab7550, GTFOValues.Organic, OrePrefix.crushed); - public static final Material Paracetamol = new Material.Builder(21900, gtfoId("paracetamol")).dust() .color(0x0045A0).iconSet(MaterialIconSet.SHINY) .components(Carbon, 8, Hydrogen, 9, Nitrogen, 1, Oxygen, 2) .build(); + public static final Material PhenylmagnesiumBromide = new Material.Builder(21901, gtfoId("phenylmagnesium_bromide")).dust() + .color(0x964B00).iconSet(MaterialIconSet.SHINY) + .components(Carbon, 6, Hydrogen, 5, Magnesium, 1, Bromine, 1) + .build(); + public static final Material Benzophenone = new Material.Builder(21902, gtfoId("benzophenone")).dust() + .color(0xFFFED0).iconSet(MaterialIconSet.SHINY) + .components(Carbon, 13, Hydrogen, 10, Oxygen, 1) + .build(); + public static final Material MaleicAnhydride = new Material.Builder(21903, gtfoId("maleic_anhydride")).dust() + .color(0xF2F2BB).iconSet(MaterialIconSet.SHINY) + .components(Carbon, 4, Hydrogen, 2, Oxygen, 3) + .build(); + public static final Material RecrystalizedLurdmanine = new Material.Builder(21904, gtfoId("recrystalized_lurdmanine")).dust() + .color(0xF4F5B2).iconSet(MaterialIconSet.SHINY) + .components(Carbon, 22, Hydrogen, 28, Oxygen, 1, Nitrogen, 2) + .build(); + public static final Material SodiumBorohydride = new Material.Builder(21905, gtfoId("sodium_borohydride")).dust() + .color(0xF7F4B9).iconSet(MaterialIconSet.SHINY) + .components(Sodium, 1, Hydrogen, 4, Boron, 1) + .build(); + public static final Material PhthalicAnhydride = new Material.Builder(21906, gtfoId("phthalic_anhydride")).dust() + .color(0x5d3983).iconSet(MaterialIconSet.SHINY) + .components(Carbon, 8, Hydrogen, 4, Oxygen, 3) + .build(); + public static final Material PotassiumHydroxide = new Material.Builder(21907, gtfoId("potassium_hydroxide")).dust() + .color(0x8b6f8c).iconSet(MaterialIconSet.SHINY) + .components(Potassium, 1, Hydrogen, 1, Oxygen, 1) + .build(); + public static final Material MethylIodide = new Material.Builder(21908, gtfoId("methyl_iodide")).dust() + .color(0x5e1360).iconSet(MaterialIconSet.SHINY) + .components(Carbon, 1, Hydrogen, 3, Iodine, 1) + .build(); + public static final Material Superdrol = new Material.Builder(21909, gtfoId("superdrol")).dust() + .color(0xFF3300).iconSet(MaterialIconSet.SHINY) + .components(Carbon, 20, Hydrogen, 30, Oxygen, 2) + .build(); + public static final Material Dianabol = new Material.Builder(21910, gtfoId("dianabol")).dust() + .color(0x8b378e).iconSet(MaterialIconSet.SHINY) + .components(Carbon, 20, Hydrogen, 30, Oxygen, 2) + .build(); + + public static void onMaterialsInit() { Materials.Iron.addFlags(GENERATE_FRAME); @@ -638,6 +908,8 @@ public static void onMaterialsInit() { Materials.StainlessSteel.addFlags(GENERATE_DENSE, GENERATE_SPRING_SMALL); Materials.Titanium.addFlags(GENERATE_DENSE); Materials.Aluminium.addFlags(GENERATE_DENSE); + Bromine.setProperty(PropertyKey.FLUID, new FluidProperty(FluidStorageKeys.LIQUID, new FluidBuilder())); + Iodine.setProperty(PropertyKey.FLUID, new FluidProperty(FluidStorageKeys.LIQUID, new FluidBuilder())); Water.setProperty(FERTILIZER, new FertilizerProperty(5)); Blood.setProperty(FERTILIZER, new FertilizerProperty(30)); diff --git a/src/main/java/gregtechfoodoption/client/GTFOClientHandler.java b/src/main/java/gregtechfoodoption/client/GTFOClientHandler.java index fbcaad2a..a2ab29bb 100644 --- a/src/main/java/gregtechfoodoption/client/GTFOClientHandler.java +++ b/src/main/java/gregtechfoodoption/client/GTFOClientHandler.java @@ -12,6 +12,7 @@ public class GTFOClientHandler { public static OrientedOverlayRenderer BAKING_OVEN_OVERLAY = new OrientedOverlayRenderer("machines/baking_oven"); public static OrientedOverlayRenderer CUISINE_ASSEMBLER_OVERLAY = new OrientedOverlayRenderer("machines/cuisine_assembler"); public static OrientedOverlayRenderer MICROWAVE_OVERLAY = new OrientedOverlayRenderer("machines/microwave"); + public static OrientedOverlayRenderer FREEZEDRYER_OVERLAY = new OrientedOverlayRenderer("machines/freezedryer"); public static OrientedOverlayRenderer MULTICOOKER_OVERLAY = new OrientedOverlayRenderer("machines/multicooker"); public static final OrientedOverlayRenderer MOB_AGE_SORTER_OVERLAY = new OrientedOverlayRenderer("machines/mob_age_sorter"); public static final OrientedOverlayRenderer MOB_EXTERMINATOR_OVERLAY = new OrientedOverlayRenderer("machines/mob_exterminator"); diff --git a/src/main/java/gregtechfoodoption/machines/GTFOTileEntities.java b/src/main/java/gregtechfoodoption/machines/GTFOTileEntities.java index 481f2aec..aa9c754a 100644 --- a/src/main/java/gregtechfoodoption/machines/GTFOTileEntities.java +++ b/src/main/java/gregtechfoodoption/machines/GTFOTileEntities.java @@ -27,6 +27,8 @@ public class GTFOTileEntities { public static GTFOSimpleMachineMetaTileEntity[] CUISINE_ASSEMBLER = new GTFOSimpleMachineMetaTileEntity[GTValues.V.length - 1]; public static MetaTileEntityMicrowave[] MICROWAVE = new MetaTileEntityMicrowave[GTValues.V.length - 1]; public static GTFOSimpleMachineMetaTileEntity[] MULTICOOKER = new GTFOSimpleMachineMetaTileEntity[GTValues.V.length - 1]; + public static MetaTileEntityFreezedryer[] FREEZEDRYER = new MetaTileEntityFreezedryer[GTValues.V.length - 1]; + public static final MetaTileEntityMobAgeSorter[] MOB_AGE_SORTER = new MetaTileEntityMobAgeSorter[4]; public static final MetaTileEntityMobExterminator[] MOB_EXTERMINATOR = new MetaTileEntityMobExterminator[4]; @@ -101,6 +103,13 @@ public static void init() { registerGTFOSimpleMetaTileEntity(MULTICOOKER, 8566, "multicooker", GTFORecipeMaps.MULTICOOKER_RECIPES, GTFOClientHandler.MULTICOOKER_OVERLAY, true, GTFOTileEntities::location, GTUtility.hvCappedTankSizeFunction); KITCHEN = registerMetaTileEntity(8581, new MetaTileEntityKitchen(location("kitchen"))); + + //Freeze Dryer, IDS 8582-8585 + FREEZEDRYER[1] = registerMetaTileEntity(8582, new MetaTileEntityFreezedryer(location("freezedryer.lv"), GTFORecipeMaps.MICROWAVE_RECIPES, GTFOClientHandler.FREEZEDRYER_OVERLAY, 1)); + FREEZEDRYER[2] = registerMetaTileEntity(8583, new MetaTileEntityFreezedryer(location("freezedryer.mv"), GTFORecipeMaps.MICROWAVE_RECIPES, GTFOClientHandler.FREEZEDRYER_OVERLAY, 2)); + FREEZEDRYER[3] = registerMetaTileEntity(8584, new MetaTileEntityFreezedryer(location("freezedryer.hv"), GTFORecipeMaps.MICROWAVE_RECIPES, GTFOClientHandler.FREEZEDRYER_OVERLAY, 3)); + FREEZEDRYER[4] = registerMetaTileEntity(8585, new MetaTileEntityFreezedryer(location("freezedryer.ev"), GTFORecipeMaps.MICROWAVE_RECIPES, GTFOClientHandler.FREEZEDRYER_OVERLAY, 4)); + } private static ResourceLocation location(String name) { diff --git a/src/main/java/gregtechfoodoption/machines/MetaTileEntityFreezedryer.java b/src/main/java/gregtechfoodoption/machines/MetaTileEntityFreezedryer.java new file mode 100644 index 00000000..1b82f192 --- /dev/null +++ b/src/main/java/gregtechfoodoption/machines/MetaTileEntityFreezedryer.java @@ -0,0 +1,61 @@ +package gregtechfoodoption.machines; + +import gregtech.api.GTValues; +import gregtech.api.capability.IEnergyContainer; +import gregtech.api.capability.impl.RecipeLogicEnergy; +import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; +import gregtech.api.recipes.RecipeMap; +import gregtech.api.unification.OreDictUnifier; +import gregtech.api.unification.material.info.MaterialFlags; +import gregtech.api.unification.material.properties.PropertyKey; +import gregtech.api.unification.stack.MaterialStack; +import gregtech.client.renderer.ICubeRenderer; +import gregtechfoodoption.client.GTFOClientHandler; +import gregtechfoodoption.item.GTFOSimpleMachineMetaTileEntity; +import net.minecraft.tileentity.TileEntityFurnace; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.SoundCategory; + +import java.util.function.Supplier; + +public class MetaTileEntityFreezedryer extends GTFOSimpleMachineMetaTileEntity { + public MetaTileEntityFreezedryer(ResourceLocation metaTileEntityId, RecipeMap recipeMap, ICubeRenderer renderer, int tier) { + super(metaTileEntityId, recipeMap, renderer, tier, true); + } + + @Override + public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { + return new MetaTileEntityFreezedryer(this.metaTileEntityId, this.workable.getRecipeMap(), this.renderer, this.getTier()); + } + + @Override + public void update() { + if (this.energyContainer.getEnergyStored() > GTValues.V[this.getTier()]) { + MaterialStack materialIn = OreDictUnifier.getMaterial(importItems.getStackInSlot(0)); + if (materialIn != null) { + if (materialIn.material.hasProperty(PropertyKey.INGOT) || materialIn.material.hasFlag(MaterialFlags.FLAMMABLE) || materialIn.material.hasFlag(MaterialFlags.EXPLOSIVE)) { + this.doExplosion(this.getTier() * 4); + return; + } + } + if (TileEntityFurnace.getItemBurnTime(importItems.getStackInSlot(0)) > 0) { + this.doExplosion(this.getTier() * 4); + return; + } + } + super.update(); + } + + protected RecipeLogicEnergy createWorkable(RecipeMap recipeMap) { + return new RecipeLogicMicrowave(this, recipeMap, () -> this.energyContainer); + } + + public class RecipeLogicMicrowave extends RecipeLogicEnergy { + public RecipeLogicMicrowave(MetaTileEntity tileEntity, RecipeMap recipeMap, Supplier energyContainer) { + super(tileEntity, recipeMap, energyContainer); + } + + + } +} \ No newline at end of file diff --git a/src/main/java/gregtechfoodoption/potion/GTFOPotions.java b/src/main/java/gregtechfoodoption/potion/GTFOPotions.java index f0b3cd95..6adb9c83 100644 --- a/src/main/java/gregtechfoodoption/potion/GTFOPotions.java +++ b/src/main/java/gregtechfoodoption/potion/GTFOPotions.java @@ -26,6 +26,7 @@ public static void initPotionInstances() new PotionLengthenerPotion(); new AntiSchizoPotion(); new LungCancerPotion(); + new asphyxiationpotion(); new EnhancedChorusPotion(); } diff --git a/src/main/java/gregtechfoodoption/potion/asphyxiationpotion.java b/src/main/java/gregtechfoodoption/potion/asphyxiationpotion.java new file mode 100644 index 00000000..7e3ceda7 --- /dev/null +++ b/src/main/java/gregtechfoodoption/potion/asphyxiationpotion.java @@ -0,0 +1,59 @@ +package gregtechfoodoption.potion; + +import gregtechfoodoption.utils.GTFODamageSources; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.MobEffects; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.text.TextComponentTranslation; + +import java.util.Collections; +import java.util.List; + +public class asphyxiationpotion extends GTFOPotion { + public static final String TAG_NAME = "gregtechfoodoption - asphyxiation"; + public static asphyxiationpotion INSTANCE = null; + public asphyxiationpotion() { + super("asphyxiation", true, 0xffffff, 0); + INSTANCE = this; + } + + @Override + public boolean isReady(int duration, int amplifier) { + return true; + } + + @Override + public void performEffect(EntityLivingBase entity, int amplifier) { + int phase = entity.getActivePotionEffect(this).getDuration(); + + if (phase == 80) { + if (entity.world.isRemote) + entity.sendMessage(new TextComponentTranslation("gregtechfoodoption.asphyxiation.1")); + entity.addPotionEffect(new PotionEffect(MobEffects.NAUSEA, 1000, 9)); + entity.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, 1000, 9)); + entity.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, 1000, 9)); + } else if (phase == 20) { + entity.addPotionEffect(new PotionEffect(MobEffects.BLINDNESS, 1000, 0)); + } else if (phase < 80 && phase % 5 == 0) { + entity.attackEntityFrom(GTFODamageSources.ASPHYXIATION, (float) Math.pow((double) (200 - phase) / 80, 2)); + entity.hurtResistantTime = 0; + //the dmg calc is subject to change + } + } + + @Override + protected boolean canRender() { + return false; + } + + @Override + public boolean shouldRender(PotionEffect effect) { + return false; + } + + @Override + public List getCurativeItems() { + return Collections.emptyList(); // Nothing :) + } +} diff --git a/src/main/java/gregtechfoodoption/recipe/GTFORecipeAddition.java b/src/main/java/gregtechfoodoption/recipe/GTFORecipeAddition.java index ed70aa20..fa5e9f44 100644 --- a/src/main/java/gregtechfoodoption/recipe/GTFORecipeAddition.java +++ b/src/main/java/gregtechfoodoption/recipe/GTFORecipeAddition.java @@ -39,7 +39,11 @@ public static void init() { RussianChain.init(); ChorusChain.init(); SorbetChain.init(); - + LurdmanineChain.init(); + Cholesterolchain.init(); + Testosteronechain.init(); + Trenchain.init(); + Superdrolchain.init(); if (Loader.isModLoaded(GTFOValues.MODID_GCYS)) { PopcornChain.init(); MineralWaterChain.init(); diff --git a/src/main/java/gregtechfoodoption/recipe/chain/CapletChain.java b/src/main/java/gregtechfoodoption/recipe/chain/CapletChain.java index b866de1f..2b2ae613 100644 --- a/src/main/java/gregtechfoodoption/recipe/chain/CapletChain.java +++ b/src/main/java/gregtechfoodoption/recipe/chain/CapletChain.java @@ -101,5 +101,14 @@ public static void init() { .inputs(CAPLET_CAP.getStackForm()) .outputs(VIBRANT_CAPLET.getStackForm()) .buildAndRegister(); + /* + // Fent + CANNER_RECIPES.recipeBuilder().EUt(30).duration(200) + .inputs(CAPLET_BODY.getStackForm()) + .input(dust, RecrystalizedLurdmanine, 1) + .inputs(CAPLET_CAP.getStackForm()) + .outputs(FENT_CAPLET.getStackForm()) + .buildAndRegister(); + */ } } \ No newline at end of file diff --git a/src/main/java/gregtechfoodoption/recipe/chain/Cholesterolchain.java b/src/main/java/gregtechfoodoption/recipe/chain/Cholesterolchain.java new file mode 100644 index 00000000..0430759f --- /dev/null +++ b/src/main/java/gregtechfoodoption/recipe/chain/Cholesterolchain.java @@ -0,0 +1,56 @@ +package gregtechfoodoption.recipe.chain; + +import com.cleanroommc.groovyscript.compat.vanilla.OreDict; +import crafttweaker.api.item.IItemStack; +import gregtech.api.recipes.ModHandler; +import gregtech.api.recipes.RecipeMaps; +import gregtech.api.unification.material.Materials; +import gregtech.common.blocks.BlockCleanroomCasing; +import gregtech.common.blocks.MetaBlocks; +import gregtech.common.items.MetaItems; +import gregtechfoodoption.GTFOMaterialHandler; +import gregtechfoodoption.item.GTFOMetaItem; +import gregtechfoodoption.recipe.GTFORecipeMaps; +import gregtechfoodoption.utils.GTFOUtils; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import static gregtech.api.recipes.RecipeMaps.*; +import static gregtech.api.recipes.RecipeMaps.MIXER_RECIPES; +import static gregtech.api.unification.material.Materials.*; +import static gregtech.api.unification.ore.OrePrefix.*; +import static gregtechfoodoption.GTFOMaterialHandler.*; +import static gregtechfoodoption.item.GTFOMetaItem.*; +import static gregtechfoodoption.recipe.GTFORecipeMaps.*; +import static gregtechfoodoption.recipe.GTFORecipeMaps.MULTICOOKER_RECIPES; + +public class Cholesterolchain { + public static void init() { + CENTRIFUGE_RECIPES.recipeBuilder().EUt(24).duration(100) + .fluidInputs(Yolk.getFluid(1000)) + .fluidOutputs(EmulsifiedYolk.getFluid(1000)) + .buildAndRegister(); + + MIXER_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(Ethanol.getFluid(1000)) + .fluidInputs(EmulsifiedYolk.getFluid(1000)) + .fluidOutputs(yolkethanol.getFluid(1000)) + .buildAndRegister(); + + CENTRIFUGE_RECIPES.recipeBuilder().EUt(24).duration(100) + .fluidInputs(yolkethanol.getFluid(1000)) + .fluidOutputs(lipidsolvent.getFluid(1000)) + .buildAndRegister(); + + DISTILLERY_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(lipidsolvent.getFluid(1000)) + .fluidOutputs(lipidsolution.getFluid(500)) + .buildAndRegister(); + + AUTOCLAVE_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(lipidsolution.getFluid(1000)) + .fluidOutputs(Cholesterol.getFluid(1000)) + .buildAndRegister(); + } +} + diff --git a/src/main/java/gregtechfoodoption/recipe/chain/Dianabolchain.java b/src/main/java/gregtechfoodoption/recipe/chain/Dianabolchain.java new file mode 100644 index 00000000..768a1f2e --- /dev/null +++ b/src/main/java/gregtechfoodoption/recipe/chain/Dianabolchain.java @@ -0,0 +1,30 @@ +package gregtechfoodoption.recipe.chain; + +import static gregtech.api.recipes.RecipeMaps.*; +import static gregtech.api.unification.material.Materials.*; +import static gregtech.api.unification.ore.OrePrefix.dust; +import static gregtechfoodoption.GTFOMaterialHandler.*; + +public class Dianabolchain { + public static void init() { + CHEMICAL_RECIPES.recipeBuilder().EUt(128).duration(3600) + .fluidInputs(Methyltestosterone.getFluid(1000)) + .notConsumable(dust, ChromiumTrioxide) + .notConsumable(dust, AceticAnhydride) + .fluidInputs(Acetone.getFluid(1000)) + .fluidOutputs(DianabolSolution.getFluid(1000)) + .buildAndRegister(); + + CENTRIFUGE_RECIPES.recipeBuilder().EUt(64).duration(1800) + .fluidInputs(DianabolSolution.getFluid(1000)) + .fluidOutputs(PurifiedDianabolSolution.getFluid(500)) + .buildAndRegister(); + + AUTOCLAVE_RECIPES.recipeBuilder().EUt(96).duration(3600) + .fluidInputs(PurifiedDianabolSolution.getFluid(1000)) + .output(dust, Dianabol, 10) + .buildAndRegister(); + + } +} + diff --git a/src/main/java/gregtechfoodoption/recipe/chain/LurdmanineChain.java b/src/main/java/gregtechfoodoption/recipe/chain/LurdmanineChain.java new file mode 100644 index 00000000..eab9e407 --- /dev/null +++ b/src/main/java/gregtechfoodoption/recipe/chain/LurdmanineChain.java @@ -0,0 +1,262 @@ +package gregtechfoodoption.recipe.chain; + +import gregtech.api.unification.ore.OrePrefix; + +import static gregtech.api.recipes.RecipeMaps.*; +import static gregtech.api.unification.material.Materials.*; +import static gregtech.api.unification.ore.OrePrefix.dust; +import static gregtech.api.unification.ore.OrePrefix.dustSmall; +import static gregtechfoodoption.GTFOMaterialHandler.*; + +public class LurdmanineChain { + public static void init() { + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .input(OrePrefix.dust, Aluminium) + .fluidInputs(Ethanol.getFluid(2000)) + .fluidOutputs(DiethylEther.getFluid(1000)) + .fluidOutputs(Water.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(Benzene.getFluid(1000)) + .fluidInputs(Bromine.getFluid(1000)) + .notConsumable(OrePrefix.dust, Aluminium) + .fluidOutputs(Bromobenzene.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .input(OrePrefix.dust, Magnesium) + .fluidInputs(Bromobenzene.getFluid(144)) + .fluidInputs(DiethylEther.getFluid(144)) + .output(dust, PhenylmagnesiumBromide, 5) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .input(dustSmall, PhenylmagnesiumBromide) + .fluidInputs(CarbonDioxide.getFluid(144)) + .output(dust, Benzophenone, 5) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .input(dust, Calcite, 5) + .fluidInputs(Water.getFluid(2000)) + .fluidOutputs(Acetylene.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(Acetylene.getFluid(144)) + .fluidInputs(Formaldehyde.getFluid(144)) + .fluidOutputs(I_IVButynediol.getFluid(288)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .notConsumable(OrePrefix.dust, Silver) + .fluidInputs(Methanol.getFluid(1000)) + .fluidInputs(Oxygen.getFluid(1000)) + .fluidOutputs(Formaldehyde.getFluid(1000)) + .fluidOutputs(Water.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(I_IVButynediol.getFluid(144)) + .fluidInputs(Water.getFluid(144)) + .fluidOutputs(I_IVButanediol.getFluid(288)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(I_IVButanediol.getFluid(144)) + .notConsumable(OrePrefix.wireGtSingle, Copper) + .fluidOutputs(GammaButyrolactone.getFluid(144)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(Ammonia.getFluid(144)) + .fluidInputs(Methanol.getFluid(144)) + .notConsumable(dust, SiliconDioxide) + .fluidOutputs(Methylamine.getFluid(144)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(SaltWater.getFluid(12000)) + .fluidInputs(Chlorine.getFluid(12000)) + .notConsumable(SulfuricAcid.getFluid(1000)) + .fluidOutputs(Bromine.getFluid(1000)) + .fluidOutputs(Chlorine.getFluid(12000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(SaltWater.getFluid(1000)) + .fluidInputs(Chlorine.getFluid(12000)) + .notConsumable(SulfuricAcid.getFluid(1000)) + .fluidOutputs(Bromine.getFluid(1000)) + .fluidOutputs(Chlorine.getFluid(12000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(I_IVButanediol.getFluid(1000)) + .fluidInputs(Chlorine.getFluid(1000)) + .fluidOutputs(GammaButyrolactone.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(GammaButyrolactone.getFluid(1000)) + .fluidInputs(Ammonia.getFluid(1000)) + .fluidOutputs(AmmoniumGammaButyrolactone.getFluid(1000)) + .buildAndRegister(); + VACUUM_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(AmmoniumGammaButyrolactone.getFluid(1000)) + .fluidOutputs(CooledAmmoniumGammaButyrolactone.getFluid(1000)) + .buildAndRegister(); + DISTILLATION_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(CooledAmmoniumGammaButyrolactone.getFluid(1000)) + .fluidOutputs(IIPyrrolidone.getFluid(100)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(IIPyrrolidone.getFluid(100)) + .fluidInputs(Water.getFluid(1000)) + .fluidOutputs(AqueousIIPyrrolidone.getFluid(100)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(AqueousIIPyrrolidone.getFluid(100)) + .fluidInputs(HydrochloricAcid.getFluid(1000)) + .fluidOutputs(AcidicAqueousIIPyrrolidone.getFluid(100)) + .buildAndRegister(); + VACUUM_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(AcidicAqueousIIPyrrolidone.getFluid(1000)) + .fluidOutputs(CooledAcidicAqueousIIPyrrolidone.getFluid(1000)) + .buildAndRegister(); + DISTILLERY_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(CooledAcidicAqueousIIPyrrolidone.getFluid(100)) + .fluidOutputs(IVAminoButyricAcid.getFluid(100)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(IVAminoButyricAcid.getFluid(100)) + .fluidInputs(SulfuricAcid.getFluid(1000)) + .fluidOutputs(AcidicIVAminoButyricAcidSolution.getFluid(100)) + .buildAndRegister(); + DISTILLERY_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(AcidicIVAminoButyricAcidSolution.getFluid(100)) + .fluidOutputs(IVPiperidone.getFluid(100)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(IVAminoButyricAcid.getFluid(100)) + .fluidInputs(SulfuricAcid.getFluid(1000)) + .fluidOutputs(AcidicIVAminoButyricAcidSolution.getFluid(100)) + .buildAndRegister(); + MIXER_RECIPES.recipeBuilder().EUt(8).duration(1000) + .inputs(SodiumCyanide.getItemStack(5)) + .fluidInputs(BenzylChloride.getFluid(1000)) + .fluidOutputs(Phenylacetonitrile.getFluid(100)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(Benzene.getFluid(1000)) + .fluidInputs(Chlorine.getFluid(1000)) + .fluidOutputs(BenzylChloride.getFluid(2000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(Phenylacetonitrile.getFluid(1000)) + .fluidInputs(DiethylEther.getFluid(1000)) + .fluidOutputs(DissolvedPhenylacetonitrile.getFluid(2000)) + .buildAndRegister(); + DISTILLERY_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(DissolvedPhenylacetonitrile.getFluid(1000)) + .fluidOutputs(Phenethylamine.getFluid(100)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(Phenethylamine.getFluid(1000)) + .fluidInputs(IVPiperidone.getFluid(1000)) + .fluidInputs(Ethanol.getFluid(1000)) + .fluidOutputs(CrudeNPhenethylIVPiperidone.getFluid(1000)) + .buildAndRegister(); + DISTILLERY_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(CrudeNPhenethylIVPiperidone.getFluid(1000)) + .fluidOutputs(NPhenethylIVPiperidone.getFluid(100)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(Phenethylamine.getFluid(1000)) + .fluidInputs(IVPiperidone.getFluid(1000)) + .fluidInputs(Ethanol.getFluid(1000)) + .fluidOutputs(NPhenethylIVPiperidoneIntermediate.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(NPhenethylIVPiperidoneIntermediate.getFluid(1000)) + .input(dust, SodiumBorohydride) + .fluidInputs(Ethanol.getFluid(1000)) + .fluidOutputs(NPhenethylIVPiperidone.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .input(dust, Sodium, 16) + .input(dust, Borax) + .fluidInputs(Hydrogen.getFluid(16000)) + .output(dust, SodiumBorohydride, 4) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(Butene.getFluid(1000)) + .fluidInputs(Oxygen.getFluid(1000)) + .output(dust, MaleicAnhydride, 5) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .input(dust, MaleicAnhydride) + .fluidInputs(Oxygen.getFluid(1000)) + .fluidOutputs(SuccinicAcid.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .input(dust, Benzophenone, 5) + .fluidInputs(NChlorosuccinimide.getFluid(1000)) + .notConsumable(Chloroform.getFluid(1000)) + .fluidOutputs(III_IVDichlorobenzophenone.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(SuccinicAcid.getFluid(1000)) + .fluidInputs(Ammonia.getFluid(1000)) + .fluidOutputs(AmmoniumSuccinate.getFluid(1000)) + .buildAndRegister(); + FLUID_HEATER_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(AmmoniumSuccinate.getFluid(1000)) + .fluidOutputs(Succinimide.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(Succinimide.getFluid(1000)) + .fluidInputs(Chlorine.getFluid(1000)) + .fluidOutputs(ChlorinatedSuccinimide.getFluid(1000)) + .fluidOutputs(DilutedHydrochloricAcid.getFluid(1000)) + .buildAndRegister(); + DISTILLERY_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(ChlorinatedSuccinimide.getFluid(1000)) + .fluidOutputs(NChlorosuccinimide.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(III_IVDichlorobenzophenone.getFluid(1000)) + .fluidInputs(NPhenethylIVPiperidone.getFluid(1000)) + .notConsumable(dust, Aluminium) + .fluidOutputs(LurdmaninePrecursorBase.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(LurdmaninePrecursorBase.getFluid(1000)) + .fluidInputs(NMethylIIPyrrolidinone.getFluid(1000)) + .notConsumable(dust, Aluminium) + .fluidOutputs(LurdmaninePrecursorDimer.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(GammaButyrolactone.getFluid(1000)) + .fluidInputs(Methylamine.getFluid(1000)) + .fluidOutputs(CrudeNMethylIIPyrrolidinone.getFluid(1000)) + .buildAndRegister(); + FLUID_HEATER_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(CrudeNMethylIIPyrrolidinone.getFluid(1000)) + .fluidOutputs(HotNMethylIIPyrrolidinone.getFluid(1000)) + .buildAndRegister(); + VACUUM_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(HotNMethylIIPyrrolidinone.getFluid(1000)) + .fluidOutputs(CooledNMethylIIPyrrolidinone.getFluid(100)) + .buildAndRegister(); + DISTILLATION_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(CooledNMethylIIPyrrolidinone.getFluid(1000)) + .fluidOutputs(NMethylIIPyrrolidinone.getFluid(100)) + .fluidOutputs(Methylamine.getFluid(400)) + .fluidOutputs(Ammonia.getFluid(400)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(LurdmaninePrecursorDimer.getFluid(1000)) + .fluidInputs(Chloroform.getFluid(100)) + .fluidOutputs(CrudeLurdmanine.getFluid(1000)) + .buildAndRegister(); + VACUUM_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(CrudeLurdmanine.getFluid(1000)) + .fluidOutputs(UnrefinedLurdmanine.getFluid(100)) + .buildAndRegister(); + AUTOCLAVE_RECIPES.recipeBuilder().EUt(8).duration(1000) + .fluidInputs(UnrefinedLurdmanine.getFluid(1000)) + .output(dust, RecrystalizedLurdmanine, 10) + .buildAndRegister(); + + + } +} \ No newline at end of file diff --git a/src/main/java/gregtechfoodoption/recipe/chain/Superdrolchain.java b/src/main/java/gregtechfoodoption/recipe/chain/Superdrolchain.java new file mode 100644 index 00000000..0660e641 --- /dev/null +++ b/src/main/java/gregtechfoodoption/recipe/chain/Superdrolchain.java @@ -0,0 +1,67 @@ +package gregtechfoodoption.recipe.chain; + +import static gregtech.api.recipes.RecipeMaps.*; +import static gregtech.api.unification.material.Materials.*; +import static gregtech.api.unification.ore.OrePrefix.dust; +import static gregtechfoodoption.GTFOMaterialHandler.*; + +public class Superdrolchain { + public static void init() { + CHEMICAL_RECIPES.recipeBuilder().EUt(64).duration(2400) + .fluidInputs(Testosterone.getFluid(1000)) + .input(dust, MethylIodide) + .fluidInputs(PotassiumCarbonate.getFluid(1000)) + .fluidInputs(Dimethylformamide.getFluid(1000)) + .fluidOutputs(Methyltestosterone.getFluid(1000)) + .buildAndRegister(); + + CHEMICAL_RECIPES.recipeBuilder().EUt(128).duration(3600) + .fluidInputs(Methyltestosterone.getFluid(1000)) + .notConsumable(dust, ChromiumTrioxide) + .notConsumable(SulfuricAcid.getFluid(1000)) + .fluidInputs(Acetone.getFluid(1000)) + .fluidOutputs(SuperdrolSolution.getFluid(1000)) + .buildAndRegister(); + + CENTRIFUGE_RECIPES.recipeBuilder().EUt(64).duration(1800) + .fluidInputs(SuperdrolSolution.getFluid(1000)) + .fluidOutputs(PurifiedSuperdrolSolution.getFluid(500)) + .buildAndRegister(); + + AUTOCLAVE_RECIPES.recipeBuilder().EUt(96).duration(3600) + .fluidInputs(PurifiedSuperdrolSolution.getFluid(1000)) + .output(dust, Superdrol, 10) + .buildAndRegister(); + + CHEMICAL_RECIPES.recipeBuilder().EUt(128).duration(3600) + .fluidInputs(Methanol.getFluid(1000)) + .fluidInputs(CarbonDioxide.getFluid(1000)) + .notConsumable(dust, Silver) + .fluidOutputs(FormicAcid.getFluid(1000)) + .fluidOutputs(Water.getFluid(1000)) + .buildAndRegister(); + + CHEMICAL_RECIPES.recipeBuilder().EUt(128).duration(3600) + .fluidInputs(Dimethylamine.getFluid(1000)) + .fluidInputs(FormicAcid.getFluid(1000)) + .input(dust, Zinc, 1000) + .fluidOutputs(Dimethylformamide.getFluid(1000)) + .buildAndRegister(); + + CHEMICAL_RECIPES.recipeBuilder().EUt(64).duration(1800) + .input(dust, PotassiumHydroxide) + .fluidInputs(CarbonDioxide.getFluid(1000)) + .fluidOutputs(PotassiumCarbonate.getFluid(1000)) + .fluidOutputs(Water.getFluid(1000)) + .buildAndRegister(); + + CHEMICAL_RECIPES.recipeBuilder().EUt(128).duration(3600) + .fluidInputs(Methanol.getFluid(1000)) + .fluidInputs(Iodine.getFluid(1000)) + .notConsumable(dust, SulfurDioxide, 1000) + .output(dust, MethylIodide) + .buildAndRegister(); + + } +} + diff --git a/src/main/java/gregtechfoodoption/recipe/chain/Testosteronechain.java b/src/main/java/gregtechfoodoption/recipe/chain/Testosteronechain.java new file mode 100644 index 00000000..2def9196 --- /dev/null +++ b/src/main/java/gregtechfoodoption/recipe/chain/Testosteronechain.java @@ -0,0 +1,79 @@ +package gregtechfoodoption.recipe.chain; + +import static gregtech.api.recipes.RecipeMaps.*; +import static gregtech.api.unification.material.Materials.*; +import static gregtech.api.unification.ore.OrePrefix.dust; +import static gregtechfoodoption.GTFOMaterialHandler.*; + +public class Testosteronechain { + public static void init() { + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(Cholesterol.getFluid(1000)) + .fluidInputs(Ozone.getFluid(1000)) + .fluidOutputs(Pregnenoloneintermediate.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(Pregnenoloneintermediate.getFluid(1000)) + .fluidInputs(hydrogenperoxide.getFluid(1000)) + .fluidOutputs(Pregnenolone.getFluid(1000)) + .buildAndRegister(); + FLUID_HEATER_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(PhthalicAcid.getFluid(1000)) + .fluidOutputs(heatedPhthalicAcid.getFluid(1000)) + .buildAndRegister(); + AUTOCLAVE_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(heatedPhthalicAcid.getFluid(1000)) + .output(dust, PhthalicAnhydride, 10) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(Benzene.getFluid(1000)) + .input(dust, PhthalicAnhydride) + .notConsumable(dust, Aluminium) + .fluidOutputs(anthraquinone.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(anthraquinone.getFluid(1000)) + .fluidInputs(Hydrogen.getFluid(2000)) + .fluidOutputs(anthrahydroquinone.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(anthrahydroquinone.getFluid(1000)) + .fluidInputs(Oxygen.getFluid(2000)) + .fluidOutputs(anthraquinone.getFluid(1000)) + .fluidOutputs(hydrogenperoxide.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(Water.getFluid(1000)) + .input(dust, ChromiumTrioxide) + .fluidOutputs(Chromicacid.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(Chromicacid.getFluid(1000)) + .fluidInputs(Pregnenolone.getFluid(1000)) + .fluidOutputs(Progesterone.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(300) + .input(dust, ChromiumTrioxide) + .fluidInputs(Progesterone.getFluid(1000)) + .fluidOutputs(Androstenedioneintermediate.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(300) + .fluidInputs(Androstenedioneintermediate.getFluid(1000)) + .fluidInputs(HydrochloricAcid.getFluid(1000)) + .fluidOutputs(Androstenedione.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(300) + .input(dust, SodiumBorohydride) + .fluidInputs(Androstenedione.getFluid(1000)) + .fluidOutputs(Testosterone.getFluid(1000)) + .buildAndRegister(); + CHEMICAL_RECIPES.recipeBuilder().EUt(8).duration(300) + .input(dust, AceticAnhydride) + .fluidInputs(Androstenedione.getFluid(1000)) + .fluidOutputs(Testosterone.getFluid(1000)) + .buildAndRegister(); + + + } +} + diff --git a/src/main/java/gregtechfoodoption/recipe/chain/Trenchain.java b/src/main/java/gregtechfoodoption/recipe/chain/Trenchain.java new file mode 100644 index 00000000..3c7ac832 --- /dev/null +++ b/src/main/java/gregtechfoodoption/recipe/chain/Trenchain.java @@ -0,0 +1,63 @@ +package gregtechfoodoption.recipe.chain; + +import static gregtech.api.recipes.RecipeMaps.*; +import static gregtech.api.unification.material.Materials.*; +import static gregtech.api.unification.ore.OrePrefix.dust; +import static gregtechfoodoption.GTFOMaterialHandler.*; + +public class Trenchain { + public static void init() { + CHEMICAL_RECIPES.recipeBuilder().EUt(24).duration(1200) + .fluidInputs(Testosterone.getFluid(1000)) + .fluidInputs(Oxygen.getFluid(2000)) + .notConsumable(dust, ChromiumTrioxide) + .notConsumable(dust, Sulfur) + .fluidOutputs(TestosteroneEnoneIntermediate.getFluid(1000)) + .fluidOutputs(Water.getFluid(1000)) + .buildAndRegister(); + + CHEMICAL_RECIPES.recipeBuilder().EUt(32).duration(1800) + .fluidInputs(TestosteroneEnoneIntermediate.getFluid(1000)) + .fluidInputs(hydrogenperoxide.getFluid(500)) + .notConsumable(dust, PotassiumHydroxide) + .fluidOutputs(Dienedione.getFluid(500)) + .fluidOutputs(Water.getFluid(1000)) + .buildAndRegister(); + + CHEMICAL_RECIPES.recipeBuilder().EUt(16).duration(900) + .fluidInputs(Dienedione.getFluid(850)) + .input(dust, SodiumHydroxide) + .fluidOutputs(DienoloneIntermediate.getFluid(800)) + .buildAndRegister(); + + CHEMICAL_RECIPES.recipeBuilder().EUt(32).duration(2400) + .fluidInputs(DienoloneIntermediate.getFluid(1000)) + .fluidInputs(Hydrogen.getFluid(3000)) + .notConsumable(dust, Palladium) + .notConsumable(dust, Carbon) + .fluidOutputs(Trenbolone.getFluid(750)) + .fluidOutputs(Water.getFluid(1000)) + .buildAndRegister(); + + CENTRIFUGE_RECIPES.recipeBuilder().EUt(24).duration(1500) + .fluidInputs(Trenbolone.getFluid(1500)) + .fluidOutputs(PurifiedTrenbolone.getFluid(1000)) + .buildAndRegister(); + + CHEMICAL_RECIPES.recipeBuilder().EUt(48).duration(3000) + .fluidInputs(PurifiedTrenbolone.getFluid(1000)) + .fluidInputs(AceticAnhydride.getFluid(1000)) + .notConsumable(SulfuricAcid.getFluid(1000)) + .fluidOutputs(TrenboloneAcetate.getFluid(100)) + .fluidOutputs(AceticAcid.getFluid(200)) + .buildAndRegister(); + + CHEMICAL_RECIPES.recipeBuilder().EUt(48).duration(3000) + .fluidInputs(Oxygen.getFluid(1000)) + .fluidInputs(Hydrogen.getFluid(1000)) + .input(dust, Potassium) + .output(dust, PotassiumHydroxide) + .buildAndRegister(); + } +} + diff --git a/src/main/java/gregtechfoodoption/utils/GTFODamageSources.java b/src/main/java/gregtechfoodoption/utils/GTFODamageSources.java index 312e357b..d9bdf49b 100644 --- a/src/main/java/gregtechfoodoption/utils/GTFODamageSources.java +++ b/src/main/java/gregtechfoodoption/utils/GTFODamageSources.java @@ -6,6 +6,7 @@ import net.minecraftforge.common.util.FakePlayer; public class GTFODamageSources { + public static final DamageSource ASPHYXIATION = new DamageSource("asphyxiation").setDamageBypassesArmor();; public static FakePlayer EXTERMINATOR; public static final DamageSource EXTRACTION = new DamageSource("extraction").setDamageBypassesArmor(); public static final DamageSource CYANIDE = new DamageSource("cyanide").setDamageBypassesArmor(); diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/freezedryer/overlay_front.png b/src/main/resources/assets/gregtech/textures/blocks/machines/freezedryer/overlay_front.png new file mode 100644 index 00000000..2c6bf11b Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/machines/freezedryer/overlay_front.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/freezedryer/overlay_front_active.png b/src/main/resources/assets/gregtech/textures/blocks/machines/freezedryer/overlay_front_active.png new file mode 100644 index 00000000..2ad2fd7f Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/machines/freezedryer/overlay_front_active.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/machines/freezedryer/overlay_front_active_emissive.png b/src/main/resources/assets/gregtech/textures/blocks/machines/freezedryer/overlay_front_active_emissive.png new file mode 100644 index 00000000..557039b3 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/machines/freezedryer/overlay_front_active_emissive.png differ diff --git a/src/main/resources/assets/gregtechfoodoption/lang/en_us.lang b/src/main/resources/assets/gregtechfoodoption/lang/en_us.lang index 06bea90f..40e8945f 100644 --- a/src/main/resources/assets/gregtechfoodoption/lang/en_us.lang +++ b/src/main/resources/assets/gregtechfoodoption/lang/en_us.lang @@ -434,7 +434,7 @@ gregtechfoodoption.machine.cuisine_assembler.uxv.name=High-Tech Cuisine Assemble gregtechfoodoption.machine.cuisine_assembler.opv.name=Legendary Cuisine Assembler gregtechfoodoption.machine.cuisine_assembler.lv.tooltip=Industrial Sandwich Maker gregtechfoodoption.machine.cuisine_assembler.mv.tooltip=Industrial Sandwich Maker -gregtechfoodoption.machine.cuisine_assembler.hv.tooltip=Industrial Sandwich Maker +gregtechfoodoption.machine.cuisine_assembler.hv.tooltip=Planetme weeps gregtechfoodoption.machine.cuisine_assembler.ev.tooltip=Industrial Sandwich Maker gregtechfoodoption.machine.cuisine_assembler.iv.tooltip=Chef-Bot 3000 gregtechfoodoption.machine.cuisine_assembler.luv.tooltip=Chef-Bot 5000 @@ -528,6 +528,10 @@ gregtechfoodoption.machine.microwave.uiv.tooltip=Insert Ingot for free Doge Coin gregtechfoodoption.machine.microwave.uxv.tooltip=Insert Ingot for free Doge Coin gregtechfoodoption.machine.microwave.opv.tooltip=Insert Ingot for free Doge Coin +gregtechfoodoption.machine.freezedryer.lv.name=Basic Freeze Dryer +gregtechfoodoption.machine.freezedryer.mv.name=Advanced Freeze Dryer +gregtechfoodoption.machine.freezedryer.hv.name=Advanced Freeze Dryer II +gregtechfoodoption.machine.freezedryer.ev.name=Advanced Freeze Dryer III recipemap.microwave.name=Microwave metaitem.food.mushroom_stew.hot.name=Hot Mushroom Stew @@ -689,6 +693,7 @@ death.attack.extermination=%s was exterminated death.attack.extraction=%s's internal organs were harvested death.attack.cyanide=%s smelled some almonds death.attack.lung_cancer=%s died of lung cancer +death.attack.asphyxiation=%s Was a victim of the opioid epidemic... gregtechfoodoption.machine.mob_exterminator.tooltip.warning=§cThis can easily kill You as well! # Farmer @@ -882,6 +887,7 @@ gregtechfoodoption.fluid.lacing=§2Can be used to lace items with 100 mB in the gregtechfoodoption.cyanide.1=§cYou feel really nauseous... gregtechfoodoption.cyanide.2=§cYou can't breathe anymore... gregtechfoodoption.cyanide.3=§cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +gregtechfoodoption.asphyxiation.1=§4You feel a shortage of Oxygen metaitem.food.gel_caplet.name=Gel Caplet metaitem.food.gel_caplet.tooltip=For performing Placebo-controlled Tests on Cyanide Poisoning metaitem.component.caplet_cap.name=Caplet Cap @@ -1112,6 +1118,7 @@ gregtechfoodoption.lacing.info.2=Lasts %s ticks gregtechfoodoption.potion.cyanidepoisoning=Cyanide Poisoning gregtechfoodoption.potion.antischizo=Schizophrenia Meds gregtechfoodoption.potion.lungcancer=Lung Cancer +gregtechfoodoption.potion.asphyxiation=Asphyxiation eating.output.name=Eating Recipe metaitem.component.pelmeni_uncooked.name=Uncooked Pelmeni @@ -1233,3 +1240,62 @@ gregtech.material.gtfo_antaf=Antaf gregtech.material.gtfo_vibrant_extract=Vibrant Extract gregtech.material.gtfo_apricot_extract=Apricot Extract gregtech.material.gtfo_grape_extract=Grape Extract + +// Lurdmanine materials :D +gregtech.material.recrystalized_lurdmanine=Lurdmanine +gregtech.material.maleic_anhydride=Maleic Anhydride +gregtech.material.benzophenone=BenzoPhenone +gregtech.material.phenylmagnesium_bromide=PhenylMagnesium Bromide +gregtech.material.sodium_borohydride=Sodium Borohydride +gregtech.material.gtfo_formaldehyde=Formaldehyde +gregtech.material.gtfo_ethylene_oxide=Ethylene Oxide +gregtech.material.gtfo_diethyl_ether=Diethyl Ether +gregtech.material.gtfo_bromobenzene=Bromobenzene +gregtech.material.gtfo_acetylene=Acetylene +gregtech.material.gtfo_crude_lurdmanine=Crude Lurdmanine +gregtech.material.gtfo_unrefined_lurdmanine=Unrefined Lurdmanine +gregtech.material.gtfo_lurdmanine_precursor_base=3-(4-Chlorobenzoyl)-4-(4-chlorophenyl)-1-phenethylpiperidin-4-ol +gregtech.material.gtfo_lurdmanine_precursor_dimer=(R)-N-(3-aminopropyl)-N-(1-(3-benzyl-7-chloro-4-oxo-4H-chromen-2-yl)-2-methylpropyl)-4-methylbenzamide hydrochloride +gregtech.material.gtfo_i_iv_butynediol=1,4-Butynediol +gregtech.material.gtfo_i_iv_butanediol=1,4-Butanediol +gregtech.material.gtfo_methylamine=Methylamine +gregtech.material.gtfo_n_phenethyl_iv_piperidone=N-Phenethyl-4-Piperidone +gregtech.material.gtfo_gamma_butyrolactone=γ-Butyrolactone +gregtech.material.gtfo_ammonium_gamma_butyrolactone=Ammonium γ=Butyrolactone +gregtech.material.gtfo_cooled_ammonium_gamma_butyrolactone=Cooled Ammonium γ-Butyrolactone +gregtech.material.gtfo_ii_pyrrolidone=2-Pyrrolidone +gregtech.material.gtfo_aqueous_ii_pyrrolidone=Aqueous 2-Pyrrolidone +gregtech.material.gtfo_acidic_aqueous_ii_pyrrolidone=Acidic Aqueous 2-Pyrrolidone +gregtech.material.gtfo_cooled_acidic_aqueous_ii_pyrrolidone=Cooled Acidic Aqueous 2-Pyrrolidone +gregtech.material.gtfo_iv_aminobutyric_acid=4-Aminobutyric Acid +gregtech.material.gtfo_acidic_iv_amino_butyric_acid_solution=Acidic 4-Aminobutyric Acid Solution +gregtech.material.gtfo_iv_piperidone=4-Piperidone +gregtech.material.gtfo_benzyl_chloride=Benzyl Chloride +gregtech.material.gtfo_phenylacetonitrile=Phenylacetonitrile +gregtech.material.gtfo_dissolved_phenylacetonitrile=Dissolved Phenylacetonitrile +gregtech.material.gtfo_phenethylamine=Phenethylamine +gregtech.material.gtfo_crude_n_phenethyl_iv_piperidone=Crude N-Phenethyl-4-piperidone +gregtech.material.gtfo_succinic_acid=Succinic Acid +gregtech.material.gtfo_n_chlorosuccinimide=N-Chlorosuccinimide +gregtech.material.gtfo_iii_iv_dichlorobenzophenone=3-4-Dichlorobenzophenone +gregtech.material.gtfo_ammonium_succinate=Ammonium Succinate +gregtech.material.gtfo_succinimide=Succinimide +gregtech.material.gtfo_chlorinated_succinimide=Chlorinated Succinimide +gregtech.material.gtfo_n_methyl_ii_pyrrolidinone=N-Methyl-2-Pyrrolidinone +gregtech.material.gtfo_crude_n_methyl_ii_pyrrolidinone=Crude N-Methyl-2-pyrrolidinone +gregtech.material.gtfo_hot_n_methyl_ii_pyrrolidinone=Hot N-Methyl-2-Pyrrolidinone +gregtech.material.gtfo_cooled_n_methyl_ii_pyrrolidinone=Cooled N-Methyl-2-Pyrrolidinone +gregtech.material.gtfo_n_phenethyl_iv_piperidone_intermediate=N-Phenethyl-4-piperidone Intermediate + +//Steroids +gregtech.material.gtfo_emulsified_yolk=Emulsified Yolk +gregtech.material.gtfo_yolk_ethanol_solution=Yolk Ethanol Solution +gregtech.material.gtfo_lipid_solvent_solution=Lipid Solvent Solution +gregtech.material.gtfo_lipid_solution=Lipid Solution +gregtech.material.gtfo_cholesterol=Cholesterol + + + + + +