aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/java/gregtech/GT_Mod.java3
-rw-r--r--main/java/gregtech/api/enums/Materials.java34
-rw-r--r--main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java1
-rw-r--r--main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java2
-rw-r--r--main/java/gregtech/api/items/GT_CoolantCellIC_Item.java10
-rw-r--r--main/java/gregtech/api/items/GT_CoolantCell_Item.java23
-rw-r--r--main/java/gregtech/api/items/GT_MetaGenerated_Tool.java2
-rw-r--r--main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java9
-rw-r--r--main/java/gregtech/common/GT_RecipeAdder.java18
-rw-r--r--main/java/gregtech/common/GT_ThaumcraftCompat.java8
-rw-r--r--main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java2
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java5
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java15
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java63
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java51
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java59
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java51
-rw-r--r--main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java78
-rw-r--r--main/java/gregtech/loaders/misc/GT_Achievements.java12
-rw-r--r--main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java220
-rw-r--r--main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java13
-rw-r--r--main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.1.pngbin201 -> 195 bytes
-rw-r--r--main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.2.pngbin265 -> 276 bytes
-rw-r--r--main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.3.pngbin313 -> 523 bytes
-rw-r--r--main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.4.pngbin531 -> 429 bytes
25 files changed, 504 insertions, 175 deletions
diff --git a/main/java/gregtech/GT_Mod.java b/main/java/gregtech/GT_Mod.java
index 09473be84e..1b91d8ea4e 100644
--- a/main/java/gregtech/GT_Mod.java
+++ b/main/java/gregtech/GT_Mod.java
@@ -661,6 +661,9 @@ for (Map.Entry<ItemStack, Float> entry : outputs.entrySet()) {
if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "massFabricator"), true)) {
GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L));
}
+ if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "ic2_" + (tName = "replicator"), true)) {
+ GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item(tName, 1L));
+ }
if (gregtechproxy.mNerfedVanillaTools)
{
GT_Log.out.println("GT_Mod: Nerfing Vanilla Tool Durability");
diff --git a/main/java/gregtech/api/enums/Materials.java b/main/java/gregtech/api/enums/Materials.java
index 99e9db3d31..0d60f1b54e 100644
--- a/main/java/gregtech/api/enums/Materials.java
+++ b/main/java/gregtech/api/enums/Materials.java
@@ -215,10 +215,10 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer {
Ammonium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Ammonium" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Amordrine ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 255, 255, 0, "Amordrine" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Andesite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Andesite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
- Angmallen ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 255, 255, 0, "Angmallen" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Angmallen ( 958, TextureSet.SET_METALLIC , 10.0F, 128, 2, 1|2 |8|16 |64 , 215, 225, 138, 0, "Angmallen" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Ardite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Ardite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ),
Aredrite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 0, 0, 0, "Aredrite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ),
- Atlarus ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Atlarus" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Atlarus ( 965, TextureSet.SET_METALLIC , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Atlarus" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Bitumen ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Bitumen" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Black ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 0, 0, 0, 0, "Black" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBlack ),
Blizz ( 851, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 , 220, 233, 255, 0, "Blizz" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
@@ -226,10 +226,10 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer {
Bluestone ( 813, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bluestone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlue ),
Bloodstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Bloodstone" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeRed ),
Blutonium ( -1, TextureSet.SET_SHINY , 1.0F, 0, 2, 1|2 |8 , 0, 0, 255, 0, "Blutonium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBlue ),
- Carmot ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Carmot" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
- Celenegil ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 255, 255, 0, "Celenegil" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Carmot ( 962, TextureSet.SET_METALLIC , 16.0F, 128, 1, 1|2 |8 |64 , 217, 205, 140, 0, "Carmot" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Celenegil ( 964, TextureSet.SET_METALLIC , 10.0F, 4096, 2, 1|2 |8|16 |64 , 148, 204, 72, 0, "Celenegil" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
CertusQuartz ( 516, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "Certus Quartz" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 1), new TC_AspectStack(TC_Aspects.VITREUS, 1))),
- Ceruclase ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Ceruclase" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Ceruclase ( 952, TextureSet.SET_METALLIC , 6.0F, 1280, 2, 1|2 |8 , 140, 189, 208, 0, "Ceruclase" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Citrine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Citrine" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
//ChargedCertusQuartz ( 517, TextureSet.SET_QUARTZ , 5.0F, 32, 1, 1 |4|8 |64 , 210, 210, 230, 0, "Charged Certus Quartz" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.POTENTIA, 2), new TC_AspectStack(TC_Aspects.VITREUS, 1))),
CobaltHexahydrate ( 853, TextureSet.SET_METALLIC , 1.0F, 0, 2, 1 |16 , 80, 80, 250, 0, "Cobalt Hexahydrate" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlue ),
@@ -258,7 +258,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer {
EnderiumBase ( -1, TextureSet.SET_DULL , 8.0F, 256, 3, 1|2 |64 , 89, 145, 135, 0, "Enderium Base" , 0, 0, 3000, 3000, T, F, 1, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 2), new TC_AspectStack(TC_Aspects.ALIENIS, 1))),
Energized ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Energized" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Epidote ( 862, TextureSet.SET_DULL , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Epidote" , 0, 0, -1, 0, F, F, 0, 1, 1, Dyes._NULL ),
- Eximite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Eximite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Eximite ( 959, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1|2 |8 |64 , 124, 90, 150, 0, "Eximite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
FierySteel ( 346, TextureSet.SET_FIERY , 8.0F, 256, 3, 1|2 |16 |64|128 , 64, 0, 0, 0, "Fiery Steel" , 5, 2048, 1811, 1000, T, F, 1, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 3), new TC_AspectStack(TC_Aspects.IGNIS, 3), new TC_AspectStack(TC_Aspects.CORPUS, 3))),
Firestone ( 347, TextureSet.SET_QUARTZ , 6.0F, 1280, 3, 1 |4|8 |64 , 200, 20, 0, 0, "Firestone" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeRed ),
Fluorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |8 , 255, 255, 255, 0, "Fluorite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeGreen ),
@@ -274,11 +274,11 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer {
Greenschist ( 866, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Green Schist" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGreen ),
Greenstone ( 867, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greenstone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGreen ),
Greywacke ( 868, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Greywacke" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeGray ),
- Haderoth ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 255, 255, 0, "Haderoth" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Haderoth ( 963, TextureSet.SET_METALLIC , 10.0F, 3200, 3, 1|2 |8|16 |64 , 119, 52, 30, 0, "Haderoth" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Hematite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 |8 , 255, 255, 255, 0, "Hematite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
- Hepatizon ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8|16 |64 , 255, 255, 255, 0, "Hepatizon" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Hepatizon ( 957, TextureSet.SET_METALLIC , 12.0F, 128, 2, 1|2 |8|16 |64 , 117, 94, 117, 0, "Hepatizon" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
HSLA ( 322, TextureSet.SET_METALLIC , 6.0F, 500, 2, 1|2 |64|128 , 128, 128, 128, 0, "HSLA Steel" , 0, 0, 1811, 1000, T, F, 3, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.METALLUM, 1), new TC_AspectStack(TC_Aspects.ORDO, 1))),
- Ignatius ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |16 , 255, 255, 255, 0, "Ignatius" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Ignatius ( 950, TextureSet.SET_METALLIC , 12.0F, 512, 2, 1 |16 , 255, 169, 83, 0, "Ignatius" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Infernal ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 0 , 255, 255, 255, 0, "Infernal" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Infuscolium ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Infuscolium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
InfusedGold ( 323, TextureSet.SET_SHINY , 12.0F, 64, 3, 1|2 |8 |64|128 , 255, 200, 60, 0, "Infused Gold" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow ),
@@ -290,11 +290,11 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer {
InfusedOrder ( 545, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 252, 252, 252, 0, "Ordo" , 5, 240, -1, 0, F, T, 3, 1, 1, Dyes.dyeWhite , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.ORDO, 2))),
InfusedVis ( -1, TextureSet.SET_SHARDS , 8.0F, 64, 3, 1 |4|8 |64|128 , 255, 0, 255, 0, "Auram" , 5, 240, -1, 0, F, T, 3, 1, 1, Dyes.dyePurple , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.AURAM, 2))),
InfusedDull ( -1, TextureSet.SET_SHARDS , 32.0F, 64, 3, 1 |4|8 |64|128 , 100, 100, 100, 0, "Vacuus" , 5, 160, -1, 0, F, T, 3, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.PRAECANTIO, 1), new TC_AspectStack(TC_Aspects.VACUOS, 2))),
- Inolashite ( -1, TextureSet.SET_NONE , 6.0F, 128, 3, 1|2 |8|16 |64 , 255, 255, 255, 0, "Inolashite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Inolashite ( 954, TextureSet.SET_NONE , 8.0F, 2304, 3, 1|2 |8|16 |64 , 148, 216, 187, 0, "Inolashite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Invisium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Invisium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
Jade ( 537, TextureSet.SET_SHINY , 1.0F, 0, 2, 1 |8 , 0, 100, 0, 0, "Jade" , 0, 0, -1, 0, F, F, 5, 1, 1, Dyes.dyeGreen , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 6), new TC_AspectStack(TC_Aspects.VITREUS, 3))),
Jasper ( 511, TextureSet.SET_EMERALD , 1.0F, 0, 2, 1 |4|8 , 200, 80, 80, 100, "Jasper" , 0, 0, -1, 0, F, T, 3, 1, 1, Dyes.dyeRed , Arrays.asList(new TC_AspectStack(TC_Aspects.LUCRUM, 4), new TC_AspectStack(TC_Aspects.VITREUS, 2))),
- Kalendrite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |16 , 255, 255, 255, 0, "Kalendrite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Kalendrite ( 953, TextureSet.SET_METALLIC , 5.0F, 2560, 3, 1 |16 , 170, 91, 189, 0, "Kalendrite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Komatiite ( 869, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Komatiite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ),
Lava ( 700, TextureSet.SET_FLUID , 1.0F, 0, 1, 16 , 255, 64, 0, 0, "Lava" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeOrange ),
Lemurite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |16 , 255, 255, 255, 0, "Lemurite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
@@ -323,16 +323,16 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer {
ObsidianFlux ( -1, TextureSet.SET_DULL , 1.0F, 0, 1, 1|2 , 80, 50, 100, 0, "Fluxed Obsidian" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyePurple ),
Oilsands ( 878, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 10, 10, 10, 0, "Oilsands" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Onyx ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Onyx" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
- Orichalcum ( -1, TextureSet.SET_NONE , 6.0F, 64, 3, 1|2 |8 |64 , 255, 255, 255, 0, "Orichalcum" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Orichalcum ( 966, TextureSet.SET_METALLIC , 4.5F, 3456, 3, 1|2 |8 |64 , 84, 122, 56, 0, "Orichalcum" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Osmonium ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Osmonium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeBlue ),
- Oureclase ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Oureclase" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Oureclase ( 961, TextureSet.SET_METALLIC , 6.0F, 1920, 3, 1|2 |8 |64 , 183, 98, 21, 0, "Oureclase" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Painite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Painite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
Peanutwood ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Peanut Wood" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
Petroleum ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Petroleum" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Pewter ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Pewter" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
Phoenixite ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Phoenixite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
Potash ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Potash" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
- Prometheum ( -1, TextureSet.SET_NONE , 6.0F, 64, 1, 1|2 |8 |64 , 255, 255, 255, 0, "Prometheum" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Prometheum ( 960, TextureSet.SET_METALLIC , 8.0F, 512, 1, 1|2 |8 |64 , 90, 129, 86, 0, "Prometheum" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Quartzite ( 523, TextureSet.SET_QUARTZ , 1.0F, 0, 1, 1 |4|8 , 210, 230, 210, 0, "Quartzite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeWhite ),
Quicklime ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Quicklime" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Randomite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Randomite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
@@ -342,14 +342,14 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer {
Rubracium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8|16 , 255, 255, 255, 0, "Rubracium" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
RyuDragonRyder ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Ryu Dragon Ryder" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Sand ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Sand" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeYellow ),
- Sanguinite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Sanguinite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Sanguinite ( 955, TextureSet.SET_METALLIC , 3.0F, 4480, 4, 1|2 |8 , 185, 0, 0, 0, "Sanguinite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Siltstone ( 876, TextureSet.SET_DULL , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Siltstone" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Spinel ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 0, "Spinel" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
Starconium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Starconium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
Sugilite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Sugilite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
Sunstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 |8 , 255, 255, 255, 0, "Sunstone" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.ALIENIS, 1))),
Tar ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 10, 10, 10, 0, "Tar" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes.dyeBlack ),
- Tartarite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8|16 , 255, 255, 255, 0, "Tartarite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Tartarite ( 956, TextureSet.SET_METALLIC , 20.0F, 7680, 5, 1|2 |8|16 , 255, 118, 60, 0, "Tartarite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Tapazite ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tapazite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeGreen ),
Thyrium ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 1|2 |8 , 255, 255, 255, 0, "Thyrium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
Tourmaline ( -1, TextureSet.SET_RUBY , 1.0F, 0, 1, 1 , 255, 255, 255, 0, "Tourmaline" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ),
@@ -360,7 +360,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer {
Void ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 200, "Void" , 0, 0, -1, 0, F, T, 1, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VACUOS, 1))),
Voidstone ( -1, TextureSet.SET_NONE , 1.0F, 0, 1, 0 , 255, 255, 255, 200, "Voidstone" , 0, 0, -1, 0, F, T, 1, 1, 1, Dyes._NULL , Arrays.asList(new TC_AspectStack(TC_Aspects.VITREUS, 1), new TC_AspectStack(TC_Aspects.VACUOS, 1))),
Vulcanite ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Vulcanite" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
- Vyroxeres ( -1, TextureSet.SET_NONE , 6.0F, 64, 2, 1|2 |8 |64 , 255, 255, 255, 0, "Vyroxeres" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
+ Vyroxeres ( 951, TextureSet.SET_METALLIC , 9.0F, 768, 3, 1|2 |8 |64 , 85, 224, 1, 0, "Vyroxeres" , 0, 0, -1, 0, F, F, 1, 1, 1, Dyes._NULL ),
Wimalite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Wimalite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow ),
Yellorite ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 8 , 255, 255, 255, 0, "Yellorite" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow ),
Yellorium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Yellorium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow ),
diff --git a/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java b/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
index 7c6e719cba..ce72d93374 100644
--- a/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
+++ b/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
@@ -252,6 +252,7 @@ public interface IGT_RecipeAdder {
public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt);
+ public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs,FluidStack aFluidPutput, int[] aChances, int aDuration, int aEUt);
diff --git a/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java b/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java
index 4db941a0c8..0b48d43db9 100644
--- a/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java
+++ b/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java
@@ -1,5 +1,6 @@
package gregtech.api.interfaces.internal;
+import gregtech.api.enums.TC_Aspects;
import gregtech.api.enums.TC_Aspects.TC_AspectStack;
import java.util.List;
@@ -37,5 +38,6 @@ public interface IThaumcraftCompat {
public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List<TC_AspectStack> aAspects, boolean aAdditive);
public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List<TC_AspectStack> aAspects, String aOreDict);
public Object addCrucibleRecipe(String aResearch, Object aInput, ItemStack aOutput, List<TC_AspectStack> aAspects);
+ public Object addInfusionRecipe(String aResearch, ItemStack aMainInput,ItemStack[] aSideInputs, ItemStack aOutput,int aInstability, List<TC_Aspects.TC_AspectStack> aAspects);
public Object addResearch(String aResearch, String aName, String aText, String[] aParentResearches, String aCategory, ItemStack aIcon, int aComplexity, int aType, int aX, int aY, List<TC_AspectStack> aAspects, ItemStack[] aResearchTriggers, Object[] aPages);
} \ No newline at end of file
diff --git a/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java b/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java
index ec381add15..c24e3947f2 100644
--- a/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java
+++ b/main/java/gregtech/api/items/GT_CoolantCellIC_Item.java
@@ -23,6 +23,9 @@ public class GT_CoolantCellIC_Item
public boolean canStoreHeat(IReactor aReactor, ItemStack aStack, int x, int y)
{
+ if(aReactor.isFluidCooled()&&(getControlTagOfStack(aStack))!=0){
+ return false;
+ }
return true;
}
@@ -43,7 +46,11 @@ public class GT_CoolantCellIC_Item
public int alterHeat(IReactor aReactor, ItemStack aStack, int x, int y, int aHeat)
{
+
int tHeat = getHeatOfStack(aStack);
+ if ((tHeat == 0) && (getControlTagOfStack(aStack) != 0)) {
+ setControlTagOfStack(aStack, 0);
+ }
tHeat += aHeat;
if (tHeat > this.heatStorage)
{
@@ -61,6 +68,9 @@ public class GT_CoolantCellIC_Item
{
aHeat = 0;
}
+ if ((tHeat > 0) && (getControlTagOfStack(aStack) == 0) && (!aReactor.isFluidCooled())) {
+ setControlTagOfStack(aStack, 1);
+ }
setHeatForStack(aStack, tHeat);
}
return aHeat;
diff --git a/main/java/gregtech/api/items/GT_CoolantCell_Item.java b/main/java/gregtech/api/items/GT_CoolantCell_Item.java
index 723a3eef95..fe56ffc310 100644
--- a/main/java/gregtech/api/items/GT_CoolantCell_Item.java
+++ b/main/java/gregtech/api/items/GT_CoolantCell_Item.java
@@ -1,9 +1,13 @@
package gregtech.api.items;
import gregtech.api.GregTech_API;
+import ic2.core.util.StackUtil;
+
import java.util.List;
+
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.StatCollector;
public class GT_CoolantCell_Item
extends GT_Generic_Item
@@ -44,6 +48,12 @@ public class GT_CoolantCell_Item
{
super.addAdditionalToolTips(aList, aStack);
aList.add("Stored Heat: " + getHeatOfStack(aStack));
+ switch (getControlTagOfStack(aStack))
+ {
+ case 1:
+ aList.add(StatCollector.translateToLocal("ic2.reactoritem.heatwarning.line1"));
+ aList.add(StatCollector.translateToLocal("ic2.reactoritem.heatwarning.line2"));
+ }
}
protected static int getHeatOfStack(ItemStack aStack)
@@ -56,4 +66,17 @@ public class GT_CoolantCell_Item
}
return tNBT.getInteger("heat");
}
+
+ public int getControlTagOfStack(ItemStack stack)
+ {
+ NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack);
+ return nbtData.getInteger("tag");
+ }
+
+ public void setControlTagOfStack(ItemStack stack, int tag)
+ {
+ NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack);
+ nbtData.setInteger("tag", tag);
+ }
+
}
diff --git a/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
index 292e2d4628..24830c8c05 100644
--- a/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
+++ b/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
@@ -245,6 +245,8 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements
aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.mDefaultLocalName + EnumChatFormatting.YELLOW + " lvl " + getHarvestLevel(aStack, "") + EnumChatFormatting.GRAY);
aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Turbine Efficency: " + EnumChatFormatting.BLUE + (50.0F+(10.0F*getToolCombatDamage(aStack))) + EnumChatFormatting.GRAY);
aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Steam flow: " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed*1000) + EnumChatFormatting.GRAY+ "L/sec");
+ aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Gas flow(EU burnvalue per tick): " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed*25) + EnumChatFormatting.GRAY+ "EU/t");
+ aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Plasma flow(Plasma energyvalue per tick): " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed*1000) + EnumChatFormatting.GRAY+ "EU/t");
}else{
aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY);
diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index 1ff909d3e1..f4c56427fa 100644
--- a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -385,11 +385,14 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
public boolean addOutput(FluidStack aLiquid) {
if (aLiquid == null) return false;
+ FluidStack tLiquid = aLiquid.copy();
for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) {
if (isValidMetaTileEntity(tHatch) && GT_ModHandler.isSteam(aLiquid)?tHatch.outputsSteam():tHatch.outputsLiquids()) {
- int tAmount = tHatch.fill(aLiquid, false);
- if (tAmount >= aLiquid.amount) {
- return tHatch.fill(aLiquid, true) >= aLiquid.amount;
+ int tAmount = tHatch.fill(tLiquid, false);
+ if (tAmount >= tLiquid.amount) {
+ return tHatch.fill(tLiquid, true) >= tLiquid.amount;
+ }else if(tAmount>0){
+ tLiquid.amount = tLiquid.amount - tHatch.fill(tLiquid, true);
}
}
}
diff --git a/main/java/gregtech/common/GT_RecipeAdder.java b/main/java/gregtech/common/GT_RecipeAdder.java
index 64b1625b89..719d517b6c 100644
--- a/main/java/gregtech/common/GT_RecipeAdder.java
+++ b/main/java/gregtech/common/GT_RecipeAdder.java
@@ -669,6 +669,24 @@ public class GT_RecipeAdder
}
return false;
}
+
+ public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, FluidStack aFluidOutput, int[] aChances, int aDuration, int aEUt)
+ {
+ if ((aInput == null) || (aOutputs == null)||aFluidInput==null) {
+ return false;
+ }
+ for (ItemStack tStack : aOutputs) {
+ if (tStack != null)
+ {
+ if ((aDuration = GregTech_API.sRecipeFile.get("arcfurnace", aInput, aDuration)) <= 0) {
+ return false;
+ }
+ GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes.addRecipe(true, new ItemStack[] { aInput }, aOutputs, null, aChances, new FluidStack[] { aFluidInput }, new FluidStack[]{aFluidOutput}, Math.max(1, aDuration), Math.max(1, aEUt), 0);
+ return true;
+ }
+ }
+ return false;
+ }
public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt)
{
diff --git a/main/java/gregtech/common/GT_ThaumcraftCompat.java b/main/java/gregtech/common/GT_ThaumcraftCompat.java
index e850c0264c..aa00217020 100644
--- a/main/java/gregtech/common/GT_ThaumcraftCompat.java
+++ b/main/java/gregtech/common/GT_ThaumcraftCompat.java
@@ -199,6 +199,14 @@ public class GT_ThaumcraftCompat
return ThaumcraftApi.addCrucibleRecipe(aResearch, GT_Utility.copy(new Object[] { aOutput }), ((aInput instanceof ItemStack)) || ((aInput instanceof ArrayList)) ? aInput : aInput.toString(), getAspectList(aAspects));
}
+ public Object addInfusionRecipe(String aResearch, ItemStack aMainInput,ItemStack[] aSideInputs, ItemStack aOutput,int aInstability, List<TC_Aspects.TC_AspectStack> aAspects)
+ {
+ if ((GT_Utility.isStringInvalid(aResearch)) || (aMainInput == null)|| (aSideInputs==null) || (aOutput == null) || (aAspects == null) || (aAspects.isEmpty())) {
+ return null;
+ }
+ return ThaumcraftApi.addInfusionCraftingRecipe(aResearch, GT_Utility.copy(new Object[] { aOutput }), aInstability, getAspectList(aAspects), aMainInput, aSideInputs);
+ }
+
public boolean registerThaumcraftAspectsToItem(ItemStack aExampleStack, List<TC_Aspects.TC_AspectStack> aAspects, String aOreDict)
{
if (aAspects.isEmpty()) {
diff --git a/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java b/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java
index 3550fffd4b..c6f588a34f 100644
--- a/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java
+++ b/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java
@@ -31,7 +31,7 @@ public class GT_GUIContainer_FusionReactor extends GT_GUIContainerMetaTile_Machi
}
}
if(this.mContainer!=null){
- fontRendererObj.drawString(GT_Utility.formatNumbers(this.mContainer.mEnergy)+" EU", 50, 155, 0x00b0b000);
+ fontRendererObj.drawString(GT_Utility.formatNumbers(this.mContainer.mEnergy)+" EU", 50, 155, 0x00ff0000);
}
}
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java
index c48a2793bf..632cdcbd6f 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java
@@ -16,6 +16,7 @@ import gregtech.api.util.GT_Utility;
import java.util.ArrayList;
+import scala.actors.threadpool.Arrays;
import net.minecraft.block.Block;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
@@ -152,6 +153,10 @@ public class GT_MetaTileEntity_DistillationTower
tmpHatches[hatchNumber]=this.mOutputHatches.get(i);
}else{return false;}
}
+ this.mOutputHatches.clear();
+ for(int i=0;i< tmpHatches.length;i++){
+ this.mOutputHatches.add(tmpHatches[i]);
+ }
return tAmount >= 26;
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java
index 89b8c29e69..4443db4bf0 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_HeatExchanger.java
@@ -5,6 +5,7 @@ import java.util.ArrayList;
import net.minecraft.block.Block;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
@@ -43,6 +44,16 @@ public class GT_MetaTileEntity_HeatExchanger extends GT_MetaTileEntity_MultiBloc
{
return new String[] { "Controller Block for the Heat Exchanger", "Size: 3x3x4", "Controller (front middle at bottom)", "3x3x4 of Stable Titanium Casing (hollow, Min 24!)", "2 Titanium Pipe Casing Blocks inside the Hollow Casing", "1x Distillated Water Input (one of the Casings)","min 1 Steam Output (one of the Casings)", "1x Maintenance Hatch (one of the Casings)", "1x Hot Fluid Input (botton Center)", "1x Cold Fluid Output (top Center)" };
}
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ superheated = aNBT.getBoolean("superheated");
+ super.loadNBTData(aNBT);}
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ aNBT.setBoolean("superheated", superheated);
+ super.saveNBTData(aNBT);}
public GT_MetaTileEntity_Hatch_Input mInputHotFluidHatch;
public GT_MetaTileEntity_Hatch_Output mOutputColdFluidHatch;
@@ -111,7 +122,7 @@ public class GT_MetaTileEntity_HeatExchanger extends GT_MetaTileEntity_MultiBloc
}
public boolean onRunningTick(ItemStack aStack)
- {
+ {
if (this.mEUt > 0)
{
int tGeneratedEU = (int)(this.mEUt * 2L * this.mEfficiency / 10000L);
@@ -238,7 +249,7 @@ public class GT_MetaTileEntity_HeatExchanger extends GT_MetaTileEntity_MultiBloc
public int getPollutionPerTick(ItemStack aStack)
{
- return 10;
+ return 0;
}
public int getDamageToComponent(ItemStack aStack)
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
index 435d9feaf8..461bf159b5 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.fluids.FluidStack;
import gregtech.api.GregTech_API;
import gregtech.api.enums.ItemList;
@@ -34,8 +35,6 @@ public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_M
protected int baseEff=0;
protected int optFlow=0;
protected int counter=0;
- @Override
- public abstract boolean checkRecipe(ItemStack aStack);
@Override
public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
@@ -111,6 +110,61 @@ public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_M
return ((addMaintenanceToMachineList(tTileEntity, getCasingTextureIndex())) || (addInputToMachineList(tTileEntity, getCasingTextureIndex())) || (addOutputToMachineList(tTileEntity, getCasingTextureIndex()))|| (addMufflerToMachineList(tTileEntity, getCasingTextureIndex())));
}
+ private int[] mLastTicks = new int[256];
+ private int mCurrentTick;
+ private long mOverall;
+
+ public int getAverage(int aCurrent){
+ ++mCurrentTick;
+ mCurrentTick = mCurrentTick % 256;
+ mOverall = mOverall - mLastTicks[mCurrentTick];
+ mOverall = mOverall + aCurrent;
+ mLastTicks[mCurrentTick] = aCurrent;
+ return (int) (mOverall/256);
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ aNBT.setLong("mOverall", mOverall);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ mOverall = aNBT.getLong("mOverall");
+ mOverall = mOverall - mOverall%256;
+ int tAverage = (int) (mOverall <<7);
+ for(int i = 0;i<256;i++){
+ mLastTicks[i]=tAverage;
+ }
+ }
+
+ @Override
+ public boolean checkRecipe(ItemStack aStack) {
+ ArrayList<FluidStack> tFluids = getStoredFluids();
+ if (tFluids.size()>0){
+ if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){
+ counter = 0;
+ baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100);
+ optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50);
+ }else{
+ counter++;}}
+ this.mEUt = fluidIntoPower(tFluids, optFlow, baseEff);
+ this.mMaxProgresstime = 1;
+ this.mEfficiencyIncrease = (10);
+ if(mEUt<=0){
+ mEfficiency=0;
+ mOverall=0;
+ mLastTicks = new int[256];
+ stopMachine();
+ return false;
+ }else{
+ return true;}
+ }
+
+ abstract int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff);
+
@Override
public int getDamageToComponent(ItemStack aStack) {
return 1;
@@ -126,10 +180,7 @@ public abstract class GT_MetaTileEntity_LargeTurbine extends GT_MetaTileEntity_M
}
return 0;
}
-
-
- @Override
- public int getPollutionPerTick(ItemStack aStack) {return 0;}
+
@Override
public int getAmountOfOutputs() {return 0;}
@Override
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java
index 8a4014fea0..010f05a08b 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java
@@ -42,36 +42,6 @@ public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeT
"Needs a Turbine Item (inside controller GUI)"};
}
- @Override
- public boolean checkRecipe(ItemStack aStack) {
- ArrayList<FluidStack> steams = getStoredFluids();
- if(this.mMufflerHatches.size()==0){
- return false;
- }
- if (steams.size()>0)
- {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){
- counter = 0;
- baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100);
- optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50);
- }
- int tEU=0;
- for(int i=0;i<steams.size();i++){
- int fuelValue = getFuelValue(steams.get(i));
- if(fuelValue>0&&depleteInput(new FluidStack(steams.get(i),optFlow/(fuelValue*2)))){
- tEU += optFlow/2;}
- }
- this.mEUt = baseEff*tEU/10000;
- this.mMaxProgresstime = 1;
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 10);
- if(mEUt==0){return false;}
- return true;
- }
- if(this.mEfficiency>50){
- this.mEfficiency = this.mEfficiency-50;
- return true;
- }else{return false;}
- }
-
public int getFuelValue(FluidStack aLiquid) {
if (aLiquid == null || GT_Recipe_Map.sTurbineFuels == null) return 0;
FluidStack tLiquid;
@@ -94,6 +64,27 @@ public class GT_MetaTileEntity_LargeTurbine_Gas extends GT_MetaTileEntity_LargeT
public byte getCasingTextureIndex() {
return 46;
}
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 10;
+ }
+
+ @Override
+ int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff) {
+ int tEU=0;
+ int tOut=0;
+ int tOptFlow = aOptFlow;
+ boolean b = false;
+ for(int i=0;i<aFluids.size();i++){
+ int fuelValue = getFuelValue(aFluids.get(i));
+ if(fuelValue>0&&depleteInput(new FluidStack(aFluids.get(i),Math.max(tOptFlow/(fuelValue*2),1)))){
+ tEU += tOptFlow/2;}
+ }
+ if(tEU>0)b=true;
+ tEU = getAverage(tEU);
+ if(b&&tEU<=0)tEU=3;
+ return tEU * aBaseEff / 10000;
+ }
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java
index 48bd34bf0c..4acae119df 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java
@@ -36,42 +36,6 @@ public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_La
"Turbine Casings for the rest (24 at least!)",
"Needs a Turbine Item (inside controller GUI)" };
}
-
- @Override
- public boolean checkRecipe(ItemStack aStack) {
- ArrayList<FluidStack> steams = getStoredFluids();
- if (steams.size()>0)
- {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){
- counter = 0;
- baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100);
- optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50);
- }
- int tEU=0;
- int distOut=0;
- for(int i=0;i<steams.size();i++){
- if(steams.get(i).getFluid().getUnlocalizedName(steams.get(i)).equals("ic2.fluidSuperheatedSteam")){
- int out = Math.min((int)(optFlow*1.5f),steams.get(i).amount);
- depleteInput(new FluidStack(steams.get(i),out));
- distOut += out;
- tEU += steams.get(i).amount;
- }
- }
- if(tEU<optFlow/10){tEU=0;}
- if(tEU>optFlow) {tEU = optFlow;}
- float tEff = tEU/(optFlow);
- this.mEUt = (int) (tEff*tEU*baseEff/10000);
- this.mMaxProgresstime = 1;
-// System.out.println("Eff: "+baseEff+" optFlow: "+optFlow+" tEff: "+tEff+" eut: "+mEUt+" out: "+distOut);
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 10);
- if(mEUt==0){return false;}
- addOutput(GT_ModHandler.getSteam(distOut));
- return true;
- }
- if(this.mEfficiency>50){
- this.mEfficiency = this.mEfficiency-50;
- return true;
- }else{return false;}
- }
@Override
public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_HPSteam(mName);}
@@ -87,6 +51,29 @@ public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_La
public byte getCasingTextureIndex() {
return 46;
}
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff) {
+ int tEU=0;
+ int tOut=0;
+ for(int i=0;i<aFluids.size();i++){
+ if(aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)).equals("ic2.fluidSuperheatedSteam")){
+ tOut = Math.min((int)(aOptFlow*1.5f),aFluids.get(i).amount);
+ depleteInput(new FluidStack(aFluids.get(i),tOut));
+ }
+ }
+ tOut = getAverage(tOut);
+ tEU = Math.min(aOptFlow,tOut);
+ addOutput(GT_ModHandler.getSteam(tOut));
+ if(tOut>0&&tOut<aOptFlow){
+ tEU = tEU*(tOut*100/aOptFlow)+3;
+ }
+ return tEU * aBaseEff / 10000;
+ }
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
index 25ec018e52..b1916b432f 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
@@ -40,35 +40,7 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
"Turbine Casings for the rest (24 at least!)",
"Needs a Turbine Item (inside controller GUI)" };
}
-
- @Override
- public boolean checkRecipe(ItemStack aStack) {
- ArrayList<FluidStack> steams = getStoredFluids();
- if (steams.size()>0)
- {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){
- counter = 0;
- baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100);
- optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50);
- optFlow *=40;
- }
- int tEU=0;
- for(int i=0;i<steams.size();i++){
- int fuelValue = getFuelValue(steams.get(i));
- if(fuelValue>0&&depleteInput(new FluidStack(steams.get(i),Math.max(optFlow/(fuelValue*2),1)))){
- tEU += optFlow/2;}
- }
- this.mEUt = baseEff*tEU/10000;
- this.mMaxProgresstime = 1;
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 10);
- if(mEUt==0){return false;}
- return true;
- }
- if(this.mEfficiency>50){
- this.mEfficiency = this.mEfficiency-50;
- return true;
- }else{return false;}
- }
-
+
public int getFuelValue(FluidStack aLiquid) {
if (aLiquid == null || GT_Recipe_Map.sTurbineFuels == null) return 0;
FluidStack tLiquid;
@@ -91,6 +63,27 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
public byte getCasingTextureIndex() {
return 46;
}
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff) {
+ int tEU=0;
+ int tOut=0;
+ int tOptFlow = aOptFlow * 40;
+ boolean b = false;
+ for(int i=0;i<aFluids.size();i++){
+ int fuelValue = getFuelValue(aFluids.get(i));
+ if(fuelValue>0&&depleteInput(new FluidStack(aFluids.get(i),Math.max(tOptFlow/(fuelValue*2),1)))){
+ tEU += tOptFlow/2;}
+ }
+ if(tEU>0)b=true;
+ tEU = getAverage(tEU);
+ if(b&&tEU<=0)tEU=3;
+ return tEU * aBaseEff / 10000;
+ }
}
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java
index e43070333a..19a7f6bad2 100644
--- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java
+++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java
@@ -35,52 +35,7 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg
"1x Maintenance Hatch (side centered)",
"Turbine Casings for the rest (24 at least!)",
"Needs a Turbine Item (inside controller GUI)" };
- }
-
- private float water;
- private int useWater(float input){
- water = water + input;
- int usage = (int)water;
- water = water - (int)usage;
- return usage;
- }
-
-
- @Override
- public boolean checkRecipe(ItemStack aStack) {
- ArrayList<FluidStack> steams = getStoredFluids();
- if (steams.size()>0)
- {if(baseEff==0 || optFlow == 0 || counter >= 1000 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() || this.getBaseMetaTileEntity().hasInventoryBeenModified()){
- counter = 0;
- baseEff = (int) ((50.0F+(10.0F*((GT_MetaGenerated_Tool)aStack.getItem()).getToolCombatDamage(aStack)))*100);
- optFlow = (int) Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool)aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool)aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed*50);
- }
- int tEU=0;
- float distOut=0;
- for(int i=0;i<steams.size();i++){
- if(steams.get(i).getFluid().getUnlocalizedName(steams.get(i)).equals("fluid.steam")||steams.get(i).getFluid().getUnlocalizedName(steams.get(i)).equals("ic2.fluidSteam")){
- float out = Math.min((int)(optFlow*1.5f),steams.get(i).amount);
- depleteInput(new FluidStack(steams.get(i),(int)out));
- distOut += out/160;
- tEU += steams.get(i).amount/2;
- }
- }
- if(tEU<optFlow/20){tEU=0;}
- if(tEU>optFlow/2) {tEU = optFlow/2;}
- float tEff = tEU/(optFlow/2);
- this.mEUt = (int) (tEff*tEU*baseEff/10000);
- this.mMaxProgresstime = 1;
-// System.out.println("Eff: "+baseEff+" optFlow: "+optFlow+" tEff: "+tEff+" eut: "+mEUt+" out: "+distOut);
- this.mEfficiencyIncrease = (this.mMaxProgresstime * 10);
- if(mEUt==0){return false;}
- addOutput(GT_ModHandler.getDistilledWater(useWater(distOut)));
- return true;
- }
- if(this.mEfficiency>50){
- this.mEfficiency = this.mEfficiency-50;
- return true;
- }else{return false;}
- }
+ }
@Override
public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {return new GT_MetaTileEntity_LargeTurbine_Steam(mName);}
@@ -96,6 +51,37 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg
public byte getCasingTextureIndex() {
return 46;
}
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
+
+ private float water;
+ private int useWater(float input){
+ water = water + input;
+ int usage = (int)water;
+ water = water - (int)usage;
+ return usage;
+ }
+
+ @Override
+ int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff) {
+ int tEU=0;
+ int tOut=0;
+ for(int i=0;i<aFluids.size();i++){
+ if(aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)).equals("fluid.steam")||aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)).equals("ic2.fluidSteam")){
+ tOut = Math.min((int)(aOptFlow*1.5f),aFluids.get(i).amount);
+ depleteInput(new FluidStack(aFluids.get(i), tOut));
+ }
+ }
+ tOut = getAverage(tOut);
+ tEU = Math.min(aOptFlow,tOut);
+ addOutput(GT_ModHandler.getDistilledWater(useWater(tOut/160.0f)));
+ if(tOut>0&&tOut<aOptFlow){
+ tEU = tEU*(tOut*100/aOptFlow)+3;
+ }
+ return tEU * aBaseEff / 20000;
+ }
}
diff --git a/main/java/gregtech/loaders/misc/GT_Achievements.java b/main/java/gregtech/loaders/misc/GT_Achievements.java
index 43ac6c9736..dd2074d7d7 100644
--- a/main/java/gregtech/loaders/misc/GT_Achievements.java
+++ b/main/java/gregtech/loaders/misc/GT_Achievements.java
@@ -4,7 +4,10 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import thaumcraft.api.ThaumcraftApi;
+import thaumcraft.api.ThaumcraftApiHelper;
import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.PlayerEvent.ItemCraftedEvent;
import cpw.mods.fml.common.gameevent.PlayerEvent.ItemSmeltedEvent;
@@ -414,6 +417,7 @@ public int adjY = 9;
if (player == null||stack==null) {
return;
}
+// System.out.println("Pickup: "+stack.getUnlocalizedName());
ItemData data = GT_OreDictUnificator.getItemData(stack);
if (data != null) {
if (data.mPrefix == OrePrefixes.dust) {
@@ -433,6 +437,14 @@ public int adjY = 9;
issueAchievement(player, "washing");
}else if(data.mPrefix == OrePrefixes.crushedCentrifuged){
issueAchievement(player, "spinit");
+ }else if(data.mMaterial.mMaterial == Materials.Steel){
+ if(data.mPrefix == OrePrefixes.ingot && stack.stackSize == stack.getMaxStackSize()){
+ issueAchievement(player, "steel");
+ }else if(data.mPrefix == OrePrefixes.nugget && Loader.isModLoaded("Thaumcraft")){
+ if(ThaumcraftApiHelper.isResearchComplete(player.getDisplayName(), "GT_IRON_TO_STEEL")){
+ issueAchievement(player, "steel");
+ }
+ }
}
}
if(stack.getUnlocalizedName().startsWith("gt.metaitem.")){
diff --git a/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
index fe6d745047..583c39fbd1 100644
--- a/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
+++ b/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
@@ -1172,6 +1172,226 @@ public class GT_MachineRecipeLoader
tKey = "GT_CRYSTALLISATION";
GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey, "Sometimes when processing your Crystal Shards they become a pile of Dust instead of the mostly required Shard.<BR><BR>You have finally found a way to reverse this Process by using Vitreus Essentia for recrystallising the Shards.");
GregTech_API.sThaumcraftCompat.addResearch(tKey, "Shard Recrystallisation", "Fixing your precious crystals", new String[] { "ALCHEMICALMANUFACTURE" }, "ALCHEMY", GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedOrder, 1L), 3, 0, -11, -3, Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 5L), new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 3L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3L) }), null, new Object[] { "gt.research.page.1." + tKey, GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.Amber), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Amber, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedOrder), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedOrder, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedEntropy), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEntropy, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedAir), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedAir, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedEarth), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEarth, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedFire), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedFire, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })), GregTech_API.sThaumcraftCompat.addCrucibleRecipe(tKey, OrePrefixes.dust.get(Materials.InfusedWater), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedWater, 1L), Arrays.asList(new TC_Aspects.TC_AspectStack[] { new TC_Aspects.TC_AspectStack(TC_Aspects.VITREUS, 4L) })) });
+
+ tKey = "GT_MAGICENERGY";
+ GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey,
+ "While trying to find new ways to integrate magic into your industrial factories, you have discovered a way to convert magical energy into electrical power.");
+ GregTech_API.sThaumcraftCompat.addResearch(tKey,
+ "Magic Energy Conversion",
+ "Magic to Power",
+ new String[] {"ARCANEBORE"},
+ "ARTIFICE",
+ ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]),
+ 3, 0, -3, 10,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}),
+ null, new Object[] { "gt.research.page.1." + tKey,
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey,
+ ItemList.Hull_LV.get(1L, new Object[0]),
+ new ItemStack[]{
+ new ItemStack(Blocks.beacon),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Advanced, 1L),
+ GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L),
+ ItemList.Sensor_MV.get(2L, new Object[0]),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Advanced, 1L),
+ GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L),
+ ItemList.Sensor_MV.get(2L, new Object[0])
+ },
+ ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]),
+ 5,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L) }))});
+
+ tKey = "GT_MAGICENERGY2";
+ GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey,
+ "Attempts to increase the output of your Magic Energy generators have resulted in significant improvements.");
+ GregTech_API.sThaumcraftCompat.addResearch(tKey,
+ "Adept Magic Energy Conversion",
+ "Magic to Power",
+ new String[] {"GT_MAGICENERGY"},
+ "ARTIFICE",
+ ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]),
+ 1, 1, -4, 12,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}),
+ null, new Object[] { "gt.research.page.1." + tKey,
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey,
+ ItemList.Hull_MV.get(1L, new Object[0]),
+ new ItemStack[]{
+ new ItemStack(Blocks.beacon),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Data, 1L),
+ GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L),
+ ItemList.Sensor_HV.get(2L, new Object[0]),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Data, 1L),
+ GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Iridium, 1L),
+ ItemList.Sensor_HV.get(2L, new Object[0])
+ },
+ ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]),
+ 6,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L) }))});
+
+ tKey = "GT_MAGICENERGY3";
+ GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey,
+ "Attempts to further increase the output of your Magic Energy generators have resulted in great improvements.");
+ GregTech_API.sThaumcraftCompat.addResearch(tKey,
+ "Master Magic Energy Conversion",
+ "Magic to Power",
+ new String[] {"GT_MAGICENERGY2"},
+ "ARTIFICE",
+ ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]),
+ 1, 1, -4, 14,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 20L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 20L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 40L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 20L)}),
+ null, new Object[] { "gt.research.page.1." + tKey,
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey,
+ ItemList.Hull_HV.get(1L, new Object[0]),
+ new ItemStack[]{
+ new ItemStack(Blocks.beacon),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Elite, 1L),
+ GT_OreDictUnificator.get(OrePrefixes.plateDouble,Materials.Thaumium, 1L),
+ ItemList.Field_Generator_MV.get(1L, new Object[0]),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Elite, 1L),
+ GT_OreDictUnificator.get(OrePrefixes.plateDouble,Materials.Europium, 1L),
+ ItemList.Field_Generator_MV.get(1L, new Object[0])
+ },
+ ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]),
+ 8,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L) }))});
+
+
+
+
+ tKey = "GT_MAGICABSORB";
+ GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey,
+ "Research into magical energy conversion methods has identified a way to convert surrounding energies into electrical power.");
+ GregTech_API.sThaumcraftCompat.addResearch(tKey,
+ "Magic Energy Absorption",
+ "Harvesting Magic",
+ new String[] {"GT_MAGICENERGY"},
+ "ARTIFICE",
+ ItemList.MagicEnergyAbsorber_LV.get(1L, new Object[0]),
+ 3, 0, -2, 12,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}),
+ null, new Object[] { "gt.research.page.1." + tKey,
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey,
+ ItemList.Hull_LV.get(1L, new Object[0]),
+ new ItemStack[]{
+ ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Advanced, 1L),
+ GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L),
+ ItemList.Sensor_MV.get(2L, new Object[0])
+ },
+ ItemList.MagicEnergyAbsorber_LV.get(1L, new Object[0]),
+ 6,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 4L) }))});
+
+ tKey = "GT_MAGICABSORB2";
+ GT_LanguageManager.addStringLocalization("gt.research.page.1." + tKey,
+ "Moar output! Drain all the Magic!");
+ GregTech_API.sThaumcraftCompat.addResearch(tKey,
+ "Improved Magic Energy Absorption",
+ "Harvesting Magic",
+ new String[] {"GT_MAGICABSORB"},
+ "ARTIFICE",
+ ItemList.MagicEnergyAbsorber_EV.get(1L, new Object[0]),
+ 3, 1, -2, 14,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITO, 10L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 20L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L)}),
+ null, new Object[] { "gt.research.page.1." + tKey,
+ GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey,
+ ItemList.Hull_MV.get(1L, new Object[0]),
+ new ItemStack[]{
+ ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Advanced, 1L),
+ GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L),
+ ItemList.Sensor_HV.get(2L, new Object[0]),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Advanced, 1L),
+ GT_OreDictUnificator.get(OrePrefixes.plate,Materials.Thaumium, 1L)
+ },
+ ItemList.MagicEnergyAbsorber_MV.get(1L, new Object[0]),
+ 6,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 32L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 8L) }))
+
+
+
+ , GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey,
+ ItemList.Hull_HV.get(1L, new Object[0]),
+ new ItemStack[]{
+ ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Elite, 1L),
+ GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16),
+ ItemList.Field_Generator_MV.get(1L, new Object[0]),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Elite, 1L),
+ GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16)
+ },
+ ItemList.MagicEnergyAbsorber_HV.get(1L, new Object[0]),
+ 8,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 16L) }))
+
+
+ ,GregTech_API.sThaumcraftCompat.addInfusionRecipe(tKey,
+ ItemList.Hull_EV.get(1L, new Object[0]),
+ new ItemStack[]{
+ ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Master, 1L),
+ GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16),
+ ItemList.Field_Generator_HV.get(1L, new Object[0]),
+ GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Master, 1L),
+ GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 16)
+ },
+ ItemList.MagicEnergyAbsorber_EV.get(1L, new Object[0]),
+ 10,
+ Arrays.asList(new TC_Aspects.TC_AspectStack[] {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 256L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 64L) }))
+ });
+
}
for (MaterialStack[] tMats : this.mAlloySmelterList)
{
diff --git a/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
index a96d4a8adb..70865acd56 100644
--- a/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
+++ b/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
@@ -942,20 +942,23 @@ public class GT_Loader_MetaTileEntities
ItemList.MagicEnergyConverter_MV.set(new GT_MetaTileEntity_MagicEnergyConverter(1124, "basicgenerator.magicenergyconverter.tier.02", "Adept Magic Energy Converter",2).getStackForm(1L));
ItemList.MagicEnergyConverter_HV.set(new GT_MetaTileEntity_MagicEnergyConverter(1125, "basicgenerator.magicenergyconverter.tier.03", "Master Magic Energy Converter",3).getStackForm(1L));
- GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('T'), ItemList.Field_Generator_LV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Platinum) });
- GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Data), Character.valueOf('T'), ItemList.Field_Generator_MV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Iridium) });
- GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('T'), ItemList.Field_Generator_HV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Neutronium) });
ItemList.MagicEnergyAbsorber_LV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1127, "basicgenerator.magicenergyabsorber.tier.01", "Novice Magic Energy Absorber",1).getStackForm(1L));
ItemList.MagicEnergyAbsorber_MV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1128, "basicgenerator.magicenergyabsorber.tier.02", "Adept Magic Energy Absorber",2).getStackForm(1L));
ItemList.MagicEnergyAbsorber_HV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1129, "basicgenerator.magicenergyabsorber.tier.03", "Master Magic Energy Absorber",3).getStackForm(1L));
ItemList.MagicEnergyAbsorber_EV.set(new GT_MetaTileEntity_MagicalEnergyAbsorber(1130, "basicgenerator.magicenergyabsorber.tier.04", "Grandmaster Magic Energy Absorber",4).getStackForm(1L));
-
+ if (GregTech_API.sThaumcraftCompat == null){
+
+ GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('T'), ItemList.Field_Generator_LV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Platinum) });
+ GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Data), Character.valueOf('T'), ItemList.Field_Generator_MV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Iridium) });
+ GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), new ItemStack(Blocks.beacon), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('T'), ItemList.Field_Generator_HV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Neutronium) });
+
GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_LV, Character.valueOf('B'), ItemList.MagicEnergyConverter_LV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('T'), ItemList.Field_Generator_LV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Platinum) });
GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_MV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_MV, Character.valueOf('B'), ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Data), Character.valueOf('T'), ItemList.Field_Generator_MV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Iridium) });
GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_HV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), ItemList.MagicEnergyConverter_MV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Elite), Character.valueOf('T'), ItemList.Field_Generator_HV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Europium) });
GT_ModHandler.addCraftingRecipe(ItemList.MagicEnergyAbsorber_EV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "CTC", "FMF", "CBC", Character.valueOf('M'), ItemList.Hull_HV, Character.valueOf('B'), ItemList.MagicEnergyConverter_HV.get(1L, new Object[0]), Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Master), Character.valueOf('T'), ItemList.Field_Generator_EV, Character.valueOf('F'), OrePrefixes.plate.get(Materials.Neutronium) });
-
+ }
+
ItemList.FusionComputer_LuV.set(new GT_MetaTileEntity_FusionComputer1(1193, "fusioncomputer.tier.06", "Fusion Control Computer Mark I").getStackForm(1L));
ItemList.FusionComputer_ZPMV.set(new GT_MetaTileEntity_FusionComputer2(1194, "fusioncomputer.tier.07", "Fusion Control Computer Mark II").getStackForm(1L));
ItemList.FusionComputer_UV.set(new GT_MetaTileEntity_FusionComputer3(1195, "fusioncomputer.tier.08", "Fusion Control Computer Mark III").getStackForm(1L));
diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.1.png b/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.1.png
index 5f517195f9..30698a2098 100644
--- a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.1.png
+++ b/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.1.png
Binary files differ
diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.2.png b/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.2.png
index 29aa1d2bf1..b5c2580b3b 100644
--- a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.2.png
+++ b/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.2.png
Binary files differ
diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.3.png b/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.3.png
index 37189f0da9..3280ff2d94 100644
--- a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.3.png
+++ b/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.3.png
Binary files differ
diff --git a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.4.png b/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.4.png
index 2ef5e6766a..a18d049520 100644
--- a/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.4.png
+++ b/main/resources/assets/ic2/textures/blocks/crop/blockCrop.Corium.4.png
Binary files differ