diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/common/Recipes.java | 72 | ||||
-rw-r--r-- | src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 13 |
2 files changed, 83 insertions, 2 deletions
diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index d4728bf4dd..202f6186a0 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -1,5 +1,7 @@ package common; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import cpw.mods.fml.common.Loader; @@ -10,6 +12,7 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import items.ErrorItem; import items.MetaItem_CraftingComponent; @@ -38,10 +41,24 @@ public class Recipes { registerRecipes_Nuclear(); //registerRecipes_ItemServer(); registerRecipes_Jars(); + registerRecipes_LSC(); KekzCore.LOGGER.info("Finished registering recipes"); } - + + private static void lapoCapacitorRecipeAdder(GT_Recipe.GT_Recipe_AssemblyLine baseRecipe, Materials boxMaterial, ItemStack result) { + final ArrayList<ItemStack> baseInputs = (ArrayList<ItemStack>) Arrays.asList(baseRecipe.mInputs); + if(baseInputs.size() <= 14){ + baseInputs.add(GT_OreDictUnificator.get(OrePrefixes.frameGt, boxMaterial, 4)); + baseInputs.add(GT_OreDictUnificator.get(OrePrefixes.screw, boxMaterial, 24)); + + GT_Values.RA.addAssemblylineRecipe(baseRecipe.mResearchItem, baseRecipe.mResearchTime, + Util.toItemStackArray(baseInputs), baseRecipe.mFluidInputs, result, + baseRecipe.mDuration * 2, baseRecipe.mEUt); + KekzCore.LOGGER.info("Successfully extended Lapotronic Battery recipe for Lapotronic Capacitor of tier " + result.getItemDamage()); + } + } + private static void registerRecipes_TFFT() { // Controller @@ -423,5 +440,56 @@ public class Recipes { ThaumcraftApi.addInfusionCraftingRecipe("THAUMIUMREINFORCEDJAR", new ItemStack(Blocks.jarThaumiumReinforced, 1), 5, aspects_jarthaumiumreinforced, ItemApi.getBlock("blockJar", 0), recipe_jarthaumiumreinforced)); } - + + private static void registerRecipes_LSC(){ + + // Controller + final ItemStack filledLapoCrystal = GT_ModHandler.getIC2Item("itemBatLamaCrystal", 1, 1); + filledLapoCrystal.getTagCompound().setInteger("charge", 10000000); + final Object[] lsc_recipe = { + "LPL", "CBC", "LPL", + 'L', filledLapoCrystal, + 'P', ItemList.Circuit_Chip_PIC.get(1L), + 'C', OrePrefixes.circuit.get(Materials.Master) + 'B', new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 0), + }; + GT_ModHandler.addCraftingRecipe(KekzCore.lsc.getStackForm(1), lsc_recipe); + + KekzCore.LOGGER.info("Reading Assembly Line recipes from GregTech recipe map"); + + for(GT_Recipe.GT_Recipe_AssemblyLine ar : GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes) { + if(GT_Utility.areStacksEqual(ar.mOutput, ItemList.Energy_LapotronicOrb2.get(1L))) { + // LuV Lapo Orb + lapoCapacitorRecipeAdder(ar, Materials.Osmiridium, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2)); + } else if(GT_Utility.areStacksEqual(ar.mOutput, ItemList.Energy_Module.get(1L))) { + // ZPM Lapo Orb + lapoCapacitorRecipeAdder(ar, Materials.NaquadahAlloy, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3)); + } else if(GT_Utility.areStacksEqual(ar.mOutput, ItemList.Energy_Cluster.get(1L))) { + // UV Lapo Orb + lapoCapacitorRecipeAdder(ar, Materials.Neutronium, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4)); + } else if(GT_Utility.areStacksEqual(ar.mOutput, ItemList..get(1L))) { + // Ultimate Battery + // TODO change material to Cosmic Neutronium + lapoCapacitorRecipeAdder(ar, Materials.Neutronium, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5)); + } else if(GT_Utility.areStacksEqual(ar.mOutput, ItemList.Energy_LapotronicOrb2.get(1L))) { + // Really Ultimate Battery + // TODO change material to Infinity + lapoCapacitorRecipeAdder(ar, Materials.Neutronium, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6)); + } + } + + // Blocks + final Object[] lcIV_recipe = { + "SLS", "LOL", "SLS", + 'S', OrePrefixes.screw.get(Materials.Lapis), + 'L', OrePrefixes.plate.get(Materials.Lapis), + 'O', ItemList.Energy_LapotronicOrb.get(1L) + }; + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), lcIV_recipe); + // Make sure the recipe doesn't exceed 16 slots + if(lcLuV_recipeBase.size() <= 14) + + + GT_Values.RA.addAssemblylineRecipe(); + } } diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index b499e4a941..e11961beda 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -14,6 +14,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynam import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; +import kekztech.KekzCore; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -242,18 +243,25 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock if(Y < firstGlassHeight){ if((X == -2 || X == 2) && (Z == -1 || Z == 4)){ if(!thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameBorosilicate)){ + final String badName = thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName(); + KekzCore.LOGGER.info("Bad block in LSC glass shell: " + badName); + KekzCore.LOGGER.info("At offset: Y=" + offset.y() + ", X=" + offset.x() + ", Z=" + offset.z()); formationChecklist = false; } else { final int meta = thisController.getMetaIDOffset(offset.x(), offset.y(), offset.z()); if(firstGlassMeta == -1){ firstGlassMeta = meta; } else if(meta != firstGlassMeta){ + KekzCore.LOGGER.info("No glass mixing allowed in LSC!"); formationChecklist = false; } } } } else { if (!thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameBorosilicate)) { + final String badName = thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName(); + KekzCore.LOGGER.info("Bad block in LSC glass shell: " + badName); + KekzCore.LOGGER.info("At offset: Y=" + offset.y() + ", X=" + offset.x() + ", Z=" + offset.z()); formationChecklist = false; } } @@ -270,6 +278,11 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock for(int highestCapacitor = capacitors.length - 1; highestCapacitor >= 0; highestCapacitor--){ if(capacitors[highestCapacitor] > 0){ formationChecklist = firstGlassMeta >= capacitors[highestCapacitor] - 2; + if(!formationChecklist){ + KekzCore.LOGGER.info("LSC Glass is not of correct tier"); + KekzCore.LOGGER.info("Highest capacitor tier (0 is IV): " + highestCapacitor); + KekzCore.LOGGER.info("Glass tier (0 is HV): " +firstGlassMeta); + } } } |