forked from aurilisdev/Nuclear-Science
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds JEI support for Nuclear Science I also patched a small recipe bug
- Loading branch information
1 parent
eaf58b7
commit c9f7a56
Showing
18 changed files
with
1,233 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
gradlew build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
gradlew --refresh-dependencies&&gradlew eclipse --info --stacktrace |
190 changes: 190 additions & 0 deletions
190
src/main/java/nuclearscience/compatability/jei/NuclearSciencePlugin.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,190 @@ | ||
package nuclearscience.compatability.jei; | ||
|
||
import java.util.ArrayList; | ||
import java.util.HashSet; | ||
import java.util.Set; | ||
|
||
import org.apache.logging.log4j.LogManager; | ||
import org.apache.logging.log4j.Logger; | ||
|
||
import nuclearscience.compatability.jei.recipecategories.psuedorecipes.PsuedoGasCentrifugeRecipe; | ||
import nuclearscience.compatability.jei.recipecategories.psuedorecipes.NuclearSciencePsuedoRecipes; | ||
import electrodynamics.compatability.jei.recipecategories.psuedorecipes.PsuedoSolAndLiqToLiquidRecipe; | ||
import electrodynamics.compatability.jei.recipecategories.psuedorecipes.PsuedoSolAndLiqToSolidRecipe; | ||
import nuclearscience.compatability.jei.recipecategories.specificmachines.nuclearscience.ChemicalExtractorRecipeCategory; | ||
import nuclearscience.compatability.jei.recipecategories.specificmachines.nuclearscience.FissionReactorRecipeCategory; | ||
import nuclearscience.compatability.jei.recipecategories.specificmachines.nuclearscience.GasCentrifugeRecipeCategory; | ||
import nuclearscience.compatability.jei.recipecategories.specificmachines.nuclearscience.NuclearBoilerRecipeCategory; | ||
import nuclearscience.compatability.jei.recipecategories.specificmachines.nuclearscience.ParticleAcceleratorAntiMatterRecipeCategory; | ||
import nuclearscience.compatability.jei.recipecategories.specificmachines.nuclearscience.ParticleAcceleratorDarkMatterRecipeCategory; | ||
|
||
import electrodynamics.prefab.tile.processing.O2OProcessingRecipe; | ||
import mezz.jei.api.IModPlugin; | ||
import mezz.jei.api.JeiPlugin; | ||
import mezz.jei.api.constants.VanillaTypes; | ||
import mezz.jei.api.registration.IGuiHandlerRegistration; | ||
import mezz.jei.api.registration.IRecipeCatalystRegistration; | ||
import mezz.jei.api.registration.IRecipeCategoryRegistration; | ||
import mezz.jei.api.registration.IRecipeRegistration; | ||
import net.minecraft.item.ItemStack; | ||
import net.minecraft.util.ResourceLocation; | ||
import net.minecraftforge.fml.ModList; | ||
import nuclearscience.client.screen.ScreenNuclearBoiler; | ||
import nuclearscience.client.screen.ScreenChemicalExtractor; | ||
import nuclearscience.client.screen.ScreenGasCentrifuge; | ||
import nuclearscience.client.screen.ScreenParticleInjector; | ||
import nuclearscience.client.screen.ScreenReactorCore; | ||
import nuclearscience.References; | ||
|
||
@JeiPlugin | ||
public class NuclearSciencePlugin implements IModPlugin{ | ||
|
||
//public static final boolean isNuclearScienceLoaded = ModList.get().isLoaded("nuclearscience"); | ||
|
||
private static final Logger logger = LogManager.getLogger(References.ID); | ||
|
||
@Override | ||
public ResourceLocation getPluginUid() { | ||
return new ResourceLocation(nuclearscience.References.ID, "nucsci_jei_plugin"); | ||
} | ||
|
||
@Override | ||
public void registerRecipeCatalysts(IRecipeCatalystRegistration registration) | ||
{ | ||
//Gas Centrifuge | ||
registration.addRecipeCatalyst(new ItemStack(nuclearscience.DeferredRegisters.blockGasCentrifuge), | ||
GasCentrifugeRecipeCategory.UID); | ||
|
||
//Nuclear Boiler | ||
registration.addRecipeCatalyst(new ItemStack(nuclearscience.DeferredRegisters.blockChemicalBoiler), | ||
NuclearBoilerRecipeCategory.UID); | ||
|
||
//Chemical Extractor | ||
registration.addRecipeCatalyst(new ItemStack(nuclearscience.DeferredRegisters.blockChemicalExtractor), | ||
ChemicalExtractorRecipeCategory.UID); | ||
|
||
//Fisison Reactor | ||
|
||
registration.addRecipeCatalyst(new ItemStack(nuclearscience.DeferredRegisters.blockReactorCore), | ||
FissionReactorRecipeCategory.UID); | ||
|
||
//Anti Matter | ||
|
||
registration.addRecipeCatalyst(new ItemStack(nuclearscience.DeferredRegisters.blockParticleInjector), | ||
ParticleAcceleratorAntiMatterRecipeCategory.UID); | ||
|
||
//Dark Matter | ||
|
||
registration.addRecipeCatalyst(new ItemStack(nuclearscience.DeferredRegisters.blockParticleInjector), | ||
ParticleAcceleratorDarkMatterRecipeCategory.UID); | ||
} | ||
|
||
@Override | ||
public void registerRecipes(IRecipeRegistration registration) | ||
{ | ||
NuclearSciencePsuedoRecipes.addNuclearScienceRecipes(); | ||
|
||
//Gas Centrifuge | ||
Set<PsuedoGasCentrifugeRecipe> gasCentrifugeRecipes = new HashSet<>(NuclearSciencePsuedoRecipes.GAS_CENTRIFUGE_RECIPES); | ||
|
||
registration.addRecipes(gasCentrifugeRecipes, GasCentrifugeRecipeCategory.UID); | ||
|
||
//Nuclear Boiler | ||
Set<PsuedoSolAndLiqToLiquidRecipe> nuclearBoilerRecipes = new HashSet<>(NuclearSciencePsuedoRecipes.NUCLEAR_BOILER_RECIPES); | ||
|
||
registration.addRecipes(nuclearBoilerRecipes, NuclearBoilerRecipeCategory.UID); | ||
|
||
//Chemical Extractor | ||
Set<PsuedoSolAndLiqToSolidRecipe> chemicalExtractorRecipes = new HashSet<>(NuclearSciencePsuedoRecipes.CHEMICAL_EXTRACTOR_RECIPES); | ||
|
||
registration.addRecipes(chemicalExtractorRecipes, ChemicalExtractorRecipeCategory.UID); | ||
|
||
Set<O2OProcessingRecipe> fissionReactorRecipes = new HashSet<>(NuclearSciencePsuedoRecipes.FISSION_REACTOR_RECIPES); | ||
registration.addRecipes(fissionReactorRecipes, FissionReactorRecipeCategory.UID); | ||
|
||
Set<O2OProcessingRecipe> antiMatterRecipes = new HashSet<>(NuclearSciencePsuedoRecipes.ANTI_MATTER_RECIPES); | ||
registration.addRecipes(antiMatterRecipes, ParticleAcceleratorAntiMatterRecipeCategory.UID); | ||
|
||
Set<O2OProcessingRecipe> darkMatterRecipes = new HashSet<>(NuclearSciencePsuedoRecipes.DARK_MATTER_RECIPES); | ||
registration.addRecipes(darkMatterRecipes, ParticleAcceleratorDarkMatterRecipeCategory.UID); | ||
|
||
nuclearScienceInfoTabs(registration); | ||
} | ||
|
||
@Override | ||
public void registerCategories(IRecipeCategoryRegistration registration) | ||
{ | ||
//Gas Centrifuge | ||
registration.addRecipeCategories(new GasCentrifugeRecipeCategory(registration.getJeiHelpers().getGuiHelper())); | ||
|
||
//Nuclear Boiler | ||
registration.addRecipeCategories(new NuclearBoilerRecipeCategory(registration.getJeiHelpers().getGuiHelper())); | ||
|
||
//Chemical Extractor | ||
registration.addRecipeCategories(new ChemicalExtractorRecipeCategory(registration.getJeiHelpers().getGuiHelper())); | ||
|
||
//Fision Reactor | ||
registration.addRecipeCategories(new FissionReactorRecipeCategory(registration.getJeiHelpers().getGuiHelper())); | ||
|
||
//Anti Matter | ||
registration.addRecipeCategories(new ParticleAcceleratorAntiMatterRecipeCategory(registration.getJeiHelpers().getGuiHelper())); | ||
|
||
//Dark Matter | ||
registration.addRecipeCategories(new ParticleAcceleratorDarkMatterRecipeCategory(registration.getJeiHelpers().getGuiHelper())); | ||
} | ||
|
||
@Override | ||
public void registerGuiHandlers(IGuiHandlerRegistration registry) { | ||
int[] arrowLocation = {97,31,22,15}; | ||
|
||
//Nuclear Boiler | ||
|
||
registry.addRecipeClickArea(ScreenNuclearBoiler.class, arrowLocation[0], arrowLocation[1], arrowLocation[2], arrowLocation[3], | ||
NuclearBoilerRecipeCategory.UID); | ||
|
||
//Chemical Extractor | ||
registry.addRecipeClickArea(ScreenChemicalExtractor.class, arrowLocation[0], arrowLocation[1], arrowLocation[2], arrowLocation[3], | ||
ChemicalExtractorRecipeCategory.UID); | ||
|
||
//Gas Centrifuge | ||
registry.addRecipeClickArea(ScreenGasCentrifuge.class,91, 22, 32, 41, GasCentrifugeRecipeCategory.UID); | ||
|
||
//Fission Reactor | ||
registry.addRecipeClickArea(ScreenReactorCore.class,117, 43, 14, 13, FissionReactorRecipeCategory.UID); | ||
|
||
//Particle Accelerator | ||
registry.addRecipeClickArea(ScreenParticleInjector.class,102, 33, 28, 14, | ||
ParticleAcceleratorAntiMatterRecipeCategory.UID,ParticleAcceleratorDarkMatterRecipeCategory.UID); | ||
|
||
} | ||
|
||
|
||
private void nuclearScienceInfoTabs(IRecipeRegistration registration) { | ||
|
||
/* Machines currently with tabs: | ||
Fission Reactor Core | ||
Fusion Reactor Core | ||
Chemical Boiler | ||
Chemical Extractor | ||
Electromagnet | ||
Electromagnetic Booster | ||
Electromagnetic Switch | ||
Gas Centrifuge | ||
Particle Injector | ||
Quantum Capacitor | ||
Radioisotope Generator | ||
Turbine | ||
*/ | ||
ArrayList<ItemStack> nsMachines = NuclearSciencePsuedoRecipes.NUCLEAR_SCIENCE_MACHINES; | ||
String temp; | ||
|
||
for(ItemStack itemStack: nsMachines) { | ||
temp = itemStack.getItem().toString(); | ||
registration.addIngredientInfo(itemStack, VanillaTypes.ITEM, "info.jei.block." + temp); | ||
} | ||
|
||
} | ||
|
||
} |
133 changes: 133 additions & 0 deletions
133
...science/compatability/jei/recipecategories/psuedorecipes/NuclearSciencePsuedoRecipes.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
package nuclearscience.compatability.jei.recipecategories.psuedorecipes; | ||
|
||
import java.util.ArrayList; | ||
|
||
import electrodynamics.prefab.tile.processing.O2OProcessingRecipe; | ||
import nuclearscience.compatability.jei.recipecategories.psuedorecipes.PsuedoGasCentrifugeRecipe; | ||
import electrodynamics.compatability.jei.recipecategories.psuedorecipes.PsuedoRecipes; | ||
import electrodynamics.compatability.jei.recipecategories.psuedorecipes.PsuedoSolAndLiqToLiquidRecipe; | ||
import electrodynamics.compatability.jei.recipecategories.psuedorecipes.PsuedoSolAndLiqToSolidRecipe; | ||
import net.minecraft.fluid.Fluid; | ||
import net.minecraft.item.Item; | ||
import net.minecraft.item.ItemStack; | ||
import net.minecraftforge.fluids.FluidStack; | ||
|
||
public class NuclearSciencePsuedoRecipes { | ||
|
||
private static ArrayList<ArrayList<ItemStack>> NUCLEAR_SCIENCE_ITEMS = new ArrayList<ArrayList<ItemStack>>(); | ||
private static ArrayList<Fluid> NUCLEAR_SCIENCE_FLUIDS = new ArrayList<Fluid>(); | ||
public static ArrayList<ItemStack> NUCLEAR_SCIENCE_MACHINES = new ArrayList<ItemStack>(); | ||
|
||
public static ArrayList<PsuedoSolAndLiqToLiquidRecipe> NUCLEAR_BOILER_RECIPES = new ArrayList<PsuedoSolAndLiqToLiquidRecipe>(); | ||
public static ArrayList<PsuedoSolAndLiqToSolidRecipe> CHEMICAL_EXTRACTOR_RECIPES = new ArrayList<PsuedoSolAndLiqToSolidRecipe>(); | ||
public static ArrayList<PsuedoGasCentrifugeRecipe> GAS_CENTRIFUGE_RECIPES = new ArrayList<PsuedoGasCentrifugeRecipe>(); | ||
public static ArrayList<O2OProcessingRecipe> FISSION_REACTOR_RECIPES = new ArrayList<O2OProcessingRecipe>(); | ||
public static ArrayList<O2OProcessingRecipe> ANTI_MATTER_RECIPES = new ArrayList<O2OProcessingRecipe>(); | ||
public static ArrayList<O2OProcessingRecipe> DARK_MATTER_RECIPES = new ArrayList<O2OProcessingRecipe>(); | ||
|
||
public static void addNuclearScienceRecipes() { | ||
PsuedoRecipes.addElectrodynamicsMachines(); | ||
PsuedoRecipes.addElectrodynamicsFluids(); | ||
PsuedoRecipes.addElectrodynamicsItems(); | ||
|
||
addNuclearScienceMachines(); | ||
addNuclearScienceFluids(); | ||
addNuclearScienceItems(); | ||
|
||
/*Nuclear Boiler*/ | ||
|
||
//UF6 from Yellowcake | ||
NUCLEAR_BOILER_RECIPES.add(new PsuedoSolAndLiqToLiquidRecipe(NUCLEAR_SCIENCE_ITEMS.get(0).get(0),PsuedoRecipes.ELECTRODYNAMICS_ITEMS.get(3).get(1), | ||
new FluidStack(PsuedoRecipes.ELECTRODYNAMICS_FLUIDS.get(0),800), new FluidStack(NUCLEAR_SCIENCE_FLUIDS.get(0),2500), | ||
PsuedoSolAndLiqToLiquidRecipe.UHEXFLOUR)); | ||
|
||
//UF6 from U238 | ||
NUCLEAR_BOILER_RECIPES.add(new PsuedoSolAndLiqToLiquidRecipe(NUCLEAR_SCIENCE_ITEMS.get(0).get(1),PsuedoRecipes.ELECTRODYNAMICS_ITEMS.get(3).get(1), | ||
new FluidStack(PsuedoRecipes.ELECTRODYNAMICS_FLUIDS.get(0),1600), new FluidStack(NUCLEAR_SCIENCE_FLUIDS.get(0),2000), | ||
PsuedoSolAndLiqToLiquidRecipe.UHEXFLOUR)); | ||
|
||
/*Chemical Extractor*/ | ||
|
||
CHEMICAL_EXTRACTOR_RECIPES.add(new PsuedoSolAndLiqToSolidRecipe(PsuedoRecipes.ELECTRODYNAMICS_ITEMS.get(0).get(7), PsuedoRecipes.ELECTRODYNAMICS_ITEMS.get(3).get(1), | ||
new FluidStack(PsuedoRecipes.ELECTRODYNAMICS_FLUIDS.get(0),1600), NUCLEAR_SCIENCE_ITEMS.get(0).get(0))); | ||
|
||
CHEMICAL_EXTRACTOR_RECIPES.add(new PsuedoSolAndLiqToSolidRecipe(NUCLEAR_SCIENCE_ITEMS.get(1).get(0), PsuedoRecipes.ELECTRODYNAMICS_ITEMS.get(3).get(1), | ||
new FluidStack(PsuedoRecipes.ELECTRODYNAMICS_FLUIDS.get(0),4800), NUCLEAR_SCIENCE_ITEMS.get(1).get(1))); | ||
|
||
CHEMICAL_EXTRACTOR_RECIPES.add(new PsuedoSolAndLiqToSolidRecipe(NUCLEAR_SCIENCE_ITEMS.get(1).get(1), PsuedoRecipes.ELECTRODYNAMICS_ITEMS.get(3).get(1), | ||
new FluidStack(PsuedoRecipes.ELECTRODYNAMICS_FLUIDS.get(0),4800), NUCLEAR_SCIENCE_ITEMS.get(1).get(2))); | ||
|
||
/*Gas Centrifuge*/ | ||
|
||
GAS_CENTRIFUGE_RECIPES.add(new PsuedoGasCentrifugeRecipe(new FluidStack(NUCLEAR_SCIENCE_FLUIDS.get(0),1000), | ||
NUCLEAR_SCIENCE_ITEMS.get(0).get(2), NUCLEAR_SCIENCE_ITEMS.get(0).get(1))); | ||
|
||
/*Fision Reactor Enrichment*/ | ||
|
||
FISSION_REACTOR_RECIPES.add(new O2OProcessingRecipe(NUCLEAR_SCIENCE_ITEMS.get(1).get(2), NUCLEAR_SCIENCE_ITEMS.get(1).get(3))); | ||
|
||
/*Anit Matter Production*/ | ||
|
||
ANTI_MATTER_RECIPES.add(new O2OProcessingRecipe(NUCLEAR_SCIENCE_ITEMS.get(1).get(4),NUCLEAR_SCIENCE_ITEMS.get(1).get(5))); | ||
|
||
DARK_MATTER_RECIPES.add(new O2OProcessingRecipe(NUCLEAR_SCIENCE_ITEMS.get(1).get(4),NUCLEAR_SCIENCE_ITEMS.get(1).get(7))); | ||
} | ||
|
||
private static void addNuclearScienceMachines() { | ||
|
||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockReactorCore)); | ||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockFusionReactorCore)); | ||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockChemicalBoiler)); | ||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockChemicalExtractor)); | ||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockElectromagnet)); | ||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockElectromagneticBooster)); | ||
//NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(Items.ACACIA_BOAT)); | ||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockElectromagneticSwitch)); | ||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockGasCentrifuge)); | ||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockParticleInjector)); | ||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockQuantumCapacitor)); | ||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockRadioisotopeGenerator)); | ||
NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(nuclearscience.DeferredRegisters.blockTurbine)); | ||
//NUCLEAR_SCIENCE_MACHINES.add(new ItemStack(Items.ACACIA_BOAT)); | ||
|
||
} | ||
|
||
private static void addNuclearScienceFluids() { | ||
NUCLEAR_SCIENCE_FLUIDS.add(nuclearscience.DeferredRegisters.fluidUraniumHexafluoride); | ||
} | ||
|
||
private static void addNuclearScienceItems() { | ||
|
||
//Uranium and Derivatives : 0 | ||
Item[] uraniumMisc = {nuclearscience.DeferredRegisters.ITEM_YELLOWCAKE.get(), | ||
nuclearscience.DeferredRegisters.ITEM_URANIUM238.get(), | ||
nuclearscience.DeferredRegisters.ITEM_URANIUM235.get() | ||
}; | ||
|
||
NUCLEAR_SCIENCE_ITEMS.add(formItemStacks(uraniumMisc, 1)); | ||
|
||
//Cells : 1 | ||
Item[] cells = {nuclearscience.DeferredRegisters.ITEM_CELLEMPTY.get(), | ||
nuclearscience.DeferredRegisters.ITEM_CELLHEAVYWATER.get(), | ||
nuclearscience.DeferredRegisters.ITEM_CELLDEUTERIUM.get(), | ||
nuclearscience.DeferredRegisters.ITEM_CELLTRITIUM.get(), | ||
nuclearscience.DeferredRegisters.ITEM_CELLELECTROMAGNETIC.get(), | ||
nuclearscience.DeferredRegisters.ITEM_CELLANTIMATTERSMALL.get(), | ||
nuclearscience.DeferredRegisters.ITEM_CELLANTIMATTERLARGE.get(), | ||
nuclearscience.DeferredRegisters.ITEM_CELLDARKMATTER.get() | ||
}; | ||
|
||
NUCLEAR_SCIENCE_ITEMS.add(formItemStacks(cells, 1)); | ||
|
||
} | ||
|
||
private static ArrayList<ItemStack> formItemStacks(Item[] items, int countPerItemStack){ | ||
ArrayList<ItemStack> inputItems = new ArrayList<ItemStack>(); | ||
|
||
for(int i = 0; i < items.length;i++) { | ||
inputItems.add(new ItemStack(items[i])); | ||
inputItems.get(i).setCount(countPerItemStack); | ||
} | ||
return inputItems; | ||
} | ||
} |
Oops, something went wrong.