diff --git a/dependencies.gradle b/dependencies.gradle index 1a65eb261..8e6ee1a4a 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,30 +1,30 @@ // Add your dependencies here dependencies { - api("com.github.GTNewHorizons:GT5-Unofficial:5.09.50.56:dev") + api("com.github.GTNewHorizons:GT5-Unofficial:5.09.51.12:dev") api("com.github.GTNewHorizons:Yamcl:0.6.0:dev") api("com.github.GTNewHorizons:Baubles:1.0.4:dev") - implementation("com.github.GTNewHorizons:GTNHLib:0.5.18:dev") + implementation("com.github.GTNewHorizons:GTNHLib:0.5.23:dev") - compileOnly("com.github.GTNewHorizons:AkashicTome:1.1.8:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:Avaritia:1.54:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:twilightforest:2.6.34:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:GTNH-Intergalactic:1.4.23:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:Mantle:0.4.1:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:TinkersConstruct:1.12.12-GTNH:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:WitcheryExtras:1.2.2:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:AkashicTome:1.1.9:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:Avaritia:1.57:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:twilightforest:2.7.1:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:GTNH-Intergalactic:1.5.2:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:Mantle:0.4.2:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:TinkersConstruct:1.12.16-GTNH:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:WitcheryExtras:1.2.3:dev") { transitive = false } compileOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") { transitive = false } compileOnly rfg.deobf("curse.maven:witchery-69673:2234410") - compileOnly("com.github.GTNewHorizons:Chisel:2.15.3-GTNH:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:Botania:1.11.5-GTNH:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:BloodMagic:1.6.7:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:Chisel:2.16.0-GTNH:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:Botania:1.12.1-GTNH:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:BloodMagic:1.6.9:dev") { transitive = false } compileOnly rfg.deobf("curse.maven:extra-utilities-225561:2264384") compileOnly("TGregworks:TGregworks:1.7.10-GTNH-1.0.26:deobf") { transitive = false } - compileOnly("com.github.GTNewHorizons:amunra:0.7.0:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:Galacticraft:3.2.5-GTNH:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:ForestryMC:4.9.16:dev") { transitive = false } - compileOnlyApi("com.github.GTNewHorizons:Mobs-Info:0.4.6-GTNH:dev") + compileOnly("com.github.GTNewHorizons:amunra:0.7.1:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:Galacticraft:3.2.8-GTNH:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:ForestryMC:4.10.0:dev") { transitive = false } + compileOnlyApi("com.github.GTNewHorizons:Mobs-Info:0.5.0-GTNH:dev") runtimeOnlyNonPublishable rfg.deobf("curse.maven:biomes-o-plenty-220318:2499612") runtimeOnlyNonPublishable("com.github.GTNewHorizons:WailaHarvestability:1.2.1-GTNH:dev") diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 2c3521197..a4b76b953 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 09523c0e5..e2847c820 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/repositories.gradle b/repositories.gradle index 40118b167..f6e6039e8 100644 --- a/repositories.gradle +++ b/repositories.gradle @@ -1,6 +1,7 @@ // Add any additional repositories for your dependencies here repositories { + mavenLocal() ivy { url 'https://files.vexatos.com/' patternLayout { diff --git a/settings.gradle b/settings.gradle index 14cb8b7df..0147a9944 100644 --- a/settings.gradle +++ b/settings.gradle @@ -17,7 +17,7 @@ pluginManagement { } plugins { - id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.28' + id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.30' } diff --git a/src/main/java/com/dreammaster/NHTradeHandler/NHTradeHandler.java b/src/main/java/com/dreammaster/NHTradeHandler/NHTradeHandler.java new file mode 100644 index 000000000..585380a42 --- /dev/null +++ b/src/main/java/com/dreammaster/NHTradeHandler/NHTradeHandler.java @@ -0,0 +1,23 @@ +package com.dreammaster.NHTradeHandler; + +import java.util.Random; + +import net.minecraft.entity.passive.EntityVillager; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.village.MerchantRecipe; +import net.minecraft.village.MerchantRecipeList; + +import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; + +public class NHTradeHandler implements IVillageTradeHandler { + + @Override + public void manipulateTradesForVillager(final EntityVillager villager, final MerchantRecipeList recipeList, + final Random random) { + recipeList.addToListWithCheck( + new MerchantRecipe(new ItemStack(Items.emerald, 1), new ItemStack(Items.ender_pearl, 1))); + recipeList.addToListWithCheck( + new MerchantRecipe(new ItemStack(Items.emerald, 1), new ItemStack(Items.dye, 1, 4))); + } +} diff --git a/src/main/java/com/dreammaster/detrav/ScannerTools.java b/src/main/java/com/dreammaster/detrav/ScannerTools.java index d7f65f4ce..5d31c8a8f 100644 --- a/src/main/java/com/dreammaster/detrav/ScannerTools.java +++ b/src/main/java/com/dreammaster/detrav/ScannerTools.java @@ -12,9 +12,7 @@ public class ScannerTools implements IOreRecipeRegistrator { - public ScannerTools() { - OrePrefixes.toolHeadPickaxe.add(this); - } + public ScannerTools() {} public void registerOre(OrePrefixes o, Materials material, String s, String s2, ItemStack i) { GTModHandler.addCraftingRecipe( diff --git a/src/main/java/com/dreammaster/gthandler/GT_CraftingRecipeLoader.java b/src/main/java/com/dreammaster/gthandler/GT_CraftingRecipeLoader.java index 161ff0b2d..37ed961a5 100644 --- a/src/main/java/com/dreammaster/gthandler/GT_CraftingRecipeLoader.java +++ b/src/main/java/com/dreammaster/gthandler/GT_CraftingRecipeLoader.java @@ -746,14 +746,6 @@ public void run() { GGMaterial.incoloy903.get(OrePrefixes.pipeSmall), 'F', OrePrefixes.gearGt.get(Materials.Titanium) }); - // Neutronium Stabilization Casing - GTModHandler.addCraftingRecipe( - ItemList.Neutronium_Stable_Casing.get(4), - bits, - new Object[] { "PQP", "QFQ", "PQP", 'P', - GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 1), 'Q', - ItemList.Field_Generator_ZPM.get(1), 'F', ItemList.Casing_MAX.get(1) }); - // Industrial Precision Lathe GTModHandler.addCraftingRecipe( ItemList.Machine_Multi_Lathe.get(1), @@ -1061,11 +1053,6 @@ public void run() { GTModHandler.RecipeBits.NOT_REMOVABLE | GTModHandler.RecipeBits.REVERSIBLE, new Object[] { " h ", "SSS", "SSS", 'S', GTOreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 1) }); - GTModHandler.addCraftingRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Steel, 1L), - GTProxy.tBits, - new Object[] { "PIh", "f ", 'P', OrePrefixes.plate.get(Materials.Steel), 'I', - OrePrefixes.ingot.get(Materials.Steel) }); GTModHandler.addShapelessCraftingRecipe( GTOreDictUnificator.get(OrePrefixes.dust, Materials.Clay, 1L), @@ -1124,14 +1111,6 @@ public void run() { GTModHandler.getModItem(IndustrialCraft2.ID, "itemBatRE", 1, GTValues.W), 'E', GTModHandler.getModItem(IndustrialCraft2.ID, "itemRecipePart", 1, 3), 'C', OrePrefixes.cableGt01.get(Materials.Tin), 'S', screw.get(Materials.Steel) }); - GTModHandler.addCraftingRecipe( - GTModHandler.getModItem(IndustrialCraft2.ID, "itemToolHoe", 1, GTValues.W), - bits, - new Object[] { "dPH", "PGB", "ECS", 'S', screw.get(Materials.Steel), 'H', - OrePrefixes.toolHeadHoe.get(Materials.Steel), 'G', OrePrefixes.gearGtSmall.get(Materials.Steel), - 'B', GTModHandler.getModItem(IndustrialCraft2.ID, "itemBatRE", 1, GTValues.W), 'E', - GTModHandler.getModItem(IndustrialCraft2.ID, "itemRecipePart", 1, 3), 'P', - OrePrefixes.plate.get(Materials.Steel) }); if (OpenComputers.isModLoaded()) GTModHandler.addCraftingRecipe( GTModHandler.getModItem(OpenComputers.ID, "wrench", 1, 0), @@ -1710,14 +1689,30 @@ public void run() { } if (ZTones.isModLoaded()) { + // for recycling GTModHandler.addCraftingRecipe( GTModHandler.getModItem(ZTones.ID, "stoneTile", 8L, 0), - bits, + GTModHandler.RecipeBits.REVERSIBLE, + new Object[] { " S ", "STS", " S ", 'S', new ItemStack(Blocks.stone_slab, 1), 'T', + new ItemStack(Blocks.stone, 1) }); + GTModHandler.removeRecipeByOutput(GTModHandler.getModItem(ZTones.ID, "stoneTile", 8L, 0)); + // actual + GTModHandler.addCraftingRecipe( + GTModHandler.getModItem(ZTones.ID, "stoneTile", 8L, 0), + bits4, new Object[] { "SSS", "STS", "SSS", 'S', new ItemStack(Blocks.stone_slab, 1), 'T', new ItemStack(Blocks.stone, 1) }); + // for recycling GTModHandler.addCraftingRecipe( GTModHandler.getModItem(ZTones.ID, "auroraBlock", 8L, 0), - bits, + GTModHandler.RecipeBits.REVERSIBLE, + new Object[] { " G ", "GDG", " G ", 'G', new ItemStack(Blocks.glass, 1), 'D', + new ItemStack(Items.dye, 1, GTValues.W) }); + GTModHandler.removeRecipeByOutput(GTModHandler.getModItem(ZTones.ID, "auroraBlock", 8L, 0)); + // actual + GTModHandler.addCraftingRecipe( + GTModHandler.getModItem(ZTones.ID, "auroraBlock", 8L, 0), + bits4, new Object[] { "GGG", "GDG", "GGG", 'G', new ItemStack(Blocks.glass, 1), 'D', new ItemStack(Items.dye, 1, GTValues.W) }); GTModHandler.addCraftingRecipe( @@ -2103,24 +2098,14 @@ public void run() { for (int i = 0; i <= 7; i++) { ItemStack modifiedHatch = ItemList.Hatch_Output_ME.get(1L); - NBTTagCompound hatchNBT = modifiedHatch.getTagCompound(); - if (hatchNBT != null) { - hatchNBT.setLong("baseCapacity", capacities[i]); - } else { - hatchNBT = new NBTTagCompound(); - hatchNBT.setLong("baseCapacity", capacities[i] * 256); - modifiedHatch.setTagCompound(hatchNBT); - } + NBTTagCompound hatchNBT = new NBTTagCompound(); + hatchNBT.setLong("baseCapacity", capacities[i] * 256); + modifiedHatch.setTagCompound(hatchNBT); ItemStack modifiedBus = ItemList.Hatch_Output_Bus_ME.get(1L); - NBTTagCompound busNBT = modifiedBus.getTagCompound(); - if (busNBT != null) { - busNBT.setLong("baseCapacity", capacities[i]); - } else { - busNBT = new NBTTagCompound(); - busNBT.setLong("baseCapacity", capacities[i]); - modifiedBus.setTagCompound(busNBT); - } + NBTTagCompound busNBT = new NBTTagCompound(); + busNBT.setLong("baseCapacity", capacities[i]); + modifiedBus.setTagCompound(busNBT); GTModHandler.addShapelessCraftingRecipe( modifiedHatch, @@ -2129,6 +2114,27 @@ public void run() { modifiedBus, new Object[] { ItemList.Hatch_Output_Bus_ME.get(1L), itemComponents[i] }); } + final ItemStack SINGULARITY = GTModHandler + .getModItem(AppliedEnergistics2.ID, "item.ItemExtremeStorageCell.Singularity", 1); + final ItemStack FLUID_SINGULARITY = GTModHandler + .getModItem(AE2FluidCraft.ID, "fluid_storage.singularity", 1, 0); + + ItemStack modifiedHatch = ItemList.Hatch_Output_ME.get(1L); + NBTTagCompound hatchNBT = new NBTTagCompound(); + hatchNBT.setLong("baseCapacity", Long.MAX_VALUE); + modifiedHatch.setTagCompound(hatchNBT); + + ItemStack modifiedBus = ItemList.Hatch_Output_Bus_ME.get(1L); + NBTTagCompound busNBT = new NBTTagCompound(); + busNBT.setLong("baseCapacity", Long.MAX_VALUE); + modifiedBus.setTagCompound(busNBT); + + GTModHandler.addShapelessCraftingRecipe( + modifiedBus, + new Object[] { ItemList.Hatch_Output_Bus_ME.get(1L), SINGULARITY }); + GTModHandler.addShapelessCraftingRecipe( + modifiedHatch, + new Object[] { ItemList.Hatch_Output_ME.get(1L), FLUID_SINGULARITY }); // Pre-add planet block to EOH controller for (String dimAbbreviation : DimensionHelper.DimNameDisplayed) { diff --git a/src/main/java/com/dreammaster/gthandler/GT_Loader_Wires.java b/src/main/java/com/dreammaster/gthandler/GT_Loader_Wires.java index 1aa2d63e6..3991ad6f8 100644 --- a/src/main/java/com/dreammaster/gthandler/GT_Loader_Wires.java +++ b/src/main/java/com/dreammaster/gthandler/GT_Loader_Wires.java @@ -15,30 +15,30 @@ public void run() { private void registerWires() { - // ID Range: 1200 - 4100 - // Free IDs: 2030 - 4100 + // Take a look in gt5u MetaTileEntityIDs for free spaces // =================================================================================================== // Make wires // =================================================================================================== // Takes 20!!! slots per wire - makeWires(Materials.ElectricalSteel, 11490, 1L, 2L, 2L, GTValues.V[2], true, false); - makeWires(Materials.EnergeticAlloy, 11510, 2L, 4L, 2L, gregtech.api.enums.GTValues.V[3], true, false); - makeWires(Materials.VibrantAlloy, 11530, 2L, 4L, 4L, gregtech.api.enums.GTValues.V[4], true, false); - makeWires(Materials.MelodicAlloy, 11550, 2L, 4L, 4L, gregtech.api.enums.GTValues.V[5], true, false); - makeWires(Materials.StellarAlloy, 11570, 4L, 8L, 6L, gregtech.api.enums.GTValues.V[6], true, false); - makeWires(Materials.Trinium, 11450, 4L, 8L, 6L, GTValues.V[7], true, false); - makeWires(Materials.ElectrumFlux, 1900, 1L, 2L, 3L, GTValues.V[8], true, false); - makeWires(Materials.Bedrockium, 11310, 1L, 32L, 2L, GTValues.V[9], true, false); - makeWires(Materials.Osmiridium, 11610, 1L, 2L, 8L, GTValues.V[6], true, false); - makeWires(Materials.HSSE, 11590, 2L, 4L, 6L, GTValues.V[6], true, false); - makeWires(Materials.HSSS, 11470, 4L, 8L, 6L, GTValues.V[9], true, false); - makeWires(Materials.Draconium, 11330, 4L, 32L, 8L, GTValues.V[10], true, false); - makeWires(Materials.NetherStar, 11350, 4L, 16L, 4L, GTValues.V[11], true, false); - makeWires(Materials.Quantium, 11370, 4L, 16L, 2L, GTValues.V[12], true, false); - makeWires(Materials.BlackPlutonium, 11390, 4L, 16L, 1L, GTValues.V[13], false, false); - makeWires(Materials.DraconiumAwakened, 11410, 4L, 16L, 1L, GTValues.V[14], false, false); + makeWires(Materials.ElectricalSteel, 11490, 1L, 2L, 3L, GTValues.V[2], true, false); + makeWires(Materials.EnergeticAlloy, 11510, 1L, 2L, 4L, gregtech.api.enums.GTValues.V[3], true, false); + makeWires(Materials.VibrantAlloy, 11530, 3L, 6L, 6L, gregtech.api.enums.GTValues.V[4], true, false); + makeWires(Materials.EndSteel, 1860, 3L, 6L, 6L, gregtech.api.enums.GTValues.V[5], true, false); + makeWires(Materials.MelodicAlloy, 11550, 2L, 4L, 4L, gregtech.api.enums.GTValues.V[6], true, false); + makeWires(Materials.StellarAlloy, 11570, 12L, 24L, 12L, gregtech.api.enums.GTValues.V[8], true, false); + makeWires(Materials.Trinium, 11450, 3L, 6L, 6L, GTValues.V[7], true, false); + makeWires(Materials.ElectrumFlux, 1900, 3L, 2L, 6L, GTValues.V[8], true, false); + makeWires(Materials.Bedrockium, 11310, 6L, 48L, 3L, GTValues.V[9], true, false); + makeWires(Materials.Osmiridium, 11610, 1L, 2L, 16L, GTValues.V[7], true, false); + makeWires(Materials.HSSE, 11590, 4L, 8L, 6L, GTValues.V[6], true, false); + makeWires(Materials.HSSS, 11470, 4L, 8L, 8L, GTValues.V[9], true, false); + makeWires(Materials.Draconium, 11330, 32L, 64L, 8L, GTValues.V[10], true, false); + makeWires(Materials.NetherStar, 11350, 16L, 32L, 4L, GTValues.V[11], true, false); + makeWires(Materials.Quantium, 11370, 32L, 128L, 4L, GTValues.V[12], true, false); + makeWires(Materials.BlackPlutonium, 11390, 8L, 8L, 8L, GTValues.V[13], false, false); + makeWires(Materials.DraconiumAwakened, 11410, 64L, 64L, 8L, GTValues.V[14], false, false); makeWires(Materials.Infinity, 11430, 0L, 0L, 8192L, GTValues.V[14], false, true); /** diff --git a/src/main/java/com/dreammaster/gthandler/casings/GT_Block_CasingsNH.java b/src/main/java/com/dreammaster/gthandler/casings/GT_Block_CasingsNH.java index 180a19ac6..175c4a872 100644 --- a/src/main/java/com/dreammaster/gthandler/casings/GT_Block_CasingsNH.java +++ b/src/main/java/com/dreammaster/gthandler/casings/GT_Block_CasingsNH.java @@ -2,21 +2,13 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import com.dreammaster.gthandler.CustomItemList; -import com.dreammaster.gthandler.multiAirFilter.GT_MetaTileEntity_AirFilterT1; -import com.dreammaster.gthandler.multiAirFilter.GT_MetaTileEntity_AirFilterT2; -import com.dreammaster.gthandler.multiAirFilter.GT_MetaTileEntity_AirFilterT3; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.enums.Dyes; import gregtech.api.enums.Textures; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GTCopiedBlockTexture; import gregtech.api.util.GTLanguageManager; import gregtech.common.blocks.BlockCasingsAbstract; @@ -71,7 +63,7 @@ public void registerBlockIcons(IIconRegister aIconRegister) {} public IIcon getIcon(int aSide, int aMeta) { switch (aMeta) { case 0: - return Textures.BlockIcons.MACHINE_CASING_TURBINE.getIcon(); + return Textures.BlockIcons.MACHINE_CASING_TURBINE_STEEL.getIcon(); case 1: return Textures.BlockIcons.MACHINE_CASING_PIPE_STEEL.getIcon(); case 2: @@ -95,95 +87,6 @@ public IIcon getIcon(int aSide, int aMeta) { } } - private IIcon getTurbineCasing(int meta, int iconIndex, boolean active) { - switch (meta) { - case 3: - return active ? Textures.BlockIcons.TURBINE_ACTIVE2[iconIndex].getIcon() - : Textures.BlockIcons.TURBINE2[iconIndex].getIcon(); - case 5: - return active ? Textures.BlockIcons.TURBINE_ACTIVE3[iconIndex].getIcon() - : Textures.BlockIcons.TURBINE3[iconIndex].getIcon(); - default: // 0 or undefined turbine meta casing - return active ? Textures.BlockIcons.TURBINE_ACTIVE[iconIndex].getIcon() - : Textures.BlockIcons.TURBINE[iconIndex].getIcon(); - } - } - - public boolean isTurbineMeta(int tMeta) { - return tMeta == 0 || tMeta == 3 || tMeta == 5; - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(IBlockAccess aWorld, int xCoord, int yCoord, int zCoord, int ordinalSide) { - int tMeta = aWorld.getBlockMetadata(xCoord, yCoord, zCoord); - if (!isTurbineMeta(tMeta) && tMeta < 9 || tMeta == 15) { - return getIcon(ordinalSide, tMeta); - } - if (!isTurbineMeta(tMeta) || !mConnectedMachineTextures) { - return getIcon(ordinalSide, tMeta); - } - if (ordinalSide == 1) { - TileEntity tTileEntity; - IMetaTileEntity tMetaTileEntity; - - for (int xi = -2; xi <= 2; xi++) { - for (int zi = -2; zi <= 2; zi++) { - if (null != (tTileEntity = aWorld.getTileEntity(xCoord + xi, Math.max(yCoord - 3, 0), zCoord + zi)) - && tTileEntity instanceof IGregTechTileEntity - && null != (tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity()) - && (tMetaTileEntity instanceof GT_MetaTileEntity_AirFilterT1 - || tMetaTileEntity instanceof GT_MetaTileEntity_AirFilterT2 - || tMetaTileEntity instanceof GT_MetaTileEntity_AirFilterT3)) { - boolean active = false; - if (((IGregTechTileEntity) tTileEntity).isActive()) { - active = true; - } - // check for direction and placement and apply the texture - switch (((IGregTechTileEntity) tTileEntity).getFrontFacing()) { - case NORTH: - if (xi < 2 && xi > -2 && zi < 1) { // if invalid position ignore (aka too far away) - try { - return getTurbineCasing(tMeta, -xi + 1 - zi * 3, active); - } catch (Exception e) { - return getIcon(ordinalSide, tMeta); - } - } - break; - case SOUTH: - if (xi < 2 && xi > -2 && zi > -1) { - try { - return getTurbineCasing(tMeta, -xi + 1 + (2 - zi) * 3, active); - } catch (Exception e) { - return getIcon(ordinalSide, tMeta); - } - } - break; - case WEST: - if (zi < 2 && zi > -2 && xi < 1) { - try { - return getTurbineCasing(tMeta, -xi + (1 - zi) * 3, active); - } catch (Exception e) { - return getIcon(ordinalSide, tMeta); - } - } - break; - case EAST: - if (zi < 2 && zi > -2 && xi > -1) { - try { - return getTurbineCasing(tMeta, -xi + 2 + (1 - zi) * 3, active); - } catch (Exception e) { - return getIcon(ordinalSide, tMeta); - } - } - } - } - } - } - } - return getIcon(ordinalSide, tMeta); - } - @Override public int colorMultiplier(IBlockAccess aWorld, int aX, int aY, int aZ) { return aWorld.getBlockMetadata(aX, aY, aZ) <= 9 ? super.colorMultiplier(aWorld, aX, aY, aZ) diff --git a/src/main/java/com/dreammaster/gthandler/multiAirFilter/GT_MetaTileEntity_AirFilterBase.java b/src/main/java/com/dreammaster/gthandler/multiAirFilter/GT_MetaTileEntity_AirFilterBase.java index e5c42452c..7964449c7 100644 --- a/src/main/java/com/dreammaster/gthandler/multiAirFilter/GT_MetaTileEntity_AirFilterBase.java +++ b/src/main/java/com/dreammaster/gthandler/multiAirFilter/GT_MetaTileEntity_AirFilterBase.java @@ -1,7 +1,10 @@ package com.dreammaster.gthandler.multiAirFilter; +import static com.dreammaster.gthandler.casings.GT_Container_CasingsNH.sBlockCasingsNH; import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static gregtech.api.enums.GTValues.VN; +import static gregtech.api.enums.Textures.BlockIcons.TURBINE_NEW; +import static gregtech.api.enums.Textures.BlockIcons.TURBINE_NEW_ACTIVE; import static gregtech.api.util.GTStructureUtility.ofHatchAdder; import static gregtech.api.util.GTStructureUtility.ofHatchAdderOptional; import static gregtech.api.util.GTUtility.filterValidMTEs; @@ -11,23 +14,27 @@ import java.util.ArrayList; import java.util.Arrays; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import com.dreammaster.gthandler.CustomItemList; -import com.dreammaster.gthandler.casings.GT_Container_CasingsNH; import com.dreammaster.item.ItemList; import com.dreammaster.main.MainRegistry; import com.gtnewhorizon.structurelib.alignment.IAlignmentLimits; +import com.gtnewhorizon.structurelib.alignment.enumerable.ExtendedFacing; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import eu.usrv.yamcore.auxiliary.PlayerChatHelper; import gregtech.api.enums.Textures; +import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.MetaGeneratedTool; @@ -36,6 +43,7 @@ import gregtech.api.objects.GTRenderedTexture; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; +import gregtech.api.util.GTUtilityClient; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.common.items.MetaGeneratedTool01; import gregtech.common.pollution.Pollution; @@ -53,6 +61,7 @@ public abstract class GT_MetaTileEntity_AirFilterBase protected boolean isFilterLoaded = false; protected int filterUsageRemaining = 0; protected int tickCounter = 0; // because we can't trust the world tick, it may be in a dim with eternal day, etc + private boolean mFormed; protected static final String STRUCTURE_PIECE_MAIN = "main"; protected static final ClassValue> STRUCTURE_DEFINITION = new ClassValue>() { @@ -68,7 +77,7 @@ protected IStructureDefinition computeValue(Cla 'c', lazy( x -> ofChain( - ofBlock(GT_Container_CasingsNH.sBlockCasingsNH, x.getCasingMeta()), + ofBlock(sBlockCasingsNH, x.getCasingMeta()), ofHatchAdder( GT_MetaTileEntity_AirFilterBase::addMaintenanceToMachineList, x.getCasingIndex(), @@ -85,8 +94,8 @@ protected IStructureDefinition computeValue(Cla GT_MetaTileEntity_AirFilterBase::addEnergyInputToMachineList, x.getCasingIndex(), 1)))) - .addElement('x', lazy(x -> ofBlock(GT_Container_CasingsNH.sBlockCasingsNH, x.getCasingMeta()))) - .addElement('v', lazy(x -> ofBlock(GT_Container_CasingsNH.sBlockCasingsNH, x.getPipeMeta()))) + .addElement('x', lazy(x -> ofBlock(sBlockCasingsNH, x.getCasingMeta()))) + .addElement('v', lazy(x -> ofBlock(sBlockCasingsNH, x.getPipeMeta()))) .addElement( 'm', lazy( @@ -94,7 +103,7 @@ protected IStructureDefinition computeValue(Cla GT_MetaTileEntity_AirFilterBase::addMufflerToMachineList, x.getCasingIndex(), 2, - GT_Container_CasingsNH.sBlockCasingsNH, + sBlockCasingsNH, x.getCasingMeta()))) .build(); } @@ -189,7 +198,8 @@ protected MultiblockTooltipBuilder createTooltip() { + "^mufflerTier)") .addInfo("every second").addInfo("- multiTierBonus for this controller is " + getBonusByTier()) .addInfo("- turbineEff is the efficiency of the Turbine in controller slot") - .addInfo("- Effective muffler tier is limited by energy input tier").addSeparator() + .addInfo("- Effective muffler tier is limited by energy input tier") + .addInfo("- Uses " + this.getRecipe().mEUt + " EU/t while working").addSeparator() .addInfo("Insert " + ItemList.AdsorptionFilter.getIS().getDisplayName() + " in an input bus") .addInfo(" to double pollution cleaning amount (30 uses per item)") .addInfo("Each maintenance issue reduces cleaning amount by 10%").beginStructureBlock(3, 4, 3, true) @@ -434,6 +444,37 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); } + @Override + public void onValueUpdate(byte aValue) { + mFormed = aValue == 1; + } + + @Override + public byte getUpdateData() { + return (byte) (mMachine ? 1 : 0); + } + + @Override + public boolean renderInWorld(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer) { + if (!mFormed) return false; + int[] xyz = new int[3]; + ExtendedFacing ext = getExtendedFacing(); + ext.getWorldOffset(new int[] { 0, -3, 1 }, xyz); + IIconContainer[] tTextures = getBaseMetaTileEntity().isActive() ? TURBINE_NEW_ACTIVE : TURBINE_NEW; + // we know this multi can only ever face upwards, so just use +y directly + ExtendedFacing direction = ExtendedFacing.of(ForgeDirection.UP); + GTUtilityClient.renderTurbineOverlay( + aWorld, + xyz[0] + aX, + xyz[1] + aY, + xyz[2] + aZ, + aRenderer, + direction, + sBlockCasingsNH, + tTextures); + return false; + } + @Override public boolean onRunningTick(ItemStack aStack) { if (tickCounter == 19 && hasPollution) { diff --git a/src/main/java/com/dreammaster/gthandler/nameRemover/NameRemover.java b/src/main/java/com/dreammaster/gthandler/nameRemover/NameRemover.java index 3b2a82c12..a24724dcf 100644 --- a/src/main/java/com/dreammaster/gthandler/nameRemover/NameRemover.java +++ b/src/main/java/com/dreammaster/gthandler/nameRemover/NameRemover.java @@ -15,6 +15,7 @@ import gregtech.api.gui.modularui.GTUITextures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.CoverableTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.MTEBasicMachine; import gregtech.api.objects.GTRenderedTexture; @@ -58,18 +59,21 @@ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { @Override public int checkRecipe() { if (getInputAt(0) == null) return 0; - ItemStack output = getInputAt(0).copy(); NBTTagCompound nbt = output.getTagCompound(); - boolean removeName = false, removeDye = false, removeDisassembly = false, removeColor = false, - removeRepair = false, removeSpray = false; - if (nbt != null) { - ItemStack circuit = getInputAt(1); int circuitSetting = 0; - if (circuit != null && circuit.getItem() instanceof ItemIntegratedCircuit) + ItemStack circuit = getInputAt(1); + if (circuit != null && circuit.getItem() instanceof ItemIntegratedCircuit) { circuitSetting = circuit.getItemDamage(); - + } + boolean removeName = false; + boolean removeDisassembly = false; + boolean removeColor = false; + boolean removeRepair = false; + boolean removeDye = false; + boolean removeSpray = false; + boolean removeCovers = false; switch (circuitSetting) { case 1: removeName = true; @@ -89,6 +93,8 @@ public int checkRecipe() { case 6: removeSpray = true; break; + case 24: + removeCovers = true; default: removeName = true; removeDisassembly = true; @@ -103,23 +109,35 @@ public int checkRecipe() { nbt.removeTag("display"); } } - if (removeDisassembly && nbt.hasKey("GT.CraftingComponents")) { - nbt.removeTag("GT.CraftingComponents"); - } - if (removeColor && nbt.hasKey("color")) { - nbt.removeTag("color"); - } - if (removeRepair && nbt.hasKey("RepairCost")) { - nbt.removeTag("RepairCost"); - } + if (removeDisassembly) removeTag(nbt, "GT.CraftingComponents"); + if (removeColor) removeTag(nbt, "color"); + if (removeRepair) removeTag(nbt, "RepairCost"); if (removeDye && nbt.hasKey("display")) { nbt.getCompoundTag("display").removeTag("color"); if (nbt.getCompoundTag("display").hasNoTags()) { nbt.removeTag("display"); } } - if (removeSpray && nbt.hasKey("mColor")) { - nbt.removeTag("mColor"); + if (removeSpray) removeTag(nbt, "mColor"); + removeTag(nbt, "mTargetStackSize"); // MTEBuffer + removeTag(nbt, "mOutputFluid"); // MTEDigitalTankBase + removeTag(nbt, "mVoidOverflow"); // MTEDigitalTankBase & MTEQuantumChest + removeTag(nbt, "mVoidFluidFull"); // MTEDigitalTankBase + removeTag(nbt, "mLockFluid"); // MTEDigitalTankBase + removeTag(nbt, "lockedFluidName"); // MTEDigitalTankBase + removeTag(nbt, "mAllowInputFromOutputSide"); // MTEDigitalTankBase + removeTag(nbt, "mItemsPerSide"); // MTEItemDistributor + removeTag(nbt, "radiusConfig"); // MTEMiner & MTEPump + removeTag(nbt, "mDisallowRetract"); // MTEPump + removeTag(nbt, "mStrongRedstone"); // BaseMetaTileEntity + if (removeCovers) { // BaseMetaTileEntity + removeTag(nbt, "mMuffler"); + removeTag(nbt, "mLockUpgrade"); + removeTag(nbt, "mCoverSides"); + removeTag(nbt, "gt.covers"); + for (String key : CoverableTileEntity.COVER_DATA_NBT_KEYS) { + removeTag(nbt, key); + } } if (nbt.hasNoTags()) { output.setTagCompound(null); @@ -135,10 +153,16 @@ public int checkRecipe() { return 0; } + private static void removeTag(NBTTagCompound nbt, String key) { + if (nbt.hasKey(key)) { + nbt.removeTag(key); + } + } + @Override public String[] getDescription() { List description = new ArrayList<>(); - description.add("Removes various NBT tags."); + description.add("Removes various NBT tags as well as covers."); description.add(" "); description.add(UNDERLINE + "First Slot" + RESET); description.add("The item you want to strip of NBT"); @@ -150,9 +174,12 @@ public String[] getDescription() { description.add(BOLD + "Circuit 4:" + RESET + " Remove Anvil repair tag"); description.add(BOLD + "Circuit 5:" + RESET + " Remove Dye from Leather armor"); description.add(BOLD + "Circuit 6:" + RESET + " Remove Spray color from GT items"); + description.add( + BOLD + "Circuit 24:" + + RESET + + " Remove everything including covers. Be careful you won't recover the covers!"); description.add(" "); - description.add(BOLD + "No Circuit:" + RESET + " Remove all of the above"); - + description.add(BOLD + "No Circuit:" + RESET + " Remove everything except covers"); return description.toArray(new String[0]); } diff --git a/src/main/java/com/dreammaster/gthandler/recipes/AssemblerRecipes.java b/src/main/java/com/dreammaster/gthandler/recipes/AssemblerRecipes.java index 8c7de7536..5ec4dd0ec 100644 --- a/src/main/java/com/dreammaster/gthandler/recipes/AssemblerRecipes.java +++ b/src/main/java/com/dreammaster/gthandler/recipes/AssemblerRecipes.java @@ -1851,33 +1851,14 @@ public void run() { GTModHandler.getModItem(GraviSuite.ID, "itemSimpleItem", 2, 2)) .itemOutputs(GTModHandler.getModItem(GraviSuite.ID, "itemSimpleItem", 1, 3)).duration(5 * SECONDS) .eut(TierEU.RECIPE_HV).addTo(assemblerRecipes); - // IV Transformer - GTValues.RA.stdBuilder() - .itemInputs( - GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten, 4), - GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.VanadiumGallium, 1), - ItemList.Circuit_Chip_PIC.get(2), - ItemList.Hull_IV.get(1)) - .itemOutputs(ItemList.Transformer_LuV_IV.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_HV) - .addTo(assemblerRecipes); - // Tesla Coil - GTValues.RA.stdBuilder() - .itemInputs( - GTOreDictUnificator.get(OrePrefixes.cableGt04, Materials.Gold, 1), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.HV, 2), - GTModHandler.getModItem(IndustrialCraft2.ID, "itemRecipePart", 5, 0), - ItemList.Transformer_HV_MV.get(1)) - .itemOutputs(GTModHandler.getModItem(IndustrialCraft2.ID, "blockMachine2", 1, 1)) - .duration(5 * SECONDS).eut(TierEU.RECIPE_HV).addTo(assemblerRecipes); - // MV Transformer + // Fluid Manipulator GTValues.RA.stdBuilder() .itemInputs( - GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnyCopper, 4), - GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 1), - ItemList.Hull_MV.get(1), - ItemList.Circuit_Parts_InductorSMD.get(2)) - .itemOutputs(ItemList.Transformer_HV_MV.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_HV) - .addTo(assemblerRecipes); + ItemList.Large_Fluid_Cell_Steel.get(1), + GTOreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.Steel, 4), + ItemList.Electric_Motor_HV.get(4)) + .itemOutputs(GTModHandler.getModItem(GalacticraftMars.ID, "item.null", 1, 6)).duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV).addTo(assemblerRecipes); // Cooling Core With NaK GTValues.RA.stdBuilder() .itemInputs( @@ -1898,16 +1879,104 @@ public void run() { GTModHandler.getModItem(IndustrialCraft2.ID, "reactorPlatingHeat", 2, 0)) .itemOutputs(GTModHandler.getModItem(GraviSuite.ID, "itemSimpleItem", 1, 2)).duration(5 * SECONDS) .eut(TierEU.RECIPE_HV).addTo(assemblerRecipes); - // Fluid Manipulator - GTValues.RA.stdBuilder() - .itemInputs( - ItemList.Large_Fluid_Cell_Steel.get(1), - GTOreDictUnificator.get(OrePrefixes.pipeQuadruple, Materials.Steel, 4), - ItemList.Electric_Motor_HV.get(4)) - .itemOutputs(GTModHandler.getModItem(GalacticraftMars.ID, "item.null", 1, 6)).duration(5 * SECONDS) - .eut(TierEU.RECIPE_HV).addTo(assemblerRecipes); } + // ULV Transformer + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Lead, 4), + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 1), + ItemList.Hull_ULV.get(1)) + .itemOutputs(ItemList.Transformer_LV_ULV.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // LV Transformer + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 4), + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnyCopper, 1), + ItemList.Hull_LV.get(1)) + .itemOutputs(ItemList.Transformer_MV_LV.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // MV Transformer + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnyCopper, 4), + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 1), + ItemList.Hull_MV.get(1), + ItemList.Circuit_Parts_InductorSMD.get(2)) + .itemOutputs(ItemList.Transformer_HV_MV.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // HV Transformer + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 4), + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 1), + ItemList.Hull_HV.get(1), + ItemList.Circuit_Chip_ULPIC.get(2)) + .itemOutputs(ItemList.Transformer_EV_HV.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // EV Transformer + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 4), + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten, 1), + ItemList.Hull_EV.get(1), + ItemList.Circuit_Chip_LPIC.get(2)) + .itemOutputs(ItemList.Transformer_IV_EV.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // IV Transformer + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten, 4), + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.VanadiumGallium, 1), + ItemList.Circuit_Chip_PIC.get(2), + ItemList.Hull_IV.get(1)) + .itemOutputs(ItemList.Transformer_LuV_IV.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // LuV transformer + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.VanadiumGallium, 4), + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 1), + ItemList.Circuit_Chip_HPIC.get(2), + ItemList.Hull_LuV.get(1)) + .itemOutputs(ItemList.Transformer_ZPM_LuV.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // ZPM Transformer + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 4), + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy, 1), + ItemList.Hull_ZPM.get(1), + ItemList.Circuit_Chip_UHPIC.get(2)) + .itemOutputs(ItemList.Transformer_UV_ZPM.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + + // UV Transformer + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy, 4), + GTOreDictUnificator.get(OrePrefixes.wireGt01, Materials.Bedrockium, 1), + ItemList.Hull_UV.get(1), + ItemList.Circuit_Chip_NPIC.get(2)) + .itemOutputs(ItemList.Transformer_MAX_UV.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) + .addTo(assemblerRecipes); + // Tesla Coil + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.cableGt04, Materials.Gold, 1), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.HV, 2), + GTModHandler.getModItem(IndustrialCraft2.ID, "itemRecipePart", 5, 0), + ItemList.Transformer_HV_MV.get(1)) + .itemOutputs(GTModHandler.getModItem(IndustrialCraft2.ID, "blockMachine2", 1, 1)).duration(5 * SECONDS) + .eut(TierEU.RECIPE_HV).addTo(assemblerRecipes); // Super Tank V GTValues.RA.stdBuilder() .itemInputs( @@ -2229,15 +2298,6 @@ public void run() { .duration(10 * SECONDS).eut(TierEU.RECIPE_HV).addTo(assemblerRecipes); } - // 4A Zpm to LuV transformer - GTValues.RA.stdBuilder() - .itemInputs( - GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.VanadiumGallium, 4), - GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 1), - ItemList.Circuit_Chip_HPIC.get(2), - ItemList.Hull_LuV.get(1)) - .itemOutputs(ItemList.Transformer_ZPM_LuV.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_EV) - .addTo(assemblerRecipes); // 16A Zpm to LuV transformer GTValues.RA.stdBuilder() @@ -2283,11 +2343,12 @@ public void run() { // Neutronium Stabilization Casing GTValues.RA.stdBuilder() .itemInputs( - ItemList.Field_Generator_ZPM.get(4), - GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 4), ItemList.Casing_MAX.get(1), + ItemList.Field_Generator_ZPM.get(1), + GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 4), + GTOreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24), GTUtility.getIntegratedCircuit(16)) - .itemOutputs(ItemList.Neutronium_Stable_Casing.get(4)).duration(2 * SECONDS + 10 * TICKS).eut(16) + .itemOutputs(ItemList.Neutronium_Stable_Casing.get(4)).duration(10 * SECONDS).eut(TierEU.RECIPE_UV) .addTo(assemblerRecipes); // Neutronium Compressor conversion @@ -2359,11 +2420,14 @@ public void run() { .itemInputs( ItemList.Casing_Pipe_Bronze.get(1), ItemList.Electric_Pump_LuV.get(2), - ItemList.Duct_Tape.get(4), - TRINIUM_NAQUADAH_CARBON.getComponentByPrefix(OrePrefixes.pipeMedium, 16), - HASTELLOY_X.getComponentByPrefix(OrePrefixes.pipeMedium, 16), - GTOreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 32)) - .fluidInputs(FluidRegistry.getFluidStack("pyrotheum", 2000)) + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Invar, 8), + CustomItemList.MicaInsulatorFoil.get(64), + CustomItemList.MicaInsulatorFoil.get(64), + CustomItemList.MicaInsulatorFoil.get(64), + TRINIUM_NAQUADAH_CARBON.getComponentByPrefix(OrePrefixes.pipeMedium, 2), + HASTELLOY_X.getComponentByPrefix(OrePrefixes.pipeMedium, 2), + GTOreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 2)) + .fluidInputs(FluidRegistry.getFluidStack("pyrotheum", 16000)) .itemOutputs(ItemList.Heating_Duct_Casing.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LuV) .addTo(assemblerRecipes); @@ -2372,11 +2436,14 @@ public void run() { .itemInputs( ItemList.Casing_Pipe_TungstenSteel.get(1), ItemList.Electric_Pump_LuV.get(2), - ItemList.Duct_Tape.get(4), - TRINIUM_NAQUADAH_CARBON.getComponentByPrefix(OrePrefixes.pipeMedium, 16), - HASTELLOY_X.getComponentByPrefix(OrePrefixes.pipeMedium, 16), - GTOreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 32)) - .fluidInputs(FluidRegistry.getFluidStack("cryotheum", 2000)) + GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Aluminium, 8), + ItemList.Reactor_Coolant_Sp_3.get(1), + ItemList.Reactor_Coolant_Sp_3.get(1), + ItemList.Reactor_Coolant_Sp_3.get(1), + TRINIUM_NAQUADAH_CARBON.getComponentByPrefix(OrePrefixes.pipeMedium, 2), + HASTELLOY_X.getComponentByPrefix(OrePrefixes.pipeMedium, 2), + GTOreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 2)) + .fluidInputs(FluidRegistry.getFluidStack("cryotheum", 16000)) .itemOutputs(ItemList.Coolant_Duct_Casing.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LuV) .addTo(assemblerRecipes); @@ -2580,7 +2647,7 @@ public void run() { GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1), GTOreDictUnificator.get(OrePrefixes.stick, Materials.Steel, 4), GTOreDictUnificator.get(OrePrefixes.plate, Materials.Steel, 4), - GTUtility.getIntegratedCircuit(3)) + GTUtility.getIntegratedCircuit(13)) .itemOutputs(ItemList.Casing_Firebox_Steel.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) .addTo(assemblerRecipes); @@ -2589,7 +2656,7 @@ public void run() { GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Titanium, 1), GTOreDictUnificator.get(OrePrefixes.stick, Materials.Titanium, 4), GTOreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 4), - GTUtility.getIntegratedCircuit(3)) + GTUtility.getIntegratedCircuit(13)) .itemOutputs(ItemList.Casing_Firebox_Titanium.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) .addTo(assemblerRecipes); @@ -2598,7 +2665,7 @@ public void run() { GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 1), GTOreDictUnificator.get(OrePrefixes.stick, Materials.TungstenSteel, 4), GTOreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 4), - GTUtility.getIntegratedCircuit(3)) + GTUtility.getIntegratedCircuit(13)) .itemOutputs(ItemList.Casing_Firebox_TungstenSteel.get(1)).duration(5 * SECONDS).eut(TierEU.RECIPE_LV) .addTo(assemblerRecipes); diff --git a/src/main/java/com/dreammaster/gthandler/recipes/AssemblingLineRecipes.java b/src/main/java/com/dreammaster/gthandler/recipes/AssemblingLineRecipes.java index de335ec17..ba62b6845 100644 --- a/src/main/java/com/dreammaster/gthandler/recipes/AssemblingLineRecipes.java +++ b/src/main/java/com/dreammaster/gthandler/recipes/AssemblingLineRecipes.java @@ -23,7 +23,6 @@ import static gregtech.api.util.GTRecipeConstants.RESEARCH_TIME; import static gtPlusPlus.core.material.MaterialsAlloy.HASTELLOY_C276; import static gtPlusPlus.core.material.MaterialsAlloy.HASTELLOY_X; -import static gtPlusPlus.core.material.MaterialsAlloy.STABALLOY; import static tectech.thing.CustomItemList.DATApipe; import static tectech.thing.CustomItemList.Machine_Multi_DataBank; import static tectech.thing.CustomItemList.Machine_Multi_Switch; @@ -1107,23 +1106,20 @@ public void run() { GTValues.RA.stdBuilder().metadata(RESEARCH_ITEM, ItemList.Machine_Multi_IndustrialCompressor.get(1)) .metadata(RESEARCH_TIME, 1800 * SECONDS) .itemInputs( - GTOreDictUnificator.get(OrePrefixes.block, Materials.StellarAlloy, 64L), - ItemList.Heating_Duct_Casing.get(32L), - ItemList.Coolant_Duct_Casing.get(32L), - STABALLOY.getBlock(32), - GTModHandler.getIC2Item("mixedMetalIngot", 24L), - new Object[] { OrePrefixes.circuit.get(Materials.LuV), 4 }, - new Object[] { OrePrefixes.circuit.get(Materials.UV), 4 }, - ItemList.Electric_Piston_ZPM.get(8), - ItemList.Conveyor_Module_ZPM.get(4), - ItemList.Sensor_ZPM.get(2), - ItemList.Field_Generator_ZPM.get(1)) + ItemList.Machine_Multi_IndustrialCompressor.get(4), + ItemList.Heating_Duct_Casing.get(4L), + ItemList.Coolant_Duct_Casing.get(4L), + GTOreDictUnificator.get(OrePrefixes.block, Materials.Naquadria, 4), + ItemList.Electric_Piston_ZPM.get(16), + ItemList.Robot_Arm_ZPM.get(4), + ItemList.Electric_Pump_ZPM.get(4), + new Object[] { OrePrefixes.circuit.get(Materials.UV), 4 }) .itemOutputs(ItemList.Machine_Multi_HIPCompressor.get(1)) .fluidInputs( - Materials.Naquadria.getMolten(1152), + GGMaterial.incoloy903.getMolten(256 * 144), + Materials.NaquadahEnriched.getMolten(64 * 144), Materials.LiquidAir.getFluid(16000), - Materials.Lubricant.getFluid(16000), - Materials.Neutronium.getMolten(1152)) + Materials.Lubricant.getFluid(16000)) .duration(120 * SECONDS).eut(TierEU.RECIPE_ZPM).addTo(AssemblyLine); GTValues.RA.stdBuilder().metadata(RESEARCH_ITEM, getModItem(Avaritia.ID, "Singularity", 1L, 0)) @@ -1451,7 +1447,8 @@ public void run() { GTOreDictUnificator.get(OrePrefixes.pipeMedium, Materials.NiobiumTitanium, 1L), WerkstoffMaterialPool.MuMetal.get(OrePrefixes.stickLong, 8), GTOreDictUnificator.get(OrePrefixes.plateDouble, Materials.HSSS, 2L), - ItemList.Reactor_Coolant_Sp_6.get(1), + ItemList.Reactor_Coolant_Sp_3.get(1), + ItemList.Reactor_Coolant_Sp_3.get(1), ItemList.Electric_Pump_LuV.get(1)) .fluidInputs(new FluidStack(solderIndalloy, (int) (L * 4))) .itemOutputs(ItemList.Superconducting_Magnet_Solenoid_LuV.get(1)).duration(20 * SECONDS) diff --git a/src/main/java/com/dreammaster/gthandler/recipes/CircuitAssemblerRecipes.java b/src/main/java/com/dreammaster/gthandler/recipes/CircuitAssemblerRecipes.java index 88cd9b655..e0dbe583c 100644 --- a/src/main/java/com/dreammaster/gthandler/recipes/CircuitAssemblerRecipes.java +++ b/src/main/java/com/dreammaster/gthandler/recipes/CircuitAssemblerRecipes.java @@ -604,7 +604,7 @@ public void solderingMaterials() { GTValues.RA.stdBuilder() .itemInputs( ItemList.Circuit_Board_Phenolic_Good.get(1L), - GTModHandler.getModItem(IndustrialCraft2.ID, "itemPartCircuit", 1L, 0), + GTModHandler.getModItem(IndustrialCraft2.ID, "itemPartCircuit", 2L, 0), ItemList.Circuit_Parts_Diode.get(2L), GTOreDictUnificator.get(OrePrefixes.wireGt01, Materials.Copper, 2)) .itemOutputs(ItemList.Circuit_Good.get(1L)).fluidInputs(tMat.getMolten(144L * tMultiplier / 2L)) diff --git a/src/main/java/com/dreammaster/gthandler/recipes/FluidSolidifierRecipes.java b/src/main/java/com/dreammaster/gthandler/recipes/FluidSolidifierRecipes.java index cd531b6f8..9e2336312 100644 --- a/src/main/java/com/dreammaster/gthandler/recipes/FluidSolidifierRecipes.java +++ b/src/main/java/com/dreammaster/gthandler/recipes/FluidSolidifierRecipes.java @@ -1,5 +1,6 @@ package com.dreammaster.gthandler.recipes; +import static gregtech.api.enums.Mods.Avaritia; import static gregtech.api.enums.Mods.ExtraUtilities; import static gregtech.api.enums.Mods.TinkerConstruct; import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; @@ -29,6 +30,8 @@ public class FluidSolidifierRecipes implements Runnable { @Override public void run() { + makeAvaritiaRecipes(); + // Sodium Dust GTValues.RA.stdBuilder().itemInputs(ItemList.Shape_Mold_Ball.get(0L)) @@ -431,4 +434,14 @@ public void run() { .eut(TierEU.RECIPE_UIV).itemOutputs(ItemList.Hawking_Glass.get(1)).addTo(fluidSolidifierRecipes); } } + + private void makeAvaritiaRecipes() { + if (!Avaritia.isModLoaded()) { + return; + } + GTValues.RA.stdBuilder().itemInputs(ItemList.Shape_Mold_Block.get(0L)) + .itemOutputs(Materials.CosmicNeutronium.getBlocks(1)) + .fluidInputs(Materials.CosmicNeutronium.getMolten(1296L)).duration(15 * SECONDS).eut(TierEU.RECIPE_ZPM) + .addTo(fluidSolidifierRecipes); + } } diff --git a/src/main/java/com/dreammaster/gthandler/recipes/MaceratorRecipes.java b/src/main/java/com/dreammaster/gthandler/recipes/MaceratorRecipes.java index 0dce15ccb..70770be01 100644 --- a/src/main/java/com/dreammaster/gthandler/recipes/MaceratorRecipes.java +++ b/src/main/java/com/dreammaster/gthandler/recipes/MaceratorRecipes.java @@ -181,25 +181,25 @@ public void run() { .duration(10 * SECONDS).eut(2).addTo(maceratorRecipes); // Oreberries - GTValues.RA.stdBuilder().itemInputs(GTModHandler.getModItem(TinkerConstruct.ID, "oreBerries", 1L, 0)) - .itemOutputs(GTOreDictUnificator.get(OrePrefixes.dustTiny, Materials.Iron, 1L)).outputChances(10000) - .duration(15 * SECONDS).eut(2).addTo(maceratorRecipes); + GTValues.RA.stdBuilder().itemInputs(GTModHandler.getModItem(TinkerConstruct.ID, "oreBerries", 9L, 0)) + .itemOutputs(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L)).outputChances(10000) + .duration(15 * SECONDS).eut(18).addTo(maceratorRecipes); - GTValues.RA.stdBuilder().itemInputs(GTModHandler.getModItem(TinkerConstruct.ID, "oreBerries", 1L, 1)) - .itemOutputs(GTOreDictUnificator.get(OrePrefixes.dustTiny, Materials.Gold, 1L)).outputChances(10000) - .duration(15 * SECONDS).eut(2).addTo(maceratorRecipes); + GTValues.RA.stdBuilder().itemInputs(GTModHandler.getModItem(TinkerConstruct.ID, "oreBerries", 9L, 1)) + .itemOutputs(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Gold, 1L)).outputChances(10000) + .duration(15 * SECONDS).eut(18).addTo(maceratorRecipes); - GTValues.RA.stdBuilder().itemInputs(GTModHandler.getModItem(TinkerConstruct.ID, "oreBerries", 1L, 2)) - .itemOutputs(GTOreDictUnificator.get(OrePrefixes.dustTiny, Materials.Copper, 1L)) - .outputChances(10000).duration(15 * SECONDS).eut(2).addTo(maceratorRecipes); + GTValues.RA.stdBuilder().itemInputs(GTModHandler.getModItem(TinkerConstruct.ID, "oreBerries", 9L, 2)) + .itemOutputs(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Copper, 1L)).outputChances(10000) + .duration(15 * SECONDS).eut(18).addTo(maceratorRecipes); - GTValues.RA.stdBuilder().itemInputs(GTModHandler.getModItem(TinkerConstruct.ID, "oreBerries", 1L, 3)) - .itemOutputs(GTOreDictUnificator.get(OrePrefixes.dustTiny, Materials.Tin, 1L)).outputChances(10000) - .duration(15 * SECONDS).eut(2).addTo(maceratorRecipes); + GTValues.RA.stdBuilder().itemInputs(GTModHandler.getModItem(TinkerConstruct.ID, "oreBerries", 9L, 3)) + .itemOutputs(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Tin, 1L)).outputChances(10000) + .duration(15 * SECONDS).eut(18).addTo(maceratorRecipes); - GTValues.RA.stdBuilder().itemInputs(GTModHandler.getModItem(TinkerConstruct.ID, "oreBerries", 1L, 4)) - .itemOutputs(GTOreDictUnificator.get(OrePrefixes.dustTiny, Materials.Aluminium, 1L)) - .outputChances(10000).duration(15 * SECONDS).eut(2).addTo(maceratorRecipes); + GTValues.RA.stdBuilder().itemInputs(GTModHandler.getModItem(TinkerConstruct.ID, "oreBerries", 9L, 4)) + .itemOutputs(GTOreDictUnificator.get(OrePrefixes.dust, Materials.Aluminium, 1L)) + .outputChances(10000).duration(15 * SECONDS).eut(18).addTo(maceratorRecipes); } diff --git a/src/main/java/com/dreammaster/gthandler/recipes/MixerRecipes.java b/src/main/java/com/dreammaster/gthandler/recipes/MixerRecipes.java index 84b0e51c7..e4c36f71d 100644 --- a/src/main/java/com/dreammaster/gthandler/recipes/MixerRecipes.java +++ b/src/main/java/com/dreammaster/gthandler/recipes/MixerRecipes.java @@ -1198,5 +1198,33 @@ public void run() { MaterialsUEVplus.ExcitedDTEC.getFluid(128000)) .duration(3 * SECONDS).eut(TierEU.RECIPE_UIV).addTo(mixerNonCellRecipes); } + if (EnderIO.isModLoaded() && BiomesOPlenty.isModLoaded() && Witchery.isModLoaded()) { + GTValues.RA.stdBuilder() + .itemInputs( + kubatech.api.enums.ItemList.EarlGrayTea.get(1), + kubatech.api.enums.ItemList.LemonTea.get(1), + kubatech.api.enums.ItemList.MilkTea.get(1), + kubatech.api.enums.ItemList.PeppermintTea.get(1), + GTModHandler.getModItem(EnderIO.ID, "bucketVapor_of_levity", 1L), + ItemList.ThermosCan_Ice_Tea.get(1L), + GTModHandler.getModItem(BiomesOPlenty.ID, "food", 1L, 10), + GTModHandler.getModItem(Witchery.ID, "potion", 1L), + GTModHandler.getModItem(Witchery.ID, "ingredient", 1L, 40)) + .itemOutputs( + new ItemStack(Items.glass_bottle, 2, 0), + new ItemStack(Items.bucket, 1, 0), + ItemList.ThermosCan_Empty.get(1L)) + .fluidInputs( + FluidRegistry.getFluidStack("potion.diablosauce", 7500), + FluidRegistry.getFluidStack("potion.piratebrew", 2500), + FluidRegistry.getFluidStack("potion.jagi", 2500), + FluidRegistry.getFluidStack("potion.alcopops", 2500), + FluidRegistry.getFluidStack("potion.goldencider", 2500), + FluidRegistry.getFluidStack("potion.chocolatemilk", 7500)) + .fluidOutputs( + FluidRegistry.getFluidStack("potion.diablosauce.strong", 12000), + FluidRegistry.getFluidStack("potion.mundane", 22000)) + .duration(200 * SECONDS).eut(TierEU.RECIPE_ZPM).addTo(mixerNonCellRecipes); + } } } diff --git a/src/main/java/com/dreammaster/gthandler/recipes/SpaceAssemblerRecipes.java b/src/main/java/com/dreammaster/gthandler/recipes/SpaceAssemblerRecipes.java index 007b0b5e3..b0c5945d6 100644 --- a/src/main/java/com/dreammaster/gthandler/recipes/SpaceAssemblerRecipes.java +++ b/src/main/java/com/dreammaster/gthandler/recipes/SpaceAssemblerRecipes.java @@ -349,11 +349,11 @@ public void run() { ItemList.Field_Generator_UXV.get(1L), filledUMVCell, new ItemStack(TTCasingsContainer.SpacetimeCompressionFieldGenerators, 4, 8), - com.dreammaster.item.ItemList.CircuitUXV.getIS(4), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UXV, 4), MaterialsUEVplus.Eternity.getNanite(4)) .fluidInputs(MaterialsUEVplus.Eternity.getMolten(36864)) .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemExtremeStorageCell.Universe", 1)) - .specialValue(3).duration(1 * MINUTES).eut(TierEU.RECIPE_UXV) + .specialValue(3).nbtSensitive().duration(1 * MINUTES).eut(TierEU.RECIPE_UXV) .addTo(IGRecipeMaps.spaceAssemblerRecipes); // Digital Singularity ME Storage Cell @@ -381,11 +381,12 @@ public void run() { new ItemStack(Loaders.yottaFluidTankCell, 2, 9), new ItemStack(tfftStorageField, 2, 10), new ItemStack(TTCasingsContainer.SpacetimeCompressionFieldGenerators, 4, 8), - com.dreammaster.item.ItemList.CircuitUXV.getIS(4), + GTOreDictUnificator.get(OrePrefixes.circuit, Materials.UXV, 4), MaterialsUEVplus.Eternity.getNanite(4)) .fluidInputs(MaterialsUEVplus.Eternity.getMolten(36864)) .itemOutputs(getModItem(AE2FluidCraft.ID, "fluid_storage.Universe", 1)).specialValue(3) - .duration(1 * MINUTES).eut(TierEU.RECIPE_UXV).addTo(IGRecipeMaps.spaceAssemblerRecipes); + .nbtSensitive().duration(1 * MINUTES).eut(TierEU.RECIPE_UXV) + .addTo(IGRecipeMaps.spaceAssemblerRecipes); // ME Fluid Digital Singularity Storage Cell GTValues.RA.stdBuilder() diff --git a/src/main/java/com/dreammaster/lib/Refstrings.java b/src/main/java/com/dreammaster/lib/Refstrings.java index feefb8c9b..b7b8d05a3 100644 --- a/src/main/java/com/dreammaster/lib/Refstrings.java +++ b/src/main/java/com/dreammaster/lib/Refstrings.java @@ -7,7 +7,7 @@ public final class Refstrings { public static final String MODID = Mods.Names.NEW_HORIZONS_CORE_MOD; public static final String NAME = "GT: New Horizons"; public static final String VERSION = BuildVersion.VERSION; - public static final String MODPACKPACK_VERSION = "2.7.0"; + public static final String MODPACKPACK_VERSION = "2.7.1"; public static final String CLIENTSIDE = "com.dreammaster.main.ClientProxy"; public static final String SERVERSIDE = "com.dreammaster.main.CommonProxy"; public static final String COLLECTIONID = "GTNewHorizons"; diff --git a/src/main/java/com/dreammaster/main/DebugHandler.java b/src/main/java/com/dreammaster/main/DebugHandler.java index 142a07463..7097527d0 100644 --- a/src/main/java/com/dreammaster/main/DebugHandler.java +++ b/src/main/java/com/dreammaster/main/DebugHandler.java @@ -13,7 +13,12 @@ public final class DebugHandler { public void onDrawDebug(RenderGameOverlayEvent.Text event) { if (Minecraft.getMinecraft().gameSettings.showDebugInfo) { if (MainRegistry.CoreConfig.ModDebugVersionDisplay_Enabled) { - event.left.add(1, String.format("%s %s", Refstrings.NAME, Refstrings.MODPACKPACK_VERSION)); + final String text = String.format("%s %s", Refstrings.NAME, Refstrings.MODPACKPACK_VERSION); + if (event.left.isEmpty()) { + event.left.add(text); + } else { + event.left.add(1, text); + } } } } diff --git a/src/main/java/com/dreammaster/main/MainRegistry.java b/src/main/java/com/dreammaster/main/MainRegistry.java index 918bc736b..8b1a30002 100644 --- a/src/main/java/com/dreammaster/main/MainRegistry.java +++ b/src/main/java/com/dreammaster/main/MainRegistry.java @@ -25,6 +25,7 @@ import net.minecraftforge.common.config.Configuration; import net.minecraftforge.fluids.FluidContainerRegistry; +import com.dreammaster.NHTradeHandler.NHTradeHandler; import com.dreammaster.TwilightForest.TF_Loot_Chests; import com.dreammaster.amazingtrophies.AchievementHandler; import com.dreammaster.bartworksHandler.BWGlassAdder; @@ -92,6 +93,7 @@ import cpw.mods.fml.common.event.FMLServerStartingEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.VillagerRegistry; import cpw.mods.fml.relauncher.Side; import eu.usrv.yamcore.YAMCore; import eu.usrv.yamcore.auxiliary.IngameErrorLog; @@ -374,6 +376,7 @@ public void load(FMLInitializationEvent event) { MinecraftForge.EVENT_BUS.register(new GTNHPauseScreen()); } + VillagerRegistry.instance().registerVillageTradeHandler(2, new NHTradeHandler()); } public static Block _mBlockBabyChest = new BlockBabyChest(); diff --git a/src/main/java/com/dreammaster/mixin/mixins/early/MixinMinecraft_ConfirmExit.java b/src/main/java/com/dreammaster/mixin/mixins/early/MixinMinecraft_ConfirmExit.java index 52ce8eeb8..b979e0f61 100644 --- a/src/main/java/com/dreammaster/mixin/mixins/early/MixinMinecraft_ConfirmExit.java +++ b/src/main/java/com/dreammaster/mixin/mixins/early/MixinMinecraft_ConfirmExit.java @@ -7,7 +7,7 @@ import javax.swing.JOptionPane; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; +import net.minecraft.util.StatCollector; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -48,7 +48,12 @@ public class MixinMinecraft_ConfirmExit { final ImageIcon imageIcon = resource == null ? null : new ImageIcon(resource); final int result = JOptionPane.showConfirmDialog( frame, - I18n.format("dreamcraft.gui.quitmessage"), + // When FML encounters an error, the only way to close the window is through the close button, + // which will show this message, unfortunately at this point, no localisations will have been + // loaded, so we add a hardcoded fallback message here. + StatCollector.canTranslate("dreamcraft.gui.quitmessage") + ? StatCollector.translateToLocal("dreamcraft.gui.quitmessage") + : "Are you sure you want to exit the game?", Refstrings.NAME, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, diff --git a/src/main/java/com/dreammaster/modcustomdrops/CustomDropsHandler.java b/src/main/java/com/dreammaster/modcustomdrops/CustomDropsHandler.java index 09232195f..2f8ff7dcc 100644 --- a/src/main/java/com/dreammaster/modcustomdrops/CustomDropsHandler.java +++ b/src/main/java/com/dreammaster/modcustomdrops/CustomDropsHandler.java @@ -236,8 +236,8 @@ public void provideExtraDropsInformation(@NotNull String entityString, @NotNull stack.stackSize = drop.getAmount(); } MobDrop mobDrop = MobDrop.create(stack).withChance(chance).withHardPlayerRestriction(); + mobDrop.clampChance(); if (drop.getLimitedDropCount() > 0) { - mobDrop.clampChance(); mobDrop.withChanceModifiers( new IChanceModifier.NormalChance(mobDrop.chance / 100d), new LimitedDropCountModifier(drop.getLimitedDropCount())); diff --git a/src/main/java/com/dreammaster/recipes/RecipeRemover.java b/src/main/java/com/dreammaster/recipes/RecipeRemover.java index 6a926e712..77b7e169d 100644 --- a/src/main/java/com/dreammaster/recipes/RecipeRemover.java +++ b/src/main/java/com/dreammaster/recipes/RecipeRemover.java @@ -111,32 +111,24 @@ public class RecipeRemover { - private static boolean bufferingRecipes = true; - - @SuppressWarnings("unchecked") - private static final ArrayList tList = (ArrayList) CraftingManager.getInstance().getRecipeList(); - - private static final HashMap>> bufferMap = new HashMap<>(); + private static HashMap>> bufferMap; private static void addToBuffer(HashSet outputs, Function whenToRemove) { for (GTUtility.ItemId output : outputs) { bufferMap.computeIfAbsent(output, o -> new ArrayList<>()).add(whenToRemove); } - if (!bufferingRecipes) stopBuffering(); } - private static void stopBuffering() { - int i = tList.size(); - tList.removeIf(r -> { + private static void flushBuffer() { + final ArrayList list = (ArrayList) CraftingManager.getInstance().getRecipeList(); + int i = list.size(); + list.removeIf(r -> { ItemStack rCopy = r.getRecipeOutput(); if (rCopy == null) { return false; } if (rCopy.getItem() == null) { MainRegistry.Logger.warn("Someone is adding recipes with null items!"); - for (StackTraceElement element : Thread.currentThread().getStackTrace()) { - MainRegistry.Logger.warn(element.toString()); - } return true; } if (rCopy.stackTagCompound != null) { @@ -155,8 +147,7 @@ private static void stopBuffering() { } return false; }); - MainRegistry.Logger.info("Removed " + (i - tList.size()) + " recipes!"); - bufferMap.clear(); + MainRegistry.Logger.info("Removed " + (i - list.size()) + " recipes!"); } private static HashSet getItemsHashed(Object item, boolean includeWildcardVariants) { @@ -200,7 +191,7 @@ private static HashSet getItemsHashed(Object item, boolean inc * * @author kuba6000 */ - static void removeRecipeShapelessDelayed(Object aOutput, Object... aRecipe) { + private static void removeRecipeShapelessDelayed(Object aOutput, Object... aRecipe) { ArrayList aRecipeList = new ArrayList<>(Arrays.asList(aRecipe)); addToBuffer(getItemsHashed(aOutput, false), r -> { if (!(r instanceof ShapelessOreRecipe) && !(r instanceof ShapelessRecipes)) return false; @@ -252,7 +243,7 @@ static void removeRecipeShapelessDelayed(Object aOutput, Object... aRecipe) { * * @author kuba6000 */ - static void removeRecipeShapedDelayed(Object aOutput, Object[] row1, Object[] row2, Object[] row3) { + private static void removeRecipeShapedDelayed(Object aOutput, Object[] row1, Object[] row2, Object[] row3) { if (recipeWidthField == null) { try { recipeWidthField = ShapedOreRecipe.class.getDeclaredField("width"); @@ -316,7 +307,7 @@ static void removeRecipeShapedDelayed(Object aOutput, Object[] row1, Object[] ro * * @author kuba6000 */ - static void removeRecipeShapedDelayed(Object aOutput) { + private static void removeRecipeShapedDelayed(Object aOutput) { addToBuffer(getItemsHashed(aOutput, false), r -> r instanceof ShapedOreRecipe || r instanceof ShapedRecipes); } @@ -325,22 +316,19 @@ static void removeRecipeShapedDelayed(Object aOutput) { * * @author kuba6000 */ - static void removeRecipeByOutputDelayed(Object aOutput) { + private static void removeRecipeByOutputDelayed(Object aOutput) { addToBuffer(getItemsHashed(aOutput, false), r -> true); } public static void run() { - + bufferMap = new HashMap<>(); final long timeStart = System.currentTimeMillis(); // AUTOGENERATED FROM SCRIPTS GTModHandler.removeFurnaceSmelting(GTOreDictUnificator.get(OrePrefixes.plate, Materials.Sunnarium, 1L)); GTModHandler.removeFurnaceSmelting(GTOreDictUnificator.get(OrePrefixes.stickLong, Materials.Sunnarium, 1L)); - GTModHandler - .removeFurnaceSmelting(GTOreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Sunnarium, 1L)); - GTModHandler.removeFurnaceSmelting( - GTOreDictUnificator.get(OrePrefixes.toolHeadUniversalSpade, Materials.Sunnarium, 1L)); + GTModHandler.removeFurnaceSmelting(GTOreDictUnificator.get(OrePrefixes.spring, Materials.Sunnarium, 1L)); GTModHandler.removeFurnaceSmelting(GTOreDictUnificator.get(OrePrefixes.gearGtSmall, Materials.Sunnarium, 1L)); GTModHandler.removeFurnaceSmelting(getModItem(Backpack.ID, "boundLeather", 1, wildcard, missing)); @@ -1176,11 +1164,6 @@ public static void run() { removeRecipeByOutputDelayed(ItemList.Emitter_UHV.get(1L)); removeRecipeByOutputDelayed(ItemList.Sensor_UHV.get(1L)); removeRecipeByOutputDelayed(ItemList.Field_Generator_UHV.get(1L)); - removeRecipeByOutputDelayed(GregtechItemList.Super_Chest_LV.get(1)); - removeRecipeByOutputDelayed(GregtechItemList.Super_Chest_MV.get(1)); - removeRecipeByOutputDelayed(GregtechItemList.Super_Chest_HV.get(1)); - removeRecipeByOutputDelayed(GregtechItemList.Super_Chest_EV.get(1)); - removeRecipeByOutputDelayed(GregtechItemList.Super_Chest_IV.get(1)); removeRecipeByOutputDelayed(GregtechItemList.Industrial_WireFactory.get(1)); removeRecipeByOutputDelayed(GregtechItemList.Boiler_Advanced_LV.get(1)); removeRecipeByOutputDelayed(new ItemStack(ModItems.itemBoilerChassis, 1, 0)); @@ -1254,11 +1237,6 @@ public static void run() { removeRecipeByOutputDelayed(getModItem(GraviSuite.ID, "graviTool", 1, 0, missing)); removeRecipeByOutputDelayed(getModItem(GraviSuite.ID, "ultimateLappack", 1, 0, missing)); removeRecipeByOutputDelayed(getModItem(GraviSuiteNEO.ID, "epicLappack", 1, wildcard, missing)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Diamond, 1L)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Diamond, 1L)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Diamond, 1L)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Diamond, 1L)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Diamond, 1L)); removeRecipeByOutputDelayed(getModItem(IndustrialCraft2.ID, "itemRTGPellet", 1, 0, missing)); removeRecipeByOutputDelayed(getModItem(IndustrialCraft2.ID, "itemOreIridium", 1, 0, missing)); removeRecipeByOutputDelayed(getModItem(ThaumicBases.ID, "resource", 1, 0, missing)); @@ -1572,14 +1550,7 @@ public static void run() { removeRecipeByOutputDelayed(getModItem(IndustrialCraft2.ID, "blockMiningPipe", 1, 0, missing)); removeRecipeByOutputDelayed(getModItem(IndustrialCraft2.ID, "blockGenerator", 1, 5, missing)); removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.plate, Materials.Iridium, 1L)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Iridium, 1L)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Iridium, 1L)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadSense, Materials.Iridium, 1L)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Iridium, 1L)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadPlow, Materials.Iridium, 1L)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Iridium, 1L)); removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadSaw, Materials.Iridium, 1L)); - removeRecipeByOutputDelayed(GTOreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Iridium, 1L)); removeRecipeByOutputDelayed(getModItem(IndustrialCraft2.ID, "itemBatLamaCrystal", 1, 0, missing)); removeRecipeByOutputDelayed(getModItem(IndustrialCraft2.ID, "itemDust2", 1, 2, missing)); removeRecipeByOutputDelayed(getModItem(IndustrialCraft2.ID, "itemPartCFPowder", 1, 0, missing)); @@ -3358,9 +3329,8 @@ public static void run() { new Object[0], new Object[0]); - stopBuffering(); - bufferingRecipes = false; - + flushBuffer(); + bufferMap = null; final long timeToLoad = System.currentTimeMillis() - timeStart; MainRegistry.Logger.info("Recipes removal took " + timeToLoad + " ms."); } diff --git a/src/main/java/com/dreammaster/scripts/ScriptAE2FC.java b/src/main/java/com/dreammaster/scripts/ScriptAE2FC.java index ff7bc7765..ac599cfe8 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptAE2FC.java +++ b/src/main/java/com/dreammaster/scripts/ScriptAE2FC.java @@ -2,6 +2,7 @@ import static gregtech.api.enums.Mods.AE2FluidCraft; import static gregtech.api.enums.Mods.AppliedEnergistics2; +import static gregtech.api.enums.Mods.Avaritia; import static gregtech.api.enums.Mods.EternalSingularity; import static gregtech.api.enums.Mods.GTPlusPlus; import static gregtech.api.enums.Mods.GoodGenerator; @@ -21,6 +22,7 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; @@ -39,6 +41,7 @@ import gregtech.api.util.GTOreDictUnificator; import gregtech.api.util.GTUtility; import gtPlusPlus.core.material.MaterialsAlloy; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; public class ScriptAE2FC implements IScriptLoader { @@ -172,6 +175,11 @@ public void loadRecipes() { final ItemStack AE2FC_INTERFACE_P2P = getModItem(AE2FluidCraft.ID, "part_fluid_p2p_interface", 1); final ItemStack AE2_ADVANCED_HOUSING = getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1, 61); final ItemStack T7_YOT = new ItemStack(Loaders.yottaFluidTankCell, 1, 6); + final ItemStack AE2FC_INFINITY_WATER_STORAGE_CELL = getModItem( + AE2FluidCraft.ID, + "fluid_storage.infinity.water", + 1, + 0); final ItemStack AE2FC_ADVANCED_FLUID_STORAGE_HOUSING = getModItem( AE2FluidCraft.ID, "fluid_storage_housing", @@ -456,6 +464,19 @@ public void loadRecipes() { .itemOutputs(AE2FC_FLUID_STORAGE_BUS).duration(15 * SECONDS).eut(TierEU.RECIPE_MV) .addTo(assemblerRecipes); + // preconfigurated priorities for storage buses + ItemStack preconfiguredStorageBus = AE2FC_FLUID_STORAGE_BUS.copy(); + for (int i = 1; i < 25; i++) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setInteger("priority", i); + preconfiguredStorageBus.setTagCompound(tag); + GTValues.RA.stdBuilder().itemInputs(AE2FC_FLUID_STORAGE_BUS, GTUtility.getIntegratedCircuit(i)) + .itemOutputs(preconfiguredStorageBus).duration(5 * SECONDS).eut(TierEU.RECIPE_HV) + .addTo(circuitAssemblerRecipes); + + addShapelessRecipe(preconfiguredStorageBus, AE2FC_FLUID_STORAGE_BUS, GTUtility.getIntegratedCircuit(i)); + } + // Big Long But: Components in Circuit Assembler // 1k ME Storage Component GTValues.RA.stdBuilder() @@ -729,6 +750,49 @@ public void loadRecipes() { .itemOutputs(COMPONENT_16384).fluidInputs(Materials.SolderingAlloy.getMolten(72)).requiresCleanRoom() .duration(10 * SECONDS).eut(TierEU.RECIPE_UV).addTo(circuitAssemblerRecipes); + // Infinite Water Cell + ExtremeCraftingManager.getInstance().addExtremeShapedOreRecipe( + (AE2FC_INFINITY_WATER_STORAGE_CELL), + "--ebcbe--", + "-dalflad-", + "egllhllge", + "illljllli", + "cfhjkjhfc", + "illljllli", + "egllhllge", + "-dalflad-", + "--ebcbe--", + 'a', + "plateSuperdenseCeruclase", + 'b', + "plateSuperdenseCallistoIce", + 'c', + "plateSuperdenseEnrichedHolmium", + 'd', + "plateSuperdenseOsmiridium", + 'e', + "blockCosmicNeutronium", + 'f', + ItemList.Field_Generator_UV.get(1L), + 'g', + "plateSuperdenseOsmium", + 'h', + getModItem(Avaritia.ID, "Resource", 1, 5), + 'i', + "plateSuperdenseLedox", + 'j', + GregtechItemList.Hatch_Reservoir.get(1L), + 'k', + AE2FC_ADVANCED_FLUID_STORAGE_HOUSING, + 'l', + createItemStack( + AE2FluidCraft.ID, + "fluid_packet", + 1, + 0, + "{FluidStack:{FluidName:water,Amount:2147483647}}", + missing)); + // Fluid Quantum Drive ExtremeCraftingManager.getInstance().addExtremeShapedOreRecipe( (AE2FC_QUANTUM_CELL), diff --git a/src/main/java/com/dreammaster/scripts/ScriptAppliedEnergistics2.java b/src/main/java/com/dreammaster/scripts/ScriptAppliedEnergistics2.java index e2051752a..0c64796e8 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptAppliedEnergistics2.java +++ b/src/main/java/com/dreammaster/scripts/ScriptAppliedEnergistics2.java @@ -3,12 +3,15 @@ import static gregtech.api.enums.Mods.AppliedEnergistics2; import static gregtech.api.enums.Mods.Avaritia; import static gregtech.api.enums.Mods.BartWorks; +import static gregtech.api.enums.Mods.Computronics; import static gregtech.api.enums.Mods.DraconicEvolution; +import static gregtech.api.enums.Mods.EnderIO; import static gregtech.api.enums.Mods.EternalSingularity; import static gregtech.api.enums.Mods.ExtraUtilities; import static gregtech.api.enums.Mods.IndustrialCraft2; import static gregtech.api.enums.Mods.IronChests; import static gregtech.api.enums.Mods.Minecraft; +import static gregtech.api.enums.Mods.OpenComputers; import static gregtech.api.enums.Mods.Thaumcraft; import static gregtech.api.enums.Mods.TinkerConstruct; import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes; @@ -27,6 +30,7 @@ import java.util.List; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; @@ -90,6 +94,77 @@ public void loadRecipes() { ItemStack[] FluixSmartCableColor = new ItemStack[16]; ItemStack[] FluixDenseSmartCableColor = new ItemStack[16]; ItemStack[] FluixGlassCableColor = new ItemStack[16]; + final ItemStack storageBus = getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 1, 220, missing); + + // preconfigurated priorities for storage buses + ItemStack preconfiguredStorageBus = storageBus.copy(); + for (int i = 1; i < 25; i++) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setInteger("priority", i); + preconfiguredStorageBus.setTagCompound(tag); + GTValues.RA.stdBuilder().itemInputs(storageBus, GTUtility.getIntegratedCircuit(i)) + .itemOutputs(preconfiguredStorageBus).duration(5 * SECONDS).eut(TierEU.RECIPE_HV) + .addTo(circuitAssemblerRecipes); + + addShapelessRecipe(preconfiguredStorageBus, storageBus, GTUtility.getIntegratedCircuit(i)); + } + // Preconfigured p2ps + + GTValues.RA.stdBuilder() + .itemInputs( + getModItem(IndustrialCraft2.ID, "itemFluidCell", 1), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 460, missing)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 463, missing)) + .duration(10 * SECONDS).eut(TierEU.RECIPE_MV).addTo(circuitAssemblerRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + getModItem(OpenComputers.ID, "cable", 1), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 460, missing)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 468, missing)) + .duration(10 * SECONDS).eut(TierEU.RECIPE_MV).addTo(circuitAssemblerRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + getModItem(EnderIO.ID, "itemPowerConduit", 1), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 460, missing)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 466, missing)) + .duration(10 * SECONDS).eut(TierEU.RECIPE_MV).addTo(circuitAssemblerRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.cableGt01, Materials.RedstoneAlloy, 1L), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 460, missing)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 470, missing)) + .duration(10 * SECONDS).eut(TierEU.RECIPE_MV).addTo(circuitAssemblerRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.plate, Materials.Redstone, 1L), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 460, missing)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 461, missing)) + .duration(10 * SECONDS).eut(TierEU.RECIPE_MV).addTo(circuitAssemblerRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.plate, Materials.Glowstone, 1L), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 460, missing)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 467, missing)) + .duration(10 * SECONDS).eut(TierEU.RECIPE_MV).addTo(circuitAssemblerRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + getModItem(Computronics.ID, "computronics.ironNoteBlock", 1), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 460, missing)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 472, missing)) + .duration(10 * SECONDS).eut(TierEU.RECIPE_MV).addTo(circuitAssemblerRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + getModItem(ExtraUtilities.ID, "chestMini", 1), + getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 460, missing)) + .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 16, 462, missing)) + .duration(10 * SECONDS).eut(TierEU.RECIPE_MV).addTo(circuitAssemblerRecipes); // Hyper-Acceleration Card addShapelessRecipe( @@ -1411,7 +1486,7 @@ public void loadRecipes() { GTOreDictUnificator.get(OrePrefixes.plate, Materials.NetherQuartz, 1L)); // ME storage bus addShapedRecipe( - getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 1, 220, missing), + storageBus, "craftingToolScrewdriver", "chestWood", "craftingToolHardHammer", @@ -1911,8 +1986,7 @@ public void loadRecipes() { getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 1, 440, missing), GTOreDictUnificator.get(OrePrefixes.plate, Materials.NetherQuartz, 2), ItemList.Electric_Piston_LV.get(1L)) - .itemOutputs(getModItem(AppliedEnergistics2.ID, "item.ItemMultiPart", 1, 220, missing)) - .duration(10 * SECONDS).eut(TierEU.RECIPE_MV).addTo(assemblerRecipes); + .itemOutputs(storageBus).duration(10 * SECONDS).eut(TierEU.RECIPE_MV).addTo(assemblerRecipes); GTValues.RA.stdBuilder() .itemInputs( GTOreDictUnificator.get(OrePrefixes.plate, Materials.Titanium, 1), diff --git a/src/main/java/com/dreammaster/scripts/ScriptAvaritia.java b/src/main/java/com/dreammaster/scripts/ScriptAvaritia.java index c2312ecbb..7faa7904d 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptAvaritia.java +++ b/src/main/java/com/dreammaster/scripts/ScriptAvaritia.java @@ -472,13 +472,7 @@ public void loadRecipes() { 'j', getModItem(Avaritia.ID, "Resource", 1, 5, missing)); ExtremeCraftingManager.getInstance().addExtremeShapedOreRecipe( - createItemStack( - Avaritia.ID, - "Infinity_Pickaxe", - 1, - 0, - "{ench:[0:{lvl:10s,id:35s}],hammer:0b}", - missing), + createItemStack(Avaritia.ID, "Infinity_Pickaxe", 1, 0, "{ench:[0:{lvl:10s,id:35s}]}", missing), "-aaaaaaa-", "abbcdebba", "aa-fgh-aa", @@ -511,7 +505,7 @@ public void loadRecipes() { 'k', getModItem(Avaritia.ID, "Resource", 1, 5, missing)); ExtremeCraftingManager.getInstance().addExtremeShapedOreRecipe( - createItemStack(Avaritia.ID, "Infinity_Shovel", 1, 0, "{destroyer:0b}", missing), + getModItem(Avaritia.ID, "Infinity_Shovel", 1, 0, missing), "------aaa", "-----abca", "------dea", diff --git a/src/main/java/com/dreammaster/scripts/ScriptAvaritiaAddons.java b/src/main/java/com/dreammaster/scripts/ScriptAvaritiaAddons.java index 98f69e7fa..e0c11f252 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptAvaritiaAddons.java +++ b/src/main/java/com/dreammaster/scripts/ScriptAvaritiaAddons.java @@ -24,7 +24,9 @@ import cpw.mods.fml.common.registry.GameRegistry; import fox.spiteful.avaritia.Config; +import fox.spiteful.avaritia.blocks.LudicrousBlocks; import fox.spiteful.avaritia.crafting.ExtremeCraftingManager; +import fox.spiteful.avaritia.items.LudicrousItems; import gregtech.api.enums.GTValues; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; @@ -34,6 +36,9 @@ import gregtech.api.recipe.metadata.CompressionTierKey; import gregtech.api.util.GTOreDictUnificator; import gregtech.api.util.GTUtility; +import vazkii.botania.common.item.ModItems; +import vazkii.botania.common.item.block.ItemBlockSpecialFlower; +import vazkii.botania.common.lib.LibBlockNames; public class ScriptAvaritiaAddons implements IScriptLoader { @@ -124,7 +129,74 @@ public void loadRecipes() { ItemList.Quantum_Chest_IV.get(1L), 'h', getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1, 60)); - + // Asgardandelion + ExtremeCraftingManager.getInstance().addExtremeShapedOreRecipe( + ItemBlockSpecialFlower.ofType("asgardandelion"), + "R0D0G0E0M", + "000iii000", + "d0i876i0n", + "00iAZai00", + "T0i5B4i0r", + "010iii010", + "t1102011H", + "001121100", + "e0K131S0m", + 'R', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_ARCANE_ROSE), + 'D', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_DANDELIFEON), + 'G', + ItemBlockSpecialFlower.ofType("beegonia"), + 'E', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_ENTROPINNYUM), + 'M', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_MUNCHDEW), + 'd', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_DAYBLOOM), + 'n', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_NIGHTSHADE), + 'T', + ItemBlockSpecialFlower.ofType("soarleander"), + 'r', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_RAFFLOWSIA), + 't', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_THERMALILY), + 'H', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_HYDROANGEAS), + 'e', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_ENDOFLAME), + 'K', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_KEKIMURUS), + '3', + new ItemStack(ModItems.blackLotus, 1, 1), + 'S', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_SPECTROLUS), + 'm', + ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_NARSLIMMUS), + 'Z', + new ItemStack(LudicrousBlocks.infinitato), + '1', + new ItemStack(LudicrousItems.resource, 1, 3), // Neutronium nugget + '2', + "blockCosmicNeutronium", + 'i', + "plateInfinity", + 'A', + "gemExquisiteBotaniaDragonstone", + 'a', + "gemExquisiteManaDiamond", + 'B', + "plateGaiaSpirit", + '4', + "plateLivingwood", + '5', + "plateLivingrock", + '6', + "plateElvenElementium", + '7', + "plateManasteel", + '8', + "plateTerrasteel"); // Infinity Egg (Witchery) if (Config.witch) { diff --git a/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java b/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java index f18172979..43a388f5f 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java +++ b/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java @@ -2,11 +2,14 @@ import static com.dreammaster.main.MainRegistry.Module_CustomFuels; import static gregtech.api.enums.Mods.BiomesOPlenty; +import static gregtech.api.enums.Mods.Botany; import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.GTPlusPlus; +import static gregtech.api.enums.Mods.HardcoreEnderExpansion; import static gregtech.api.enums.Mods.IguanaTweaksTinkerConstruct; import static gregtech.api.enums.Mods.Minecraft; import static gregtech.api.enums.Mods.PamsHarvestCraft; +import static gregtech.api.enums.Mods.RandomThings; import static gregtech.api.recipe.RecipeMaps.assemblerRecipes; import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; import static gregtech.api.recipe.RecipeMaps.extractorRecipes; @@ -14,6 +17,7 @@ import static gregtech.api.recipe.RecipeMaps.fluidExtractionRecipes; import static gregtech.api.recipe.RecipeMaps.fluidSolidifierRecipes; import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; import static gregtech.api.util.GTModHandler.getModItem; import static gregtech.api.util.GTRecipeBuilder.MINUTES; import static gregtech.api.util.GTRecipeBuilder.SECONDS; @@ -29,6 +33,7 @@ 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.GTOreDictUnificator; import gregtech.api.util.GTUtility; @@ -283,6 +288,24 @@ public void loadRecipes() { GTOreDictUnificator.get(OrePrefixes.dustSmall, Materials.Gypsum, 1L), GTOreDictUnificator.get(OrePrefixes.dustSmall, Materials.Calcite, 1L)) .outputChances(10000, 7500, 2500, 2500).duration(10 * SECONDS).eut(8).addTo(maceratorRecipes); + GTValues.RA.stdBuilder() + .itemInputs( + getModItem(HardcoreEnderExpansion.ID, "end_powder", 8L), + getModItem(RandomThings.ID, "ingredient", 1L, 6)) + .itemOutputs(GTModHandler.getModItem(BiomesOPlenty.ID, "misc", 1L, 4)) + .fluidInputs(FluidRegistry.getFluidStack("endergoo", 1000)).duration(15 * SECONDS).eut(TierEU.RECIPE_HV) + .addTo(mixerRecipes); + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 1L), + getModItem(PamsHarvestCraft.ID, "seaweedItem", 32L), + getModItem(Botany.ID, "misc", 1L, 7)) + .itemOutputs(GTModHandler.getModItem(BiomesOPlenty.ID, "coral1", 32L, 11)) + .fluidInputs(FluidRegistry.getFluidStack("weedex9000", 100)).duration(15 * SECONDS) + .eut(TierEU.RECIPE_MV).addTo(mixerRecipes); + GTValues.RA.stdBuilder().itemInputs(getModItem(BiomesOPlenty.ID, "jarEmpty", 1L)) + .itemOutputs(getModItem(BiomesOPlenty.ID, "jarFilled", 1L)).fluidInputs(Materials.Honey.getFluid(1000L)) + .duration(2 * SECONDS).eut(1).addTo(fluidCannerRecipes); } } diff --git a/src/main/java/com/dreammaster/scripts/ScriptCoreMod.java b/src/main/java/com/dreammaster/scripts/ScriptCoreMod.java index 34ddf3d3b..755177291 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptCoreMod.java +++ b/src/main/java/com/dreammaster/scripts/ScriptCoreMod.java @@ -57,6 +57,7 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; +import gregtech.api.objects.ItemData; import gregtech.api.util.GTModHandler; import gregtech.api.util.GTOreDictUnificator; import gregtech.api.util.GTUtility; @@ -1061,6 +1062,7 @@ public void loadRecipes() { GTOreDictUnificator.get(OrePrefixes.plate, Materials.Bedrockium, 18)) .itemOutputs(com.dreammaster.item.ItemList.EnrichedXSunnariumAlloy.getIS(1)) .duration(2 * MINUTES + 20 * SECONDS).eut(TierEU.RECIPE_UEV).addTo(assemblerRecipes); + GTValues.RA.stdBuilder() .itemInputs( getModItem(IndustrialCraft2.ID, "blockAlloy", 1, 0, missing), @@ -1103,6 +1105,47 @@ public void loadRecipes() { .itemOutputs(BlockList.NeutroniumPlatedReinforcedStone.getIS()) .fluidInputs(FluidRegistry.getFluidStack("molten.naquadria", 144)).duration(25 * SECONDS).eut(480) .addTo(assemblerRecipes); + GTOreDictUnificator.addItemData( + BlockList.BronzePlatedReinforcedStone.getIS(), + new ItemData( + new ItemData(Materials.Bronze, 6 * GTValues.M), + new ItemData(Materials.Steel, 3 * GTValues.M), + new ItemData(Materials.Concrete, 1 * GTValues.M))); + GTOreDictUnificator.addItemData( + BlockList.SteelPlatedReinforcedStone.getIS(), + new ItemData( + new ItemData(Materials.Steel, 8 * GTValues.M), + new ItemData(Materials.Aluminium, 1 * GTValues.M), + new ItemData(Materials.Concrete, 1 * GTValues.M))); + GTOreDictUnificator.addItemData( + BlockList.TitaniumPlatedReinforcedStone.getIS(), + new ItemData( + new ItemData(Materials.Titanium, 6 * GTValues.M), + new ItemData(Materials.Platinum, 1 * GTValues.M), + new ItemData(Materials.Steel, 2 * GTValues.M), + new ItemData(Materials.Concrete, 1 * GTValues.M))); + GTOreDictUnificator.addItemData( + BlockList.TungstensteelPlatedReinforcedStone.getIS(), + new ItemData( + new ItemData(Materials.TungstenSteel, 6 * GTValues.M), + new ItemData(Materials.Iridium, 1 * GTValues.M), + new ItemData(Materials.Steel, 2 * GTValues.M), + new ItemData(Materials.Concrete, 1 * GTValues.M))); + GTOreDictUnificator.addItemData( + BlockList.NaquadahPlatedReinforcedStone.getIS(), + new ItemData( + new ItemData(Materials.Naquadah, 6 * GTValues.M), + new ItemData(Materials.Osmium, 1 * GTValues.M), + new ItemData(Materials.Steel, 2 * GTValues.M), + new ItemData(Materials.Concrete, 1 * GTValues.M))); + GTOreDictUnificator.addItemData( + BlockList.NeutroniumPlatedReinforcedStone.getIS(), + new ItemData( + new ItemData(Materials.Neutronium, 6 * GTValues.M), + new ItemData(Materials.Naquadria, 1 * GTValues.M), + new ItemData(Materials.Steel, 2 * GTValues.M), + new ItemData(Materials.Concrete, 1 * GTValues.M))); + GTValues.RA.stdBuilder() .itemInputs( getModItem(GalacticraftMars.ID, "item.itemBasicAsteroids", 2, 6, missing), diff --git a/src/main/java/com/dreammaster/scripts/ScriptEnderIO.java b/src/main/java/com/dreammaster/scripts/ScriptEnderIO.java index 5ba57343d..64675ad41 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptEnderIO.java +++ b/src/main/java/com/dreammaster/scripts/ScriptEnderIO.java @@ -122,16 +122,6 @@ public void loadRecipes() { .fluidInputs(Materials.EnergeticAlloy.getMolten(144L)).duration(10 * SECONDS).eut(TierEU.RECIPE_HV) .addTo(assemblerRecipes); - // ME Ultra Dense Conduit - GTValues.RA.stdBuilder() - .itemInputs( - getModItem(EnderIO.ID, "itemMEConduit", 16, 1), - GTOreDictUnificator.get(OrePrefixes.circuit, Materials.EV, 1L), - circuit2) - .itemOutputs(getModItem(EnderIO.ID, "itemMEConduit", 4, 2)) - .fluidInputs(Materials.VibrantAlloy.getMolten(144L)).duration(10 * SECONDS).eut(960) - .addTo(assemblerRecipes); - ExtremeCraftingManager.getInstance().addExtremeShapedOreRecipe( createItemStack( EnderIO.ID, @@ -1747,6 +1737,19 @@ public void loadRecipes() { .itemOutputs(getModItem(EnderIO.ID, "itemExtractSpeedUpgrade", 1, 1, missing)) .fluidInputs(FluidRegistry.getFluidStack("molten.rubber", 144)).duration(15 * SECONDS).eut(64) .addTo(assemblerRecipes); + GTValues.RA.stdBuilder() + .itemInputs( + getModItem(EnderIO.ID, "itemExtractSpeedUpgrade", 1, 0, missing), + GTUtility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(EnderIO.ID, "itemExtractSpeedUpgrade", 1, 1, missing)) + .fluidInputs(Materials.Silicone.getMolten(144)).duration(15 * SECONDS).eut(64).addTo(assemblerRecipes); + GTValues.RA.stdBuilder() + .itemInputs( + getModItem(EnderIO.ID, "itemExtractSpeedUpgrade", 1, 0, missing), + GTUtility.getIntegratedCircuit(1)) + .itemOutputs(getModItem(EnderIO.ID, "itemExtractSpeedUpgrade", 1, 1, missing)) + .fluidInputs(Materials.StyreneButadieneRubber.getMolten(144)).duration(15 * SECONDS).eut(64) + .addTo(assemblerRecipes); GTValues.RA.stdBuilder() .itemInputs( getModItem(EnderIO.ID, "blockFusedQuartz", 3, 0, missing), diff --git a/src/main/java/com/dreammaster/scripts/ScriptExtraTrees.java b/src/main/java/com/dreammaster/scripts/ScriptExtraTrees.java index e1eba286d..4c4774145 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptExtraTrees.java +++ b/src/main/java/com/dreammaster/scripts/ScriptExtraTrees.java @@ -7476,5 +7476,27 @@ public void recipes2() { "stickWood", getModItem(Minecraft.ID, "planks", 1, 5, missing), "stickWood"); + addShapedRecipe( + createItemStack(ExtraTrees.ID, "food", 1, 23, "{meta:23}", missing), + "dustSugar", + getModItem(Minecraft.ID, "sand", 1, 1, missing), + "dustSugar", + getModItem(Minecraft.ID, "sand", 1, 1, missing), + "cropPear", + getModItem(Minecraft.ID, "sand", 1, 1, missing), + "dustSugar", + getModItem(Minecraft.ID, "sand", 1, 1, missing), + "dustSugar"); + addShapedRecipe( + createItemStack(ExtraTrees.ID, "food", 1, 40, "{meta:40}", missing), + "dustLazurite", + "gemChippedOlivine", + "dustLapis", + "dustSugar", + getModItem(Forestry.ID, "fruits", 1, 6, missing), + "gemChippedOlivine", + "dustSodalite", + "dustSugar", + "dustLazurite"); } } diff --git a/src/main/java/com/dreammaster/scripts/ScriptForestry.java b/src/main/java/com/dreammaster/scripts/ScriptForestry.java index 035d4470a..72e760b26 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptForestry.java +++ b/src/main/java/com/dreammaster/scripts/ScriptForestry.java @@ -2778,6 +2778,32 @@ private void recipes1() { GTOreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 1L), 'i', getModItem(Forestry.ID, "crate", 1, 0, missing)); + RecipeManagers.carpenterManager.addRecipe( + 60, + FluidRegistry.getFluidStack("seedoil", 1000), + getModItem(Minecraft.ID, "chest", 1, 0, missing), + getModItem(Forestry.ID, "lepidopterology", 1, 0, missing), + "abc", + "def", + "ghi", + 'a', + getModItem(Forestry.ID, "butterflyGE", 1, wildcard, missing), + 'b', + getModItem(Forestry.ID, "butterflyGE", 1, wildcard, missing), + 'c', + getModItem(Forestry.ID, "butterflyGE", 1, wildcard, missing), + 'd', + getModItem(Forestry.ID, "crate", 1, 0, missing), + 'e', + getModItem(Forestry.ID, "crate", 1, 0, missing), + 'f', + getModItem(Forestry.ID, "crate", 1, 0, missing), + 'g', + getModItem(Forestry.ID, "crate", 1, 0, missing), + 'h', + GTOreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 1L), + 'i', + getModItem(Forestry.ID, "crate", 1, 0, missing)); RecipeManagers.carpenterManager.addRecipe( 60, FluidRegistry.getFluidStack("for.honey", 5000), diff --git a/src/main/java/com/dreammaster/scripts/ScriptGregtech.java b/src/main/java/com/dreammaster/scripts/ScriptGregtech.java index 63267cd57..d246231de 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptGregtech.java +++ b/src/main/java/com/dreammaster/scripts/ScriptGregtech.java @@ -98,61 +98,6 @@ public void loadRecipes() { getModItem(SGCraft.ID, "ic2Capacitor", 1, 0, missing), getModItem(SGCraft.ID, "ocInterface", 1, 0, missing), getModItem(SGCraft.ID, "ic2Capacitor", 1, 0, missing)); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Diamond, 1L), - null, - GTOreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), - null, - "craftingToolFile", - GTOreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), - "craftingToolHardHammer", - null, - null, - null); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Diamond, 1L), - GTOreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), - "gemDiamond", - "gemDiamond", - "craftingToolFile", - null, - "craftingToolHardHammer", - null, - null, - null); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Diamond, 1L), - "craftingToolFile", - GTOreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), - "craftingToolHardHammer", - null, - null, - null, - null, - null, - null); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Diamond, 1L), - GTOreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), - "gemDiamond", - "craftingToolHardHammer", - GTOreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), - null, - null, - "craftingToolFile", - null, - null); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Diamond, 1L), - GTOreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1L), - "gemDiamond", - "craftingToolHardHammer", - "craftingToolFile", - null, - null, - null, - null, - null); addShapedRecipe( GTOreDictUnificator.get(OrePrefixes.ring, Materials.Wood, 1L), "craftingToolKnife", diff --git a/src/main/java/com/dreammaster/scripts/ScriptIndustrialCraft.java b/src/main/java/com/dreammaster/scripts/ScriptIndustrialCraft.java index 210c116ae..3a24e2258 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptIndustrialCraft.java +++ b/src/main/java/com/dreammaster/scripts/ScriptIndustrialCraft.java @@ -47,6 +47,7 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.objects.ItemData; import gregtech.api.util.GTOreDictUnificator; import gregtech.api.util.GTUtility; import gtPlusPlus.xmod.ic2.item.IC2Items; @@ -1018,33 +1019,7 @@ public void loadRecipes() { GTOreDictUnificator.get(OrePrefixes.ingotDouble, Materials.Iridium, 1L), null, null); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadAxe, Materials.Iridium, 1L), - "plateIridium", - "ingotIridium", - "craftingToolHardHammer", - "plateIridium", - null, - null, - "craftingToolFile", - null, - null); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadHoe, Materials.Iridium, 1L), - "plateIridium", - "ingotIridium", - "craftingToolHardHammer", - "craftingToolFile", - null, - null); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadSense, Materials.Iridium, 1L), - "plateIridium", - "plateIridium", - "ingotIridium", - "craftingToolHardHammer", - "craftingToolFile", - null); + addShapedRecipe( createItemStack( GregTech.ID, @@ -1062,39 +1037,6 @@ public void loadRecipes() { "ingotIridium", "ingotIridium", null); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadPickaxe, Materials.Iridium, 1L), - "plateIridium", - "ingotIridium", - "ingotIridium", - "craftingToolFile", - null, - "craftingToolHardHammer", - null, - null, - null); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadPlow, Materials.Iridium, 1L), - "plateIridium", - "plateIridium", - null, - "plateIridium", - "plateIridium", - null, - "craftingToolHardHammer", - "craftingToolFile", - null); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadSword, Materials.Iridium, 1L), - null, - "plateIridium", - null, - "craftingToolFile", - "plateIridium", - "craftingToolHardHammer", - null, - null, - null); addShapedRecipe( GTOreDictUnificator.get(OrePrefixes.toolHeadSaw, Materials.Iridium, 1L), "plateIridium", @@ -1106,11 +1048,6 @@ public void loadRecipes() { null, null, null); - addShapedRecipe( - GTOreDictUnificator.get(OrePrefixes.toolHeadShovel, Materials.Iridium, 1L), - "craftingToolFile", - "plateIridium", - "craftingToolHardHammer"); addShapedRecipe( getModItem(IndustrialCraft2.ID, "itemWeedingTrowel", 1, 0, missing), "screwSteel", @@ -1620,6 +1557,11 @@ public void loadRecipes() { GTOreDictUnificator.get(OrePrefixes.plate, Materials.Lead, 2L)) .itemOutputs(getModItem(IndustrialCraft2.ID, "blockreactorvessel", 1, 0, missing)) .duration(10 * SECONDS).eut(120).addTo(assemblerRecipes); + GTOreDictUnificator.addItemData( + getModItem(IndustrialCraft2.ID, "blockAlloy", 1, 0, missing), + new ItemData( + new ItemData(Materials.Steel, 2 * GTValues.M), + new ItemData(Materials.Concrete, 1 * GTValues.M))); GTValues.RA.stdBuilder() .itemInputs( getModItem(IndustrialCraft2.ID, "blockreactorvessel", 1, 0, missing), diff --git a/src/main/java/com/dreammaster/scripts/ScriptOpenComputers.java b/src/main/java/com/dreammaster/scripts/ScriptOpenComputers.java index 329572ac8..6700f2925 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptOpenComputers.java +++ b/src/main/java/com/dreammaster/scripts/ScriptOpenComputers.java @@ -8,17 +8,12 @@ import java.util.Arrays; import java.util.List; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - import fox.spiteful.avaritia.crafting.ExtremeCraftingManager; import gregtech.api.enums.ItemList; import gregtech.api.enums.Mods; public class ScriptOpenComputers implements IScriptLoader { - private static final Log log = LogFactory.getLog(ScriptOpenComputers.class); - @Override public String getScriptName() { return "Open Computers"; diff --git a/src/main/java/com/dreammaster/scripts/ScriptProjectRed.java b/src/main/java/com/dreammaster/scripts/ScriptProjectRed.java index ef1055bfa..32b8582cf 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptProjectRed.java +++ b/src/main/java/com/dreammaster/scripts/ScriptProjectRed.java @@ -38,6 +38,7 @@ import static gregtech.api.recipe.RecipeMaps.mixerRecipes; import static gregtech.api.recipe.RecipeMaps.packagerRecipes; import static gregtech.api.recipe.RecipeMaps.unpackagerRecipes; +import static gregtech.api.recipe.RecipeMaps.wiremillRecipes; import static gregtech.api.util.GTModHandler.getModItem; import static gregtech.api.util.GTRecipeBuilder.SECONDS; import static gregtech.api.util.GTRecipeBuilder.TICKS; @@ -3800,6 +3801,12 @@ private void recipes2() { com.dreammaster.item.ItemList.ElectrotineWire.getIS(1), GTOreDictUnificator.get(OrePrefixes.plate, Materials.Rubber, 1)) .duration(5 * SECONDS).eut(8).addTo(unpackagerRecipes); + GTValues.RA.stdBuilder() + .itemInputs( + GTOreDictUnificator.get(OrePrefixes.wireGt01, Materials.RedAlloy, 1L), + GTUtility.getIntegratedCircuit(2)) + .itemOutputs(getModItem(ProjectRedTransmission.ID, "projectred.transmission.wire", 1, 0, missing)) + .duration(SECONDS).eut(8).addTo(wiremillRecipes); } } diff --git a/src/main/java/com/dreammaster/scripts/ScriptThaumcraft.java b/src/main/java/com/dreammaster/scripts/ScriptThaumcraft.java index f5a98f10d..8f0b2c67e 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptThaumcraft.java +++ b/src/main/java/com/dreammaster/scripts/ScriptThaumcraft.java @@ -4524,12 +4524,14 @@ private void golemancy() { .add(Aspect.getAspect("instrumentum"), 9).add(Aspect.getAspect("meto"), 12) .add(Aspect.getAspect("motus"), 6).add(Aspect.getAspect("praecantatio"), 3)); TCHelper.setResearchComplexity("CORELUMBER", 3); + + TCHelper.removeArcaneRecipe(getModItem(Thaumcraft.ID, "GolemBell", 1, 0)); TCHelper.clearPages("GOLEMBELL"); TCHelper.addResearchPage("GOLEMBELL", new ResearchPage("tc.research_page.GOLEMBELL.1")); TCHelper.addResearchPage("GOLEMBELL", new ResearchPage("tc.research_page.GOLEMBELL.2")); ThaumcraftApi.addArcaneCraftingRecipe( "GOLEMBELL", - createItemStack(Thaumcraft.ID, "GolemBell", 1, 0, "{markers:[0:{side:1b}]}", missing), + getModItem(Thaumcraft.ID, "GolemBell", 1, 0, missing), new AspectList().add(Aspect.getAspect("ordo"), 10).add(Aspect.getAspect("aer"), 5), "abc", "def", @@ -4554,15 +4556,7 @@ private void golemancy() { "craftingToolFile"); TCHelper.addResearchPage( "GOLEMBELL", - new ResearchPage( - TCHelper.findArcaneRecipe( - createItemStack( - Thaumcraft.ID, - "GolemBell", - 1, - 0, - "{markers:[0:{side:1b}]}", - missing)))); + new ResearchPage(TCHelper.findArcaneRecipe(getModItem(Thaumcraft.ID, "GolemBell", 1, 0, missing)))); ThaumcraftApi.addArcaneCraftingRecipe( "UPGRADEAIR", getModItem(Thaumcraft.ID, "ItemGolemUpgrade", 1, 0, missing), diff --git a/src/main/java/com/dreammaster/scripts/ScriptThaumicExploration.java b/src/main/java/com/dreammaster/scripts/ScriptThaumicExploration.java index 149e28ba5..b16347881 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptThaumicExploration.java +++ b/src/main/java/com/dreammaster/scripts/ScriptThaumicExploration.java @@ -2,7 +2,9 @@ import static gregtech.api.enums.Mods.BiomesOPlenty; import static gregtech.api.enums.Mods.ExtraUtilities; +import static gregtech.api.enums.Mods.ForbiddenMagic; import static gregtech.api.enums.Mods.Minecraft; +import static gregtech.api.enums.Mods.Natura; import static gregtech.api.enums.Mods.PamsHarvestCraft; import static gregtech.api.enums.Mods.Thaumcraft; import static gregtech.api.enums.Mods.ThaumicExploration; @@ -1888,6 +1890,23 @@ public void loadRecipes() { TCHelper.findInfusionRecipe(getModItem(ThaumicExploration.ID, "talismanFood", 1, 0, missing)))); TCHelper.addResearchPrereq("THINKTANK", "BraincureGTNH", false); ThaumcraftApi.addWarpToResearch("THINKTANK", 2); + ThaumcraftApi.addArcaneCraftingRecipe( + "TalismanfoodtGTNH", + getModItem(ThaumicExploration.ID, "taintBerry", 1, 0, missing), + new AspectList().add(Aspect.getAspect("aer"), 20).add(Aspect.getAspect("aqua"), 20) + .add(Aspect.getAspect("ignis"), 20).add(Aspect.getAspect("terra"), 20) + .add(Aspect.getAspect("ordo"), 25).add(Aspect.getAspect("perditio"), 25), + "tft", + "gbg", + "ggg", + 't', + getModItem(Thaumcraft.ID, "ItemResource", 1, 12, missing), + 'g', + getModItem(Thaumcraft.ID, "ItemResource", 1, 11, missing), + 'b', + getModItem(Natura.ID, "berry.nether", 1, missing), + 'f', + getModItem(ForbiddenMagic.ID, "TaintFruit", 1, missing)); TCHelper.orphanResearch("DREAMCATCHER"); TCHelper.removeResearch("DREAMCATCHER"); new ResearchItem( diff --git a/src/main/java/com/dreammaster/scripts/ScriptThaumicHorizons.java b/src/main/java/com/dreammaster/scripts/ScriptThaumicHorizons.java index 389d3f71f..3a3a51988 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptThaumicHorizons.java +++ b/src/main/java/com/dreammaster/scripts/ScriptThaumicHorizons.java @@ -1,8 +1,12 @@ package com.dreammaster.scripts; +import static gregtech.api.enums.Mods.BiomesOPlenty; import static gregtech.api.enums.Mods.Thaumcraft; import static gregtech.api.enums.Mods.ThaumicHorizons; +import static gregtech.api.recipe.RecipeMaps.compressorRecipes; +import static gregtech.api.recipe.RecipeMaps.extractorRecipes; import static gregtech.api.util.GTModHandler.getModItem; +import static gregtech.api.util.GTRecipeBuilder.SECONDS; import java.util.Arrays; import java.util.List; @@ -11,6 +15,7 @@ import com.dreammaster.thaumcraft.TCHelper; +import gregtech.api.enums.GTValues; import gregtech.api.enums.Materials; import gregtech.api.enums.Mods; import gregtech.api.enums.OrePrefixes; @@ -35,6 +40,7 @@ public List getDependencies() { public void loadRecipes() { TCHelper.removeArcaneRecipe(getModItem(ThaumicHorizons.ID, "boatGreatwood", 1, 0, missing)); TCHelper.removeArcaneRecipe(getModItem(ThaumicHorizons.ID, "boatThaumium", 1, 0, missing)); + TCHelper.removeArcaneRecipe(getModItem(ThaumicHorizons.ID, "Golemancy Bell TH", 1, 0)); TCHelper.removeArcaneRecipe(getModItem(ThaumicHorizons.ID, "planarConduit", 1, 0, missing)); TCHelper.removeArcaneRecipe(getModItem(ThaumicHorizons.ID, "transductionAmplifier", 1, 0, missing)); TCHelper.removeInfusionRecipe(getModItem(ThaumicHorizons.ID, "vortexStabilizer", 1, 0, missing)); @@ -194,5 +200,11 @@ public void loadRecipes() { TCHelper.refreshResearchPages("transductionAmplifier"); TCHelper.refreshResearchPages("vortexStabilizer"); TCHelper.refreshResearchPages("recombinator"); + GTValues.RA.stdBuilder().itemInputs(getModItem(BiomesOPlenty.ID, "flesh", 2, missing)) + .itemOutputs(getModItem(ThaumicHorizons.ID, "meatTH", 1, missing)).duration(15 * SECONDS).eut(2) + .addTo(compressorRecipes); + GTValues.RA.stdBuilder().itemInputs(getModItem(ThaumicHorizons.ID, "meatCookedTH", 1, missing)) + .itemOutputs(getModItem(ThaumicHorizons.ID, "meatNuggetTH", 4, missing)).duration(15 * SECONDS).eut(2) + .addTo(extractorRecipes); } } diff --git a/src/main/java/com/dreammaster/scripts/ScriptWarpTheory.java b/src/main/java/com/dreammaster/scripts/ScriptWarpTheory.java index ce5d0ceaa..958baa7bf 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptWarpTheory.java +++ b/src/main/java/com/dreammaster/scripts/ScriptWarpTheory.java @@ -4,8 +4,11 @@ import static gregtech.api.enums.Mods.BiomesOPlenty; import static gregtech.api.enums.Mods.BloodMagic; import static gregtech.api.enums.Mods.Minecraft; +import static gregtech.api.enums.Mods.OpenBlocks; import static gregtech.api.enums.Mods.Thaumcraft; import static gregtech.api.enums.Mods.ThaumicBases; +import static gregtech.api.enums.Mods.ThaumicExploration; +import static gregtech.api.enums.Mods.ThaumicTinkerer; import static gregtech.api.enums.Mods.WarpTheory; import static gregtech.api.enums.Mods.Witchery; import static gregtech.api.util.GTModHandler.getModItem; @@ -52,6 +55,7 @@ public void loadRecipes() { TCHelper.removeInfusionRecipe(getModItem(WarpTheory.ID, "item.warptheory.cleanserminor", 1, 0, missing)); TCHelper.removeInfusionRecipe(getModItem(WarpTheory.ID, "item.warptheory.cleanser", 1, 0, missing)); TCHelper.removeInfusionRecipe(getModItem(WarpTheory.ID, "item.warptheory.amulet", 1, 0, missing)); + TCHelper.removeInfusionRecipe(getModItem(WarpTheory.ID, "item.warptheory.portableshower", 1, 0, missing)); TCHelper.clearPrereq("warptheory.paper"); TCHelper.addResearchPrereq("warptheory.paper", "RESEARCHER2", false); TCHelper.clearPages("warptheory.paper"); @@ -202,8 +206,38 @@ public void loadRecipes() { .add(Aspect.getAspect("potentia"), 12).add(Aspect.getAspect("praecantatio"), 9) .add(Aspect.getAspect("permutatio"), 6).add(Aspect.getAspect("terra"), 3)); TCHelper.setResearchComplexity("warptheory.amulet", 4); + + TCHelper.orphanResearch("warptheory.portableshower"); + TCHelper.clearPrereq("warptheory.portableshower"); + TCHelper.addResearchPrereq("warptheory.portableshower", "PURETEAR", false); + ThaumcraftApi.addInfusionCraftingRecipe( + "warptheory.portableshower", + getModItem(WarpTheory.ID, "item.warptheory.portableshower", 1, 0, missing), + 64, + new AspectList().add(Aspect.getAspect("custom1"), 16).add(Aspect.getAspect("custom5"), 16) + .add(Aspect.getAspect("aer"), 1024).add(Aspect.getAspect("aqua"), 1024) + .add(Aspect.getAspect("praecantatio"), 256).add(Aspect.getAspect("tutamen"), 256) + .add(Aspect.getAspect("cognitio"), 256).add(Aspect.getAspect("tutamen"), 256) + .add(Aspect.getAspect("sano"), 1024), + getModItem(WarpTheory.ID, "item.warptheory.amulet", 1, 0, missing), + new ItemStack[] { getModItem(ThaumicTinkerer.ID, "kamiResource", 1, 1, missing), + getModItem(Thaumcraft.ID, "blockStoneDevice", 1, 12, missing), + getModItem(ThaumicExploration.ID, "everfullUrn", 1, 0, missing), + getModItem(Thaumcraft.ID, "ItemGolemCore", 1, 0, missing), + getModItem(OpenBlocks.ID, "sprinkler", 1, 0, missing), + GTOreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Neutronium, 1L), + getModItem(OpenBlocks.ID, "xpshower", 1, 0, missing), + getModItem(Thaumcraft.ID, "ItemEldritchObject", 1L, 3), + GTOreDictUnificator.get(OrePrefixes.plateSuperdense, Materials.Ichorium, 1L) }); + TCHelper.setResearchAspects( + "warptheory.portableshower", + new AspectList().add(Aspect.getAspect("custom1"), 5).add(Aspect.getAspect("custom3"), 5) + .add(Aspect.getAspect("potentia"), 32).add(Aspect.getAspect("praecantatio"), 20) + .add(Aspect.getAspect("aqua"), 32).add(Aspect.getAspect("aer"), 32)); + TCHelper.setResearchComplexity("warptheory.portableshower", 4); TCHelper.refreshResearchPages("warptheory.paper"); TCHelper.refreshResearchPages("warptheory.something"); TCHelper.refreshResearchPages("warptheory.amulet"); + TCHelper.refreshResearchPages("warptheory.portableshower"); } } diff --git a/src/main/resources/assets/dreamcraft/lang/en_US.lang b/src/main/resources/assets/dreamcraft/lang/en_US.lang index a66c5719d..23eda1af3 100644 --- a/src/main/resources/assets/dreamcraft/lang/en_US.lang +++ b/src/main/resources/assets/dreamcraft/lang/en_US.lang @@ -636,6 +636,7 @@ item.HarmonicChevron.name=Stargate Chevron of Harmonic Breakthrough item.HarmonicFramePart.name=Stargate Frame Part of Harmonic Breakthrough item.StargateDustAncients.name=Stargate-Crystal Dust of the Ancients item.StargateCrystalAncients.name=Stargate Core Crystal of the Ancients +item.warptheory.portableshower.name=Portable Shower tc.aspect.custom1=Equality, Balance, Uniformity tc.aspect.custom2=Insanity, Madness, Craziness @@ -1739,7 +1740,7 @@ item.tconstruct.manual.weaponry.part_materials=\n\nValid Shaft Materials:\n* Sti item.tconstruct.manual.weaponry.bolts=\n\nBolts:\nCrafting bolts is a delicate process. First you need a core in the form of a tool rod.\nTake this tool rod to a smeltery and put it into a Casting Table. Pour some metal onto it to coat the tip with a more damaging material.\nAfter this process, add a fletching and your bolts are ready to be used.\n\nSince the bolts consist of a harder core and tip they carry more weight than regular arrows, making them perfect to fight armored targets. dreamcraft.mobsinfocompat.limitedropcount=Drops only %s times per person -dreamcraft.gui.quitmessage=Are you sure you want to exit the game ? +dreamcraft.gui.quitmessage=Are you sure you want to exit the game? dreamcraft.welcome.welcome=Welcome to Gregtech: New Horizons dreamcraft.welcome.questbook=The Quest Book has a shortcut key, check your keybindings. @@ -1751,4 +1752,4 @@ dreamcraft.welcome.visitdiscord=Visit our discord at dreamcraft.welcome.click_discord=Click to open discord! dreamcraft.pausemenu.bug=Report a Bug -dreamcraft.pausemenu.wiki=Open the Wiki \ No newline at end of file +dreamcraft.pausemenu.wiki=Open the Wiki