aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/GT_Mod.java4
-rw-r--r--src/main/java/gregtech/api/GregTech_API.java11
-rw-r--r--src/main/java/gregtech/api/enums/Materials.java16
-rw-r--r--src/main/java/gregtech/api/enums/OrePrefixes.java2
-rw-r--r--src/main/java/gregtech/api/enums/TextureSet.java4
-rw-r--r--src/main/java/gregtech/api/enums/Textures.java4
-rw-r--r--src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java16
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java13
-rw-r--r--src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java39
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java186
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java583
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java6
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java180
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java9
-rw-r--r--src/main/java/gregtech/api/util/GT_LanguageManager.java5
-rw-r--r--src/main/java/gregtech/api/util/GT_ModHandler.java39
-rw-r--r--src/main/java/gregtech/common/GT_Client.java102
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java24
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Item_Machines.java4
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java39
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java3
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java17
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeChemicalReactor.java60
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java46
-rw-r--r--src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java12
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java255
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java46
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DL.pngbin0 -> 410 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DOWN.pngbin0 -> 309 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DR.pngbin0 -> 406 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LEFT.pngbin0 -> 316 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LR.pngbin0 -> 428 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_ND.pngbin0 -> 499 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NL.pngbin0 -> 493 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NR.pngbin0 -> 498 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NU.pngbin0 -> 499 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_RIGHT.pngbin0 -> 320 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UD.pngbin0 -> 408 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UL.pngbin0 -> 398 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UP.pngbin0 -> 302 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UR.pngbin0 -> 408 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeNonuple.pngbin0 -> 433 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeQuadruple.pngbin0 -> 448 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeNonuple.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeQuadruple.pngbin0 -> 521 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeNonuple.pngbin0 -> 433 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeQuadruple.pngbin0 -> 448 bytes
96 files changed, 1178 insertions, 549 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java
index 7cfbeb6103..a4768de55b 100644
--- a/src/main/java/gregtech/GT_Mod.java
+++ b/src/main/java/gregtech/GT_Mod.java
@@ -221,6 +221,7 @@ public class GT_Mod implements IGT_Mod {
gregtechproxy.mFlintChance = tMainConfig.get(aTextGeneral, "FlintAndSteelChance", 30).getInt(30);
gregtechproxy.mItemDespawnTime = tMainConfig.get(aTextGeneral, "ItemDespawnTime", 6000).getInt(6000);
gregtechproxy.mNerfStorageBlocks = tMainConfig.get(aTextGeneral,"NerfStorageBlocks",true).getBoolean(true);
+ gregtechproxy.mHardMachineCasings= tMainConfig.get(aTextGeneral,"HardMachineCasings",true).getBoolean(true);
gregtechproxy.mDisableVanillaOres = tMainConfig.get(aTextGeneral, "DisableVanillaOres", true).getBoolean(true);
gregtechproxy.mNerfDustCrafting = tMainConfig.get(aTextGeneral, "NerfDustCrafting", true).getBoolean(true);
gregtechproxy.mIncreaseDungeonLoot = tMainConfig.get(aTextGeneral, "IncreaseDungeonLoot", true).getBoolean(true);
@@ -281,6 +282,9 @@ public class GT_Mod implements IGT_Mod {
gregtechproxy.enableBasaltOres = GregTech_API.sWorldgenFile.get("general", "enableBasaltOres", gregtechproxy.enableBasaltOres);
gregtechproxy.enableGCOres = GregTech_API.sWorldgenFile.get("general", "enableGCOres", gregtechproxy.enableGCOres);
gregtechproxy.enableUBOres = GregTech_API.sWorldgenFile.get("general", "enableUBOres", gregtechproxy.enableUBOres);
+ gregtechproxy.gt6Pipe = tMainConfig.get("general", "GT6StyledPipesConnection", true).getBoolean(true);
+ gregtechproxy.gt6Cable = tMainConfig.get("general", "GT6StyledWiresConnection", false).getBoolean(false);
+ gregtechproxy.costlyCableConnection = tMainConfig.get("general", "CableConnectionRequiresSolderingMaterial", false).getBoolean(false);
Materials[] tDisableOres = new Materials[]{Materials.Chrome, Materials.Naquadria, Materials.Silicon, Materials.Cobalt, Materials.Cadmium, Materials.Indium, Materials.Tungsten,
Materials.Adamantium, Materials.Mithril, Materials.DarkIron, Materials.Rutile, Materials.Alduorite, Materials.Magnesium, Materials.Nikolite};
diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java
index b5b38c6c23..4dcc76a924 100644
--- a/src/main/java/gregtech/api/GregTech_API.java
+++ b/src/main/java/gregtech/api/GregTech_API.java
@@ -127,7 +127,7 @@ public class GregTech_API {
/**
* The List of Tools, which can be used. Accepts regular damageable Items and Electric Items
*/
- public static final GT_HashSet<GT_ItemStack> sToolList = new GT_HashSet<GT_ItemStack>(), sCrowbarList = new GT_HashSet<GT_ItemStack>(), sScrewdriverList = new GT_HashSet<GT_ItemStack>(), sWrenchList = new GT_HashSet<GT_ItemStack>(), sSoftHammerList = new GT_HashSet<GT_ItemStack>(), sHardHammerList = new GT_HashSet<GT_ItemStack>(), sSolderingToolList = new GT_HashSet<GT_ItemStack>(), sSolderingMetalList = new GT_HashSet<GT_ItemStack>();
+ public static final GT_HashSet<GT_ItemStack> sToolList = new GT_HashSet<GT_ItemStack>(), sCrowbarList = new GT_HashSet<GT_ItemStack>(), sScrewdriverList = new GT_HashSet<GT_ItemStack>(), sWrenchList = new GT_HashSet<GT_ItemStack>(), sSoftHammerList = new GT_HashSet<GT_ItemStack>(), sHardHammerList = new GT_HashSet<GT_ItemStack>(), sWireCutterList = new GT_HashSet<GT_ItemStack>(), sSolderingToolList = new GT_HashSet<GT_ItemStack>(), sSolderingMetalList = new GT_HashSet<GT_ItemStack>();
/**
* The List of Hazmat Armors
*/
@@ -576,6 +576,15 @@ public class GregTech_API {
}
/**
+ * Register a Wire Cutter to interact with Machines
+ * <p/>
+ * You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented).
+ */
+ public static boolean registerWireCutter(ItemStack aTool) {
+ return registerTool(aTool, sWireCutterList);
+ }
+
+ /**
* Register a Soldering Tool to interact with Machines
* <p/>
* You need to register Tools in the Load Phase, because otherwise the Autodetection will assign a Tool Type in certain Cases during postload (When IToolWrench or similar Interfaces are implemented).
diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java
index 9473bbddf1..dc2a366c51 100644
--- a/src/main/java/gregtech/api/enums/Materials.java
+++ b/src/main/java/gregtech/api/enums/Materials.java
@@ -536,6 +536,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
public static Materials HeavyFuel = new Materials(741, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 255, 0, 0, "HeavyFuel", "Heavy Fuel", 3, 192, -1, 0, false, false, 1, 1, 1, Dyes.dyeBlack).setCanBeCracked(true);
public static Materials LPG = new Materials(742, TextureSet.SET_FLUID, 1.0F, 0, 0, 16, 255, 255, 0, 0, "LPG", "LPG", 1, 256, -1, 0, false, false, 1, 1, 1, Dyes.dyeYellow);
+ public static Materials Chlorobenzene = new MaterialBuilder(605, TextureSet.SET_FLUID, "Chlorobenzene").addCell().addFluid().setRGB(0, 50, 65).setColor(Dyes.dyeGray).setMaterialList(new MaterialStack(Carbon, 6), new MaterialStack(Hydrogen, 5), new MaterialStack(Chlorine, 1)).addElectrolyzerRecipe().constructMaterial();
public static Materials DilutedHydrochloricAcid = new MaterialBuilder(606, TextureSet.SET_FLUID, "Diluted Hydrochloric Acid").setName("DilutedHydrochloricAcid_GT5U").addCell().addFluid().setRGB(153, 167, 163).setColor(Dyes.dyeLightGray).setMaterialList(new MaterialStack(Hydrogen, 1), new MaterialStack(Chlorine, 1)).constructMaterial();
public static Materials Pyrochlore = new MaterialBuilder(607, TextureSet.SET_METALLIC, "Pyrochlore").addDustItems().addOreItems().setRGB(43, 17, 0).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Calcium, 2), new MaterialStack(Niobium, 2), new MaterialStack(Oxygen, 7)).addElectrolyzerRecipe().constructMaterial();
public static Materials GrowthMediumRaw = new MaterialBuilder(608, TextureSet.SET_FLUID, "Raw Growth Medium").setName("GrowthMediumRaw").addCell().addFluid().setRGB(211, 141, 95).setColor(Dyes.dyeOrange).constructMaterial();
@@ -569,8 +570,8 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
public static Materials Ethane = new MaterialBuilder(642, TextureSet.SET_FLUID, "Ethane").addCell().addGas().setRGB(200, 200, 255).setColor(Dyes.dyeLightBlue).setFuelType(MaterialBuilder.GAS).setFuelPower(168).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 6)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
public static Materials Propane = new MaterialBuilder(643, TextureSet.SET_FLUID, "Propane").addCell().addGas().setRGB(250, 226, 80).setColor(Dyes.dyeYellow).setFuelType(MaterialBuilder.GAS).setFuelPower(232).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
public static Materials Butane = new MaterialBuilder(644, TextureSet.SET_FLUID, "Butane").addCell().addGas().setRGB(182, 55, 30).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.GAS).setFuelPower(296).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 10)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
- public static Materials Butene = new MaterialBuilder(645, TextureSet.SET_FLUID, "Butene").addCell().addGas().setRGB(207, 80, 5).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.GAS).setFuelPower(256).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
- public static Materials Butadiene = new MaterialBuilder(646, TextureSet.SET_FLUID, "Butadiene").addCell().addGas().setRGB(232, 105, 0).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.GAS).setFuelPower(206).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
+ public static Materials Butene = new MaterialBuilder(645, TextureSet.SET_FLUID, "Butene").addCell().addGas().setRGB(207, 80, 5).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.GAS).setFuelPower(256).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Butadiene = new MaterialBuilder(646, TextureSet.SET_FLUID, "Butadiene").addCell().addGas().setRGB(232, 105, 0).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.GAS).setFuelPower(206).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6)).addElectrolyzerRecipe().constructMaterial();
public static Materials RawStyreneButadieneRubber = new MaterialBuilder(634, TextureSet.SET_SHINY, "Raw Styrene-Butadiene Rubber").addDustItems().setRGB(84, 64, 61).setColor(Dyes.dyeGray).setMaterialList(new MaterialStack(Styrene, 1), new MaterialStack(Butadiene, 3)).constructMaterial();
public static Materials StyreneButadieneRubber = new MaterialBuilder(635, TextureSet.SET_SHINY, "Styrene-Butadiene Rubber").addDustItems().addMetalItems().addToolHeadItems().addGearItems().setToolSpeed(3.0f).setDurability(128).setToolQuality(1).setRGB(33, 26, 24).setColor(Dyes.dyeBlack).setMaterialList(new MaterialStack(Styrene, 1), new MaterialStack(Butadiene, 3)).constructMaterial();
public static Materials Toluene = new MaterialBuilder(647, TextureSet.SET_FLUID, "Toluene").addCell().setRGB(80, 29, 5).setColor(Dyes.dyeBrown).setFuelType(MaterialBuilder.GAS).setFuelPower(328).setMaterialList(new MaterialStack(Carbon, 7), new MaterialStack(Hydrogen, 8)).addElectrolyzerRecipe().constructMaterial();
@@ -599,8 +600,8 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
public static Materials Methanol = new MaterialBuilder(673, TextureSet.SET_FLUID, "Methanol").addCell().addFluid().setRGB(170, 136, 0).setColor(Dyes.dyeBrown).setFuelPower(84).setMaterialList(new MaterialStack(Carbon, 1), new MaterialStack(Hydrogen, 4), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
public static Materials CarbonMonoxide = new MaterialBuilder(674, TextureSet.SET_FLUID, "Carbon Monoxide").addCell().addGas().setRGB(14, 72, 128).setColor(Dyes.dyeBrown).setFuelType(MaterialBuilder.GAS).setFuelPower(24).setMaterialList(new MaterialStack(Carbon, 1), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
public static Materials MetalMixture = new MaterialBuilder(676, TextureSet.SET_METALLIC, "Metal Mixture").addDustItems().setRGB(80, 45, 22).setColor(Dyes.dyeBrown).constructMaterial();
- public static Materials Ethylene = new MaterialBuilder(677, TextureSet.SET_FLUID, "Ethylene").addCell().addGas().setRGB(225, 225, 225).setColor(Dyes.dyeWhite).setFuelType(MaterialBuilder.GAS).setFuelPower(128).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 4)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
- public static Materials Propene = new MaterialBuilder(678, TextureSet.SET_FLUID, "Propene").addCell().addGas().setRGB(255, 221, 85).setColor(Dyes.dyeYellow).setFuelType(MaterialBuilder.GAS).setFuelPower(192).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6)).addElectrolyzerRecipe().setCanBeCracked(true).constructMaterial();
+ public static Materials Ethylene = new MaterialBuilder(677, TextureSet.SET_FLUID, "Ethylene").addCell().addGas().setRGB(225, 225, 225).setColor(Dyes.dyeWhite).setFuelType(MaterialBuilder.GAS).setFuelPower(128).setMaterialList(new MaterialStack(Carbon, 2), new MaterialStack(Hydrogen, 4)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials Propene = new MaterialBuilder(678, TextureSet.SET_FLUID, "Propene").addCell().addGas().setRGB(255, 221, 85).setColor(Dyes.dyeYellow).setFuelType(MaterialBuilder.GAS).setFuelPower(192).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6)).addElectrolyzerRecipe().constructMaterial();
public static Materials VinylAcetate = new MaterialBuilder(679, TextureSet.SET_FLUID, "Vinyl Acetate").addCell().addFluid().setRGB(255, 179, 128).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)).addElectrolyzerRecipe().constructMaterial();
public static Materials PolyvinylAcetate = new MaterialBuilder(680, TextureSet.SET_FLUID, "Polyvinyl Acetate").addCell().addFluid().setRGB(255, 153, 85).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(Carbon, 4), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)).constructMaterial();
public static Materials MethylAcetate = new MaterialBuilder(681, TextureSet.SET_FLUID, "Methyl Acetate").addCell().addFluid().setRGB(238, 198, 175).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(Carbon, 3), new MaterialStack(Hydrogen, 6), new MaterialStack(Oxygen, 2)).addElectrolyzerRecipe().constructMaterial();
@@ -745,7 +746,12 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
public static Materials HSSS = new Materials( 374, TextureSet.SET_METALLIC, 14.0F, 3000, 4, 1|2|64|128, 102, 0, 51, 0, "HSSS", "HSS-S", 0, 0, 5400, 5400, true, false, 4, 1, 1, Dyes.dyeRed, 2, Arrays.asList(new MaterialStack(HSSG, 6), new MaterialStack(Iridium, 2), new MaterialStack(Osmium, 1)));
public static Materials DilutedSulfuricAcid = new MaterialBuilder(640, TextureSet.SET_FLUID, "Diluted Sulfuric Acid").addCell().addFluid().setRGB(192, 120, 32).setColor(Dyes.dyeOrange).setMaterialList(new MaterialStack(SulfuricAcid, 1)).constructMaterial();
public static Materials EpoxidFiberReinforced = new Materials(610, TextureSet.SET_DULL,3.0F, 64, 1, 1|2|64|128, 160, 112, 16, 0, "EpoxidFiberReinforced", "Fiber-Reinforced Epoxy Resin", 0, 0, 400, 0, false, false, 1, 1, 1, Dyes.dyeBrown, 2, Arrays.asList(new MaterialStack(Epoxid, 1)), Arrays.asList(new TC_AspectStack(TC_Aspects.MOTUS, 2)));
-
+ public static Materials NitrousOxide = new MaterialBuilder(993, TextureSet.SET_FLUID, "Nitrous Oxide").addCell().addGas().setRGB(125, 200, 255).setColor(Dyes.dyeBlue).setMaterialList(new MaterialStack(Nitrogen, 2), new MaterialStack(Oxygen, 1)).addElectrolyzerRecipe().constructMaterial();
+ public static Materials AntiKnock = new MaterialBuilder(994, TextureSet.SET_FLUID, "Ethyl Tert-Butyl Ether").addCell().addFluid().setRGB(255, 255, 255).setColor(Dyes.dyeWhite).constructMaterial();
+ public static Materials Octane = new MaterialBuilder(995, TextureSet.SET_FLUID, "Octane").addCell().addFluid().setRGB(255, 255, 255).setColor(Dyes.dyeWhite).setFuelType(MaterialBuilder.DIESEL).setFuelPower(80).setMaterialList(new MaterialStack(Carbon, 8), new MaterialStack(Hydrogen, 18)).constructMaterial();
+ public static Materials GasolineRaw = new MaterialBuilder(996, TextureSet.SET_FLUID, "Raw Gasoline").addCell().addFluid().setRGB(255,100,0).setColor(Dyes.dyeOrange).constructMaterial();
+ public static Materials GasolineRegular = new MaterialBuilder(997, TextureSet.SET_FLUID, "Gasoline").addCell().addFluid().setRGB(255,165,0).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.DIESEL).setFuelPower(384).constructMaterial();
+ public static Materials GasolinePremium = new MaterialBuilder(998, TextureSet.SET_FLUID, "High Octane Gasoline").addCell().addFluid().setRGB(255,165,0).setColor(Dyes.dyeOrange).setFuelType(MaterialBuilder.DIESEL).setFuelPower(768).constructMaterial();
/**
* Materials which are renamed automatically
diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java
index 7381e10aa7..f9e44da60d 100644
--- a/src/main/java/gregtech/api/enums/OrePrefixes.java
+++ b/src/main/java/gregtech/api/enums/OrePrefixes.java
@@ -188,6 +188,8 @@ public enum OrePrefixes {
pipeMedium("Medium Pipes", "Medium ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 3, 64, 80),
pipeLarge("Large pipes", "Large ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 6, 64, 81),
pipeHuge("Huge Pipes", "Huge ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 12, 64, 82),
+ pipeQuadruple("Quadruple Pipes", "Quadruple ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M *12, 64, 84),
+ pipeNonuple("Nonuple Pipes", "Nonuple ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 9, 64, 85),
pipeRestrictiveTiny("Tiny Restrictive Pipes", "Tiny Restrictive ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M / 2, 64, 78),
pipeRestrictiveSmall("Small Restrictive Pipes", "Small Restrictive ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 1, 64, 79),
pipeRestrictiveMedium("Medium Restrictive Pipes", "Medium Restrictive ", " Pipe", true, true, false, false, true, false, true, false, false, false, 0, M * 3, 64, 80),
diff --git a/src/main/java/gregtech/api/enums/TextureSet.java b/src/main/java/gregtech/api/enums/TextureSet.java
index 891a808553..aa893780e8 100644
--- a/src/main/java/gregtech/api/enums/TextureSet.java
+++ b/src/main/java/gregtech/api/enums/TextureSet.java
@@ -103,8 +103,8 @@ public class TextureSet {
mTextures[81] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + mSetName + "/pipeLarge");
mTextures[82] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + mSetName + "/pipeHuge");
mTextures[83] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + mSetName + "/frameGt");
- mTextures[84] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + mSetName + aTextVoidDir);
- mTextures[85] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + mSetName + aTextVoidDir);
+ mTextures[84] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + mSetName + "/pipeQuadruple");
+ mTextures[85] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + mSetName + "/pipeNonuple");
mTextures[86] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + mSetName + aTextVoidDir);
mTextures[87] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + mSetName + aTextVoidDir);
mTextures[88] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + mSetName + aTextVoidDir);
diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java
index f60fa257be..ffde46509a 100644
--- a/src/main/java/gregtech/api/enums/Textures.java
+++ b/src/main/java/gregtech/api/enums/Textures.java
@@ -103,7 +103,9 @@ public class Textures {
OVERLAY_FRONT_PROCESSING_ARRAY, OVERLAY_FRONT_OIL_DRILL_ACTIVE, OVERLAY_FRONT_OIL_DRILL, OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE, OVERLAY_FRONT_DIESEL_ENGINE, OVERLAY_FRONT_PYROLYSE_OVEN_ACTIVE,
OVERLAY_FRONT_PYROLYSE_OVEN, OVERLAY_FRONT_OIL_CRACKER_ACTIVE, OVERLAY_FRONT_OIL_CRACKER, OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE, OVERLAY_FRONT_DISTILLATION_TOWER,
OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE, OVERLAY_FRONT_ASSEMBLY_LINE, OVERLAY_FRONT_ORE_DRILL_ACTIVE, OVERLAY_FRONT_ORE_DRILL, OVERLAY_TOP_CLEANROOM_ACTIVE, OVERLAY_TOP_CLEANROOM,
- OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR, OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE;
+ OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR, OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE,
+ PIPE_RESTRICTOR_UP, PIPE_RESTRICTOR_DOWN, PIPE_RESTRICTOR_LEFT, PIPE_RESTRICTOR_RIGHT, PIPE_RESTRICTOR_NU, PIPE_RESTRICTOR_ND, PIPE_RESTRICTOR_NL, PIPE_RESTRICTOR_NR,
+ PIPE_RESTRICTOR_UD, PIPE_RESTRICTOR_UL, PIPE_RESTRICTOR_UR, PIPE_RESTRICTOR_DL, PIPE_RESTRICTOR_DR, PIPE_RESTRICTOR_LR;
/**
* Icon for Fresh CFoam
diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java b/src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java
new file mode 100644
index 0000000000..c1391371b9
--- /dev/null
+++ b/src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java
@@ -0,0 +1,16 @@
+package gregtech.api.interfaces.metatileentity;
+
+/**
+ * For pipes, wires, and other MetaTiles which need to be decided whether they should connect to the block at each side.
+ */
+public interface IConnectable {
+ /**
+ * Try to connect to the Block at the specified side
+ * returns the connection state. Non-positive values for failed, others for succeeded.
+ */
+ public int connect(byte aSide);
+ /**
+ * Try to disconnect to the Block at the specified side
+ */
+ public void disconnect(byte aSide);
+}
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
index e5fba09a82..393009df7d 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java
@@ -816,8 +816,19 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
return true;
}
+ if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWireCutterList)) {
+ if (mMetaTileEntity.onWireCutterRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) {
+ GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer);
+ GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord);
+ }
+ return true;
+ }
+
if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSolderingToolList)) {
- if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) {
+ if (mMetaTileEntity.onSolderingToolRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) {
+ GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 500, aPlayer);
+ GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(100), 1.0F, -1, xCoord, yCoord, zCoord);
+ } else if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) {
mStrongRedstone ^= (1 << tSide);
GT_Utility.sendChatToPlayer(aPlayer, trans("091","Redstone Output at Side ") + tSide + trans("092"," set to: ") + ((mStrongRedstone & (1 << tSide)) != 0 ? trans("093","Strong") : trans("094","Weak")));
GT_Utility.sendSoundToPlayers(worldObj, GregTech_API.sSoundList.get(103), 3.0F, -1, xCoord, yCoord, zCoord);
diff --git a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java
index 96532f52e5..9e4a79bee5 100644
--- a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java
@@ -2,7 +2,9 @@ package gregtech.api.metatileentity;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
+import gregtech.api.interfaces.metatileentity.IConnectable;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.objects.GT_ItemStack;
@@ -45,7 +47,7 @@ import static gregtech.api.enums.GT_Values.V;
* Call the Constructor like the following example inside the Load Phase, to register it.
* "new GT_MetaTileEntity_E_Furnace(54, "GT_E_Furnace", "Automatic E-Furnace");"
*/
-public abstract class MetaPipeEntity implements IMetaTileEntity {
+public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable {
/**
* The Inventory of the MetaTileEntity. Amount of Slots can be larger than 256. HAYO!
*/
@@ -203,6 +205,14 @@ public abstract class MetaPipeEntity implements IMetaTileEntity {
return false;
}
+ public boolean onWireCutterRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ return false;
+ }
+
+ public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ return false;
+ }
+
@Override
public void onExplosion() {/*Do nothing*/}
@@ -689,4 +699,31 @@ public abstract class MetaPipeEntity implements IMetaTileEntity {
public String getAlternativeModeText() {
return "";
}
+
+ public String trans(String aKey, String aEnglish){
+ return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_"+aKey, aEnglish, false);
+ }
+
+ @Override
+ public int connect(byte aSide) {
+ if (aSide >= 6) return 0;
+ mConnections |= (1 << aSide);
+ byte tSide = GT_Utility.getOppositeSide(aSide);
+ IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSide(aSide);
+ IMetaTileEntity tPipe = tTileEntity instanceof IGregTechTileEntity ? ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() : null;
+ if (this.getClass().isInstance(tPipe) && (((MetaPipeEntity) tPipe).mConnections & (1 << tSide)) == 0)
+ ((MetaPipeEntity) tPipe).connect(tSide);
+ return 1;
+ }
+
+ @Override
+ public void disconnect(byte aSide) {
+ if (aSide >= 6) return;
+ mConnections &= ~(1 << aSide);
+ byte tSide = GT_Utility.getOppositeSide(aSide);
+ IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSide(aSide);
+ IMetaTileEntity tPipe = tTileEntity == null ? null : tTileEntity.getMetaTileEntity();
+ if (this.getClass().isInstance(tPipe) && (((MetaPipeEntity) tPipe).mConnections & (1 << tSide)) != 0)
+ ((MetaPipeEntity) tPipe).disconnect(tSide);
+ }
} \ No newline at end of file
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
index af157b0af6..1f1b7c19e0 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
@@ -16,11 +16,13 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.BaseMetaPipeEntity;
import gregtech.api.metatileentity.MetaPipeEntity;
import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Client;
import ic2.api.energy.tile.IEnergySink;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
@@ -31,6 +33,7 @@ import net.minecraftforge.common.util.ForgeDirection;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
import static gregtech.api.enums.GT_Values.VN;
@@ -42,6 +45,7 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
public long mTransferredAmperage = 0, mTransferredAmperageLast20 = 0, mTransferredVoltageLast20 = 0;
public long mRestRF;
public short mOverheat;
+ private boolean mCheckConnections = !GT_Mod.gregtechproxy.gt6Cable;
public GT_MetaPipeEntity_Cable(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, long aCableLossPerMeter, long aAmperage, long aVoltage, boolean aInsulated, boolean aCanShock) {
super(aID, aName, aNameRegional, 0);
@@ -105,34 +109,6 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
}
@Override
- public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
- float tSpace = (1f - mThickNess)/2;
- float tSide0 = tSpace;
- float tSide1 = 1f - tSpace;
- float tSide2 = tSpace;
- float tSide3 = 1f - tSpace;
- float tSide4 = tSpace;
- float tSide5 = 1f - tSpace;
-
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 0) != 0){tSide0=tSide2=tSide4=0;tSide3=tSide5=1;}
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 1) != 0){tSide2=tSide4=0;tSide1=tSide3=tSide5=1;}
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 2) != 0){tSide0=tSide2=tSide4=0;tSide1=tSide5=1;}
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 3) != 0){tSide0=tSide4=0;tSide1=tSide3=tSide5=1;}
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 4) != 0){tSide0=tSide2=tSide4=0;tSide1=tSide3=1;}
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 5) != 0){tSide0=tSide2=0;tSide1=tSide3=tSide5=1;}
-
- byte tConn = ((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections;
- if((tConn & (1 << ForgeDirection.DOWN.ordinal()) ) != 0) tSide0 = 0f;
- if((tConn & (1 << ForgeDirection.UP.ordinal()) ) != 0) tSide1 = 1f;
- if((tConn & (1 << ForgeDirection.NORTH.ordinal())) != 0) tSide2 = 0f;
- if((tConn & (1 << ForgeDirection.SOUTH.ordinal())) != 0) tSide3 = 1f;
- if((tConn & (1 << ForgeDirection.WEST.ordinal()) ) != 0) tSide4 = 0f;
- if((tConn & (1 << ForgeDirection.EAST.ordinal()) ) != 0) tSide5 = 1f;
-
- return AxisAlignedBB.getBoundingBox(aX + tSide4, aY + tSide0, aZ + tSide2, aX + tSide5, aY + tSide1, aZ + tSide3);
- }
-
- @Override
public boolean isSimpleMachine() {
return true;
}
@@ -241,47 +217,76 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
if (aTick % 20 == 0) {
mTransferredVoltageLast20 = 0;
mTransferredAmperageLast20 = 0;
- mConnections = 0;
- for (byte i = 0, j = 0; i < 6; i++) {
- j = GT_Utility.getOppositeSide(i);
- if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).alwaysLookConnected(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), aBaseMetaTileEntity) || aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsEnergyIn(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), aBaseMetaTileEntity) || aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsEnergyOut(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), aBaseMetaTileEntity)) {
- TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(i);
- if (tTileEntity instanceof IColoredTileEntity) {
- if (aBaseMetaTileEntity.getColorization() >= 0) {
- byte tColor = ((IColoredTileEntity) tTileEntity).getColorization();
- if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) continue;
- }
- }
- if (tTileEntity instanceof IEnergyConnected && (((IEnergyConnected) tTileEntity).inputEnergyFrom(j) || ((IEnergyConnected) tTileEntity).outputsEnergyTo(j))) {
- mConnections |= (1 << i);
- continue;
- }
- if (tTileEntity instanceof IGregTechTileEntity && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof IMetaTileEntityCable) {
- if (((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(j).alwaysLookConnected(j, ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(j), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(j), ((IGregTechTileEntity) tTileEntity)) || ((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(j).letsEnergyIn(j, ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(j), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(j), ((IGregTechTileEntity) tTileEntity)) || ((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(j).letsEnergyOut(j, ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(j), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(j), ((IGregTechTileEntity) tTileEntity))) {
- mConnections |= (1 << i);
- continue;
- }
- }
- if (tTileEntity instanceof IEnergySink && ((IEnergySink) tTileEntity).acceptsEnergyFrom((TileEntity) aBaseMetaTileEntity, ForgeDirection.getOrientation(j))) {
- mConnections |= (1 << i);
- continue;
- }
- if (GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver && ((IEnergyReceiver) tTileEntity).canConnectEnergy(ForgeDirection.getOrientation(j))) {
- mConnections |= (1 << i);
- continue;
- }
- /*
- if (tTileEntity instanceof IEnergyEmitter && ((IEnergyEmitter)tTileEntity).emitsEnergyTo((TileEntity)aBaseMetaTileEntity, ForgeDirection.getOrientation(j))) {
- mConnections |= (1<<i);
- continue;
- }*/
- }
+ for (byte i = 0; i < 6; i++) {
+ if ((mCheckConnections || (mConnections & (1 << i)) != 0) && connect(i) == 0) disconnect(i);
}
+ if (GT_Mod.gregtechproxy.gt6Cable) mCheckConnections = false;
}
}else if(aBaseMetaTileEntity.isClientSide() && GT_Client.changeDetected==4) aBaseMetaTileEntity.issueTextureUpdate();
}
@Override
+ public boolean onWireCutterRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ return onConnectionToolRightClick(aSide, aWrenchingSide, aPlayer, aX, aY, aZ);
+ }
+
+ @Override
+ public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ return onConnectionToolRightClick(aSide, aWrenchingSide, aPlayer, aX, aY, aZ);
+ }
+
+ private boolean onConnectionToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if (GT_Mod.gregtechproxy.gt6Cable) {
+ byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ);
+ if ((mConnections & (1 << tSide)) == 0) {
+ if (GT_Mod.gregtechproxy.costlyCableConnection && !GT_ModHandler.consumeSolderingMaterial(aPlayer)) return false;
+ if (connect(tSide) > 0)
+ GT_Utility.sendChatToPlayer(aPlayer, trans("214", "Connected"));
+ }
+ else {
+ disconnect(tSide);
+ GT_Utility.sendChatToPlayer(aPlayer, trans("215", "Disconnected"));
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public int connect(byte aSide) {
+ int rConnect = 0;
+ if (aSide >= 6) return rConnect;
+ byte tSide = GT_Utility.getOppositeSide(aSide);
+ TileEntity tTileEntity = getBaseMetaTileEntity().getTileEntityAtSide(aSide);
+ if (tTileEntity != null) {
+ if (getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).alwaysLookConnected(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), getBaseMetaTileEntity()) || getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).letsEnergyIn(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), getBaseMetaTileEntity()) || getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).letsEnergyOut(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), getBaseMetaTileEntity())) {
+ if (tTileEntity instanceof IColoredTileEntity) {
+ if (getBaseMetaTileEntity().getColorization() >= 0) {
+ byte tColor = ((IColoredTileEntity) tTileEntity).getColorization();
+ if (tColor >= 0 && tColor != getBaseMetaTileEntity().getColorization())
+ return rConnect;
+ }
+ }
+ if ((tTileEntity instanceof IEnergyConnected && (((IEnergyConnected) tTileEntity).inputEnergyFrom(tSide) || ((IEnergyConnected) tTileEntity).outputsEnergyTo(tSide)))
+ || (tTileEntity instanceof IGregTechTileEntity && ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof IMetaTileEntityCable
+ && (((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(tSide).alwaysLookConnected(tSide, ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(tSide), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(tSide), ((IGregTechTileEntity) tTileEntity)) || ((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(tSide).letsEnergyIn(tSide, ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(tSide), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(tSide), ((IGregTechTileEntity) tTileEntity)) || ((IGregTechTileEntity) tTileEntity).getCoverBehaviorAtSide(tSide).letsEnergyOut(tSide, ((IGregTechTileEntity) tTileEntity).getCoverIDAtSide(tSide), ((IGregTechTileEntity) tTileEntity).getCoverDataAtSide(tSide), ((IGregTechTileEntity) tTileEntity))))
+ || (tTileEntity instanceof IEnergySink && ((IEnergySink) tTileEntity).acceptsEnergyFrom((TileEntity) getBaseMetaTileEntity(), ForgeDirection.getOrientation(tSide)))
+ || (GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver && ((IEnergyReceiver) tTileEntity).canConnectEnergy(ForgeDirection.getOrientation(tSide)))
+ /*|| (tTileEntity instanceof IEnergyEmitter && ((IEnergyEmitter)tTileEntity).emitsEnergyTo((TileEntity)getBaseMetaTileEntity(), ForgeDirection.getOrientation(tSide)))*/) {
+ rConnect = 1;
+ }
+ }
+ } else if (getBaseMetaTileEntity().getOffsetX(aSide, 1) >> 4 != getBaseMetaTileEntity().getXCoord() >> 4
+ || getBaseMetaTileEntity().getOffsetZ(aSide, 1) >> 4 != getBaseMetaTileEntity().getZCoord() >> 4) { // if chunk unloaded
+ rConnect = -1;
+ }
+ if (rConnect > 0) {
+ super.connect(aSide);
+ }
+ return rConnect;
+ }
+
+ @Override
public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
return false;
}
@@ -302,17 +307,66 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
@Override
public float getThickNess() {
- if(GT_Mod.instance.isClientSide() && GT_Client.hideValue==1) return 0.0625F;
+ if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x1) != 0) return 0.0625F;
return mThickNess;
}
@Override
public void saveNBTData(NBTTagCompound aNBT) {
- //
+ if (GT_Mod.gregtechproxy.gt6Cable)
+ aNBT.setByte("mConnections", mConnections);
}
@Override
public void loadNBTData(NBTTagCompound aNBT) {
- //
+ if (GT_Mod.gregtechproxy.gt6Cable) {
+ if (!aNBT.hasKey("mConnections"))
+ mCheckConnections = true;
+ mConnections = aNBT.getByte("mConnections");
+ }
+ }
+
+ @Override
+ public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
+ if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x2) != 0)
+ return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 1, aZ + 1);
+ else
+ return getActualCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
+ }
+
+ private AxisAlignedBB getActualCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
+ float tSpace = (1f - mThickNess)/2;
+ float tSide0 = tSpace;
+ float tSide1 = 1f - tSpace;
+ float tSide2 = tSpace;
+ float tSide3 = 1f - tSpace;
+ float tSide4 = tSpace;
+ float tSide5 = 1f - tSpace;
+
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 0) != 0){tSide0=tSide2=tSide4=0;tSide3=tSide5=1;}
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 1) != 0){tSide2=tSide4=0;tSide1=tSide3=tSide5=1;}
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 2) != 0){tSide0=tSide2=tSide4=0;tSide1=tSide5=1;}
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 3) != 0){tSide0=tSide4=0;tSide1=tSide3=tSide5=1;}
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 4) != 0){tSide0=tSide2=tSide4=0;tSide1=tSide3=1;}
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 5) != 0){tSide0=tSide2=0;tSide1=tSide3=tSide5=1;}
+
+ byte tConn = ((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections;
+ if((tConn & (1 << ForgeDirection.DOWN.ordinal()) ) != 0) tSide0 = 0f;
+ if((tConn & (1 << ForgeDirection.UP.ordinal()) ) != 0) tSide1 = 1f;
+ if((tConn & (1 << ForgeDirection.NORTH.ordinal())) != 0) tSide2 = 0f;
+ if((tConn & (1 << ForgeDirection.SOUTH.ordinal())) != 0) tSide3 = 1f;
+ if((tConn & (1 << ForgeDirection.WEST.ordinal()) ) != 0) tSide4 = 0f;
+ if((tConn & (1 << ForgeDirection.EAST.ordinal()) ) != 0) tSide5 = 1f;
+
+ return AxisAlignedBB.getBoundingBox(aX + tSide4, aY + tSide0, aZ + tSide2, aX + tSide5, aY + tSide1, aZ + tSide3);
+ }
+
+ @Override
+ public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List<AxisAlignedBB> outputAABB, Entity collider) {
+ super.addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider);
+ if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x2) != 0) {
+ AxisAlignedBB aabb = getActualCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
+ if (inputAABB.intersectsWith(aabb)) outputAABB.add(aabb);
+ }
}
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java
index d3ed717892..0b6edbe220 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java
@@ -8,6 +8,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.ICoverable;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.BaseMetaPipeEntity;
+import gregtech.api.metatileentity.BaseTileEntity;
import gregtech.api.metatileentity.MetaPipeEntity;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.objects.XSTR;
@@ -16,6 +17,7 @@ import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Client;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
@@ -27,6 +29,7 @@ import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import java.util.ArrayList;
+import java.util.List;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
@@ -35,27 +38,45 @@ import static gregtech.api.enums.GT_Values.D1;
public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
public final float mThickNess;
public final Materials mMaterial;
- public final int mCapacity, mHeatResistance;
+ public final int mCapacity, mHeatResistance, mPipeAmount;
public final boolean mGasProof;
- public FluidStack mFluid;
+ public final FluidStack[] mFluids;
public byte mLastReceivedFrom = 0, oLastReceivedFrom = 0;
+ private boolean mCheckConnections = !GT_Mod.gregtechproxy.gt6Pipe;
+ /**
+ * Bitmask for whether disable fluid input form each side.
+ */
+ public byte mDisableInput = 0;
public GT_MetaPipeEntity_Fluid(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, int aCapacity, int aHeatResistance, boolean aGasProof) {
- super(aID, aName, aNameRegional, 0);
+ this(aID, aName, aNameRegional, aThickNess, aMaterial, aCapacity, aHeatResistance, aGasProof, 1);
+ }
+
+ public GT_MetaPipeEntity_Fluid(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, int aCapacity, int aHeatResistance, boolean aGasProof, int aFluidTypes) {
+ super(aID, aName, aNameRegional, 0);
mThickNess = aThickNess;
mMaterial = aMaterial;
mCapacity = aCapacity;
mGasProof = aGasProof;
mHeatResistance = aHeatResistance;
+ mPipeAmount = aFluidTypes;
+ mFluids = new FluidStack[mPipeAmount];
}
+ @Deprecated
public GT_MetaPipeEntity_Fluid(String aName, float aThickNess, Materials aMaterial, int aCapacity, int aHeatResistance, boolean aGasProof) {
+ this(aName, aThickNess, aMaterial, aCapacity, aHeatResistance, aGasProof, 1);
+ }
+
+ public GT_MetaPipeEntity_Fluid(String aName, float aThickNess, Materials aMaterial, int aCapacity, int aHeatResistance, boolean aGasProof, int aFluidTypes) {
super(aName, 0);
mThickNess = aThickNess;
mMaterial = aMaterial;
mCapacity = aCapacity;
mGasProof = aGasProof;
mHeatResistance = aHeatResistance;
+ mPipeAmount = aFluidTypes;
+ mFluids = new FluidStack[mPipeAmount];
}
@Override
@@ -65,26 +86,66 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
@Override
public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaPipeEntity_Fluid(mName, mThickNess, mMaterial, mCapacity, mHeatResistance, mGasProof);
+ return new GT_MetaPipeEntity_Fluid(mName, mThickNess, mMaterial, mCapacity, mHeatResistance, mGasProof, mPipeAmount);
}
@Override
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, byte aColorIndex, boolean aConnected, boolean aRedstone) {
- if (aConnected) {
- float tThickNess = getThickNess();
- if (tThickNess < 0.124F)
- return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
- if (tThickNess < 0.374F)//0.375
- return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeTiny.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
- if (tThickNess < 0.499F)//0.500
- return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeSmall.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
- if (tThickNess < 0.749F)//0.750
- return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeMedium.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
- if (tThickNess < 0.874F)//0.825
- return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeLarge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
- return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeHuge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
- }
- return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
+ float tThickNess = getThickNess();
+ if (mDisableInput == 0) return new ITexture[]{aConnected ? getBaseTexture(tThickNess, mPipeAmount, mMaterial, aColorIndex) : new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
+ byte tMask = 0;
+ byte[][] sRestrictionArray = new byte[][]{
+ {2, 3, 5, 4},
+ {2, 3, 4, 5},
+ {1, 0, 4, 5},
+ {1, 0, 4, 5},
+ {1, 0, 2, 3},
+ {1, 0, 2, 3}
+ };
+ if (aSide >= 0 && aSide < 6) for (byte i = 0; i < 4; i++) if ((mDisableInput & (1 << sRestrictionArray[aSide][i])) != 0) tMask |= 1 << i;
+ return new ITexture[]{aConnected ? getBaseTexture(tThickNess, mPipeAmount, mMaterial, aColorIndex) : new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa)), getRestrictorTexture(tMask)};
+ }
+
+ protected static final ITexture getBaseTexture(float aThickNess, int aPipeAmount, Materials aMaterial, byte aColorIndex) {
+ if (aPipeAmount >= 9) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeNonuple.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa));
+ if (aPipeAmount >= 4) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeQuadruple.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa));
+ if (aThickNess < 0.124F) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa));
+ if (aThickNess < 0.374F) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeTiny.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa));
+ if (aThickNess < 0.499F) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeSmall.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa));
+ if (aThickNess < 0.749F) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeMedium.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa));
+ if (aThickNess < 0.874F) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeLarge.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa));
+ return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeHuge.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa));
+ }
+
+ protected static final ITexture getRestrictorTexture(byte aMask) {
+ switch (aMask) {
+ case 1: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_UP);
+ case 2: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_DOWN);
+ case 3: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_UD);
+ case 4: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_LEFT);
+ case 5: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_UL);
+ case 6: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_DL);
+ case 7: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_NR);
+ case 8: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_RIGHT);
+ case 9: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_UR);
+ case 10: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_DR);
+ case 11: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_NL);
+ case 12: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_LR);
+ case 13: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_ND);
+ case 14: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_NU);
+ case 15: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR);
+ default: return null;
+ }
+ }
+
+ @Override
+ public void onValueUpdate(byte aValue) {
+ mDisableInput = aValue;
+ }
+
+ @Override
+ public byte getUpdateData() {
+ return mDisableInput;
}
@Override
@@ -119,57 +180,46 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
@Override
public void saveNBTData(NBTTagCompound aNBT) {
- if (mFluid != null) aNBT.setTag("mFluid", mFluid.writeToNBT(new NBTTagCompound()));
+ for (int i = 0; i < mPipeAmount; i++)
+ if (mFluids[i] != null)
+ aNBT.setTag("mFluid"+(i==0?"":i), mFluids[i].writeToNBT(new NBTTagCompound()));
aNBT.setByte("mLastReceivedFrom", mLastReceivedFrom);
+ if (GT_Mod.gregtechproxy.gt6Pipe) {
+ aNBT.setByte("mConnections", mConnections);
+ aNBT.setByte("mDisableInput", mDisableInput);
+ }
}
@Override
public void loadNBTData(NBTTagCompound aNBT) {
- mFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluid"));
+ for (int i = 0; i < mPipeAmount; i++)
+ mFluids[i] = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluid"+(i==0?"":i)));
mLastReceivedFrom = aNBT.getByte("mLastReceivedFrom");
+ if (GT_Mod.gregtechproxy.gt6Pipe) {
+ if (!aNBT.hasKey("mConnections"))
+ mCheckConnections = false;
+ mConnections = aNBT.getByte("mConnections");
+ mDisableInput = aNBT.getByte("mDisableInput");
+ }
}
@Override
public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) {
- if (mFluid != null && (((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections & -128) == 0 && aEntity instanceof EntityLivingBase) {
- int tTemperature = mFluid.getFluid().getTemperature(mFluid);
- if (tTemperature > 320 && !isCoverOnSide((BaseMetaPipeEntity) getBaseMetaTileEntity(), (EntityLivingBase) aEntity)) {
- GT_Utility.applyHeatDamage((EntityLivingBase) aEntity, (tTemperature - 300) / 50.0F);
- } else if (tTemperature < 260 && !isCoverOnSide((BaseMetaPipeEntity) getBaseMetaTileEntity(), (EntityLivingBase) aEntity)) {
- GT_Utility.applyFrostDamage((EntityLivingBase) aEntity, (270 - tTemperature) / 25.0F);
- }
+ if ((((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections & -128) == 0 && aEntity instanceof EntityLivingBase) {
+ for (FluidStack tFluid : mFluids) {
+ if (tFluid != null) {
+ int tTemperature = tFluid.getFluid().getTemperature(tFluid);
+ if (tTemperature > 320 && !isCoverOnSide((BaseMetaPipeEntity) getBaseMetaTileEntity(), (EntityLivingBase) aEntity)) {
+ GT_Utility.applyHeatDamage((EntityLivingBase) aEntity, (tTemperature - 300) / 50.0F); break;
+ } else if (tTemperature < 260 && !isCoverOnSide((BaseMetaPipeEntity) getBaseMetaTileEntity(), (EntityLivingBase) aEntity)) {
+ GT_Utility.applyFrostDamage((EntityLivingBase) aEntity, (270 - tTemperature) / 25.0F); break;
+ }
+ }
+ }
}
}
@Override
- public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
- float tSpace = (1f - mThickNess)/2;
- float tSide0 = tSpace;
- float tSide1 = 1f - tSpace;
- float tSide2 = tSpace;
- float tSide3 = 1f - tSpace;
- float tSide4 = tSpace;
- float tSide5 = 1f - tSpace;
-
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 0) != 0){tSide0=tSide2=tSide4=0;tSide3=tSide5=1;}
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 1) != 0){tSide2=tSide4=0;tSide1=tSide3=tSide5=1;}
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 2) != 0){tSide0=tSide2=tSide4=0;tSide1=tSide5=1;}
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 3) != 0){tSide0=tSide4=0;tSide1=tSide3=tSide5=1;}
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 4) != 0){tSide0=tSide2=tSide4=0;tSide1=tSide3=1;}
- if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 5) != 0){tSide0=tSide2=0;tSide1=tSide3=tSide5=1;}
-
- byte tConn = ((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections;
- if((tConn & (1 << ForgeDirection.DOWN.ordinal()) ) != 0) tSide0 = 0f;
- if((tConn & (1 << ForgeDirection.UP.ordinal()) ) != 0) tSide1 = 1f;
- if((tConn & (1 << ForgeDirection.NORTH.ordinal())) != 0) tSide2 = 0f;
- if((tConn & (1 << ForgeDirection.SOUTH.ordinal())) != 0) tSide3 = 1f;
- if((tConn & (1 << ForgeDirection.WEST.ordinal()) ) != 0) tSide4 = 0f;
- if((tConn & (1 << ForgeDirection.EAST.ordinal()) ) != 0) tSide5 = 1f;
-
- return AxisAlignedBB.getBoundingBox(aX + tSide4, aY + tSide0, aZ + tSide2, aX + tSide5, aY + tSide1, aZ + tSide3);
- }
-
- @Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
if (aBaseMetaTileEntity.isServerSide() && aTick % 5 == 0) {
mLastReceivedFrom &= 63;
@@ -177,112 +227,82 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
mLastReceivedFrom = 0;
}
- if (mFluid != null && mFluid.amount > 0) {
- int tTemperature = mFluid.getFluid().getTemperature(mFluid);
- if (tTemperature > mHeatResistance) {
- if (aBaseMetaTileEntity.getRandomNumber(100) == 0) {
- aBaseMetaTileEntity.setToFire();
- return;
+ for (FluidStack tFluid : mFluids) {
+ if (tFluid != null && tFluid.amount > 0) {
+ int tTemperature = tFluid.getFluid().getTemperature(tFluid);
+ if (tTemperature > mHeatResistance) {
+ if (aBaseMetaTileEntity.getRandomNumber(100) == 0) {
+ aBaseMetaTileEntity.setToFire();
+ return;
+ }
+ aBaseMetaTileEntity.setOnFire();
}
- aBaseMetaTileEntity.setOnFire();
- }
- if (!mGasProof && mFluid.getFluid().isGaseous(mFluid)) {
- mFluid.amount -= 5;
- sendSound((byte) 9);
- if (tTemperature > 320) {
- try {
- for (EntityLivingBase tLiving : (ArrayList<EntityLivingBase>) getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord() - 2, getBaseMetaTileEntity().getYCoord() - 2, getBaseMetaTileEntity().getZCoord() - 2, getBaseMetaTileEntity().getXCoord() + 3, getBaseMetaTileEntity().getYCoord() + 3, getBaseMetaTileEntity().getZCoord() + 3))) {
- GT_Utility.applyHeatDamage(tLiving, (tTemperature - 300) / 25.0F);
+ if (!mGasProof && tFluid.getFluid().isGaseous(tFluid)) {
+ tFluid.amount -= 5;
+ sendSound((byte) 9);
+ if (tTemperature > 320) {
+ try {
+ for (EntityLivingBase tLiving : (ArrayList<EntityLivingBase>) getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord() - 2, getBaseMetaTileEntity().getYCoord() - 2, getBaseMetaTileEntity().getZCoord() - 2, getBaseMetaTileEntity().getXCoord() + 3, getBaseMetaTileEntity().getYCoord() + 3, getBaseMetaTileEntity().getZCoord() + 3))) {
+ GT_Utility.applyHeatDamage(tLiving, (tTemperature - 300) / 25.0F);
+ }
+ } catch (Throwable e) {
+ if (D1) e.printStackTrace(GT_Log.err);
}
- } catch (Throwable e) {
- if (D1) e.printStackTrace(GT_Log.err);
- }
- } else if (tTemperature < 260) {
- try {
- for (EntityLivingBase tLiving : (ArrayList<EntityLivingBase>) getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord() - 2, getBaseMetaTileEntity().getYCoord() - 2, getBaseMetaTileEntity().getZCoord() - 2, getBaseMetaTileEntity().getXCoord() + 3, getBaseMetaTileEntity().getYCoord() + 3, getBaseMetaTileEntity().getZCoord() + 3))) {
- GT_Utility.applyFrostDamage(tLiving, (270 - tTemperature) / 12.5F);
+ } else if (tTemperature < 260) {
+ try {
+ for (EntityLivingBase tLiving : (ArrayList<EntityLivingBase>) getBaseMetaTileEntity().getWorld().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(getBaseMetaTileEntity().getXCoord() - 2, getBaseMetaTileEntity().getYCoord() - 2, getBaseMetaTileEntity().getZCoord() - 2, getBaseMetaTileEntity().getXCoord() + 3, getBaseMetaTileEntity().getYCoord() + 3, getBaseMetaTileEntity().getZCoord() + 3))) {
+ GT_Utility.applyFrostDamage(tLiving, (270 - tTemperature) / 12.5F);
+ }
+ } catch (Throwable e) {
+ if (D1) e.printStackTrace(GT_Log.err);
}
- } catch (Throwable e) {
- if (D1) e.printStackTrace(GT_Log.err);
}
+ if (tFluid.amount <= 0) tFluid = null;
}
- if (mFluid.amount <= 0) mFluid = null;
}
}
if (mLastReceivedFrom == oLastReceivedFrom) {
ConcurrentHashMap<IFluidHandler, ForgeDirection> tTanks = new ConcurrentHashMap<IFluidHandler, ForgeDirection>();
-
- mConnections = 0;
-
+
for (byte tSide = 0, i = 0, j = (byte) aBaseMetaTileEntity.getRandomNumber(6); i < 6; i++) {
- tSide = (byte) ((j + i) % 6);
-
- IFluidHandler tTileEntity = aBaseMetaTileEntity.getITankContainerAtSide(tSide);
- if (tTileEntity != null) {
- if (tTileEntity instanceof IGregTechTileEntity) {
- if (aBaseMetaTileEntity.getColorization() >= 0) {
- byte tColor = ((IGregTechTileEntity) tTileEntity).getColorization();
- if (tColor >= 0 && (tColor & 15) != (aBaseMetaTileEntity.getColorization() & 15)) {
- continue;
- }
- }
- }
- FluidTankInfo[] tInfo = tTileEntity.getTankInfo(ForgeDirection.getOrientation(tSide).getOpposite());
- if (tInfo != null && tInfo.length > 0) {
- if (tTileEntity instanceof ICoverable && ((ICoverable) tTileEntity).getCoverBehaviorAtSide(GT_Utility.getOppositeSide(tSide)).alwaysLookConnected(GT_Utility.getOppositeSide(tSide), ((ICoverable) tTileEntity).getCoverIDAtSide(GT_Utility.getOppositeSide(tSide)), ((ICoverable) tTileEntity).getCoverDataAtSide(GT_Utility.getOppositeSide(tSide)), ((ICoverable) tTileEntity))) {
- mConnections |= (1 << tSide);
- }
- if (aBaseMetaTileEntity.getCoverBehaviorAtSide(tSide).letsFluidIn(tSide, aBaseMetaTileEntity.getCoverIDAtSide(tSide), aBaseMetaTileEntity.getCoverDataAtSide(tSide), null, aBaseMetaTileEntity)) {
- mConnections |= (1 << tSide);
- }
- if (aBaseMetaTileEntity.getCoverBehaviorAtSide(tSide).letsFluidOut(tSide, aBaseMetaTileEntity.getCoverIDAtSide(tSide), aBaseMetaTileEntity.getCoverDataAtSide(tSide), null, aBaseMetaTileEntity)) {
- mConnections |= (1 << tSide);
- if (((1 << tSide) & mLastReceivedFrom) == 0)
- tTanks.put(tTileEntity, ForgeDirection.getOrientation(tSide).getOpposite());
- }
-
- if (aBaseMetaTileEntity.getCoverBehaviorAtSide(tSide).alwaysLookConnected(tSide, aBaseMetaTileEntity.getCoverIDAtSide(tSide), aBaseMetaTileEntity.getCoverDataAtSide(tSide), aBaseMetaTileEntity)) {
- mConnections |= (1 << tSide);
- }
- }else if(tInfo != null && tInfo.length == 0){
- IGregTechTileEntity tSideTile = aBaseMetaTileEntity.getIGregTechTileEntityAtSide(tSide);
- if(tSideTile!=null){
- ItemStack tCover = tSideTile.getCoverItemAtSide(GT_Utility.getOppositeSide(tSide));
- if (tCover!=null &&(GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_LV.get(1, new Object[]{},true)) ||
- GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_MV.get(1, new Object[]{},true)) ||
- GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_HV.get(1, new Object[]{},true)) ||
- GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_EV.get(1, new Object[]{},true)) ||
- GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_IV.get(1, new Object[]{},true)))) {
- mConnections |= (1 << tSide);
- }
- }
- }
- }
+ tSide = (byte) ((i + j) % 6);
+ if (mCheckConnections || (mConnections & (1 << tSide)) != 0)
+ switch (connect(tSide)) {
+ case 0:
+ disconnect(tSide); break;
+ case 2:
+ if ((mLastReceivedFrom & (1 << tSide)) == 0)
+ tTanks.put(aBaseMetaTileEntity.getITankContainerAtSide(tSide), ForgeDirection.getOrientation(tSide).getOpposite()); break;
+ }
}
-
- if (mFluid != null && mFluid.amount > 0) {
- int tAmount = Math.max(1, Math.min(mCapacity * 10, mFluid.amount / 2)), tSuccessfulTankAmount = 0;
-
- for (Entry<IFluidHandler, ForgeDirection> tEntry : tTanks.entrySet())
- if (tEntry.getKey().fill(tEntry.getValue(), drain(tAmount, false), false) > 0)
- tSuccessfulTankAmount++;
-
- if (tSuccessfulTankAmount > 0) {
- if (tAmount >= tSuccessfulTankAmount) {
- tAmount /= tSuccessfulTankAmount;
- for (Entry<IFluidHandler, ForgeDirection> tTileEntity : tTanks.entrySet()) {
- if (mFluid == null || mFluid.amount <= 0) break;
- int tFilledAmount = tTileEntity.getKey().fill(tTileEntity.getValue(), drain(tAmount, false), false);
- if (tFilledAmount > 0)
- tTileEntity.getKey().fill(tTileEntity.getValue(), drain(tFilledAmount, true), true);
- }
- } else {
- for (Entry<IFluidHandler, ForgeDirection> tTileEntity : tTanks.entrySet()) {
- if (mFluid == null || mFluid.amount <= 0) break;
- int tFilledAmount = tTileEntity.getKey().fill(tTileEntity.getValue(), drain(mFluid.amount, false), false);
- if (tFilledAmount > 0)
- tTileEntity.getKey().fill(tTileEntity.getValue(), drain(tFilledAmount, true), true);
+ if (GT_Mod.gregtechproxy.gt6Pipe) mCheckConnections = false;
+
+ for (int i = 0, j = aBaseMetaTileEntity.getRandomNumber(mPipeAmount); i < mPipeAmount; i++) {
+ int index = (i + j) % mPipeAmount;
+ if (mFluids[index] != null && mFluids[index].amount > 0) {
+ int tAmount = Math.max(1, Math.min(mCapacity * 10, mFluids[index].amount / 2)), tSuccessfulTankAmount = 0;
+
+ for (Entry<IFluidHandler, ForgeDirection> tEntry : tTanks.entrySet())
+ if (tEntry.getKey().fill(tEntry.getValue(), drainFromIndex(tAmount, false, index), false) > 0)
+ tSuccessfulTankAmount++;
+
+ if (tSuccessfulTankAmount > 0) {
+ if (tAmount >= tSuccessfulTankAmount) {
+ tAmount /= tSuccessfulTankAmount;
+ for (Entry<IFluidHandler, ForgeDirection> tTileEntity : tTanks.entrySet()) {
+ if (mFluids[index] == null || mFluids[index].amount <= 0) break;
+ int tFilledAmount = tTileEntity.getKey().fill(tTileEntity.getValue(), drain(tAmount, false), false);
+ if (tFilledAmount > 0)
+ tTileEntity.getKey().fill(tTileEntity.getValue(), drainFromIndex(tFilledAmount, true, index), true);
+ }
+ } else {
+ for (Entry<IFluidHandler, ForgeDirection> tTileEntity : tTanks.entrySet()) {
+ if (mFluids[index] == null || mFluids[index].amount <= 0) break;
+ int tFilledAmount = tTileEntity.getKey().fill(tTileEntity.getValue(), drainFromIndex(mFluids[index].amount, false, index), false);
+ if (tFilledAmount > 0)
+ tTileEntity.getKey().fill(tTileEntity.getValue(), drainFromIndex(tFilledAmount, true, index), true);
+ }
}
}
}
@@ -296,6 +316,97 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
}
@Override
+ public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if (GT_Mod.gregtechproxy.gt6Pipe) {
+ byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ);
+ byte tMask = (byte) (1 << tSide);
+ if (aPlayer.isSneaking()) {
+ if ((mDisableInput & tMask) != 0) {
+ mDisableInput &= ~tMask;
+ GT_Utility.sendChatToPlayer(aPlayer, trans("212", "Input enabled"));
+ if ((mConnections & tMask) == 0)
+ connect(tSide);
+ } else {
+ mDisableInput |= tMask;
+ GT_Utility.sendChatToPlayer(aPlayer, trans("213", "Input disabled"));
+ }
+ } else {
+ if ((mConnections & tMask) == 0) {
+ if (connect(tSide) > 0)
+ GT_Utility.sendChatToPlayer(aPlayer, trans("214", "Connected"));
+ }
+ else {
+ disconnect(tSide);
+ GT_Utility.sendChatToPlayer(aPlayer, trans("215", "Disconnected"));
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public int connect(byte aSide) {
+ int rConnect = 0;
+ if (aSide >= 6) return rConnect;
+ IFluidHandler tTileEntity = getBaseMetaTileEntity().getITankContainerAtSide(aSide);
+ GT_MetaPipeEntity_Fluid tFluidPipe = null;
+ byte tSide = GT_Utility.getOppositeSide(aSide);
+ if (tTileEntity != null) {
+ if (tTileEntity instanceof IGregTechTileEntity) {
+ if (getBaseMetaTileEntity().getColorization() >= 0) {
+ byte tColor = ((IGregTechTileEntity) tTileEntity).getColorization();
+ if (tColor >= 0 && (tColor & 15) != (getBaseMetaTileEntity().getColorization() & 15)) {
+ return rConnect;
+ }
+ }
+ if (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof GT_MetaPipeEntity_Fluid) {
+ tFluidPipe = (GT_MetaPipeEntity_Fluid) ((IGregTechTileEntity) tTileEntity).getMetaTileEntity();
+ }
+ }
+ FluidTankInfo[] tInfo = tTileEntity.getTankInfo(ForgeDirection.getOrientation(aSide).getOpposite());
+ if (tInfo != null) {
+ if (tInfo.length > 0) {
+ if ((tTileEntity instanceof ICoverable && ((ICoverable) tTileEntity).getCoverBehaviorAtSide(tSide).alwaysLookConnected(tSide, ((ICoverable) tTileEntity).getCoverIDAtSide(tSide), ((ICoverable) tTileEntity).getCoverDataAtSide(tSide), ((ICoverable) tTileEntity)))
+ || getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).letsFluidIn(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), null, getBaseMetaTileEntity())
+ || getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).alwaysLookConnected(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), getBaseMetaTileEntity())) {
+ rConnect = 1;
+ }
+ if (getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).letsFluidOut(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), null, getBaseMetaTileEntity())) {
+ rConnect = 2;
+ }
+ } else if (tInfo.length == 0) {
+ IGregTechTileEntity tSideTile = getBaseMetaTileEntity().getIGregTechTileEntityAtSide(aSide);
+ if (tSideTile != null){
+ ItemStack tCover = tSideTile.getCoverItemAtSide(tSide);
+ if (tCover!=null &&(GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_LV.get(1, new Object[]{},true)) ||
+ GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_MV.get(1, new Object[]{},true)) ||
+ GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_HV.get(1, new Object[]{},true)) ||
+ GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_EV.get(1, new Object[]{},true)) ||
+ GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_IV.get(1, new Object[]{},true)))) {
+ rConnect = 1;
+ }
+ }
+ }
+ }
+ } else if (getBaseMetaTileEntity().getOffsetX(aSide, 1) >> 4 != getBaseMetaTileEntity().getXCoord() >> 4
+ || getBaseMetaTileEntity().getOffsetZ(aSide, 1) >> 4 != getBaseMetaTileEntity().getZCoord() >> 4) { // if chunk unloaded
+ rConnect = -1;
+ }
+ if (rConnect > 0) {
+ if (GT_Mod.gregtechproxy.gt6Pipe && tFluidPipe != null) {
+ if ((mDisableInput & (1 << aSide)) == 0 || (tFluidPipe.mDisableInput & (1 << tSide)) == 0) {
+ mConnections |= (1 << aSide);
+ if ((tFluidPipe.mConnections & (1 << tSide)) == 0) tFluidPipe.connect(tSide);
+ } else rConnect = 0;
+ } else {
+ mConnections |= (1 << aSide);
+ }
+ }
+ return rConnect;
+ }
+
+ @Override
public void doSound(byte aIndex, double aX, double aY, double aZ) {
super.doSound(aIndex, aX, aY, aZ);
if (aIndex == 9) {
@@ -308,7 +419,25 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
@Override
public final int getCapacity() {
- return mCapacity * 20;
+ return mCapacity * 20 * mPipeAmount;
+ }
+
+ @Override
+ public FluidTankInfo getInfo() {
+ for (FluidStack tFluid : mFluids) {
+ if (tFluid != null)
+ return new FluidTankInfo(tFluid, mCapacity * 20);
+ }
+ return new FluidTankInfo(null, mCapacity * 20);
+ }
+
+ @Override
+ public FluidTankInfo[] getTankInfo(ForgeDirection aSide) {
+ if (getCapacity() <= 0 && !getBaseMetaTileEntity().hasSteamEngineUpgrade()) return new FluidTankInfo[]{};
+ ArrayList<FluidTankInfo> tList = new ArrayList<>();
+ for (FluidStack tFluid : mFluids)
+ tList.add(new FluidTankInfo(tFluid, mCapacity * 20));
+ return tList.toArray(new FluidTankInfo[mPipeAmount]);
}
@Override
@@ -323,46 +452,72 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
@Override
public final FluidStack getFluid() {
- return mFluid;
+ for (FluidStack tFluid : mFluids) {
+ if (tFluid != null)
+ return tFluid;
+ }
+ return null;
}
@Override
public final int getFluidAmount() {
- return mFluid != null ? mFluid.amount : 0;
+ int rAmount = 0;
+ for (FluidStack tFluid : mFluids) {
+ if (tFluid != null)
+ rAmount += tFluid.amount;
+ }
+ return rAmount;
}
@Override
public final int fill_default(ForgeDirection aSide, FluidStack aFluid, boolean doFill) {
if (aFluid == null || aFluid.getFluid().getID() <= 0) return 0;
- if (mFluid == null || mFluid.getFluid().getID() <= 0) {
- if (aFluid.amount <= getCapacity()) {
+ int index = -1;
+ for (int i = 0; i < mPipeAmount; i++) {
+ if (mFluids[i] != null && mFluids[i].isFluidEqual(aFluid)) {
+ index = i; break;
+ }
+ else if ((mFluids[i] == null || mFluids[i].getFluid().getID() <= 0) && index < 0) {
+ index = i;
+ }
+ }
+
+ return fill_default_intoIndex(aSide, aFluid, doFill, index);
+ }
+
+ private final int fill_default_intoIndex(ForgeDirection aSide, FluidStack aFluid, boolean doFill, int index) {
+ if (index < 0 || index >= mPipeAmount) return 0;
+ if (aFluid == null || aFluid.getFluid().getID() <= 0) return 0;
+
+ if (mFluids[index] == null || mFluids[index].getFluid().getID() <= 0) {
+ if (aFluid.amount * mPipeAmount <= getCapacity()) {
if (doFill) {
- mFluid = aFluid.copy();
+ mFluids[index] = aFluid.copy();
mLastReceivedFrom |= (1 << aSide.ordinal());
}
return aFluid.amount;
}
if (doFill) {
- mFluid = aFluid.copy();
+ mFluids[index] = aFluid.copy();
mLastReceivedFrom |= (1 << aSide.ordinal());
- mFluid.amount = getCapacity();
+ mFluids[index].amount = getCapacity() / mPipeAmount;
}
- return getCapacity();
+ return getCapacity() / mPipeAmount;
}
- if (!mFluid.isFluidEqual(aFluid)) return 0;
+ if (!mFluids[index].isFluidEqual(aFluid)) return 0;
- int space = getCapacity() - mFluid.amount;
+ int space = getCapacity() / mPipeAmount - mFluids[index].amount;
if (aFluid.amount <= space) {
if (doFill) {
- mFluid.amount += aFluid.amount;
+ mFluids[index].amount += aFluid.amount;
mLastReceivedFrom |= (1 << aSide.ordinal());
}
return aFluid.amount;
}
if (doFill) {
- mFluid.amount = getCapacity();
+ mFluids[index].amount = getCapacity() / mPipeAmount;
mLastReceivedFrom |= (1 << aSide.ordinal());
}
return space;
@@ -370,25 +525,35 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
@Override
public final FluidStack drain(int maxDrain, boolean doDrain) {
- if (mFluid == null) return null;
- if (mFluid.amount <= 0) {
- mFluid = null;
+ FluidStack drained = null;
+ for (int i = 0; i < mPipeAmount; i++) {
+ if ((drained = drainFromIndex(maxDrain, doDrain, i)) != null)
+ return drained;
+ }
+ return null;
+ }
+
+ private final FluidStack drainFromIndex(int maxDrain, boolean doDrain, int index) {
+ if (index < 0 || index >= mPipeAmount) return null;
+ if (mFluids[index] == null) return null;
+ if (mFluids[index].amount <= 0) {
+ mFluids[index] = null;
return null;
}
int used = maxDrain;
- if (mFluid.amount < used)
- used = mFluid.amount;
+ if (mFluids[index].amount < used)
+ used = mFluids[index].amount;
if (doDrain) {
- mFluid.amount -= used;
+ mFluids[index].amount -= used;
}
- FluidStack drained = mFluid.copy();
+ FluidStack drained = mFluids[index].copy();
drained.amount = used;
- if (mFluid.amount <= 0) {
- mFluid = null;
+ if (mFluids[index].amount <= 0) {
+ mFluids[index] = null;
}
return drained;
@@ -396,20 +561,82 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
@Override
public int getTankPressure() {
- return (mFluid == null ? 0 : mFluid.amount) - (getCapacity() / 2);
+ return getFluidAmount() - (getCapacity() / 2);
}
@Override
public String[] getDescription() {
- return new String[]{
- EnumChatFormatting.BLUE + "Fluid Capacity: %%%" + (mCapacity * 20) + "%%% L/sec" + EnumChatFormatting.GRAY,
- EnumChatFormatting.RED + "Heat Limit: %%%" + mHeatResistance + "%%% K" + EnumChatFormatting.GRAY
- };
+ if (mPipeAmount == 1) {
+ return new String[]{
+ EnumChatFormatting.BLUE + "Fluid Capacity: %%%" + (mCapacity * 20) + "%%% L/sec" + EnumChatFormatting.GRAY,
+ EnumChatFormatting.RED + "Heat Limit: %%%" + mHeatResistance + "%%% K" + EnumChatFormatting.GRAY
+ };
+ } else {
+ return new String[]{
+ EnumChatFormatting.BLUE + "Fluid Capacity: %%%" + (mCapacity * 20) + "%%% L/sec" + EnumChatFormatting.GRAY,
+ EnumChatFormatting.RED + "Heat Limit: %%%" + mHeatResistance + "%%% K" + EnumChatFormatting.GRAY,
+ EnumChatFormatting.AQUA + "Pipe Amount: %%%" + mPipeAmount + EnumChatFormatting.GRAY
+ };
+ }
}
@Override
public float getThickNess() {
- if(GT_Mod.instance.isClientSide() && GT_Client.hideValue==1) return 0.0625F;
+ if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x1) != 0) return 0.0625F;
return mThickNess;
}
+
+ @Override
+ public boolean isLiquidInput(byte aSide) {
+ return (mDisableInput & (1 << aSide)) == 0;
+ }
+
+ @Override
+ public boolean isLiquidOutput(byte aSide) {
+ return true;
+ }
+
+ @Override
+ public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
+ if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x2) != 0)
+ return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 1, aZ + 1);
+ else
+ return getActualCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
+ }
+
+ private AxisAlignedBB getActualCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
+ float tSpace = (1f - mThickNess)/2;
+ float tSide0 = tSpace;
+ float tSide1 = 1f - tSpace;
+ float tSide2 = tSpace;
+ float tSide3 = 1f - tSpace;
+ float tSide4 = tSpace;
+ float tSide5 = 1f - tSpace;
+
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 0) != 0){tSide0=tSide2=tSide4=0;tSide3=tSide5=1;}
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 1) != 0){tSide2=tSide4=0;tSide1=tSide3=tSide5=1;}
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 2) != 0){tSide0=tSide2=tSide4=0;tSide1=tSide5=1;}
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 3) != 0){tSide0=tSide4=0;tSide1=tSide3=tSide5=1;}
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 4) != 0){tSide0=tSide2=tSide4=0;tSide1=tSide3=1;}
+ if(getBaseMetaTileEntity().getCoverIDAtSide((byte) 5) != 0){tSide0=tSide2=0;tSide1=tSide3=tSide5=1;}
+
+ byte tConn = ((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections;
+ if((tConn & (1 << ForgeDirection.DOWN.ordinal()) ) != 0) tSide0 = 0f;
+ if((tConn & (1 << ForgeDirection.UP.ordinal()) ) != 0) tSide1 = 1f;
+ if((tConn & (1 << ForgeDirection.NORTH.ordinal())) != 0) tSide2 = 0f;
+ if((tConn & (1 << ForgeDirection.SOUTH.ordinal())) != 0) tSide3 = 1f;
+ if((tConn & (1 << ForgeDirection.WEST.ordinal()) ) != 0) tSide4 = 0f;
+ if((tConn & (1 << ForgeDirection.EAST.ordinal()) ) != 0) tSide5 = 1f;
+
+ return AxisAlignedBB.getBoundingBox(aX + tSide4, aY + tSide0, aZ + tSide2, aX + tSide5, aY + tSide1, aZ + tSide3);
+ }
+
+ @Override
+ public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List<AxisAlignedBB> outputAABB, Entity collider) {
+ super.addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider);
+ if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x2) != 0) {
+ AxisAlignedBB aabb = getActualCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
+ if (inputAABB.intersectsWith(aabb)) outputAABB.add(aabb);
+ }
+ }
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java
index ee4b204215..d9a2e31c80 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java
@@ -91,4 +91,10 @@ public class GT_MetaPipeEntity_Frame extends MetaPipeEntity {
public final boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
return false;
}
+
+ @Override
+ public int connect(byte aSide) {return 0;}
+
+ @Override
+ public void disconnect(byte aSide) {/*Do nothing*/}
} \ No newline at end of file
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java
index 62ea2e4148..e2fb532d9e 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java
@@ -12,6 +12,8 @@ import gregtech.api.metatileentity.MetaPipeEntity;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Client;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
@@ -24,6 +26,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import java.util.ArrayList;
+import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileEntityItemPipe {
@@ -34,6 +37,7 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
public int mTransferredItems = 0;
public byte mLastReceivedFrom = 0, oLastReceivedFrom = 0;
public boolean mIsRestrictive = false;
+ private boolean mCheckConnections = !GT_Mod.gregtechproxy.gt6Pipe;
public GT_MetaPipeEntity_Item(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, int aInvSlotCount, int aStepSize, boolean aIsRestrictive, int aTickTime) {
super(aID, aName, aNameRegional, aInvSlotCount);
@@ -45,21 +49,21 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
}
public GT_MetaPipeEntity_Item(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, int aInvSlotCount, int aStepSize, boolean aIsRestrictive) {
- super(aID, aName, aNameRegional, aInvSlotCount);
- mIsRestrictive = aIsRestrictive;
- mThickNess = aThickNess;
- mMaterial = aMaterial;
- mStepSize = aStepSize;
- mTickTime = 20;
+ this(aID, aName, aNameRegional, aThickNess, aMaterial, aInvSlotCount, aStepSize, aIsRestrictive, 20);
}
+ @Deprecated
public GT_MetaPipeEntity_Item(String aName, float aThickNess, Materials aMaterial, int aInvSlotCount, int aStepSize, boolean aIsRestrictive) {
- super(aName, aInvSlotCount);
+ this(aName, aThickNess, aMaterial, aInvSlotCount, aStepSize, aIsRestrictive, 20);
+ }
+
+ public GT_MetaPipeEntity_Item(String aName, float aThickNess, Materials aMaterial, int aInvSlotCount, int aStepSize, boolean aIsRestrictive, int aTickTime) {
+ super(aName, aInvSlotCount);
mIsRestrictive = aIsRestrictive;
mThickNess = aThickNess;
mMaterial = aMaterial;
mStepSize = aStepSize;
- mTickTime = 20;
+ mTickTime = aTickTime;
}
@Override
@@ -69,7 +73,7 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
@Override
public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaPipeEntity_Item(mName, mThickNess, mMaterial, mInventory.length, mStepSize, mIsRestrictive);
+ return new GT_MetaPipeEntity_Item(mName, mThickNess, mMaterial, mInventory.length, mStepSize, mIsRestrictive, mTickTime);
}
@Override
@@ -141,70 +145,29 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
@Override
public void saveNBTData(NBTTagCompound aNBT) {
aNBT.setByte("mLastReceivedFrom", mLastReceivedFrom);
+ if (GT_Mod.gregtechproxy.gt6Pipe)
+ aNBT.setByte("mConnections", mConnections);
}
@Override
public void loadNBTData(NBTTagCompound aNBT) {
mLastReceivedFrom = aNBT.getByte("mLastReceivedFrom");
+ if (GT_Mod.gregtechproxy.gt6Pipe) {
+ if (!aNBT.hasKey("mConnections"))
+ mCheckConnections = true;
+ mConnections = aNBT.getByte("mConnections");
+ }
}
@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
if (aBaseMetaTileEntity.isServerSide() && aTick % 10 == 0) {
- mConnections = 0;
if (aTick % mTickTime == 0) mTransferredItems = 0;
for (byte i = 0; i < 6; i++) {
- TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(i);
- if (tTileEntity != null) {
- boolean temp = GT_Utility.isConnectableNonInventoryPipe(tTileEntity, GT_Utility.getOppositeSide(i));
- if (tTileEntity instanceof IGregTechTileEntity) {
- temp = true;
- if (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() == null) continue;
- if (aBaseMetaTileEntity.getColorization() >= 0) {
- byte tColor = ((IGregTechTileEntity) tTileEntity).getColorization();
- if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) {
- continue;
- }
- }
- if (((IGregTechTileEntity) tTileEntity).getMetaTileEntity().connectsToItemPipe(GT_Utility.getOppositeSide(i))) {
- mConnections |= (1 << i);
- continue;
- }
- }
- if (tTileEntity instanceof IInventory) {
- temp = true;
- if (((IInventory) tTileEntity).getSizeInventory() <= 0) {
- continue;
- }
- }
- if (tTileEntity instanceof ISidedInventory) {
- temp = true;
- int[] tSlots = ((ISidedInventory) tTileEntity).getAccessibleSlotsFromSide(GT_Utility.getOppositeSide(i));
- if (tSlots == null || tSlots.length <= 0) {
- continue;
- }
- }
- if (temp) {
- if (tTileEntity instanceof ICoverable && ((ICoverable) tTileEntity).getCoverBehaviorAtSide(GT_Utility.getOppositeSide(i)).alwaysLookConnected(GT_Utility.getOppositeSide(i), ((ICoverable) tTileEntity).getCoverIDAtSide(GT_Utility.getOppositeSide(i)), ((ICoverable) tTileEntity).getCoverDataAtSide(GT_Utility.getOppositeSide(i)), ((ICoverable) tTileEntity))) {
- mConnections |= (1 << i);
- continue;
- }
- if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).alwaysLookConnected(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), aBaseMetaTileEntity)) {
- mConnections |= (1 << i);
- continue;
- }
- if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsItemsIn(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), -1, aBaseMetaTileEntity)) {
- mConnections |= (1 << i);
- continue;
- }
- if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsItemsOut(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), -1, aBaseMetaTileEntity)) {
- mConnections |= (1 << i);
- continue;
- }
- }
- }
+ if ((mCheckConnections || (mConnections & (1 << i)) != 0) && connect(i) == 0) disconnect(i);
}
+ if (GT_Mod.gregtechproxy.gt6Pipe) mCheckConnections = false;
if (oLastReceivedFrom == mLastReceivedFrom) {
doTickProfilingInThisTick = false;
@@ -219,7 +182,7 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
tPipeList.add(tTileEntity);
while (!temp && !isInventoryEmpty() && tTileEntity.sendItemStack(aBaseMetaTileEntity))
for (IMetaTileEntityItemPipe tPipe : tPipeList)
- if (!tPipe.incrementTransferCounter(1)) temp = false;
+ if (!tPipe.incrementTransferCounter(1)) temp = true;
}
}
}
@@ -230,6 +193,77 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
}
@Override
+ public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if (GT_Mod.gregtechproxy.gt6Pipe) {
+ byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ);
+ if ((mConnections & (1 << tSide)) == 0) {
+ if (connect(tSide) > 0)
+ GT_Utility.sendChatToPlayer(aPlayer, trans("214", "Connected"));
+ }
+ else {
+ disconnect(tSide);
+ GT_Utility.sendChatToPlayer(aPlayer, trans("215", "Disconnected"));
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public int connect(byte aSide) {
+ int rConnect = 0;
+ if (aSide >= 6) return rConnect;
+ TileEntity tTileEntity = getBaseMetaTileEntity().getTileEntityAtSide(aSide);
+ byte tSide = GT_Utility.getOppositeSide(aSide);
+ if (tTileEntity != null) {
+ boolean temp = GT_Utility.isConnectableNonInventoryPipe(tTileEntity, tSide);
+ if (tTileEntity instanceof IGregTechTileEntity) {
+ temp = true;
+ if (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() == null) return rConnect;
+ if (getBaseMetaTileEntity().getColorization() >= 0) {
+ byte tColor = ((IGregTechTileEntity) tTileEntity).getColorization();
+ if (tColor >= 0 && tColor != getBaseMetaTileEntity().getColorization()) {
+ return rConnect;
+ }
+ }
+ if (((IGregTechTileEntity) tTileEntity).getMetaTileEntity().connectsToItemPipe(tSide)) {
+ rConnect = 1;
+ }
+ }
+ if (rConnect == 0) {
+ if (tTileEntity instanceof IInventory) {
+ temp = true;
+ if (((IInventory) tTileEntity).getSizeInventory() <= 0) {
+ return rConnect;
+ }
+ }
+ if (tTileEntity instanceof ISidedInventory) {
+ temp = true;
+ int[] tSlots = ((ISidedInventory) tTileEntity).getAccessibleSlotsFromSide(tSide);
+ if (tSlots == null || tSlots.length <= 0) {
+ return rConnect;
+ }
+ }
+ if (temp) {
+ if ((tTileEntity instanceof ICoverable && ((ICoverable) tTileEntity).getCoverBehaviorAtSide(tSide).alwaysLookConnected(tSide, ((ICoverable) tTileEntity).getCoverIDAtSide(tSide), ((ICoverable) tTileEntity).getCoverDataAtSide(tSide), ((ICoverable) tTileEntity)))
+ || getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).alwaysLookConnected(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), getBaseMetaTileEntity())
+ || getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).letsItemsIn(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), -1, getBaseMetaTileEntity())
+ || getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide).letsItemsOut(aSide, getBaseMetaTileEntity().getCoverIDAtSide(aSide), getBaseMetaTileEntity().getCoverDataAtSide(aSide), -1, getBaseMetaTileEntity())) {
+ rConnect = 1;
+ }
+ }
+ }
+ } else if (getBaseMetaTileEntity().getOffsetX(aSide, 1) >> 4 != getBaseMetaTileEntity().getXCoord() >> 4
+ || getBaseMetaTileEntity().getOffsetZ(aSide, 1) >> 4 != getBaseMetaTileEntity().getZCoord() >> 4) { // if chunk unloaded
+ rConnect = -1;
+ }
+ if (rConnect > 0) {
+ super.connect(aSide);
+ }
+ return rConnect;
+ }
+
+ @Override
public boolean incrementTransferCounter(int aIncrement) {
mTransferredItems += aIncrement;
return pipeCapacityCheck();
@@ -305,7 +339,12 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
@Override
public String[] getDescription() {
- return new String[]{"Item Capacity: %%%" + getMaxPipeCapacity() + "%%% Stacks/sec", "Routing Value: %%%" + mStepSize};
+ if (mTickTime == 20)
+ return new String[]{"Item Capacity: %%%" + getMaxPipeCapacity() + "%%% Stacks/sec", "Routing Value: %%%" + mStepSize};
+ else if (mTickTime % 20 == 0)
+ return new String[]{"Item Capacity: %%%" + getMaxPipeCapacity() + "%%% Stacks/%%%" + (mTickTime / 20) + "%%% sec", "Routing Value: %%%" + mStepSize};
+ else
+ return new String[]{"Item Capacity: %%%" + getMaxPipeCapacity() + "%%% Stacks/%%%" + mTickTime + "%%% ticks", "Routing Value: %%%" + mStepSize};
}
private boolean isInventoryEmpty() {
@@ -315,12 +354,19 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
@Override
public float getThickNess() {
- if(GT_Mod.instance.isClientSide() && GT_Client.hideValue==1) return 0.0625F;
+ if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x1) != 0) return 0.0625F;
return mThickNess;
}
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
+ if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x2) != 0)
+ return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 1, aZ + 1);
+ else
+ return getActualCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
+ }
+
+ private AxisAlignedBB getActualCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
float tSpace = (1f - mThickNess)/2;
float tSide0 = tSpace;
float tSide1 = 1f - tSpace;
@@ -345,6 +391,14 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
if((tConn & (1 << ForgeDirection.EAST.ordinal()) ) != 0) tSide5 = 1f;
return AxisAlignedBB.getBoundingBox(aX + tSide4, aY + tSide0, aZ + tSide2, aX + tSide5, aY + tSide1, aZ + tSide3);
-
+ }
+
+ @Override
+ public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List<AxisAlignedBB> outputAABB, Entity collider) {
+ super.addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider);
+ if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x2) != 0) {
+ AxisAlignedBB aabb = getActualCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
+ if (inputAABB.intersectsWith(aabb)) outputAABB.add(aabb);
+ }
}
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
index fe8c22c77b..f1fad63e3b 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
@@ -83,6 +83,15 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
mNEIName = aNEIName;
}
+ public GT_MetaTileEntity_BasicMachine(int aID, String aName, String aNameRegional, int aTier, int aAmperage, String[] aDescription, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName, ITexture... aOverlays) {
+ super(aID, aName, aNameRegional, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aOverlays);
+ mInputSlotCount = Math.max(0, aInputSlotCount);
+ mOutputItems = new ItemStack[Math.max(0, aOutputSlotCount)];
+ mAmperage = aAmperage;
+ mGUIName = aGUIName;
+ mNEIName = aNEIName;
+ }
+
public GT_MetaTileEntity_BasicMachine(String aName, int aTier, int aAmperage, String aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName) {
super(aName, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aTextures);
mInputSlotCount = Math.max(0, aInputSlotCount);
diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java
index 18c9432033..dcb14b2823 100644
--- a/src/main/java/gregtech/api/util/GT_LanguageManager.java
+++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java
@@ -317,7 +317,10 @@ public class GT_LanguageManager {
// addStringLocalization("Interaction_DESCRIPTION_Index_209", "Grab");
// addStringLocalization("Interaction_DESCRIPTION_Index_210", "Grab");
addStringLocalization("Interaction_DESCRIPTION_Index_211", "Items per side: ");
-
+ addStringLocalization("Interaction_DESCRIPTION_Index_212", "Input enabled");
+ addStringLocalization("Interaction_DESCRIPTION_Index_213", "Input disabled");
+ addStringLocalization("Interaction_DESCRIPTION_Index_214", "Connected");
+ addStringLocalization("Interaction_DESCRIPTION_Index_215", "Disconnected");
addStringLocalization("Item_DESCRIPTION_Index_000", "Stored Heat: %s");
addStringLocalization("Item_DESCRIPTION_Index_001", "Durability: %s/%s");
addStringLocalization("Item_DESCRIPTION_Index_002", "%s lvl %s");
diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java
index daa1b67069..82f3e525ba 100644
--- a/src/main/java/gregtech/api/util/GT_ModHandler.java
+++ b/src/main/java/gregtech/api/util/GT_ModHandler.java
@@ -1718,21 +1718,12 @@ public class GT_ModHandler {
EntityPlayer tPlayer = (EntityPlayer) aPlayer;
if (tPlayer.capabilities.isCreativeMode) return true;
if (isElectricItem(aStack) && ic2.api.item.ElectricItem.manager.getCharge(aStack) > 1000.0d) {
- for (int i = 0; i < tPlayer.inventory.mainInventory.length; i++) {
- if (GT_Utility.isStackInList(tPlayer.inventory.mainInventory[i], GregTech_API.sSolderingMetalList)) {
- if (tPlayer.inventory.mainInventory[i].stackSize < 1) return false;
- if (tPlayer.inventory.mainInventory[i].stackSize == 1) {
- tPlayer.inventory.mainInventory[i] = null;
- } else {
- tPlayer.inventory.mainInventory[i].stackSize--;
- }
- if (tPlayer.inventoryContainer != null) tPlayer.inventoryContainer.detectAndSendChanges();
- if (canUseElectricItem(aStack, 10000)) {
- return GT_ModHandler.useElectricItem(aStack, 10000, (EntityPlayer) aPlayer);
- }
- GT_ModHandler.useElectricItem(aStack, (int) ic2.api.item.ElectricItem.manager.getCharge(aStack), (EntityPlayer) aPlayer);
- return false;
+ if (consumeSolderingMaterial(tPlayer)) {
+ if (canUseElectricItem(aStack, 10000)) {
+ return GT_ModHandler.useElectricItem(aStack, 10000, (EntityPlayer) aPlayer);
}
+ GT_ModHandler.useElectricItem(aStack, (int) ic2.api.item.ElectricItem.manager.getCharge(aStack), (EntityPlayer) aPlayer);
+ return false;
}
}
} else {
@@ -1744,6 +1735,26 @@ public class GT_ModHandler {
}
/**
+ * Simply consumes some soldering material
+ */
+ public static boolean consumeSolderingMaterial(EntityPlayer aPlayer) {
+ if (aPlayer.capabilities.isCreativeMode) return true;
+ for (int i = 0; i < aPlayer.inventory.mainInventory.length; i++) {
+ if (GT_Utility.isStackInList(aPlayer.inventory.mainInventory[i], GregTech_API.sSolderingMetalList)) {
+ if (aPlayer.inventory.mainInventory[i].stackSize < 1) return false;
+ if (aPlayer.inventory.mainInventory[i].stackSize == 1) {
+ aPlayer.inventory.mainInventory[i] = null;
+ } else {
+ aPlayer.inventory.mainInventory[i].stackSize--;
+ }
+ if (aPlayer.inventoryContainer != null) aPlayer.inventoryContainer.detectAndSendChanges();
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
* Is this an electric Item, which can charge other Items?
*/
public static boolean isChargerItem(ItemStack aStack) {
diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java
index 51264c7676..48713f9224 100644
--- a/src/main/java/gregtech/common/GT_Client.java
+++ b/src/main/java/gregtech/common/GT_Client.java
@@ -16,6 +16,7 @@ import gregtech.api.enums.Materials;
import gregtech.api.interfaces.tileentity.ICoverable;
import gregtech.api.interfaces.tileentity.ITurnable;
import gregtech.api.metatileentity.BaseMetaPipeEntity;
+import gregtech.api.objects.GT_ItemStack;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_PlayedSound;
import gregtech.api.util.GT_Recipe;
@@ -136,14 +137,81 @@ public class GT_Client extends GT_Proxy
GL11.glLineWidth(2.0F);
GL11.glColor4f(0.0F, 0.0F, 0.0F, 0.5F);
GL11.glBegin(1);
- GL11.glVertex3d(0.5D, 0.0D, -0.25D);
- GL11.glVertex3d(-0.5D, 0.0D, -0.25D);
- GL11.glVertex3d(0.5D, 0.0D, 0.25D);
- GL11.glVertex3d(-0.5D, 0.0D, 0.25D);
- GL11.glVertex3d(0.25D, 0.0D, -0.5D);
- GL11.glVertex3d(0.25D, 0.0D, 0.5D);
- GL11.glVertex3d(-0.25D, 0.0D, -0.5D);
- GL11.glVertex3d(-0.25D, 0.0D, 0.5D);
+ GL11.glVertex3d(+.50D, .0D, -.25D);
+ GL11.glVertex3d(-.50D, .0D, -.25D);
+ GL11.glVertex3d(+.50D, .0D, +.25D);
+ GL11.glVertex3d(-.50D, .0D, +.25D);
+ GL11.glVertex3d(+.25D, .0D, -.50D);
+ GL11.glVertex3d(+.25D, .0D, +.50D);
+ GL11.glVertex3d(-.25D, .0D, -.50D);
+ GL11.glVertex3d(-.25D, .0D, +.50D);
+ GL11.glLineWidth(2.0F);
+ TileEntity tTile = aEvent.player.worldObj.getTileEntity(aEvent.target.blockX, aEvent.target.blockY, aEvent.target.blockZ);
+ if (tTile instanceof BaseMetaPipeEntity) {
+ int[][] GridSwitchArr = new int[][]{
+ {0, 5, 3, 1, 2, 4},
+ {5, 0, 1, 3, 2, 4},
+ {1, 3, 0, 5, 2, 4},
+ {3, 1, 5, 0, 2, 4},
+ {4, 2, 3, 1, 0, 5},
+ {2, 4, 3, 1, 5, 0},
+ };
+ int tConnections = ((BaseMetaPipeEntity) tTile).mConnections;
+ for (byte i = 0; i < 6; i++) {
+ if ((tConnections & (1 << i)) != 0) {
+ switch (GridSwitchArr[aEvent.target.sideHit][i]) {
+ case 0:
+ GL11.glVertex3d(+.25D, .0D, +.25D);
+ GL11.glVertex3d(-.25D, .0D, -.25D);
+ GL11.glVertex3d(-.25D, .0D, +.25D);
+ GL11.glVertex3d(+.25D, .0D, -.25D);
+ break;
+ case 1:
+ GL11.glVertex3d(-.25D, .0D, +.50D);
+ GL11.glVertex3d(+.25D, .0D, +.25D);
+ GL11.glVertex3d(-.25D, .0D, +.25D);
+ GL11.glVertex3d(+.25D, .0D, +.50D);
+ break;
+ case 2:
+ GL11.glVertex3d(-.50D, .0D, -.25D);
+ GL11.glVertex3d(-.25D, .0D, +.25D);
+ GL11.glVertex3d(-.50D, .0D, +.25D);
+ GL11.glVertex3d(-.25D, .0D, -.25D);
+ break;
+ case 3:
+ GL11.glVertex3d(-.25D, .0D, -.50D);
+ GL11.glVertex3d(+.25D, .0D, -.25D);
+ GL11.glVertex3d(-.25D, .0D, -.25D);
+ GL11.glVertex3d(+.25D, .0D, -.50D);
+ break;
+ case 4:
+ GL11.glVertex3d(+.50D, .0D, -.25D);
+ GL11.glVertex3d(+.25D, .0D, +.25D);
+ GL11.glVertex3d(+.50D, .0D, +.25D);
+ GL11.glVertex3d(+.25D, .0D, -.25D);
+ break;
+ case 5:
+ GL11.glVertex3d(+.50D, .0D, +.50D);
+ GL11.glVertex3d(+.25D, .0D, +.25D);
+ GL11.glVertex3d(+.50D, .0D, +.25D);
+ GL11.glVertex3d(+.25D, .0D, +.50D);
+ GL11.glVertex3d(+.50D, .0D, -.50D);
+ GL11.glVertex3d(+.25D, .0D, -.25D);
+ GL11.glVertex3d(+.50D, .0D, -.25D);
+ GL11.glVertex3d(+.25D, .0D, -.50D);
+ GL11.glVertex3d(-.50D, .0D, +.50D);
+ GL11.glVertex3d(-.25D, .0D, +.25D);
+ GL11.glVertex3d(-.50D, .0D, +.25D);
+ GL11.glVertex3d(-.25D, .0D, +.50D);
+ GL11.glVertex3d(-.50D, .0D, -.50D);
+ GL11.glVertex3d(-.25D, .0D, -.25D);
+ GL11.glVertex3d(-.50D, .0D, -.25D);
+ GL11.glVertex3d(-.25D, .0D, -.50D);
+ break;
+ }
+ }
+ }
+ }
GL11.glEnd();
GL11.glPopMatrix();
}
@@ -354,7 +422,7 @@ public class GT_Client extends GT_Proxy
TileEntity aTileEntity = aEvent.player.worldObj.getTileEntity(aEvent.target.blockX, aEvent.target.blockY, aEvent.target.blockZ);
try {
Class.forName("codechicken.lib.vec.Rotation");
- if (((aTileEntity instanceof BaseMetaPipeEntity)) && (((ICoverable) aTileEntity).getCoverIDAtSide((byte) aEvent.target.sideHit) == 0) && ((GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sCovers.keySet())) || (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sCrowbarList)) || (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sScrewdriverList)))) {
+ if (((aTileEntity instanceof BaseMetaPipeEntity)) && (((ICoverable) aTileEntity).getCoverIDAtSide((byte) aEvent.target.sideHit) == 0) && ((GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sCovers.keySet())) || (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sCrowbarList)) || (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sScrewdriverList)) || (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sWireCutterList)) || (GT_Utility.isStackInList(aEvent.currentItem, GregTech_API.sSolderingToolList)))) {
drawGrid(aEvent);
return;
}
@@ -563,9 +631,9 @@ public class GT_Client extends GT_Proxy
try {
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
if (player == null) return 0;
- ItemStack held = player.getCurrentEquippedItem();
- if (held == null) return 0;
- int[] ids = OreDictionary.getOreIDs(held);
+ ItemStack tCurrentItem = player.getCurrentEquippedItem();
+ if (tCurrentItem == null) return 0;
+ int[] ids = OreDictionary.getOreIDs(tCurrentItem);
int hide = 0;
for (int i : ids) {
if (OreDictionary.getOreName(i).equals("craftingToolSolderingIron")) {
@@ -573,6 +641,16 @@ public class GT_Client extends GT_Proxy
break;
}
}
+ if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWrenchList)
+ || GT_Utility.isStackInList(tCurrentItem, GregTech_API.sScrewdriverList)
+ || GT_Utility.isStackInList(tCurrentItem, GregTech_API.sHardHammerList)
+ || GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSoftHammerList)
+ || GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWireCutterList)
+ || GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSolderingToolList)
+ || GT_Utility.isStackInList(tCurrentItem, GregTech_API.sCrowbarList)
+ || GregTech_API.sCovers.containsKey(new GT_ItemStack(tCurrentItem))) {
+ hide |= 0x2;
+ }
return hide;
}catch(Exception e){
return 0;
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index 3d484b6f8a..fa425d5b5c 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -130,6 +130,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
public boolean mHardcoreCables = false;
public boolean mDisableVanillaOres = true;
public boolean mNerfStorageBlocks = true;
+ public boolean mHardMachineCasings = true;
public boolean mNerfDustCrafting = true;
public boolean mSortToTheEnd = true;
public boolean mCraftingUnification = true;
@@ -202,6 +203,9 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
public boolean enableBasaltOres = true;
public boolean enableGCOres = true;
public boolean enableUBOres = true;
+ public boolean gt6Pipe = true;
+ public boolean gt6Cable = false;
+ public boolean costlyCableConnection = false;
public GT_Proxy() {
GameRegistry.registerFuelHandler(this);
@@ -1589,12 +1593,16 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
crackedFluids[i] = addFluid(prefixes[i] + aMaterial.mName.toLowerCase(Locale.ENGLISH), uncrackedFluid.mTextureName,
localPrefixes[i] + aMaterial.mDefaultLocalName, null, aMaterial.mRGBa, 2, 775, null, null, 0);
int hydrogenAmount = 2 * i + 2;
+ int crackerEUT = 120 + 60 * i;
+ int crackerT = 20 + 10 * i;
+ int chemReactorEUT = 30;
+ int chemReactorT = (crackerT*crackerEUT) / chemReactorEUT;
GT_Values.RA.addCrackingRecipe(i + 1, new FluidStack(uncrackedFluid, 1000), Materials.Hydrogen.getGas(hydrogenAmount * 1000),
- new FluidStack(crackedFluids[i], 1000), 40 + 20 * i, 120 + 60 * i);
+ new FluidStack(crackedFluids[i], 1000), crackerT, crackerEUT);
GT_Values.RA.addChemicalRecipe(Materials.Hydrogen.getCells(hydrogenAmount), GT_Utility.getIntegratedCircuit(i + 1), new FluidStack(uncrackedFluid, 1000),
- new FluidStack(crackedFluids[i], 800), Materials.Empty.getCells(hydrogenAmount), 160 + 80 * i, 30);
+ new FluidStack(crackedFluids[i], 800), Materials.Empty.getCells(hydrogenAmount), chemReactorT, chemReactorEUT);
GT_Values.RA.addChemicalRecipe(aMaterial.getCells(1), GT_Utility.getIntegratedCircuit(i + 1), Materials.Hydrogen.getGas(hydrogenAmount * 1000),
- new FluidStack(crackedFluids[i], 800), Materials.Empty.getCells(1), 160 + 80 * i, 30);
+ new FluidStack(crackedFluids[i], 800), Materials.Empty.getCells(1), chemReactorT, chemReactorEUT);
}
aMaterial.setHydroCrackedFluids(crackedFluids);
}
@@ -1610,14 +1618,18 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
uncrackedFluid = (GT_Fluid) aMaterial.mGas;
}
for (int i = 0; i < 3; i++) {
+ int crackerEUT = 240 + 120 * i;
+ int crackerT = 20 + 10 * i;
+ int chemReactorEUT = 30;
+ int chemReactorT = (crackerT*crackerEUT) / chemReactorEUT;
crackedFluids[i] = addFluid(prefixes[i] + aMaterial.mName.toLowerCase(Locale.ENGLISH), uncrackedFluid.mTextureName,
localPrefixes[i] + aMaterial.mDefaultLocalName, null, aMaterial.mRGBa, 2, 775, null, null, 0);
GT_Values.RA.addCrackingRecipe(i + 1, new FluidStack(uncrackedFluid, 1000), GT_ModHandler.getSteam(1000),
- new FluidStack(crackedFluids[i], 1000), 40 + 20 * i, 240 + 120 * i);
+ new FluidStack(crackedFluids[i], 1000), crackerT, crackerEUT);
GT_Values.RA.addChemicalRecipe(GT_ModHandler.getIC2Item("steamCell", 1L), GT_Utility.getIntegratedCircuit(i + 1), new FluidStack(uncrackedFluid, 1000),
- new FluidStack(crackedFluids[i], 800), Materials.Empty.getCells(1), 160 + 80 * i, 30);
+ new FluidStack(crackedFluids[i], 800), Materials.Empty.getCells(1), chemReactorT, chemReactorEUT);
GT_Values.RA.addChemicalRecipe(aMaterial.getCells(1), GT_Utility.getIntegratedCircuit(i + 1), GT_ModHandler.getSteam(1000),
- new FluidStack(crackedFluids[i], 800), Materials.Empty.getCells(1), 160 + 80 * i, 30);
+ new FluidStack(crackedFluids[i], 800), Materials.Empty.getCells(1), chemReactorT, chemReactorEUT);
}
aMaterial.setSteamCrackedFluids(crackedFluids);
}
diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
index a6a36cf79f..a200fbd52c 100644
--- a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
+++ b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
@@ -2,6 +2,7 @@ package gregtech.common.blocks;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
+import gregtech.api.interfaces.metatileentity.IConnectable;
import gregtech.api.enums.Materials;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Cable;
@@ -157,6 +158,9 @@ public class GT_Item_Machines
tTileEntity.setOwnerName(aPlayer.getDisplayName());
}
tTileEntity.getMetaTileEntity().initDefaultModes(aStack.getTagCompound());
+ if (tTileEntity.getMetaTileEntity() instanceof IConnectable) {
+ ((IConnectable) tTileEntity.getMetaTileEntity()).connect(GT_Utility.getOppositeSide(side));
+ }
}
} else if (!aWorld.setBlock(aX, aY, aZ, this.field_150939_a, tDamage, 3)) {
return false;
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
index ec5c20ff06..a71cfbb62f 100644
--- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
@@ -71,7 +71,7 @@ public class GT_MetaGenerated_Tool_01 extends GT_MetaGenerated_Tool {
GregTech_API.registerTool(addTool(20, "Crowbar", "Dismounts Covers and Rotates Rails", new GT_Tool_Crowbar(), ToolDictNames.craftingToolCrowbar, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 2L)), GregTech_API.sCrowbarList);
GregTech_API.registerTool(addTool(22, "Screwdriver", "Adjusts Covers and Machines", new GT_Tool_Screwdriver(), ToolDictNames.craftingToolScrewdriver, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)), GregTech_API.sScrewdriverList);
addTool(24, "Mortar", "", new GT_Tool_Mortar(), ToolDictNames.craftingToolMortar, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L));
- addTool(26, "Wire Cutter", "", new GT_Tool_WireCutter(), ToolDictNames.craftingToolWireCutter, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L));
+ GregTech_API.registerTool(addTool(26, "Wire Cutter", "", new GT_Tool_WireCutter(), ToolDictNames.craftingToolWireCutter, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)), GregTech_API.sWireCutterList);
addTool(28, "Scoop", "", new GT_Tool_Scoop(), ToolDictNames.craftingToolScoop, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.BESTIA, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.PANNUS, 2L));
addTool(30, "Branch Cutter", "", new GT_Tool_BranchCutter(), ToolDictNames.craftingToolBranchCutter, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.HERBA, 2L));
GregTech_API.registerTool(addTool(32, "Universal Spade", "", new GT_Tool_UniversalSpade(), ToolDictNames.craftingToolBlade, ToolDictNames.craftingToolShovel, ToolDictNames.craftingToolCrowbar, ToolDictNames.craftingToolSaw, new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L), new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.METO, 1L), new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 1L)), GregTech_API.sCrowbarList);
diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java
index cb4d988658..dc56e7d3a7 100644
--- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java
+++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java
@@ -38,7 +38,7 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
public static boolean sAllowMultipleEggs = true;
public static GT_MetaTileEntity_MagicalEnergyAbsorber mActiveSiphon = null;
public static int sEnergyPerEnderCrystal = 32;
- public static int sEnergyFromVis = 12800;
+ public static int sEnergyFromVis = 512;
public static int sDragonEggEnergyPerTick = 128;
public static boolean isThaumcraftLoaded;
public int mEfficiency;
@@ -109,34 +109,31 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
// Energyzed node
if (isThaumcraftLoaded) {
try {
+ int multFactor = 2;
World tmpWorld = this.getBaseMetaTileEntity().getWorld();
int tmpX = this.getBaseMetaTileEntity().getXCoord();
int tmpY = this.getBaseMetaTileEntity().getYCoord();
int tmpZ = this.getBaseMetaTileEntity().getZCoord();
- int fire = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.FIRE, 1000);
+ int fire = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.FIRE, 1000); // all of these should be 1000
int earth = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.EARTH, 1000);
int air = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.AIR, 1000);
- int destruction = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ENTROPY, 1000);
+ int entropy = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ENTROPY, 1000);
int order = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ORDER, 1000);
int water = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.WATER, 1000);
- int visEU = (int) (Math.pow(fire, 4) + Math.pow(earth, 4) + Math.pow(air, 4) + Math.pow(destruction, 4) + Math.pow(order, 4) + Math.pow(
- water, 4));
- int mult = 85;
- if (fire > 4)
- mult += 15;
- if (earth > 4)
- mult += 15;
- if (air > 4)
- mult += 15;
- if (destruction > 4)
- mult += 15;
- if (order > 4)
- mult += 15;
- if (water > 4)
- mult += 15;
- visEU = (visEU * mult) / 100;
- getBaseMetaTileEntity().increaseStoredEnergyUnits(Math.min(maxEUOutput(), visEU * getEfficiency() / this.sEnergyFromVis), false);
+ int visEU = (int) (Math.pow(fire, 2) + Math.pow(earth, 2) + Math.pow(air, 2) + Math.pow(entropy, 2) + Math.pow(order, 2) + Math.pow(water, 2));
+ int mult = 0; //this should make it more dependant on how big your node is
+ mult += fire * multFactor;
+ mult += earth * multFactor;
+ mult += air * multFactor;
+ mult += entropy * multFactor;
+ mult += order * multFactor;
+ mult += water * multFactor;
+ visEU = (visEU * mult) / 100;
+
+ getBaseMetaTileEntity().increaseStoredEnergyUnits(Math.min(maxEUOutput(), visEU * getEfficiency() / sEnergyFromVis), false);
+
} catch (Throwable e) {
+
}
}
// EnderCrystal
@@ -294,4 +291,4 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
public int getPollution() {
return 0;
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java
index 9ff143c92c..3e0da9048d 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Miner.java
@@ -36,7 +36,8 @@ public class GT_MetaTileEntity_Miner extends GT_MetaTileEntity_BasicMachine {
final static int[] ENERGY = new int[]{8, 8, 32, 128}; //Miner energy consumption per tier
public GT_MetaTileEntity_Miner(int aID, String aName, String aNameRegional, int aTier) {
- super(aID, aName, aNameRegional, aTier, 1, "Digging ore instead of you", 2, 2, "Miner.png", "", new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_SIDE_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_SIDE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_FRONT_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_FRONT")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_TOP_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_TOP")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_BOTTOM_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_BOTTOM")));
+ super(aID, aName, aNameRegional, aTier, 1, new String[]{"Digging ore instead of you", ENERGY[aTier] + " EU/t, " + SPEED[aTier] / 20 + " sec per block",
+ "Work area " + (RADIUS[aTier] * 2 + 1) + "x" + (RADIUS[aTier] * 2 + 1)}, 2, 2, "Miner.png", "", new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_SIDE_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_SIDE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_FRONT_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_FRONT")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_TOP_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_TOP")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_BOTTOM_ACTIVE")), new GT_RenderedTexture(new Textures.BlockIcons.CustomIcon("basicmachines/miner/OVERLAY_BOTTOM")));
}
public GT_MetaTileEntity_Miner(String aName, int aTier, String aDescription, ITexture[][][] aTextures, String aGUIName, String aNEIName) {
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java
index 826cab56ab..fec22324e5 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java
@@ -31,7 +31,7 @@ public class GT_MetaTileEntity_DieselEngine extends GT_MetaTileEntity_MultiBlock
public GT_MetaTileEntity_DieselEngine(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
}
-
+
public GT_MetaTileEntity_DieselEngine(String aName) {
super(aName);
}
@@ -222,7 +222,7 @@ public class GT_MetaTileEntity_DieselEngine extends GT_MetaTileEntity_MultiBlock
public int getPollutionPerTick(ItemStack aStack) {
return 16;
}
-
+
@Override
public boolean explodesOnComponentBreak(ItemStack aStack) {
return true;
@@ -231,12 +231,13 @@ public class GT_MetaTileEntity_DieselEngine extends GT_MetaTileEntity_MultiBlock
@Override
public String[] getInfoData() {
return new String[]{
- "Diesel Engine",
- "Current Output: "+mEUt*mEfficiency/10000 +" EU/t",
- "Fuel Consumption: "+fuelConsumption+"L/t",
- "Fuel Value: "+fuelValue+" EU/L",
- "Fuel Remaining: "+fuelRemaining+" Litres",
- "Current Efficiency: "+(mEfficiency/100)+"%"};
+ "Diesel Engine",
+ "Current Output: " + mEUt * mEfficiency / 10000 + " EU/t",
+ "Fuel Consumption: " + fuelConsumption + "L/t",
+ "Fuel Value: " + fuelValue + " EU/L",
+ "Fuel Remaining: " + fuelRemaining + " Litres",
+ "Current Efficiency: " + (mEfficiency / 100) + "%",
+ getIdealStatus() == getRepairStatus() ? "No Maintainance issues" : "Needs Maintainance"};
}
@Override
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeChemicalReactor.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeChemicalReactor.java
index 393aeeff70..d053693e42 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeChemicalReactor.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeChemicalReactor.java
@@ -21,7 +21,7 @@ import java.util.ArrayList;
public class GT_MetaTileEntity_LargeChemicalReactor extends GT_MetaTileEntity_MultiBlockBase {
private final int CASING_INDEX = 176;
-
+
public GT_MetaTileEntity_LargeChemicalReactor(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
}
@@ -45,12 +45,12 @@ public class GT_MetaTileEntity_LargeChemicalReactor extends GT_MetaTileEntity_Mu
"Size(WxHxD): 3x3x3",
"3x3x3 of Chemically Inert Machine Casings (hollow, min 8!)",
"Controller (Front centered)",
- "1x Cupronickel Coil Block (Bottom centered)",
"1x PTFE Pipe Machine Casing (inside the hollow casings)",
+ "1x Cupronickel Coil Block (next to PTFE Pipe Machine Casing)",
"1x Input Bus/Hatch (Any inert casing)",
"1x Output Bus/Hatch (Any inert casing)",
"1x Maintenance Hatch (Any inert casing)",
- "1x Energy Hatch (Any inert casing)"};
+ "1x Energy Hatch (Any inert casing)" };
}
@Override
@@ -64,11 +64,11 @@ public class GT_MetaTileEntity_LargeChemicalReactor extends GT_MetaTileEntity_Mu
}
return new ITexture[] { Textures.BlockIcons.casingTexturePages[1][48] };
}
-
+
@Override
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeChemicalReactor.png");
- }
+ }
@Override
public boolean isCorrectMachinePart(ItemStack aStack) {
@@ -134,7 +134,7 @@ public class GT_MetaTileEntity_LargeChemicalReactor extends GT_MetaTileEntity_Mu
maxProgresstime = 2;
EUt = recipe.mEUt * recipe.mDuration / 2;
}
-
+
this.mEUt = -EUt;
this.mMaxProgresstime = maxProgresstime;
this.mOutputItems = recipe.mOutputs;
@@ -151,28 +151,44 @@ public class GT_MetaTileEntity_LargeChemicalReactor extends GT_MetaTileEntity_Mu
int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;
int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ;
int casingAmount = 0;
+ boolean hasHeatingCoil = false;
// x=width, z=depth, y=height
for (int x = -1 + xDir; x <= xDir + 1; x++) {
for (int z = -1 + zDir; z <= zDir + 1; z++) {
for (int y = -1; y <= 1; y++) {
+ if (x == 0 && y == 0 && z == 0) {
+ continue;
+ }
IGregTechTileEntity tileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(x, y, z);
Block block = aBaseMetaTileEntity.getBlockOffset(x, y, z);
- if (x == xDir && z == zDir && y <= 0) {
- if ((y == -1)
- && (block != GregTech_API.sBlockCasings5 || aBaseMetaTileEntity.getMetaIDOffset(x, y, z) != 0)) {
- return false;
- } else if (y == 0 && (block != GregTech_API.sBlockCasings8 || aBaseMetaTileEntity.getMetaIDOffset(x, y, z) != 1)) {
+ int centerCoords = 0;
+ if (x == xDir) {
+ centerCoords++;
+ }
+ if (y == 0) {
+ centerCoords++;
+ }
+ if (z == zDir) {
+ centerCoords++;
+ }
+ if (centerCoords == 3) {
+ if (block == GregTech_API.sBlockCasings8 && aBaseMetaTileEntity.getMetaIDOffset(x, y, z) == 1) {
+ continue;
+ } else {
return false;
}
- } else if (x != 0 || y != 0 || z != 0) {
- if (!addInputToMachineList(tileEntity, CASING_INDEX) && !addOutputToMachineList(tileEntity, CASING_INDEX)
- && !addMaintenanceToMachineList(tileEntity, CASING_INDEX)
- && !addEnergyInputToMachineList(tileEntity, CASING_INDEX)) {
- if (block == GregTech_API.sBlockCasings8 && aBaseMetaTileEntity.getMetaIDOffset(x, y, z) == 0) {
- casingAmount++;
- } else {
- return false;
- }
+ }
+ if (centerCoords == 2 && block == GregTech_API.sBlockCasings5 && aBaseMetaTileEntity.getMetaIDOffset(x, y, z) == 0) {
+ hasHeatingCoil = true;
+ continue;
+ }
+ if (!addInputToMachineList(tileEntity, CASING_INDEX) && !addOutputToMachineList(tileEntity, CASING_INDEX)
+ && !addMaintenanceToMachineList(tileEntity, CASING_INDEX)
+ && !addEnergyInputToMachineList(tileEntity, CASING_INDEX)) {
+ if (block == GregTech_API.sBlockCasings8 && aBaseMetaTileEntity.getMetaIDOffset(x, y, z) == 0) {
+ casingAmount++;
+ } else {
+ return false;
}
}
@@ -180,7 +196,7 @@ public class GT_MetaTileEntity_LargeChemicalReactor extends GT_MetaTileEntity_Mu
}
}
- return casingAmount >= 8;
+ return casingAmount >= 8 && hasHeatingCoil;
}
@Override
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java
index dc04602d0f..540f2a32f3 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java
@@ -38,12 +38,13 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_MultiBlockBa
"Thermally cracks heavy hydrocarbons into lighter fractions",
"Size(WxHxD): 5x3x3 (Hollow), Controller (Front center)",
"Ring of 8 Cupronickel Coils (Each side of Controller)",
- "1x Hydrocarbon Input Bus/Hatch (Any left side casing)",
+ "1x Hydrocarbon Input Bus/Hatch (Any left/right side casing)",
"1x Steam/Hydrogen Input Hatch (Any middle ring casing)",
- "1x Cracked Hydrocarbon Output Hatch (Any right side casing)",
- "1x Maintenance Hatch (Any middle ring casing)",
- "1x Energy Hatch (Any middle ring casing)",
- "Clean Stainless Steel Machine Casings for the rest (18 at least!)"};
+ "1x Cracked Hydrocarbon Output Hatch (Any left/right side casing)",
+ "1x Maintenance Hatch (Any casing)",
+ "1x Energy Hatch (Any casing)",
+ "Clean Stainless Steel Machine Casings for the rest (18 at least!)",
+ "Input/Output Hatches must be on opposite sides"};
}
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
@@ -95,6 +96,7 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_MultiBlockBa
int zDir = this.orientation.offsetZ;
int amount = 0;
replaceDeprecatedCoils(aBaseMetaTileEntity);
+ boolean negSideInput = false, negSideOutput = false, posSideInput = false, posSideOutput = false;
if (xDir != 0) {
for (int i = -1; i < 2; i++) {// xDirection
for (int j = -1; j < 2; j++) {// height
@@ -110,8 +112,19 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_MultiBlockBa
}
if (h == 2 || h == -2) {
IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, j, h + zDir);
- boolean tSide = ((aBaseMetaTileEntity.getBackFacing() == 4 && 2 == h) || (aBaseMetaTileEntity.getBackFacing() == 5 && -2 == h));
- if (tSide ? !addInputToMachineList(tTileEntity, 49) : !addOutputToMachineList(tTileEntity, 49)) {
+ if (addInputToMachineList(tTileEntity, 49)) {
+ if (h == -2) {
+ negSideInput = true;
+ } else {
+ posSideInput = true;
+ }
+ } else if (addOutputToMachineList(tTileEntity, 49)) {
+ if (h == -2) {
+ negSideOutput = true;
+ } else {
+ posSideOutput = true;
+ }
+ } else if (!addEnergyInputToMachineList(tTileEntity, 49) && !addMaintenanceToMachineList(tTileEntity, 49)){
if (aBaseMetaTileEntity.getBlockOffset(xDir + i, j, h + zDir) != GregTech_API.sBlockCasings4) {
return false;
}
@@ -156,8 +169,19 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_MultiBlockBa
}
if (h == 2 || h == -2) {
IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + h, j, i + zDir);
- boolean tSide = (aBaseMetaTileEntity.getBackFacing() == h || (aBaseMetaTileEntity.getBackFacing() == 3 && -2 == h));
- if (tSide ? !addOutputToMachineList(tTileEntity, 49) : !addInputToMachineList(tTileEntity, 49)) {
+ if (addInputToMachineList(tTileEntity, 49)) {
+ if (h == -2) {
+ negSideInput = true;
+ } else {
+ posSideInput = true;
+ }
+ } else if (addOutputToMachineList(tTileEntity, 49)) {
+ if (h == -2) {
+ negSideOutput = true;
+ } else {
+ posSideOutput = true;
+ }
+ } else if (!addEnergyInputToMachineList(tTileEntity, 49) && !addMaintenanceToMachineList(tTileEntity, 49)){
if (aBaseMetaTileEntity.getBlockOffset(xDir + h, j, i + zDir) != GregTech_API.sBlockCasings4) {
return false;
}
@@ -188,6 +212,10 @@ public class GT_MetaTileEntity_OilCracker extends GT_MetaTileEntity_MultiBlockBa
}
}
}
+ if ((negSideInput && negSideOutput) || (posSideInput && posSideOutput)
+ || (negSideInput && posSideInput) || (negSideOutput && posSideOutput)) {
+ return false;
+ }
if (amount < 18) return false;
return true;
}
diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java
index 90d3a09ecc..c0ac425020 100644
--- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java
+++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPipe.java
@@ -1,5 +1,6 @@
package gregtech.loaders.oreprocessing;
+import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.SubTag;
@@ -19,6 +20,8 @@ public class ProcessingPipe implements gregtech.api.interfaces.IOreRecipeRegistr
OrePrefixes.pipeRestrictiveMedium.add(this);
OrePrefixes.pipeRestrictiveSmall.add(this);
OrePrefixes.pipeRestrictiveTiny.add(this);
+ OrePrefixes.pipeQuadruple.add(this);
+ OrePrefixes.pipeNonuple.add(this);
}
@Override
@@ -44,6 +47,15 @@ public class ProcessingPipe implements gregtech.api.interfaces.IOreRecipeRegistr
case pipeRestrictiveTiny:
gregtech.api.enums.GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(aOreDictName.replaceFirst("Restrictive", ""), null, 1L, false, true), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Steel, aPrefix.mSecondaryMaterial.mAmount / OrePrefixes.ring.mMaterialAmount), GT_Utility.copyAmount(1L, new Object[]{aStack}), (int) (aPrefix.mSecondaryMaterial.mAmount * 400L / OrePrefixes.ring.mMaterialAmount), 4);
break;
+ case pipeQuadruple:
+ GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1, new Object[]{aStack}), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"PP ", "PP ", " ", 'P', GT_OreDictUnificator.get(aOreDictName.replaceFirst("Quadruple", "Medium"), null, 1L, false, true)});
+ gregtech.api.enums.GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(aOreDictName.replaceFirst("Quadruple", "Medium"), null, 4L, false, true), ItemList.Circuit_Integrated.getWithDamage(0, 4), GT_Utility.copyAmount(1L, new Object[]{aStack}), 40 ,8);
+ break;
+ case pipeNonuple:
+ GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(1, new Object[]{aStack}), GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"PPP", "PPP", "PPP", 'P', GT_OreDictUnificator.get(aOreDictName.replaceFirst("Nonuple", "Small"), null, 1L, false, true)});
+ gregtech.api.enums.GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(aOreDictName.replaceFirst("Nonuple", "Small"), null, 9L, false, true), ItemList.Circuit_Integrated.getWithDamage(0, 9), GT_Utility.copyAmount(1L, new Object[]{aStack}), 60 ,8);
+ break;
+
}
}
} \ No newline at end of file
diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
index 12984dd2b1..4b19ad15ed 100644
--- a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
+++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
@@ -477,9 +477,12 @@ if(Loader.isModLoaded("Railcraft")){
GT_Values.RA.addAssemblerRecipe(new ItemStack[]{ItemList.Circuit_Board_Multifiberglass.get(1, o), ItemList.Circuit_Parts_PetriDish.get(1, o), ItemList.Electric_Pump_LV.get(1,o), ItemList.Sensor_LV.get(1,o)},
OrePrefixes.circuit.get(Materials.Good), 1, Materials.GrowthMediumSterilized.getFluid(250), ItemList.Circuit_Board_Wetware.get(1, o), 400, 480);
- GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Parts_Resistor.get(3, o), new Object[]{" P ","FCF"," P ",'P',new ItemStack(Items.paper),'F',OrePrefixes.wireGt01.get(Materials.Copper),'C',OrePrefixes.dust.get(Materials.Coal)});
GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Parts_Resistor.get(3, o), new Object[]{" P ","FCF"," P ",'P',new ItemStack(Items.paper),'F',OrePrefixes.wireFine.get(Materials.Copper),'C',OrePrefixes.dust.get(Materials.Coal)});
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1), GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Copper, 4), ItemList.Circuit_Parts_Resistor.get(12, o), 160, 6);
+ GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Parts_Resistor.get(3, o), new Object[]{" P ","FCF"," P ",'P',new ItemStack(Items.paper),'F',OrePrefixes.wireFine.get(Materials.Copper),'C',OrePrefixes.dust.get(Materials.Charcoal)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Parts_Resistor.get(3, o), new Object[]{" P ","FCF"," P ",'P',new ItemStack(Items.paper),'F',OrePrefixes.wireFine.get(Materials.Copper),'C',OrePrefixes.dust.get(Materials.Carbon)});
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1), GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Copper, 4), ItemList.Circuit_Parts_Resistor.get(12, o), 160, 6);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Charcoal, 1), GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Copper, 4), ItemList.Circuit_Parts_Resistor.get(12, o), 160, 6);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1), GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Copper, 4), ItemList.Circuit_Parts_Resistor.get(12, o), 160, 6);
GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1), GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Electrum, 4),Materials.Plastic.getMolten(144), ItemList.Circuit_Parts_ResistorSMD.get(24, o), 80, 96);
GT_Values.RA.addAlloySmelterRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 1), ItemList.Shape_Mold_Ball.get(0, o), ItemList.Circuit_Parts_Glass_Tube.get(1,o), 160, 8);
GT_ModHandler.addCraftingRecipe(ItemList.Circuit_Parts_Vacuum_Tube.get(1, o), new Object[]{"PGP","FFF",'G',ItemList.Circuit_Parts_Glass_Tube,'P',new ItemStack(Items.paper),'F',OrePrefixes.wireFine.get(Materials.Copper)});
@@ -1412,17 +1415,31 @@ if(Loader.isModLoaded("Railcraft")){
GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.TungstenSteel, 6L), ItemList.Casing_Turbine.get(1L, new Object[0]), ItemList.Casing_Turbine3.get(2L, new Object[0]), 50, 16);
GT_Values.RA.addAssemblerRecipe(ItemList.Casing_SolidSteel.get(1, new Object[0]), GT_Utility.getIntegratedCircuit(6), Materials.Polytetrafluoroethylene.getMolten(216), ItemList.Casing_Chemically_Inert.get(1, new Object[0]), 50, 16);
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Lead, 2L), ItemList.Casing_ULV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_ULV.get(1L, new Object[0]), 25, 16);
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 2L), ItemList.Casing_LV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_LV.get(1L, new Object[0]), 50, 16);
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2L), ItemList.Casing_MV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_MV.get(1L, new Object[0]), 50, 16);
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2L), ItemList.Casing_MV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_MV.get(1L, new Object[0]), 50, 16);
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 2L), ItemList.Casing_HV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_HV.get(1L, new Object[0]), 50, 16);
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 2L), ItemList.Casing_EV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_EV.get(1L, new Object[0]), 50, 16);
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten, 2L), ItemList.Casing_IV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_IV.get(1L, new Object[0]), 50, 16);
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.VanadiumGallium, 2L), ItemList.Casing_LuV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_LuV.get(1L, new Object[0]), 50, 16);
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 2L), ItemList.Casing_ZPM.get(1L, new Object[0]), Materials.Polytetrafluoroethylene.getMolten(288), ItemList.Hull_ZPM.get(1L, new Object[0]), 50, 16);
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.NaquadahAlloy, 2L), ItemList.Casing_UV.get(1L, new Object[0]), Materials.Polytetrafluoroethylene.getMolten(288), ItemList.Hull_UV.get(1L, new Object[0]), 50, 16);
- GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 2L), ItemList.Casing_MAX.get(1L, new Object[0]), Materials.Polytetrafluoroethylene.getMolten(288), ItemList.Hull_MAX.get(1L, new Object[0]), 50, 16);
+ if (GT_Mod.gregtechproxy.mHardMachineCasings) {
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Lead, 2L), ItemList.Casing_ULV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_ULV.get(1L, new Object[0]), 25, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 2L), ItemList.Casing_LV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_LV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2L), ItemList.Casing_MV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_MV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2L), ItemList.Casing_MV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_MV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 2L), ItemList.Casing_HV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_HV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 2L), ItemList.Casing_EV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_EV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten, 2L), ItemList.Casing_IV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_IV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.VanadiumGallium, 2L), ItemList.Casing_LuV.get(1L, new Object[0]), Materials.Plastic.getMolten(288), ItemList.Hull_LuV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 2L), ItemList.Casing_ZPM.get(1L, new Object[0]), Materials.Polytetrafluoroethylene.getMolten(288), ItemList.Hull_ZPM.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.NaquadahAlloy, 2L), ItemList.Casing_UV.get(1L, new Object[0]), Materials.Polytetrafluoroethylene.getMolten(288), ItemList.Hull_UV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 2L), ItemList.Casing_MAX.get(1L, new Object[0]), Materials.Polytetrafluoroethylene.getMolten(288), ItemList.Hull_MAX.get(1L, new Object[0]), 50, 16);
+ } else {
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Lead, 2L), ItemList.Casing_ULV.get(1L, new Object[0]),ItemList.Hull_ULV.get(1L, new Object[0]), 25, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 2L), ItemList.Casing_LV.get(1L, new Object[0]),ItemList.Hull_LV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2L), ItemList.Casing_MV.get(1L, new Object[0]),ItemList.Hull_MV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.AnnealedCopper, 2L), ItemList.Casing_MV.get(1L, new Object[0]), ItemList.Hull_MV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Gold, 2L), ItemList.Casing_HV.get(1L, new Object[0]), ItemList.Hull_HV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Aluminium, 2L), ItemList.Casing_EV.get(1L, new Object[0]), ItemList.Hull_EV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tungsten, 2L), ItemList.Casing_IV.get(1L, new Object[0]), ItemList.Hull_IV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.VanadiumGallium, 2L), ItemList.Casing_LuV.get(1L, new Object[0]), ItemList.Hull_LuV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 2L), ItemList.Casing_ZPM.get(1L, new Object[0]), ItemList.Hull_ZPM.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.NaquadahAlloy, 2L), ItemList.Casing_UV.get(1L, new Object[0]), ItemList.Hull_UV.get(1L, new Object[0]), 50, 16);
+ GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.Superconductor, 2L), ItemList.Casing_MAX.get(1L, new Object[0]), ItemList.Hull_MAX.get(1L, new Object[0]), 50, 16);
+ }
GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Tin, 1L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 1L), Materials.Plastic.getMolten(144), ItemList.Battery_Hull_LV.get(1L, new Object[0]), 800, 1);
GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Copper, 2L), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BatteryAlloy, 3L), Materials.Plastic.getMolten(432), ItemList.Battery_Hull_MV.get(1L, new Object[0]), 1600, 2);
@@ -2872,11 +2889,12 @@ if(Loader.isModLoaded("Railcraft")){
GT_Values.RA.addChemicalRecipe(Materials.Fluorine.getCells(1), GT_Utility.getIntegratedCircuit(11), Materials.Hydrogen.getGas(1000), GT_Values.NF, Materials.HydrofluoricAcid.getCells(1), 60, 8);
GT_Values.RA.addChemicalRecipe(Materials.Hydrogen.getCells(1), GT_Utility.getIntegratedCircuit(11), Materials.Fluorine.getGas(1000), GT_Values.NF, Materials.HydrofluoricAcid.getCells(1), 60, 8);
- GT_Values.RA.addChemicalRecipe(Materials.Chloroform.getCells(2), Materials.HydrofluoricAcid.getCells(4), GT_Values.NF, Materials.Tetrafluoroethylene.getGas(1000), Materials.DilutedHydrochloricAcid.getCells(6), 480, 256);
- GT_Values.RA.addChemicalRecipe(Materials.Chloroform.getCells(2), Materials.Empty.getCells(4), Materials.HydrofluoricAcid.getFluid(4000), Materials.Tetrafluoroethylene.getGas(1000), Materials.DilutedHydrochloricAcid.getCells(6), 480, 256);
- GT_Values.RA.addChemicalRecipe(Materials.HydrofluoricAcid.getCells(4), Materials.Empty.getCells(2), Materials.Chloroform.getFluid(2000), Materials.Tetrafluoroethylene.getGas(1000), Materials.DilutedHydrochloricAcid.getCells(6), 480, 256);
- GT_Values.RA.addChemicalRecipe(Materials.HydrofluoricAcid.getCells(4), GT_Utility.getIntegratedCircuit(11), Materials.Chloroform.getFluid(2000), Materials.DilutedHydrochloricAcid.getFluid(6000), Materials.Tetrafluoroethylene.getCells(1), Materials.Empty.getCells(3), 480, 256);
- GT_Values.RA.addChemicalRecipe(Materials.Chloroform.getCells(2), GT_Utility.getIntegratedCircuit(11), Materials.HydrofluoricAcid.getFluid(4000), Materials.DilutedHydrochloricAcid.getFluid(6000), Materials.Tetrafluoroethylene.getCells(1), Materials.Empty.getCells(1), 480, 256);
+ GT_Values.RA.addChemicalRecipe(Materials.Chloroform.getCells(2), Materials.HydrofluoricAcid.getCells(4), GT_Values.NF, Materials.Tetrafluoroethylene.getGas(1000), Materials.DilutedHydrochloricAcid.getCells(6), 480, 240);
+ GT_Values.RA.addChemicalRecipe(Materials.Chloroform.getCells(2), Materials.Empty.getCells(4), Materials.HydrofluoricAcid.getFluid(4000), Materials.Tetrafluoroethylene.getGas(1000), Materials.DilutedHydrochloricAcid.getCells(6), 480, 240);
+ GT_Values.RA.addChemicalRecipe(Materials.HydrofluoricAcid.getCells(4), Materials.Empty.getCells(2), Materials.Chloroform.getFluid(2000), Materials.Tetrafluoroethylene.getGas(1000), Materials.DilutedHydrochloricAcid.getCells(6), 480, 240);
+ GT_Values.RA.addChemicalRecipe(Materials.HydrofluoricAcid.getCells(4), GT_Utility.getIntegratedCircuit(11), Materials.Chloroform.getFluid(2000), Materials.DilutedHydrochloricAcid.getFluid(6000), Materials.Tetrafluoroethylene.getCells(1), Materials.Empty.getCells(3), 480, 240);
+ GT_Values.RA.addChemicalRecipe(Materials.Chloroform.getCells(2), GT_Utility.getIntegratedCircuit(11), Materials.HydrofluoricAcid.getFluid(4000), Materials.DilutedHydrochloricAcid.getFluid(6000), Materials.Tetrafluoroethylene.getCells(1), Materials.Empty.getCells(1), 480, 240);
+ GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{GT_Utility.getIntegratedCircuit(24)}, new FluidStack[]{Materials.HydrofluoricAcid.getFluid(4000), Materials.Methane.getGas(2000), Materials.Chlorine.getGas(12000)}, new FluidStack[]{Materials.Tetrafluoroethylene.getGas(1000), Materials.HydrochloricAcid.getFluid(6000), Materials.DilutedHydrochloricAcid.getFluid(6000)}, null, 540, 240);
GT_Values.RA.addDefaultPolymerizationRecipes(Materials.Tetrafluoroethylene.mGas, Materials.Tetrafluoroethylene.getCells(1), Materials.Polytetrafluoroethylene.mStandardMoltenFluid);
@@ -3065,10 +3083,10 @@ if(Loader.isModLoaded("Railcraft")){
GT_Values.RA.addChemicalRecipe(Materials.RawStyreneButadieneRubber.getDust(9), Materials.Sulfur.getDust(1), GT_Values.NF, Materials.StyreneButadieneRubber.getMolten(1296), GT_Values.NI, 600);
- GT_Values.RA.addChemicalRecipe( Materials.Benzene.getCells(1), GT_Utility.getIntegratedCircuit(1), Materials.Chlorine.getGas(4000), Materials.HydrochloricAcid.getFluid(2000), Materials.Dichlorobenzene.getCells(1), 240);
- GT_Values.RA.addChemicalRecipe( Materials.Chlorine.getCells(4), GT_Utility.getIntegratedCircuit(1), Materials.Benzene.getFluid(1000), Materials.HydrochloricAcid.getFluid(2000), Materials.Dichlorobenzene.getCells(1), Materials.Empty.getCells(3), 240);
+ GT_Values.RA.addChemicalRecipe( Materials.Benzene.getCells(1), GT_Utility.getIntegratedCircuit(2), Materials.Chlorine.getGas(4000), Materials.HydrochloricAcid.getFluid(2000), Materials.Dichlorobenzene.getCells(1), 240);
+ GT_Values.RA.addChemicalRecipe( Materials.Chlorine.getCells(4), GT_Utility.getIntegratedCircuit(2), Materials.Benzene.getFluid(1000), Materials.HydrochloricAcid.getFluid(2000), Materials.Dichlorobenzene.getCells(1), Materials.Empty.getCells(3), 240);
GT_Values.RA.addChemicalRecipeForBasicMachineOnly(Materials.Benzene.getCells(1), Materials.Empty.getCells(1), Materials.Chlorine.getGas(4000), Materials.Dichlorobenzene.getFluid(1000), Materials.HydrochloricAcid.getCells(2), GT_Values.NI, 240, 30);
- GT_Values.RA.addChemicalRecipe( Materials.Chlorine.getCells(4), GT_Utility.getIntegratedCircuit(11), Materials.Benzene.getFluid(1000), Materials.Dichlorobenzene.getFluid(1000), Materials.HydrochloricAcid.getCells(2), Materials.Empty.getCells(2), 240);
+ GT_Values.RA.addChemicalRecipe( Materials.Chlorine.getCells(4), GT_Utility.getIntegratedCircuit(12), Materials.Benzene.getFluid(1000), Materials.Dichlorobenzene.getFluid(1000), Materials.HydrochloricAcid.getCells(2), Materials.Empty.getCells(2), 240);
GT_Values.RA.addChemicalRecipe(Materials.SodiumSulfide.getDust(1), ItemList.Cell_Air.get(8, new Object[0]), Materials.Dichlorobenzene.getFluid(1000), Materials.PolyphenyleneSulfide.getMolten(1000), Materials.Salt.getDust(2), Materials.Empty.getCells(8), 240, 360);
GT_Values.RA.addChemicalRecipe(Materials.SodiumSulfide.getDust(1), Materials.Oxygen.getCells(8), Materials.Dichlorobenzene.getFluid(1000), Materials.PolyphenyleneSulfide.getMolten(1500), Materials.Salt.getDust(2), Materials.Empty.getCells(8), 240, 360);
@@ -3102,6 +3120,22 @@ if(Loader.isModLoaded("Railcraft")){
GT_Values.RA.addChemicalRecipe(Materials.Water.getCells(2), GT_Utility.getIntegratedCircuit(11), Materials.Methane.getGas(1000), Materials.Hydrogen.getGas(8000), Materials.CarbonDioxide.getCells(1), Materials.Empty.getCells(1), 150, 480);
GT_Values.RA.addChemicalRecipe(Materials.Methane.getCells(1), GT_Utility.getIntegratedCircuit(12), Materials.Water.getFluid(2000), Materials.Hydrogen.getGas(8000), Materials.Empty.getCells(1), 150, 480);
GT_Values.RA.addChemicalRecipe(Materials.Water.getCells(2), GT_Utility.getIntegratedCircuit(12), Materials.Methane.getGas(1000), Materials.Hydrogen.getGas(8000), Materials.Empty.getCells(2), 150, 480);
+
+ GT_Values.RA.addChemicalRecipe(Materials.Benzene.getCells(1), GT_Utility.getIntegratedCircuit(1), Materials.Chlorine.getGas(2000), Materials.HydrochloricAcid.getFluid(1000), Materials.Chlorobenzene.getCells(1), 240);
+ GT_Values.RA.addChemicalRecipe(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(1), Materials.Benzene.getFluid(1000), Materials.HydrochloricAcid.getFluid(1000), Materials.Chlorobenzene.getCells(1), Materials.Empty.getCells(1), 240);
+ GT_Values.RA.addChemicalRecipe(Materials.Chlorine.getCells(2), GT_Utility.getIntegratedCircuit(11), Materials.Benzene.getFluid(1000), Materials.Chlorobenzene.getFluid(1000), Materials.HydrochloricAcid.getCells(1), Materials.Empty.getCells(1), 240);
+
+ GT_Values.RA.addChemicalRecipe(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(1), Materials.Chlorobenzene.getFluid(1000), Materials.Phenol.getFluid(1000), Materials.DilutedHydrochloricAcid.getCells(1), 240);
+ GT_Values.RA.addChemicalRecipe(Materials.Chlorobenzene.getCells(1), GT_Utility.getIntegratedCircuit(1), Materials.Water.getFluid(1000), Materials.Phenol.getFluid(1000), Materials.DilutedHydrochloricAcid.getCells(1), 240);
+ GT_Values.RA.addChemicalRecipe(Materials.Water.getCells(1), GT_Utility.getIntegratedCircuit(11), Materials.Chlorobenzene.getFluid(1000), Materials.DilutedHydrochloricAcid.getFluid(1000), Materials.Phenol.getCells(1), 240);
+ GT_Values.RA.addChemicalRecipe(Materials.Chlorobenzene.getCells(1), GT_Utility.getIntegratedCircuit(11), Materials.Water.getFluid(1000), Materials.DilutedHydrochloricAcid.getFluid(1000), Materials.Phenol.getCells(1), 240);
+
+ GT_Values.RA.addChemicalRecipe( Materials.SodiumHydroxide.getDust(4), GT_Utility.getIntegratedCircuit(1), Materials.Chlorobenzene.getFluid(4000), Materials.Phenol.getFluid(4000), Materials.Salt.getDust(6), 960);
+ GT_Values.RA.addChemicalRecipeForBasicMachineOnly(Materials.SodiumHydroxide.getDust(4), Materials.Empty.getCells(4), Materials.Chlorobenzene.getFluid(4000), GT_Values.NF, Materials.Salt.getDust(6), Materials.Phenol.getCells(4), 960, 30);
+ GT_Values.RA.addChemicalRecipeForBasicMachineOnly(Materials.SodiumHydroxide.getDust(4), Materials.Chlorobenzene.getCells(4), GT_Values.NF, GT_Values.NF, Materials.Salt.getDust(6), Materials.Phenol.getCells(4), 960, 30);
+
+ GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{GT_Utility.getIntegratedCircuit(24)}, new FluidStack[]{Materials.Benzene.getFluid(1000), Materials.Chlorine.getGas(2000), Materials.Water.getFluid(1000)}, new FluidStack[]{Materials.Phenol.getFluid(1000), Materials.HydrochloricAcid.getFluid(1000), Materials.DilutedHydrochloricAcid.getFluid(1000)}, null, 560, 30);
+ GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{Materials.SodiumHydroxide.getDust(2), GT_Utility.getIntegratedCircuit(24)}, new FluidStack[]{Materials.Benzene.getFluid(2000), Materials.Chlorine.getGas(4000)}, new FluidStack[]{Materials.Phenol.getFluid(2000), Materials.HydrochloricAcid.getFluid(2000)}, new ItemStack[]{Materials.Salt.getDust(3)}, 1120, 30);
}
private void addOldChemicalRecipes() {
@@ -3150,26 +3184,45 @@ if(Loader.isModLoaded("Railcraft")){
GT_Values.RA.addCentrifugeRecipe(null, null, Materials.Propane.getGas(320), Materials.LPG.getFluid(290), null, null, null, null, null, null, null, 20, 5);
GT_Values.RA.addCentrifugeRecipe(null, null, Materials.Butane.getGas(320), Materials.LPG.getFluid(370), null, null, null, null, null, null, null, 20, 5);
-
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Ethylene.getLightlyHydroCracked(1000),
- new FluidStack[]{Materials.Ethane.getGas(1000)},
- GT_Values.NI, 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Ethylene.getModeratelyHydroCracked(1000),
- new FluidStack[]{Materials.Methane.getGas(2000)},
- null, 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Ethylene.getSeverelyHydroCracked(1000),
- new FluidStack[]{Materials.Methane.getGas(2000), Materials.Hydrogen.getGas(2000)},
- GT_Values.NI, 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Ethylene.getLightlySteamCracked(1000),
- new FluidStack[]{Materials.Methane.getGas(1000)},
- Materials.Carbon.getDust(1), 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Ethylene.getModeratelySteamCracked(1000),
- new FluidStack[]{Materials.Methane.getGas(1000)},
- Materials.Carbon.getDust(1), 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Ethylene.getSeverelySteamCracked(1000),
- new FluidStack[]{Materials.Methane.getGas(1000)},
- Materials.Carbon.getDust(1), 120, 120);
-
+
+ GT_Values.RA.addChemicalRecipe( GT_Utility.getIntegratedCircuit(2), GT_Values.NI, Materials.Propene.getGas(2000), Materials.Ethylene.getGas(3000), GT_Values.NI, 720, 120);
+ GT_Values.RA.addChemicalRecipe( Materials.Propene.getCells(2), GT_Utility.getIntegratedCircuit(2), GT_Values.NF, Materials.Ethylene.getGas(3000), Materials.Empty.getCells(2), 720, 120);
+ GT_Values.RA.addChemicalRecipe( Materials.Empty.getCells(3), GT_Utility.getIntegratedCircuit(12), Materials.Propene.getGas(2000), GT_Values.NF, Materials.Ethylene.getCells(3), 720, 120);
+ GT_Values.RA.addChemicalRecipeForBasicMachineOnly(Materials.Propene.getCells(2), Materials.Empty.getCells(1), GT_Values.NF, GT_Values.NF, Materials.Ethylene.getCells(3), GT_Values.NI, 720, 120);
+
+ GT_Values.RA.addChemicalRecipe(GT_Utility.getIntegratedCircuit(3), GT_Values.NI, Materials.Ethylene.getGas(3000), Materials.Propene.getGas(2000), GT_Values.NI, 720, 120);
+ GT_Values.RA.addChemicalRecipe(Materials.Ethylene.getCells(3), GT_Utility.getIntegratedCircuit(3), GT_Values.NF, Materials.Propene.getGas(2000), Materials.Empty.getCells(3), 720, 120);
+ GT_Values.RA.addChemicalRecipe(Materials.Empty.getCells(2), GT_Utility.getIntegratedCircuit(13), Materials.Ethylene.getGas(3000), GT_Values.NF, Materials.Propene.getCells(2), 720, 120);
+ GT_Values.RA.addChemicalRecipe(Materials.Ethylene.getCells(3), GT_Utility.getIntegratedCircuit(13), GT_Values.NF, GT_Values.NF, Materials.Propene.getCells(2), Materials.Empty.getCells(1), 720, 120);
+
+ GT_Values.RA.addChemicalRecipe( GT_Utility.getIntegratedCircuit(2), GT_Values.NI, Materials.Butene.getGas(1000), Materials.Ethylene.getGas(2000), GT_Values.NI, 480, 120);
+ GT_Values.RA.addChemicalRecipe( Materials.Butene.getCells(1), GT_Utility.getIntegratedCircuit(2), GT_Values.NF, Materials.Ethylene.getGas(2000), Materials.Empty.getCells(1), 480, 120);
+ GT_Values.RA.addChemicalRecipe( Materials.Empty.getCells(2), GT_Utility.getIntegratedCircuit(12), Materials.Butene.getGas(1000), GT_Values.NF, Materials.Ethylene.getCells(2), 480, 120);
+ GT_Values.RA.addChemicalRecipeForBasicMachineOnly(Materials.Butene.getCells(1), Materials.Empty.getCells(1), GT_Values.NF, GT_Values.NF, Materials.Ethylene.getCells(2), GT_Values.NI, 480, 120);
+
+ GT_Values.RA.addChemicalRecipe(GT_Utility.getIntegratedCircuit(4), GT_Values.NI, Materials.Ethylene.getGas(2000), Materials.Butene.getGas(1000), GT_Values.NI, 480, 120);
+ GT_Values.RA.addChemicalRecipe(Materials.Ethylene.getCells(2), GT_Utility.getIntegratedCircuit(4), GT_Values.NF, Materials.Butene.getGas(1000), Materials.Empty.getCells(2), 480, 120);
+ GT_Values.RA.addChemicalRecipe(Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(14), Materials.Ethylene.getGas(2000), GT_Values.NF, Materials.Butene.getCells(1), 480, 120);
+ GT_Values.RA.addChemicalRecipe(Materials.Ethylene.getCells(2), GT_Utility.getIntegratedCircuit(14), GT_Values.NF, GT_Values.NF, Materials.Butene.getCells(1), Materials.Empty.getCells(1), 480, 120);
+
+ //This piece of code assumes that these Materials are all gases
+ Materials[] saturated = new Materials[]{Materials.Ethane, Materials.Propane, Materials.Butane, Materials.Butene};
+ Materials[] desaturated = new Materials[]{Materials.Ethylene, Materials.Propene, Materials.Butene, Materials.Butadiene};
+
+ for (int i = 0; i < saturated.length; i++) {
+ //Hydrogenation
+ GT_Values.RA.addChemicalRecipe(Materials.Hydrogen.getCells(2), GT_Utility.getIntegratedCircuit(9), desaturated[i].getGas(1000), saturated[i].getGas(1000), Materials.Empty.getCells(2), 160, 30);
+ GT_Values.RA.addChemicalRecipe(Materials.Hydrogen.getCells(2), GT_Utility.getIntegratedCircuit(19), desaturated[i].getGas(1000), GT_Values.NF, saturated[i].getCells(1), Materials.Empty.getCells(1), 160, 30);
+ GT_Values.RA.addChemicalRecipe(desaturated[i].getCells(1), GT_Utility.getIntegratedCircuit(9), Materials.Hydrogen.getGas(2000), saturated[i].getGas(1000), Materials.Empty.getCells(1), 160, 30);
+ GT_Values.RA.addChemicalRecipe(desaturated[i].getCells(1), GT_Utility.getIntegratedCircuit(19), Materials.Hydrogen.getGas(2000), GT_Values.NF, saturated[i].getCells(1), 160, 30);
+
+ //Dehydrogenation
+ GT_Values.RA.addChemicalRecipe( Materials.Empty.getCells(2), GT_Utility.getIntegratedCircuit(8), saturated[i].getGas(1000), desaturated[i].getGas(1000), Materials.Hydrogen.getCells(2), 640, 120);
+ GT_Values.RA.addChemicalRecipe( Materials.Empty.getCells(1), GT_Utility.getIntegratedCircuit(18), saturated[i].getGas(1000), Materials.Hydrogen.getGas(2000), desaturated[i].getCells(1), 640, 120);
+ GT_Values.RA.addChemicalRecipeForBasicMachineOnly(saturated[i].getCells(1), Materials.Empty.getCells(1), GT_Values.NF, desaturated[i].getGas(1000), Materials.Hydrogen.getCells(2), GT_Values.NI, 640, 120);
+ GT_Values.RA.addChemicalRecipe( saturated[i].getCells(1), GT_Utility.getIntegratedCircuit(18), GT_Values.NF, Materials.Hydrogen.getGas(2000), desaturated[i].getCells(1), 640, 120);
+ }
+
GT_Values.RA.addUniversalDistillationRecipe(Materials.Ethane.getLightlyHydroCracked(1000),
new FluidStack[]{Materials.Methane.getGas(2000)},
GT_Values.NI, 120, 120);
@@ -3189,25 +3242,6 @@ if(Loader.isModLoaded("Railcraft")){
new FluidStack[]{Materials.Methane.getGas(1500)},
Materials.Carbon.getDustSmall(2), 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Propene.getLightlyHydroCracked(1000),
- new FluidStack[]{Materials.Propane.getGas(500), Materials.Ethylene.getGas(500), Materials.Methane.getGas(500)},
- GT_Values.NI, 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Propene.getModeratelyHydroCracked(1000),
- new FluidStack[]{Materials.Ethane.getGas(1000), Materials.Methane.getGas(1000)},
- GT_Values.NI, 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Propene.getSeverelyHydroCracked(1000),
- new FluidStack[]{Materials.Methane.getGas(3000)},
- GT_Values.NI, 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Propene.getLightlySteamCracked(1000),
- new FluidStack[]{Materials.Ethylene.getGas(1000), Materials.Methane.getGas(500)},
- Materials.Carbon.getDustSmall(2), 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Propene.getModeratelySteamCracked(1000),
- new FluidStack[]{Materials.Ethylene.getGas(750), Materials.Methane.getGas(750)},
- Materials.Carbon.getDustSmall(3), 180, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Propene.getSeverelySteamCracked(1000),
- new FluidStack[]{Materials.Methane.getGas(1500)},
- Materials.Carbon.getDustSmall(6), 180, 120);
-
GT_Values.RA.addUniversalDistillationRecipe(Materials.Propane.getLightlyHydroCracked(1000),
new FluidStack[]{Materials.Ethane.getGas(1000), Materials.Methane.getGas(1000)},
GT_Values.NI, 120, 120);
@@ -3227,44 +3261,6 @@ if(Loader.isModLoaded("Railcraft")){
new FluidStack[]{Materials.Ethylene.getGas(500), Materials.Methane.getGas(3500)},
Materials.Carbon.getDustSmall(3), 240, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butadiene.getLightlyHydroCracked(750),
- new FluidStack[]{Materials.Butene.getGas(500), Materials.Ethylene.getGas(500)},
- GT_Values.NI, 90, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butadiene.getModeratelyHydroCracked(900),
- new FluidStack[]{Materials.Butane.getGas(200), Materials.Propene.getGas(200), Materials.Ethane.getGas(400), Materials.Ethylene.getGas(400), Materials.Methane.getGas(200)},
- GT_Values.NI, 108, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butadiene.getSeverelyHydroCracked(270),
- new FluidStack[]{Materials.Propane.getGas(70), Materials.Ethane.getGas(250), Materials.Ethylene.getGas(105), Materials.Methane.getGas(720)},
- GT_Values.NI, 30, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butadiene.getLightlySteamCracked(2000),
- new FluidStack[]{Materials.Propene.getGas(1500), Materials.Ethylene.getGas(375), Materials.Methane.getGas(375)},
- Materials.Carbon.getDustSmall(6), 240, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butadiene.getModeratelySteamCracked(2000),
- new FluidStack[]{Materials.Propene.getGas(250), Materials.Ethylene.getGas(2250), Materials.Methane.getGas(375)},
- Materials.Carbon.getDustSmall(6), 240, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butadiene.getSeverelySteamCracked(2000),
- new FluidStack[]{Materials.Propene.getGas(250), Materials.Ethylene.getGas(375), Materials.Methane.getGas(2250)},
- Materials.Carbon.getDust(2), 240, 120);
-
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butene.getLightlyHydroCracked(750),
- new FluidStack[]{Materials.Butane.getGas(250), Materials.Propene.getGas(250), Materials.Ethane.getGas(250), Materials.Ethylene.getGas(250), Materials.Methane.getGas(250)},
- GT_Values.NI, 90, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butene.getModeratelyHydroCracked(900),
- new FluidStack[]{Materials.Propane.getGas(350), Materials.Ethane.getGas(500), Materials.Ethylene.getGas(300), Materials.Methane.getGas(950)},
- GT_Values.NI, 108, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butene.getSeverelyHydroCracked(1000),
- new FluidStack[]{Materials.Ethane.getGas(1000), Materials.Methane.getGas(2000)},
- GT_Values.NI, 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butene.getLightlySteamCracked(1000),
- new FluidStack[]{Materials.Propene.getGas(750), Materials.Ethylene.getGas(500), Materials.Methane.getGas(250)},
- Materials.Carbon.getDustSmall(1), 120, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butene.getModeratelySteamCracked(1250),
- new FluidStack[]{Materials.Propene.getGas(250), Materials.Ethylene.getGas(1625), Materials.Methane.getGas(500)},
- Materials.Carbon.getDustSmall(2), 240, 120);
- GT_Values.RA.addUniversalDistillationRecipe(Materials.Butene.getSeverelySteamCracked(2000),
- new FluidStack[]{Materials.Propene.getGas(250), Materials.Ethylene.getGas(625), Materials.Methane.getGas(3000)},
- Materials.Carbon.getDust(3), 240, 120);
-
GT_Values.RA.addUniversalDistillationRecipe(Materials.Butane.getLightlyHydroCracked(750),
new FluidStack[]{Materials.Propane.getGas(500), Materials.Ethane.getGas(500), Materials.Methane.getGas(500)},
GT_Values.NI, 90, 120);
@@ -3302,72 +3298,79 @@ if(Loader.isModLoaded("Railcraft")){
GT_Values.RA.addUniversalDistillationRecipe(Materials.Gas.getSeverelySteamCracked(800),
new FluidStack[]{Materials.Propene.getGas(6), Materials.Ethane.getGas(6), Materials.Ethylene.getGas(20), Materials.Methane.getGas(914), Materials.Helium.getGas(16)},
Materials.Carbon.getDustTiny(1), 96, 120);
-
+
GT_Values.RA.addUniversalDistillationRecipe(Materials.Naphtha.getLightlyHydroCracked(1000),
- new FluidStack[]{Materials.Butane.getGas(800), Materials.Propane.getGas(300), Materials.Ethane.getGas(250), Materials.Methane.getGas(250)},
+ new FluidStack[]{Materials.Butane.getGas(1200), Materials.Propane.getGas(300), Materials.Ethane.getGas(200), Materials.Methane.getGas(200)},
GT_Values.NI, 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.Naphtha.getModeratelyHydroCracked(1000),
- new FluidStack[]{Materials.Butane.getGas(200), Materials.Propane.getGas(1100), Materials.Ethane.getGas(400), Materials.Methane.getGas(400)},
+ new FluidStack[]{Materials.Butane.getGas(400), Materials.Propane.getGas(1200), Materials.Ethane.getGas(600), Materials.Methane.getGas(600)},
GT_Values.NI, 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.Naphtha.getSeverelyHydroCracked(1000),
- new FluidStack[]{Materials.Butane.getGas(125), Materials.Propane.getGas(125), Materials.Ethane.getGas(1500), Materials.Methane.getGas(1500)},
+ new FluidStack[]{Materials.Butane.getGas(200), Materials.Propane.getGas(500), Materials.Ethane.getGas(1600), Materials.Methane.getGas(1600)},
GT_Values.NI, 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.Naphtha.getLightlySteamCracked(1000),
- new FluidStack[]{Materials.HeavyFuel.getFluid(75), Materials.LightFuel.getFluid(150), Materials.Toluene.getFluid(40), Materials.Benzene.getFluid(150), Materials.Butene.getGas(80),
- Materials.Butadiene.getGas(150), Materials.Propane.getGas(15), Materials.Propene.getGas(200), Materials.Ethane.getGas(35), Materials.Ethylene.getGas(200), Materials.Methane.getGas(200)},
+ new FluidStack[]{Materials.HeavyFuel.getFluid(75), Materials.LightFuel.getFluid(150), Materials.Toluene.getFluid(150), Materials.Benzene.getFluid(450), Materials.Butene.getGas(150),
+ Materials.Butadiene.getGas(450), Materials.Propane.getGas(25), Materials.Propene.getGas(225), Materials.Ethane.getGas(25), Materials.Ethylene.getGas(225), Materials.Methane.getGas(250)},
Materials.Carbon.getDustTiny(1), 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.Naphtha.getModeratelySteamCracked(1000),
- new FluidStack[]{Materials.HeavyFuel.getFluid(50), Materials.LightFuel.getFluid(100), Materials.Toluene.getFluid(30), Materials.Benzene.getFluid(125), Materials.Butene.getGas(65),
- Materials.Butadiene.getGas(100), Materials.Propane.getGas(30), Materials.Propene.getGas(400), Materials.Ethane.getGas(50), Materials.Ethylene.getGas(350), Materials.Methane.getGas(350)},
+ new FluidStack[]{Materials.HeavyFuel.getFluid(50), Materials.LightFuel.getFluid(100), Materials.Toluene.getFluid(50), Materials.Benzene.getFluid(150), Materials.Butene.getGas(50),
+ Materials.Butadiene.getGas(150), Materials.Propane.getGas(120), Materials.Propene.getGas(1080), Materials.Ethane.getGas(60), Materials.Ethylene.getGas(540), Materials.Methane.getGas(600)},
Materials.Carbon.getDustTiny(2), 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.Naphtha.getSeverelySteamCracked(1000),
- new FluidStack[]{Materials.HeavyFuel.getFluid(25), Materials.LightFuel.getFluid(50), Materials.Toluene.getFluid(20), Materials.Benzene.getFluid(100), Materials.Butene.getGas(50),
- Materials.Butadiene.getGas(50), Materials.Propane.getGas(15), Materials.Propene.getGas(300), Materials.Ethane.getGas(65), Materials.Ethylene.getGas(500), Materials.Methane.getGas(500)},
+ new FluidStack[]{Materials.HeavyFuel.getFluid(25), Materials.LightFuel.getFluid(50), Materials.Toluene.getFluid(25), Materials.Benzene.getFluid(75), Materials.Butene.getGas(25),
+ Materials.Butadiene.getGas(75), Materials.Propane.getGas(50), Materials.Propene.getGas(450), Materials.Ethane.getGas(160), Materials.Ethylene.getGas(1440), Materials.Methane.getGas(1600)},
Materials.Carbon.getDustTiny(3), 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.LightFuel.getLightlyHydroCracked(1000),
- new FluidStack[]{Materials.Naphtha.getFluid(800), Materials.Butane.getGas(150), Materials.Propane.getGas(200), Materials.Ethane.getGas(125), Materials.Methane.getGas(125)},
+ new FluidStack[]{Materials.Naphtha.getFluid(800), Materials.Octane.getFluid(100), Materials.Butane.getGas(400), Materials.Propane.getGas(400), Materials.Ethane.getGas(200), Materials.Methane.getGas(200)},
GT_Values.NI, 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.LightFuel.getModeratelyHydroCracked(1000),
- new FluidStack[]{Materials.Naphtha.getFluid(500), Materials.Butane.getGas(200), Materials.Propane.getGas(1100), Materials.Ethane.getGas(400), Materials.Methane.getGas(400)},
+ new FluidStack[]{Materials.Naphtha.getFluid(600), Materials.Octane.getFluid(50), Materials.Butane.getGas(200), Materials.Propane.getGas(800), Materials.Ethane.getGas(400), Materials.Methane.getGas(400)},
GT_Values.NI, 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.LightFuel.getSeverelyHydroCracked(1000),
- new FluidStack[]{Materials.Naphtha.getFluid(200), Materials.Butane.getGas(125), Materials.Propane.getGas(125), Materials.Ethane.getGas(1500), Materials.Methane.getGas(1500)},
+ new FluidStack[]{Materials.Naphtha.getFluid(400), Materials.Octane.getFluid(20), Materials.Butane.getGas(100), Materials.Propane.getGas(400), Materials.Ethane.getGas(1200), Materials.Methane.getGas(1200)},
GT_Values.NI, 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.LightFuel.getLightlySteamCracked(1000),
- new FluidStack[]{Materials.HeavyFuel.getFluid(150), Materials.Naphtha.getFluid(400), Materials.Toluene.getFluid(40), Materials.Benzene.getFluid(200), Materials.Butene.getGas(75),
- Materials.Butadiene.getGas(60), Materials.Propane.getGas(20), Materials.Propene.getGas(150), Materials.Ethane.getGas(10), Materials.Ethylene.getGas(50), Materials.Methane.getGas(50)},
+ new FluidStack[]{Materials.HeavyFuel.getFluid(100), Materials.Naphtha.getFluid(400), Materials.Toluene.getFluid(50), Materials.Benzene.getFluid(250), Materials.Butene.getGas(100),
+ Materials.Butadiene.getGas(300), Materials.Propane.getGas(50), Materials.Propene.getGas(350), Materials.Ethane.getGas(5), Materials.Ethylene.getGas(75), Materials.Methane.getGas(75)},
Materials.Carbon.getDustTiny(1), 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.LightFuel.getModeratelySteamCracked(1000),
- new FluidStack[]{Materials.HeavyFuel.getFluid(100), Materials.Naphtha.getFluid(250), Materials.Toluene.getFluid(50), Materials.Benzene.getFluid(300), Materials.Butene.getGas(90),
- Materials.Butadiene.getGas(75), Materials.Propane.getGas(35), Materials.Propene.getGas(200), Materials.Ethane.getGas(30), Materials.Ethylene.getGas(150), Materials.Methane.getGas(150)},
+ new FluidStack[]{Materials.HeavyFuel.getFluid(75), Materials.Naphtha.getFluid(300), Materials.Toluene.getFluid(35), Materials.Benzene.getFluid(115), Materials.Butene.getGas(50),
+ Materials.Butadiene.getGas(150), Materials.Propane.getGas(80), Materials.Propene.getGas(720), Materials.Ethane.getGas(40), Materials.Ethylene.getGas(360), Materials.Methane.getGas(400)},
Materials.Carbon.getDustTiny(2), 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.LightFuel.getSeverelySteamCracked(1000),
- new FluidStack[]{Materials.HeavyFuel.getFluid(50), Materials.Naphtha.getFluid(100), Materials.Toluene.getFluid(30), Materials.Benzene.getFluid(150), Materials.Butene.getGas(65),
- Materials.Butadiene.getGas(50), Materials.Propane.getGas(50), Materials.Propene.getGas(250), Materials.Ethane.getGas(50), Materials.Ethylene.getGas(250), Materials.Methane.getGas(250)},
+ new FluidStack[]{Materials.HeavyFuel.getFluid(50), Materials.Naphtha.getFluid(150), Materials.Toluene.getFluid(25), Materials.Benzene.getFluid(75), Materials.Butene.getGas(25),
+ Materials.Butadiene.getGas(75), Materials.Propane.getGas(40), Materials.Propene.getGas(360), Materials.Ethane.getGas(100), Materials.Ethylene.getGas(1100), Materials.Methane.getGas(1200)},
Materials.Carbon.getDustTiny(3), 120, 120);
+
GT_Values.RA.addUniversalDistillationRecipe(Materials.HeavyFuel.getLightlyHydroCracked(1000),
- new FluidStack[]{Materials.LightFuel.getFluid(600), Materials.Naphtha.getFluid(100), Materials.Butane.getGas(100), Materials.Propane.getGas(100), Materials.Ethane.getGas(75), Materials.Methane.getGas(75)},
+ new FluidStack[]{Materials.LightFuel.getFluid(800), Materials.Naphtha.getFluid(400), Materials.Butane.getGas(100), Materials.Propane.getGas(100), Materials.Ethane.getGas(75), Materials.Methane.getGas(75)},
GT_Values.NI, 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.HeavyFuel.getModeratelyHydroCracked(1000),
- new FluidStack[]{Materials.LightFuel.getFluid(400), Materials.Naphtha.getFluid(400), Materials.Butane.getGas(150), Materials.Propane.getGas(150), Materials.Ethane.getGas(100), Materials.Methane.getGas(100)},
+ new FluidStack[]{Materials.LightFuel.getFluid(600), Materials.Naphtha.getFluid(750), Materials.Butane.getGas(150), Materials.Propane.getGas(150), Materials.Ethane.getGas(125), Materials.Methane.getGas(100)},
GT_Values.NI, 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.HeavyFuel.getSeverelyHydroCracked(1000),
- new FluidStack[]{Materials.LightFuel.getFluid(200), Materials.Naphtha.getFluid(250), Materials.Butane.getGas(300), Materials.Propane.getGas(300), Materials.Ethane.getGas(175), Materials.Methane.getGas(175)},
+ new FluidStack[]{Materials.LightFuel.getFluid(400), Materials.Naphtha.getFluid(600), Materials.Butane.getGas(400), Materials.Propane.getGas(400), Materials.Ethane.getGas(300), Materials.Methane.getGas(300)},
GT_Values.NI, 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.HeavyFuel.getLightlySteamCracked(1000),
- new FluidStack[]{Materials.LightFuel.getFluid(300), Materials.Naphtha.getFluid(50), Materials.Toluene.getFluid(25), Materials.Benzene.getFluid(125), Materials.Butene.getGas(25),
- Materials.Butadiene.getGas(15), Materials.Propane.getGas(3), Materials.Propene.getGas(30), Materials.Ethane.getGas(5), Materials.Ethylene.getGas(50), Materials.Methane.getGas(50)},
+ new FluidStack[]{Materials.LightFuel.getFluid(600), Materials.Naphtha.getFluid(300), Materials.Toluene.getFluid(50), Materials.Benzene.getFluid(250), Materials.Butene.getGas(50),
+ Materials.Butadiene.getGas(50), Materials.Propane.getGas(10), Materials.Propene.getGas(90), Materials.Ethane.getGas(5), Materials.Ethylene.getGas(75), Materials.Methane.getGas(75)},
Materials.Carbon.getDustTiny(1), 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.HeavyFuel.getModeratelySteamCracked(1000),
- new FluidStack[]{Materials.LightFuel.getFluid(200), Materials.Naphtha.getFluid(200), Materials.Toluene.getFluid(40), Materials.Benzene.getFluid(200), Materials.Butene.getGas(40),
- Materials.Butadiene.getGas(25), Materials.Propane.getGas(5), Materials.Propene.getGas(50), Materials.Ethane.getGas(7), Materials.Ethylene.getGas(75), Materials.Methane.getGas(75)},
+ new FluidStack[]{Materials.LightFuel.getFluid(450), Materials.Naphtha.getFluid(600), Materials.Toluene.getFluid(75), Materials.Benzene.getFluid(325), Materials.Butene.getGas(50),
+ Materials.Butadiene.getGas(100), Materials.Propane.getGas(15), Materials.Propene.getGas(135), Materials.Ethane.getGas(15), Materials.Ethylene.getGas(125), Materials.Methane.getGas(125)},
Materials.Carbon.getDustTiny(2), 120, 120);
GT_Values.RA.addUniversalDistillationRecipe(Materials.HeavyFuel.getSeverelySteamCracked(1000),
- new FluidStack[]{Materials.LightFuel.getFluid(100), Materials.Naphtha.getFluid(125), Materials.Toluene.getFluid(80), Materials.Benzene.getFluid(400), Materials.Butene.getGas(80),
- Materials.Butadiene.getGas(50), Materials.Propane.getGas(10), Materials.Propene.getGas(100), Materials.Ethane.getGas(15), Materials.Ethylene.getGas(150), Materials.Methane.getGas(150)},
+ new FluidStack[]{Materials.LightFuel.getFluid(300), Materials.Naphtha.getFluid(450), Materials.Toluene.getFluid(50), Materials.Benzene.getFluid(200), Materials.Butene.getGas(100),
+ Materials.Butadiene.getGas(300), Materials.Propane.getGas(50), Materials.Propene.getGas(350), Materials.Ethane.getGas(25), Materials.Ethylene.getGas(275), Materials.Methane.getGas(300)},
Materials.Carbon.getDustTiny(3), 120, 120);
+ //Recipes for gasoline
+ GT_Values.RA.addChemicalRecipe(Materials.Nitrogen.getCells(2), Materials.Oxygen.getCells(1), GT_Values.NF, GT_Values.NF, Materials.NitrousOxide.getCells(3), 200, 30);
+ GT_Values.RA.addChemicalRecipe(Materials.Ethanol.getCells(1), Materials.Butene.getCells(1), GT_Values.NF, GT_Values.NF, Materials.AntiKnock.getCells(2), 400, 480);
+ GT_Values.RA.addMixerRecipe(Materials.Naphtha.getCells(16), Materials.Gas.getCells(2), Materials.Methanol.getCells(1), Materials.Acetone.getCells(1), GT_Values.NF, GT_Values.NF, Materials.GasolineRaw.getCells(20), 200, 120);
+ GT_Values.RA.addChemicalRecipe(Materials.GasolineRaw.getCells(10), Materials.Toluene.getCells(1), GT_Values.NF, GT_Values.NF, Materials.GasolineRegular.getCells(11), 10, 120);
+ GT_Values.RA.addMixerRecipe(Materials.GasolineRegular.getCells(20), Materials.Octane.getCells(2), Materials.NitrousOxide.getCells(6), Materials.Toluene.getCells(1), Materials.AntiKnock.getFluid(3000L), Materials.GasolinePremium.getFluid(25000L), ItemList.Cell_Empty.get(29), 200, 120);
}
public void addPotionRecipes(String aName,ItemStack aItem){
diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
index d8f24cbfae..37256e9309 100644
--- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
+++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
@@ -161,17 +161,30 @@ public class GT_Loader_MetaTileEntities implements Runnable {
GT_ModHandler.removeRecipeByOutput(ItemList.Hull_UV.get(1L, new Object[0]));
GT_ModHandler.removeRecipeByOutput(ItemList.Hull_MAX.get(1L, new Object[0]));
- GT_ModHandler.addCraftingRecipe(ItemList.Hull_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_ULV, 'C', OrePrefixes.cableGt01.get(Materials.Lead), 'H', OrePrefixes.plate.get(Materials.WroughtIron), 'P', OrePrefixes.plate.get(Materials.Wood)});
- GT_ModHandler.addCraftingRecipe(ItemList.Hull_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_LV, 'C', OrePrefixes.cableGt01.get(Materials.Tin), 'H', OrePrefixes.plate.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.WroughtIron)});
- GT_ModHandler.addCraftingRecipe(ItemList.Hull_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_MV, 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'H', OrePrefixes.plate.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.WroughtIron)});
- GT_ModHandler.addCraftingRecipe(ItemList.Hull_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_HV, 'C', OrePrefixes.cableGt01.get(Materials.Gold), 'H', OrePrefixes.plate.get(Materials.StainlessSteel), 'P', OrePrefixes.plate.get(Materials.Plastic)});
- GT_ModHandler.addCraftingRecipe(ItemList.Hull_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_EV, 'C', OrePrefixes.cableGt01.get(Materials.Aluminium), 'H', OrePrefixes.plate.get(Materials.Titanium), 'P', OrePrefixes.plate.get(Materials.Plastic)});
- GT_ModHandler.addCraftingRecipe(ItemList.Hull_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_IV, 'C', OrePrefixes.cableGt01.get(Materials.Tungsten), 'H', OrePrefixes.plate.get(Materials.TungstenSteel), 'P', OrePrefixes.plate.get(Materials.Plastic)});
- GT_ModHandler.addCraftingRecipe(ItemList.Hull_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_LuV, 'C', OrePrefixes.cableGt01.get(Materials.VanadiumGallium), 'H', OrePrefixes.plate.get(Materials.Chrome), 'P', OrePrefixes.plate.get(Materials.Plastic)});
- GT_ModHandler.addCraftingRecipe(ItemList.Hull_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_ZPM, 'C', OrePrefixes.cableGt01.get(Materials.Naquadah), 'H', OrePrefixes.plate.get(Materials.Iridium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)});
- GT_ModHandler.addCraftingRecipe(ItemList.Hull_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_UV, 'C', OrePrefixes.wireGt04.get(Materials.NaquadahAlloy), 'H', OrePrefixes.plate.get(Materials.Osmium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)});
- GT_ModHandler.addCraftingRecipe(ItemList.Hull_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_MAX, 'C', OrePrefixes.wireGt01.get(Materials.Superconductor), 'H', OrePrefixes.plate.get(Materials.Neutronium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)});
+ if (GT_Mod.gregtechproxy.mHardMachineCasings) {
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_ULV, 'C', OrePrefixes.cableGt01.get(Materials.Lead), 'H', OrePrefixes.plate.get(Materials.WroughtIron), 'P', OrePrefixes.plate.get(Materials.Wood)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_LV, 'C', OrePrefixes.cableGt01.get(Materials.Tin), 'H', OrePrefixes.plate.get(Materials.Steel), 'P', OrePrefixes.plate.get(Materials.WroughtIron)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_MV, 'C', OrePrefixes.cableGt01.get(Materials.Copper), 'H', OrePrefixes.plate.get(Materials.Aluminium), 'P', OrePrefixes.plate.get(Materials.WroughtIron)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_HV, 'C', OrePrefixes.cableGt01.get(Materials.Gold), 'H', OrePrefixes.plate.get(Materials.StainlessSteel), 'P', OrePrefixes.plate.get(Materials.Plastic)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_EV, 'C', OrePrefixes.cableGt01.get(Materials.Aluminium), 'H', OrePrefixes.plate.get(Materials.Titanium), 'P', OrePrefixes.plate.get(Materials.Plastic)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_IV, 'C', OrePrefixes.cableGt01.get(Materials.Tungsten), 'H', OrePrefixes.plate.get(Materials.TungstenSteel), 'P', OrePrefixes.plate.get(Materials.Plastic)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_LuV, 'C', OrePrefixes.cableGt01.get(Materials.VanadiumGallium), 'H', OrePrefixes.plate.get(Materials.Chrome), 'P', OrePrefixes.plate.get(Materials.Plastic)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_ZPM, 'C', OrePrefixes.cableGt01.get(Materials.Naquadah), 'H', OrePrefixes.plate.get(Materials.Iridium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_UV, 'C', OrePrefixes.wireGt04.get(Materials.NaquadahAlloy), 'H', OrePrefixes.plate.get(Materials.Osmium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PHP", aTextCableHull, 'M', ItemList.Casing_MAX, 'C', OrePrefixes.wireGt01.get(Materials.Superconductor), 'H', OrePrefixes.plate.get(Materials.Neutronium), 'P', OrePrefixes.plate.get(Materials.Polytetrafluoroethylene)});
+ } else {
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_ULV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aTextCableHull, 'M', ItemList.Casing_ULV, 'C', OrePrefixes.cableGt01.get(Materials.Lead)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aTextCableHull, 'M', ItemList.Casing_LV, 'C', OrePrefixes.cableGt01.get(Materials.Tin)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aTextCableHull, 'M', ItemList.Casing_MV, 'C', OrePrefixes.cableGt01.get(Materials.Copper)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aTextCableHull, 'M', ItemList.Casing_HV, 'C', OrePrefixes.cableGt01.get(Materials.Gold)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aTextCableHull, 'M', ItemList.Casing_EV, 'C', OrePrefixes.cableGt01.get(Materials.Aluminium)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_IV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aTextCableHull, 'M', ItemList.Casing_IV, 'C', OrePrefixes.cableGt01.get(Materials.Tungsten)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_LuV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aTextCableHull, 'M', ItemList.Casing_LuV, 'C', OrePrefixes.cableGt01.get(Materials.VanadiumGallium)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_ZPM.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aTextCableHull, 'M', ItemList.Casing_ZPM, 'C', OrePrefixes.cableGt01.get(Materials.Naquadah)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_UV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aTextCableHull, 'M', ItemList.Casing_UV, 'C', OrePrefixes.wireGt04.get(Materials.NaquadahAlloy)});
+ GT_ModHandler.addCraftingRecipe(ItemList.Hull_MAX.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{aTextCableHull, 'M', ItemList.Casing_MAX, 'C', OrePrefixes.wireGt01.get(Materials.Superconductor)});
+ }
ItemList.Transformer_LV_ULV.set(new GT_MetaTileEntity_Transformer(20, "transformer.tier.00", "Ultra Low Voltage Transformer", 0, "LV -> ULV (Use Soft Hammer to invert)").getStackForm(1L));
ItemList.Transformer_MV_LV.set(new GT_MetaTileEntity_Transformer(21, "transformer.tier.01", "Low Voltage Transformer", 1, "MV -> LV (Use Soft Hammer to invert)").getStackForm(1L));
ItemList.Transformer_HV_MV.set(new GT_MetaTileEntity_Transformer(22, "transformer.tier.02", "Medium Voltage Transformer", 2, "HV -> MV (Use Soft Hammer to invert)").getStackForm(1L));
@@ -1431,6 +1444,14 @@ public class GT_Loader_MetaTileEntities implements Runnable {
GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(Materials.Plastic), new GT_MetaPipeEntity_Fluid(5174, "GT_Pipe_Plastic_Huge", "Huge Plastic Fluid Pipe", 0.875F, Materials.Plastic, 1440, 350, true).getStackForm(1L));*/
generateFluidPipes(Materials.Plastic, Materials.Plastic.mName, "Plastic", 5170, 360, 350, true);
generateFluidPipes(Materials.Polytetrafluoroethylene, Materials.Polytetrafluoroethylene.mName, "PTFE", 5175, 480, 600, true);
+ generateFluidMultiPipes(Materials.Copper, Materials.Copper.mName, "Copper", 5200, 60, 1000, true);
+ generateFluidMultiPipes(Materials.Bronze, Materials.Bronze.mName, "Bronze", 5205, 120, 2000, true);
+ generateFluidMultiPipes(Materials.Steel, Materials.Steel.mName, "Steel", 5210, 240, 2500, true);
+ generateFluidMultiPipes(Materials.StainlessSteel, Materials.StainlessSteel.mName, "StainlessSteel", 5215, 360, 3000, true);
+ generateFluidMultiPipes(Materials.Titanium, Materials.Titanium.mName, "Titanium", 5220, 480, 5000, true);
+ generateFluidMultiPipes(Materials.TungstenSteel, Materials.TungstenSteel.mName, "Bronze", 5225, 600, 7500, true);
+ generateFluidMultiPipes(Materials.Plastic, Materials.Plastic.mName, "Plastic", 5230, 360, 350, true);
+ generateFluidMultiPipes(Materials.Polytetrafluoroethylene, Materials.Polytetrafluoroethylene.mName, "PTFE", 5235, 480, 600, true);
GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.TungstenSteel, 1L), ItemList.Electric_Pump_EV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.Ultimate, 1L), 300, 96);
GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.TungstenSteel, 1L), ItemList.Electric_Pump_IV.get(1L, new Object[0]), GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 1L), 400, 148);
@@ -1668,4 +1689,9 @@ public class GT_Loader_MetaTileEntities implements Runnable {
GT_OreDictUnificator.registerOre(OrePrefixes.pipeLarge.get(aMaterial), new GT_MetaPipeEntity_Fluid(startID + 3, "GT_Pipe_" + name + "_Large", "Large " + displayName + " Fluid Pipe", 0.75F, aMaterial, baseCapacity * 2, heatCapacity, gasProof).getStackForm(1L));
GT_OreDictUnificator.registerOre(OrePrefixes.pipeHuge.get(aMaterial), new GT_MetaPipeEntity_Fluid(startID + 4, "GT_Pipe_" + name + "_Huge", "Huge " + displayName + " Fluid Pipe", 0.875F, aMaterial, baseCapacity * 4, heatCapacity, gasProof).getStackForm(1L));
}
+
+ private static void generateFluidMultiPipes(Materials aMaterial, String name, String displayName, int startID, int baseCapacity, int heatCapacity, boolean gasProof){
+ GT_OreDictUnificator.registerOre(OrePrefixes.pipeQuadruple.get(aMaterial), new GT_MetaPipeEntity_Fluid(startID, "GT_Pipe_" + name + "_Quadruple", "Quadruple " + displayName + " Fluid Pipe", 1.0F, aMaterial, baseCapacity, heatCapacity, gasProof, 4).getStackForm(1L));
+ GT_OreDictUnificator.registerOre(OrePrefixes.pipeNonuple.get(aMaterial), new GT_MetaPipeEntity_Fluid(startID + 1, "GT_Pipe_" + name + "_Nonuple", "Nonuple " + displayName + " Fluid Pipe", 1.0F, aMaterial, baseCapacity / 3, heatCapacity, gasProof, 9).getStackForm(1L));
+ }
}
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DL.png
new file mode 100644
index 0000000000..766311a952
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DL.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DOWN.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DOWN.png
new file mode 100644
index 0000000000..285fbf58e8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DOWN.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DR.png
new file mode 100644
index 0000000000..4d35191c5a
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DR.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LEFT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LEFT.png
new file mode 100644
index 0000000000..a4e79be13e
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LEFT.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LR.png
new file mode 100644
index 0000000000..9346841e20
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LR.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_ND.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_ND.png
new file mode 100644
index 0000000000..9c759e8446
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_ND.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NL.png
new file mode 100644
index 0000000000..c59fde72c8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NL.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NR.png
new file mode 100644
index 0000000000..9578cf6b80
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NR.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NU.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NU.png
new file mode 100644
index 0000000000..4fdda008b4
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NU.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_RIGHT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_RIGHT.png
new file mode 100644
index 0000000000..87fc09f32e
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_RIGHT.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UD.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UD.png
new file mode 100644
index 0000000000..1fd53d6da3
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UD.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UL.png
new file mode 100644
index 0000000000..e1f7e75f0d
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UL.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UP.png
new file mode 100644
index 0000000000..344d254342
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UP.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UR.png
new file mode 100644
index 0000000000..cc316b91d4
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UR.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DIAMOND/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/DULL/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/EMERALD/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FIERY/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FINE/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLINT/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/FLUID/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_HORIZONTAL/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GEM_VERTICAL/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/GLASS/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LAPIS/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeNonuple.png
new file mode 100644
index 0000000000..1fa5d94142
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeQuadruple.png
new file mode 100644
index 0000000000..8ceeb8e25f
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LEAF/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/LIGNITE/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/MAGNETIC/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/METALLIC/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NETHERSTAR/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/NONE/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/OPAL/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/PAPER/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/POWDER/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/QUARTZ/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/ROUGH/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/RUBY/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SAND/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHARDS/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeNonuple.png
new file mode 100644
index 0000000000..b33a1bac91
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeQuadruple.png
new file mode 100644
index 0000000000..343e8ff5b8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/SHINY/pipeQuadruple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeNonuple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeNonuple.png
new file mode 100644
index 0000000000..1fa5d94142
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeNonuple.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeQuadruple.png b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeQuadruple.png
new file mode 100644
index 0000000000..8ceeb8e25f
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/materialicons/WOOD/pipeQuadruple.png
Binary files differ