aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.properties2
-rw-r--r--src/main/java/com/github/bartimaeusnek/ASM/BWCore.java7
-rw-r--r--src/main/java/com/github/bartimaeusnek/ASM/BWCoreTransformer.java58
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java14
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/client/textures/PrefixTextureLinker.java2
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java1
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_CircuitAssemblyLine.java2
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java3
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java230
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java25
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/GTMetaItemEnhancer.java31
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/ThreadedLoader.java14
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java28
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java13
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/emt/tileentities/multi/GT_Industrial_Alchemic_Construct.java4
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/galaxySpace/tileEntity/DysonSwarmSunReplacement.java98
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/galaxySpace/tileEntity/GalaxySpaceProxy.java58
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/thaumcraft/util/ThaumcraftHandler.java4
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.Core_Reactor_Cell.pngbin0 -> 443 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.Core_Reactor_CellDep.pngbin0 -> 437 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bottle_OVERLAY.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/bottle.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/materialicons/bottle_OVERLAY.pngbin0 -> 267 bytes
77 files changed, 530 insertions, 68 deletions
diff --git a/build.properties b/build.properties
index c5e30dde8e..116283303f 100644
--- a/build.properties
+++ b/build.properties
@@ -23,7 +23,7 @@
mc_version=1.7.10
majorUpdate=0
minorUpdate=5
-buildNumber=2_pre15
+buildNumber=2_pre16
APIVersion=8
ic2.version=2.2.828-experimental
gregtech.version=5.09.32.36
diff --git a/src/main/java/com/github/bartimaeusnek/ASM/BWCore.java b/src/main/java/com/github/bartimaeusnek/ASM/BWCore.java
index 2b4eafb9a1..1208a05744 100644
--- a/src/main/java/com/github/bartimaeusnek/ASM/BWCore.java
+++ b/src/main/java/com/github/bartimaeusnek/ASM/BWCore.java
@@ -22,6 +22,7 @@
package com.github.bartimaeusnek.ASM;
+import com.github.bartimaeusnek.bartworks.MainMod;
import com.github.bartimaeusnek.bartworks.common.configs.ConfigHandler;
import com.github.bartimaeusnek.crossmod.BartWorksCrossmod;
import com.google.common.eventbus.EventBus;
@@ -61,8 +62,11 @@ public class BWCore extends DummyModContainer {
shouldTransform[0] = Loader.isModLoaded("ExtraUtilities") && ConfigHandler.enabledPatches[0];
shouldTransform[1] = Loader.isModLoaded("ExtraUtilities") && ConfigHandler.enabledPatches[1];
shouldTransform[3] = Loader.isModLoaded("Thaumcraft") && ConfigHandler.enabledPatches[3];
+ shouldTransform[4] = true;
+ shouldTransform[5] = Loader.isModLoaded("RWG") && ConfigHandler.enabledPatches[5];
BWCore.BWCORE_LOG.info("Extra Utilities found and ASM Patch enabled? " + shouldTransform[0]);
BWCore.BWCORE_LOG.info("Thaumcraft found and ASM Patch enabled? " + shouldTransform[3]);
+ BWCore.BWCORE_LOG.info("RWG found and ASM Patch enabled? " + shouldTransform[5]);
}
@Override
@@ -70,6 +74,9 @@ public class BWCore extends DummyModContainer {
List<ArtifactVersion> ret = new ArrayList<>();
ret.add(new DefaultArtifactVersion("ExtraUtilities", true));
ret.add(new DefaultArtifactVersion("Thaumcraft", true));
+ ret.add(new DefaultArtifactVersion("RWG", true));
+ ret.add(new DefaultArtifactVersion("gregtech", true));
+ ret.add(new DefaultArtifactVersion(MainMod.MOD_ID, true));
ret.add(new DefaultArtifactVersion(BartWorksCrossmod.MOD_ID, true));
return ret;
}
diff --git a/src/main/java/com/github/bartimaeusnek/ASM/BWCoreTransformer.java b/src/main/java/com/github/bartimaeusnek/ASM/BWCoreTransformer.java
index 51ee9867a9..bd395ea175 100644
--- a/src/main/java/com/github/bartimaeusnek/ASM/BWCoreTransformer.java
+++ b/src/main/java/com/github/bartimaeusnek/ASM/BWCoreTransformer.java
@@ -25,6 +25,7 @@ package com.github.bartimaeusnek.ASM;
import net.minecraft.launchwrapper.IClassTransformer;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.Opcodes;
import org.objectweb.asm.tree.*;
import java.util.Arrays;
@@ -38,7 +39,8 @@ public class BWCoreTransformer implements IClassTransformer {
"REMVOING CREATURES FROM LAST MILLENIUM (EXU)",
"PATCHING GLOBAL RENDERER FOR USE WITH MY GALACTIC DIMS",
"PATCHING THAUMCRAFT WAND PEDESTAL TO PREVENT VIS DUPLICATION",
- "PLACING MY GLASS-BLOCK RUNNABLE INTO THE GT_API"
+ "PLACING MY GLASS-BLOCK RUNNABLE INTO THE GT_API",
+ "DUCTTAPING RWG WORLDEN FAILS"
// "ADD EXECTION HANDLEING TO FIND OREIDS/OREDICT"
};
public static final String[] CLASSESBEEINGTRANSFORMED = {
@@ -46,7 +48,8 @@ public class BWCoreTransformer implements IClassTransformer {
"com.rwtema.extrautils.worldgen.endoftime.ChunkProviderEndOfTime",
"net.minecraft.client.renderer.RenderGlobal",
"thaumcraft.common.tiles.TileWandPedestal",
- "gregtech.GT_Mod"
+ "gregtech.GT_Mod",
+ "rwg.world.ChunkGeneratorRealistic"
// "net.minecraftforge.oredict.OreDictionary"
};
static boolean obfs;
@@ -92,6 +95,7 @@ public class BWCoreTransformer implements IClassTransformer {
ClassNode classNode = new ClassNode();
classReader.accept(classNode, ClassReader.SKIP_FRAMES);
List<MethodNode> methods = classNode.methods;
+ scase:
switch (id) {
case 0: {
BWCore.BWCORE_LOG.info("Could find: " + BWCoreTransformer.CLASSESBEEINGTRANSFORMED[id]);
@@ -140,10 +144,9 @@ public class BWCoreTransformer implements IClassTransformer {
toPatch.maxStack = 1;
toPatch.maxLocals = 5;
methods.set(i, toPatch);
- break;
+ break scase;
}
}
- break;
}
case 2: {
String name_deObfs = "renderSky";
@@ -201,10 +204,9 @@ public class BWCoreTransformer implements IClassTransformer {
}
}
toPatch.instructions = nu;
- break;
+ break scase;
}
}
- break;
}
case 3: {
BWCore.BWCORE_LOG.info("Could find: " + BWCoreTransformer.CLASSESBEEINGTRANSFORMED[id]);
@@ -217,10 +219,9 @@ public class BWCoreTransformer implements IClassTransformer {
if (ASMUtils.isCorrectMethod(methods.get(i), name_deObfs, name_Obfs, name_src) && ASMUtils.isCorrectMethod(methods.get(i), dsc_universal, dsc_universal)) {
BWCore.BWCORE_LOG.info("Found " + (name_deObfs) + "! Patching!");
methods.set(i, BWCoreTransformer.transformThaumcraftWandPedestal(methods.get(i)));
- break;
+ break scase;
}
}
- break;
}
case 4 : {
BWCore.BWCORE_LOG.info("Could find: " + BWCoreTransformer.CLASSESBEEINGTRANSFORMED[id]);
@@ -244,13 +245,48 @@ public class BWCoreTransformer implements IClassTransformer {
nu.add(toPatch.instructions.get(j));
}
toPatch.instructions = nu;
- break;
+ break scase;
}
}
-
- break;
}
case 5: {
+ BWCore.BWCORE_LOG.info("Could find: " + BWCoreTransformer.CLASSESBEEINGTRANSFORMED[id]);
+ String name_deObfs = "getNewNoise";
+ for (int i = 0; i < methods.size(); i++) {
+ MethodNode toPatch = methods.get(i);
+
+ if (ASMUtils.isCorrectMethod(methods.get(i), name_deObfs)) {
+ BWCore.BWCORE_LOG.info("Found " + (name_deObfs) + "! Patching!");
+ LabelNode[] LabelNodes = {new LabelNode(), new LabelNode()};
+ InsnList nu = new InsnList();
+ // if (x < -28675) x %= -28675;
+ nu.add(new VarInsnNode(ILOAD, 2));
+ nu.add(new IntInsnNode(SIPUSH, -28675));
+ nu.add(new JumpInsnNode(IF_ICMPGE, LabelNodes[0]));
+ nu.add(new VarInsnNode(ILOAD, 2));
+ nu.add(new LdcInsnNode(-28675));
+ nu.add(new InsnNode(IREM));
+ nu.add(new VarInsnNode(ISTORE, 2));
+ nu.add(LabelNodes[0]);
+ // if (y < -28675) y %= -28675;
+ nu.add(new VarInsnNode(ILOAD, 3));
+ nu.add(new IntInsnNode(SIPUSH, -28675));
+ nu.add(new JumpInsnNode(IF_ICMPGE, LabelNodes[1]));
+ nu.add(new VarInsnNode(ILOAD, 3));
+ nu.add(new LdcInsnNode(-28675));
+ nu.add(new InsnNode(IREM));
+ nu.add(new VarInsnNode(ISTORE, 3));
+ nu.add(LabelNodes[1]);
+
+ for (int j = 1; j < methods.get(i).instructions.size(); j++) {
+ nu.add(methods.get(i).instructions.get(j));
+ }
+
+ methods.get(i).instructions = nu;
+ break scase;
+ }
+ }
+
// String name_deObfs = "getOreIDs";
// String dsc_deObfs = "(Lnet/minecraft/item/ItemStack;)[I";
// String dsc_Obfs = "(Ladd;)[I";
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java
index 3f01018d84..6fedc29f6b 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java
@@ -240,17 +240,18 @@ public final class MainMod {
private static void unificationEnforcer() {
for (Werkstoff werkstoff : Werkstoff.werkstoffHashSet) {
if (werkstoff.getGenerationFeatures().enforceUnification) {
- if (werkstoff.contains(NOBLE_GAS)){
- String name = werkstoff.getFluidOrGas(1).getFluid().getName();
- String wrongname ="molten."+name;
- FluidStack wrongNamedFluid = FluidRegistry.getFluidStack(wrongname,1);
+ if (werkstoff.contains(NOBLE_GAS)) {
+ String name = werkstoff.getFluidOrGas(1).getFluid().getName();
+ String wrongname = "molten." + name;
+ FluidStack wrongNamedFluid = FluidRegistry.getFluidStack(wrongname, 1);
+ if (wrongNamedFluid != null) {
for (GT_Recipe.GT_Recipe_Map map : GT_Recipe.GT_Recipe_Map.sMappings) {
for (GT_Recipe recipe : map.mRecipeList) {
for (int i = 0; i < recipe.mFluidInputs.length; i++) {
if (GT_Utility.areFluidsEqual(recipe.mFluidInputs[i], wrongNamedFluid)) {
Collection<GT_Recipe> col = map.mRecipeFluidMap.get(wrongNamedFluid.getFluid());
map.mRecipeFluidMap.remove(wrongNamedFluid.getFluid());
- map.mRecipeFluidMap.put(werkstoff.getFluidOrGas(1).getFluid(),col);
+ map.mRecipeFluidMap.put(werkstoff.getFluidOrGas(1).getFluid(), col);
recipe.mFluidInputs[i] = werkstoff.getFluidOrGas(recipe.mFluidInputs[i].amount);
map.mRecipeFluidNameMap.add(werkstoff.getFluidOrGas(1).getFluid().getName());
}
@@ -262,7 +263,8 @@ public final class MainMod {
}
}
}
- GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.add(new BWRecipes.DynamicGTRecipe(false,null,null,null,null,new FluidStack[]{wrongNamedFluid},new FluidStack[]{werkstoff.getFluidOrGas(1)},1,1,0));
+ GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.add(new BWRecipes.DynamicGTRecipe(false, null, null, null, null, new FluidStack[]{wrongNamedFluid}, new FluidStack[]{werkstoff.getFluidOrGas(1)}, 1, 1, 0));
+ }
}
MainMod.runMoltenUnificationEnfocement(werkstoff);
MainMod.runUnficationDeleter(werkstoff);
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/client/textures/PrefixTextureLinker.java b/src/main/java/com/github/bartimaeusnek/bartworks/client/textures/PrefixTextureLinker.java
index 96e69f4cf3..29b78e568e 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/client/textures/PrefixTextureLinker.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/client/textures/PrefixTextureLinker.java
@@ -23,6 +23,8 @@ public class PrefixTextureLinker implements Runnable {
public void run() {
for (OrePrefixes prefixes : OrePrefixes.values()) {
+ if (prefixes == OrePrefixes.rod)
+ continue;
HashMap curr = new HashMap<>();
if (prefixes.mTextureIndex == -1 && Werkstoff.GenerationFeatures.prefixLogic.get(prefixes) != 0) {
Arrays.stream(TextureSet.class.getFields()).filter(field -> field.getName().contains("SET")).forEach(SET -> {
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java
index 6e55fd509a..b23afa275c 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/ItemRegistry.java
@@ -37,6 +37,7 @@ import com.github.bartimaeusnek.bartworks.common.tileentities.multis.GT_TileEnti
import com.github.bartimaeusnek.bartworks.common.tileentities.multis.GT_TileEntity_ElectricImplosionCompressor;
import com.github.bartimaeusnek.bartworks.common.tileentities.multis.GT_TileEntity_THTR;
import com.github.bartimaeusnek.bartworks.common.tileentities.multis.mega.GT_TileEntity_MegaBlastFurnace;
+import com.github.bartimaeusnek.bartworks.common.tileentities.multis.mega.GT_TileEntity_MegaDistillTower;
import com.github.bartimaeusnek.bartworks.common.tileentities.multis.mega.GT_TileEntity_MegaVacuumFreezer;
import com.github.bartimaeusnek.bartworks.common.tileentities.tiered.*;
import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader;
@@ -130,7 +131,7 @@ public class ItemRegistry {
public static ItemStack[] diode16A = new ItemStack[GT_Values.VN.length];
public static ItemStack[] energyDistributor = new ItemStack[GT_Values.VN.length];
public static ItemStack[] acidGens = new ItemStack[3];
- public static ItemStack[] megaMachines = new ItemStack[2];
+ public static ItemStack[] megaMachines = new ItemStack[3];
public static ItemStack dehp;
public static ItemStack thtr;
public static ItemStack eic;
@@ -192,6 +193,7 @@ public class ItemRegistry {
ItemRegistry.cal = new GT_TileEntity_CircuitAssemblyLine(ConfigHandler.IDOffset + GT_Values.VN.length * 8 + 7, "CircuitAssemblyLine", "Circuit Assembly Line").getStackForm(1L);
ItemRegistry.compressedHatch = new GT_MetaTileEntity_CompressedFluidHatch(ConfigHandler.IDOffset + GT_Values.VN.length * 8 + 8, "CompressedFluidHatch", "Liquid Air Fluid Hatch").getStackForm(1L);
ItemRegistry.giantOutputHatch = new GT_MetaTileEntity_GiantOutputHatch(ConfigHandler.IDOffset + GT_Values.VN.length * 8 + 9, "GiantOutputHatch", "Giant Output Hatch").getStackForm(1L);
+ ItemRegistry.megaMachines[2] = new GT_TileEntity_MegaDistillTower(ConfigHandler.IDOffset + GT_Values.VN.length * 8 + 10, "MegaDistillationTower", "Mega Distillation Tower").getStackForm(1L);
}
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java
index 013a26a6aa..35be05a86e 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/RecipeLoader.java
@@ -254,6 +254,7 @@ public class RecipeLoader implements Runnable {
GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("gregtech", "gt.blockmachines", 64, 1000), GT_Utility.getIntegratedCircuit(17), Materials.SolderingAlloy.getMolten(9216), ItemRegistry.megaMachines[0], 72000, BW_Util.getMachineVoltageFromTier(3));
GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("gregtech", "gt.blockmachines", 64, 1002), GT_Utility.getIntegratedCircuit(17), Materials.SolderingAlloy.getMolten(9216), ItemRegistry.megaMachines[1], 72000, BW_Util.getMachineVoltageFromTier(3));
+ GT_Values.RA.addAssemblerRecipe(GT_ModHandler.getModItem("gregtech", "gt.blockmachines", 64, 1126), GT_Utility.getIntegratedCircuit(17), Materials.SolderingAlloy.getMolten(9216), ItemRegistry.megaMachines[2], 72000, BW_Util.getMachineVoltageFromTier(3));
GT_Values.RA.addFluidSolidifierRecipe(new ItemStack(ItemRegistry.bw_glasses[0], 1, 0), Materials.Nickel.getMolten(5184), new ItemStack(ItemRegistry.bw_glasses[0], 1, 1), 800, BW_Util.getMachineVoltageFromTier(3));
GT_Values.RA.addFluidSolidifierRecipe(new ItemStack(ItemRegistry.bw_glasses[0], 1, 1), Materials.Tungsten.getMolten(1296), new ItemStack(ItemRegistry.bw_glasses[0], 1, 2), 800, BW_Util.getMachineVoltageFromTier(4));
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_CircuitAssemblyLine.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_CircuitAssemblyLine.java
index ef71506d0e..b8c8be8e4d 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_CircuitAssemblyLine.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_CircuitAssemblyLine.java
@@ -142,6 +142,8 @@ public class GT_TileEntity_CircuitAssemblyLine extends GT_MetaTileEntity_MultiBl
continue;
BW_Util.calculateOverclockedNessMulti(this.bufferedRecipe.mEUt,this.bufferedRecipe.mDuration,1,this.getMaxInputVoltage(),this);
+ if (this.mEUt > 0)
+ this.mEUt = -this.mEUt;
this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
this.mOutputItems = this.bufferedRecipe.mOutputs;
this.mOutputFluids = this.bufferedRecipe.mFluidOutputs;
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
index 6c90893975..fc76ab719d 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
@@ -320,6 +320,9 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
case 8:
internalH = 10801;
break;
+ case 9:
+ internalH = 21601;
+ break;
default:
break;
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java
new file mode 100644
index 0000000000..19e4455a08
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java
@@ -0,0 +1,230 @@
+package com.github.bartimaeusnek.bartworks.common.tileentities.multis.mega;
+
+import com.github.bartimaeusnek.bartworks.common.configs.ConfigHandler;
+import com.github.bartimaeusnek.bartworks.util.BW_Util;
+import com.github.bartimaeusnek.bartworks.util.ChatColorHelper;
+import com.google.common.collect.ArrayListMultimap;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DistillationTower;
+import net.minecraft.block.Block;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.fluids.FluidStack;
+
+import java.util.ArrayList;
+
+public class GT_TileEntity_MegaDistillTower extends GT_MetaTileEntity_DistillationTower {
+
+ private static final int CASING_INDEX = 49;
+
+ public GT_TileEntity_MegaDistillTower(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+
+ private GT_TileEntity_MegaDistillTower(String aName) {
+ super(aName);
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_TileEntity_MegaDistillTower(this.mName);
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[]{
+ "Controller Block for the Mega Distillation Tower",
+ "Size(WxHxD): 15xhx15 (Hollow), with h ranging from 16 to 61",
+ "Controller (Front bottom)",
+ "1+ Input Hatch (Any bottom layer casing)",
+ "1+ Output Bus (Any bottom layer casing)",
+ "An \"Output Layer\" consists of 5 layers!",
+ "2-11+ Output Hatch (One or more per Output Layer)",
+ "1x Maintenance Hatch (Any casing)",
+ "1+ Energy Hatch (Any casing)",
+ "Fluids are only put out at the correct height",
+ "The correct height equals the slot number in the NEI recipe",
+ "Clean Stainless Steel Machine Casings for the rest (15 x h - 5 at least!)",
+ StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"
+ };
+ }
+
+ private short controllerY = 0;
+
+ @Override
+ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack itemStack) {
+ LAYERMAP.clear();
+ controllerY = aBaseMetaTileEntity.getYCoord();
+ int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX * 7;
+ int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ * 7;
+ int x, z, y = 0, casingAmount = 0;
+ boolean reachedTop = false;
+
+ IGregTechTileEntity tileEntity;
+ Block block;
+ for (x = xDir - 7; x <= xDir + 7; ++x) {
+ for (z = zDir - 7; z <= zDir + 7; ++z) {
+ if (x != 0 || z != 0) {
+ tileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(x, y, z);
+ block = aBaseMetaTileEntity.getBlockOffset(x, y, z);
+ if (!this.addInputToMachineList(tileEntity, CASING_INDEX) && !this.addOutputToMachineList(tileEntity, CASING_INDEX) && !this.addMaintenanceToMachineList(tileEntity, CASING_INDEX) && !this.addEnergyInputToMachineList(tileEntity, CASING_INDEX)) {
+ if (block != GregTech_API.sBlockCasings4 || aBaseMetaTileEntity.getMetaIDOffset(x, y, z) != 1) {
+ return false;
+ }
+
+ ++casingAmount;
+ }
+ }
+ }
+ }
+ for (y = y + 1; y <= 60 && !reachedTop; ++y) {
+ for (x = -7; x <= 7; ++x) {
+ for (z = -7; z <= 7; ++z) {
+ tileEntity = aBaseMetaTileEntity.getIGregTechTileEntity(aBaseMetaTileEntity.getXCoord() + xDir + x, aBaseMetaTileEntity.getYCoord() + y, aBaseMetaTileEntity.getZCoord() + zDir + z);
+ block = aBaseMetaTileEntity.getBlock(aBaseMetaTileEntity.getXCoord() + xDir + x, aBaseMetaTileEntity.getYCoord() + y, aBaseMetaTileEntity.getZCoord() + zDir + z);
+ final boolean middle = Math.abs(x) < 7 && Math.abs(z) != 7;
+ if (aBaseMetaTileEntity.getAir(aBaseMetaTileEntity.getXCoord() + xDir + x, aBaseMetaTileEntity.getYCoord() + y, aBaseMetaTileEntity.getZCoord() + zDir + z)) {
+ if (!middle) {
+ //aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getXCoord() + xDir + x, aBaseMetaTileEntity.getYCoord() + y, aBaseMetaTileEntity.getZCoord() + zDir + z,GregTech_API.sBlockCasings4,1,2);
+ return false;
+ }
+ } else {
+ if (middle) {
+ reachedTop = true;
+ }
+ if (!this.addOutputToMachineList(tileEntity, CASING_INDEX) && !this.addMaintenanceToMachineList(tileEntity, CASING_INDEX) && !this.addEnergyInputToMachineList(tileEntity, CASING_INDEX)) {
+ if (block != GregTech_API.sBlockCasings4 || aBaseMetaTileEntity.getMetaID(aBaseMetaTileEntity.getXCoord() + xDir + x, aBaseMetaTileEntity.getYCoord() + y, aBaseMetaTileEntity.getZCoord() + zDir + z) != 1) {
+ return false;
+ }
+
+ ++casingAmount;
+ }
+ }
+ }
+ }
+ }
+
+ return casingAmount >= 15 * y - 5 && y >= 16 && y <= 61 && reachedTop;
+ }
+
+ @Override
+ public boolean addOutputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
+ if (super.addOutputToMachineList(aTileEntity, aBaseCasingIndex)) {
+ if (aTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Output) {
+ int layer = aTileEntity.getYCoord() - controllerY;
+ layer = (int) Math.ceil(((double)layer) /5D)-1;
+ LAYERMAP.put(layer,(GT_MetaTileEntity_Hatch_Output) aTileEntity.getMetaTileEntity());
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ protected void addFluidOutputs(FluidStack[] mOutputFluids2) {
+ for (int i = 0; i < mOutputFluids2.length; i++) {
+ for (int j = 0; j < LAYERMAP.get(i).size(); j++) {
+ LAYERMAP.get(i).get(j).fill(new FluidStack(mOutputFluids2[i],mOutputFluids2[i].amount/LAYERMAP.get(i).size()), true);
+ }
+ }
+ }
+
+ private final ArrayListMultimap<Integer,GT_MetaTileEntity_Hatch_Output> LAYERMAP = ArrayListMultimap.create();
+
+ @Override
+ public boolean checkRecipe(ItemStack aStack) {
+ ArrayList<FluidStack> tFluidList = this.getStoredFluids();
+
+ for (int i = 0; i < tFluidList.size() - 1; ++i) {
+ for (int j = i + 1; j < tFluidList.size(); ++j) {
+ if (GT_Utility.areFluidsEqual(tFluidList.get(i), tFluidList.get(j))) {
+ if (tFluidList.get(i).amount < tFluidList.get(j).amount) {
+ tFluidList.remove(i--);
+ break;
+ }
+ tFluidList.remove(j--);
+ }
+ }
+ }
+
+ long tVoltage = this.getMaxInputVoltage();
+ byte tTier = (byte) Math.max(0, GT_Utility.getTier(tVoltage));
+
+ long nominalV = BW_Util.getnominalVoltage(this);
+ FluidStack[] tFluids = tFluidList.toArray(new FluidStack[0]);
+ if (tFluids.length > 0) {
+ for (FluidStack tFluid : tFluids) {
+ ArrayList<FluidStack[]> outputFluids = new ArrayList<>();
+ int processed = 0;
+ boolean found_Recipe = false;
+ FluidStack[] output;
+ GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sDistillationRecipes.findRecipe(this.getBaseMetaTileEntity(), false, GT_Values.V[tTier], new FluidStack[]{tFluid});
+ while (this.getStoredFluids().size() > 0 && processed < ConfigHandler.megaMachinesMax) {
+ if (tRecipe != null && (tRecipe.mEUt * (processed + 1)) < nominalV && tRecipe.isRecipeInputEqual(true, tFluids)) {
+ found_Recipe = true;
+ if (tRecipe.mFluidOutputs.length == 1 && tRecipe.mFluidOutputs[0].amount == 0)
+ tRecipe.mFluidOutputs[0].amount = tRecipe.mFluidInputs[0].amount;
+ output = new FluidStack[tRecipe.mFluidOutputs.length];
+ for (int i = 0; i < output.length; i++) {
+ output[i] = new FluidStack(tRecipe.mFluidOutputs[i],tRecipe.mFluidOutputs[i].amount);
+ }
+ outputFluids.add(output);
+ ++processed;
+ } else
+ break;
+ }
+ if (!found_Recipe)
+ continue;
+ for (int j = 1; j < outputFluids.size(); j++) {
+ for (int k = 0; k < outputFluids.get(j).length; k++) {
+ outputFluids.get(0)[k].amount += outputFluids.get(j)[k].amount;
+ }
+ }
+ this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000);
+ this.mEfficiencyIncrease = 10000;
+ long actualEUT = (long) (tRecipe.mEUt) * processed;
+ if (actualEUT > Integer.MAX_VALUE) {
+ byte divider = 0;
+ while (actualEUT > Integer.MAX_VALUE) {
+ actualEUT = actualEUT / 2;
+ divider++;
+ }
+ BW_Util.calculateOverclockedNessMulti((int) (actualEUT / (divider * 2)), tRecipe.mDuration * (divider * 2), 1, nominalV, this);
+ } else
+ BW_Util.calculateOverclockedNessMulti((int) actualEUT, tRecipe.mDuration, 1, nominalV, this);
+ //In case recipe is too OP for that machine
+ if (this.mMaxProgresstime == Integer.MAX_VALUE - 1 && this.mEUt == Integer.MAX_VALUE - 1)
+ return false;
+ if (this.mEUt > 0) {
+ this.mEUt = (-this.mEUt);
+ }
+ this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
+ this.mOutputFluids = outputFluids.get(0).clone();
+ if (tRecipe.getOutput(0) != null) {
+ int stacks = processed / 64;
+ ItemStack[] outputs = new ItemStack[stacks];
+ if (stacks > 0) {
+ for (int i = 0; i < stacks; i++)
+ if (i != stacks - 1)
+ outputs[i] = tRecipe.getOutput(0).splitStack(64);
+ else
+ outputs[i] = tRecipe.getOutput(0).splitStack(processed - (64 * i));
+ this.mOutputItems = outputs;
+ } else
+ this.mOutputItems = null;
+ } else
+ this.mOutputItems = null;
+ this.updateSlots();
+ return true;
+ }
+ }
+ return false;
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java
index 8cd06481d3..6befd36ba6 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java
@@ -28,7 +28,7 @@ import static com.github.bartimaeusnek.bartworks.system.material.GT_Enhancement.
public class BWGTMetaItems extends BW_MetaGenerated_Items {
- boolean hasList;
+ private boolean hasList;
public BWGTMetaItems(OrePrefixes orePrefixes, List noSubIDMaterials) {
super(orePrefixes,null);
@@ -36,7 +36,7 @@ public class BWGTMetaItems extends BW_MetaGenerated_Items {
for (int i = 0; i < Materials.values().length; i++) {
ItemStack tStack = new ItemStack(this, 1, i);
Materials w = Materials.values()[i];
- if (!((w.getMolten(1) != null && orePrefixes == WerkstoffLoader.capsuleMolten) || ((w.getFluid(1) != null || w.getGas(1) != null) && orePrefixes == OrePrefixes.capsule)))
+ if (((w.getMolten(1) == null && orePrefixes == WerkstoffLoader.capsuleMolten) || ((w.getFluid(1) == null && w.getGas(1) == null) && (orePrefixes == OrePrefixes.capsule || orePrefixes == OrePrefixes.bottle))))
continue;
for (Werkstoff werkstoff : Werkstoff.werkstoffHashSet)
if (w.mDefaultLocalName.equalsIgnoreCase(werkstoff.getDefaultName()))
@@ -54,7 +54,7 @@ public class BWGTMetaItems extends BW_MetaGenerated_Items {
for (int i = 0; i < noSubIDMaterials.size(); i++) {
ItemStack tStack = new ItemStack(this, 1, i+1001);
Materials w = (Materials) noSubIDMaterials.get(i);
- if (!((w.getMolten(1) != null && orePrefixes == WerkstoffLoader.capsuleMolten) || ((w.getFluid(1) != null || w.getGas(1) != null) && orePrefixes == OrePrefixes.capsule)))
+ if (((w.getMolten(1) == null && orePrefixes == WerkstoffLoader.capsuleMolten) || ((w.getFluid(1) == null && w.getGas(1) == null) && (orePrefixes == OrePrefixes.capsule || orePrefixes == OrePrefixes.bottle))))
continue;
for (Werkstoff werkstoff : Werkstoff.werkstoffHashSet)
if (w.mDefaultLocalName.equalsIgnoreCase(werkstoff.getDefaultName()))
@@ -100,16 +100,19 @@ public class BWGTMetaItems extends BW_MetaGenerated_Items {
Materials w = Materials.values()[i];
if ((w == null) || (w.mTypes & Werkstoff.GenerationFeatures.prefixLogic.get(this.orePrefixes)) == 0 && Werkstoff.GenerationFeatures.prefixLogic.get(this.orePrefixes) != 0)
continue;
- if ((w.getMolten(1) != null && orePrefixes == WerkstoffLoader.capsuleMolten) || ((w.getFluid(1) != null || w.getGas(1) != null) && orePrefixes == OrePrefixes.capsule))
- aList.add(new ItemStack(this, 1, i));
- }
- for (int i = 0; i < NoMetaValue.size(); i++) {
- Materials w = NoMetaValue.get(i);
- if ((w == null) || (w.mTypes & Werkstoff.GenerationFeatures.prefixLogic.get(this.orePrefixes)) == 0 && Werkstoff.GenerationFeatures.prefixLogic.get(this.orePrefixes) != 0)
+ else if (((w.getMolten(1) == null && orePrefixes == WerkstoffLoader.capsuleMolten) || ((w.getFluid(1) == null && w.getGas(1) == null) && (orePrefixes == OrePrefixes.capsule || orePrefixes == OrePrefixes.bottle))))
continue;
- if (hasList && ((w.getMolten(1) != null && orePrefixes == WerkstoffLoader.capsuleMolten) || ((w.getFluid(1) != null || w.getGas(1) != null) && orePrefixes == OrePrefixes.capsule)))
- aList.add(new ItemStack(this, 1, i+1001));
+ aList.add(new ItemStack(this, 1, i));
}
+ if (hasList)
+ for (int i = 0; i < NoMetaValue.size(); i++) {
+ Materials w = NoMetaValue.get(i);
+ if ((w == null) || (w.mTypes & Werkstoff.GenerationFeatures.prefixLogic.get(this.orePrefixes)) == 0 && Werkstoff.GenerationFeatures.prefixLogic.get(this.orePrefixes) != 0)
+ continue;
+ else if (((w.getMolten(1) == null && orePrefixes == WerkstoffLoader.capsuleMolten) || ((w.getFluid(1) == null && w.getGas(1) == null) && (orePrefixes == OrePrefixes.capsule || orePrefixes == OrePrefixes.bottle))))
+ continue;
+ aList.add(new ItemStack(this, 1, i + 1001));
+ }
}
@Override
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/GTMetaItemEnhancer.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/GTMetaItemEnhancer.java
index 35214f636c..c0f8aa51ac 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/GTMetaItemEnhancer.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/GTMetaItemEnhancer.java
@@ -8,6 +8,7 @@ import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
+import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
@@ -20,12 +21,12 @@ import java.util.stream.Collectors;
public class GTMetaItemEnhancer {
static List<Materials> NoMetaValue;
-
static{
if (Loader.isModLoaded("Forestry")) {
NoMetaValue = Materials.getMaterialsMap().values().stream().filter(m -> m.mMetaItemSubID == -1).collect(Collectors.toList());
Item moltenCapsuls = new BWGTMetaItems(WerkstoffLoader.capsuleMolten, null);
Item capsuls = new BWGTMetaItems(OrePrefixes.capsule, NoMetaValue);
+ //Item bottles = new BWGTMetaItems(OrePrefixes.bottle, NoMetaValue);
Materials[] values = Materials.values();
for (int i = 0, valuesLength = values.length; i < valuesLength; i++) {
@@ -37,27 +38,29 @@ public class GTMetaItemEnhancer {
GT_Values.RA.addFluidCannerRecipe(GT_ModHandler.getModItem("Forestry", "refractoryEmpty", 1), new ItemStack(moltenCapsuls, 1, i), m.getMolten(144), GT_Values.NF);
GT_Values.RA.addFluidCannerRecipe(new ItemStack(moltenCapsuls, 1, i), GT_Values.NI, GT_Values.NF, m.getMolten(144));
}
- if (m.hasCorrespondingFluid() || m.hasCorrespondingGas()) {
- Fluid f = m.hasCorrespondingFluid() ? m.getFluid(1).getFluid() : m.getGas(1).getFluid();
- final FluidContainerRegistry.FluidContainerData emptyData = new FluidContainerRegistry.FluidContainerData(new FluidStack(f, 1000), new ItemStack(capsuls, 1, i), GT_ModHandler.getModItem("Forestry", "waxCapsule", 1));
- FluidContainerRegistry.registerFluidContainer(emptyData);
- GT_Utility.addFluidContainerData(emptyData);
- GT_Values.RA.addFluidCannerRecipe(GT_ModHandler.getModItem("Forestry", "waxCapsule", 1), new ItemStack(capsuls, 1, i), new FluidStack(f, 1000), GT_Values.NF);
- GT_Values.RA.addFluidCannerRecipe(new ItemStack(capsuls, 1, i), GT_Values.NI, GT_Values.NF, new FluidStack(f, 1000));
+ if (m.getFluid(1) != null || m.getGas(1) != null) {
+ addFluidData(m,GT_ModHandler.getModItem("Forestry", "waxCapsule", 1),capsuls,1000,i,true);
+ // addFluidData(m,new ItemStack(Items.glass_bottle),bottles,250,i,false);
}
}
for (int i = 0, valuesLength = NoMetaValue.size(); i < valuesLength; i++) {
Materials m = NoMetaValue.get(i);
if (m.getFluid(1) != null || m.getGas(1) != null) {
- Fluid f = m.hasCorrespondingFluid() ? m.getFluid(1).getFluid() : m.getGas(1).getFluid();
- final FluidContainerRegistry.FluidContainerData emptyData = new FluidContainerRegistry.FluidContainerData(new FluidStack(f, 1000), new ItemStack(capsuls, 1, i + 1001), GT_ModHandler.getModItem("Forestry", "waxCapsule", 1));
- FluidContainerRegistry.registerFluidContainer(emptyData);
- GT_Utility.addFluidContainerData(emptyData);
- GT_Values.RA.addFluidCannerRecipe(GT_ModHandler.getModItem("Forestry", "waxCapsule", 1), new ItemStack(capsuls, 1, i + 1001), new FluidStack(f, 1000), GT_Values.NF);
- GT_Values.RA.addFluidCannerRecipe(new ItemStack(capsuls, 1, i + 1001), GT_Values.NI, GT_Values.NF, new FluidStack(f, 1000));
+ addFluidData(m,GT_ModHandler.getModItem("Forestry", "waxCapsule", 1),capsuls,1000,i + 1001,true);
+ // addFluidData(m,new ItemStack(Items.glass_bottle),bottles,250,i + 1001,false);
}
}
+
}
}
+ private static void addFluidData(Materials m, ItemStack container, Item filled,int amount, int it, boolean empty){
+ Fluid f = m.getFluid(1) != null ? m.getFluid(1).getFluid() : m.getGas(1).getFluid();
+ final FluidContainerRegistry.FluidContainerData emptyData = new FluidContainerRegistry.FluidContainerData(new FluidStack(f, amount), new ItemStack(filled, 1, it), container);
+ FluidContainerRegistry.registerFluidContainer(emptyData);
+ GT_Utility.addFluidContainerData(emptyData);
+ GT_Values.RA.addFluidCannerRecipe(container, new ItemStack(filled, 1, it), new FluidStack(f, amount), GT_Values.NF);
+ GT_Values.RA.addFluidCannerRecipe(new ItemStack(filled, 1, it), empty ? GT_Values.NI : container, GT_Values.NF, new FluidStack(f, amount));
+ }
+
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/ThreadedLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/ThreadedLoader.java
index e5467ea8c3..bba6f66547 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/ThreadedLoader.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/ThreadedLoader.java
@@ -31,9 +31,8 @@ import java.util.List;
public class ThreadedLoader implements Runnable {
- List<Thread> threads = new ArrayList<>();
- List<Thread> threadsInit = new ArrayList<>();
-
+ private List<Thread> threads = new ArrayList<>();
+ private List<Thread> threadsInit = new ArrayList<>();
@Override
public synchronized void run() {
@@ -66,19 +65,20 @@ public class ThreadedLoader implements Runnable {
WerkstoffLoader.INSTANCE.gameRegistryHandler();
}
- class AllRecipes extends Thread {
+ static class AllRecipes extends Thread {
public synchronized void run() {
WerkstoffLoader.INSTANCE.run();
}
+
}
- class MaterialGen extends Thread {
+ static class MaterialGen extends Thread {
+
public synchronized void run() {
WerkstoffLoader.INSTANCE.runInit();
}
- }
-
+ }
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java
index ac1d96bc9b..bb2e825bb9 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/Werkstoff.java
@@ -208,7 +208,7 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer {
if (p.getKey() instanceof Werkstoff)
set.addAll(Arrays.asList(((Werkstoff) p.getKey()).getTCAspects()));
}
- tc_aspectStacks.forEach(tc_aspectStack -> set.add(new Pair<Object, Integer>(tc_aspectStack.mAspect.mAspect, (int) tc_aspectStack.mAmount)));
+ tc_aspectStacks.forEach(tc_aspectStack -> set.add(new Pair<>(tc_aspectStack.mAspect.mAspect, (int) tc_aspectStack.mAmount)));
this.stats.mTC_Aspects = set.toArray(new Pair[0]);
}
Pair<Object,Integer>[] ret = this.stats.mTC_Aspects.clone();
@@ -219,15 +219,12 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer {
}
public List<TC_Aspects.TC_AspectStack> getGTWrappedTCAspects() {
- List<TC_Aspects.TC_AspectStack> ret = new ArrayList<>();
- try {
- Pair<Object, Integer>[] aspectArray = getTCAspects();
- TC_Aspects.TC_AspectStack stack = null;
- for (Pair<Object, Integer> objectIntegerPair : aspectArray) {
- stack = new TC_Aspects.TC_AspectStack(TC_Aspects.valueOf(((String) ThaumcraftHandler.AspectAdder.getName.invoke(objectIntegerPair.getKey())).toUpperCase(Locale.US)) , objectIntegerPair.getValue());
- stack.addToAspectList(ret);
- }
- }catch( InvocationTargetException | IllegalAccessException ignored){}
+ final List<TC_Aspects.TC_AspectStack> ret = new ArrayList<>();
+ Arrays.stream(getTCAspects()).forEach(objectIntegerPair -> {
+ try {
+ new TC_Aspects.TC_AspectStack(TC_Aspects.valueOf(((String) ThaumcraftHandler.AspectAdder.getName.invoke(objectIntegerPair.getKey())).toUpperCase(Locale.US)), objectIntegerPair.getValue()).addToAspectList(ret);
+ } catch (IllegalAccessException | InvocationTargetException ignored) {}
+ });
return ret;
}
@@ -452,6 +449,7 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer {
Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.cell,0b10000);
Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.capsule,0b10000);
+ // Werkstoff.GenerationFeatures.prefixLogic.put(OrePrefixes.bottle,0b10000);
Werkstoff.GenerationFeatures.prefixLogic.put(WerkstoffLoader.capsuleMolten,0b1000000);
Werkstoff.GenerationFeatures.prefixLogic.put(WerkstoffLoader.cellMolten,0b1000000);
@@ -763,6 +761,16 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer {
return this;
}
+ byte enchantmentlvl = 3;
+
+ public byte getEnchantmentlvl() {
+ return enchantmentlvl;
+ }
+
+ public void setEnchantmentlvl(byte enchantmentlvl) {
+ this.enchantmentlvl = enchantmentlvl;
+ }
+
public boolean isRadioactive() {
return (this.quality & 0b100) != 0;
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java
index 9158de5a89..9a2cafa2d6 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java
@@ -44,6 +44,7 @@ import cpw.mods.fml.common.ProgressManager;
import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
+import gregtech.api.enchants.Enchantment_Radioactivity;
import gregtech.api.enums.*;
import gregtech.api.interfaces.ISubTagContainer;
import gregtech.api.objects.GT_Fluid;
@@ -123,6 +124,7 @@ public class WerkstoffLoader implements Runnable {
capsule.mMaterialGenerationBits = 0b100000;
capsule.mDefaultStackSize = 64;
}
+ bottle.mDefaultStackSize = 1;
}
//TODO: FREE ID RANGE: 91-32766
@@ -1545,7 +1547,7 @@ public class WerkstoffLoader implements Runnable {
}
private static void runGTItemDataRegistrator() {
- HashSet<Materials> toRem = new HashSet<>();
+ // HashSet<Materials> toRem = new HashSet<>();
for (Werkstoff werkstoff : Werkstoff.werkstoffHashSet) {
//int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, String aConfigSection, boolean aCustomOre, String aCustomID
Materials werkstoffBridgeMaterial = werkstoff.getBridgeMaterial() != null ? werkstoff.getBridgeMaterial() : Materials.get(werkstoff.getVarName()) != Materials._NULL ? Materials.get(werkstoff.getVarName()) :
@@ -1608,10 +1610,15 @@ public class WerkstoffLoader implements Runnable {
f.set(werkstoffBridgeMaterial, werkstoff.getDefaultName());
} catch (NoSuchFieldException | IllegalAccessException ignored){}
werkstoffBridgeMaterial.mChemicalFormula = werkstoff.getToolTip();
- werkstoffBridgeMaterial.mAspects=werkstoff.getGTWrappedTCAspects();
+ if (Loader.isModLoaded("Thaumcraft"))
+ werkstoffBridgeMaterial.mAspects=werkstoff.getGTWrappedTCAspects();
werkstoffBridgeMaterial.mMaterialInto = werkstoffBridgeMaterial;
werkstoffBridgeMaterial.mHandleMaterial = werkstoff.contains(SubTag.BURNING) ? Materials.Blaze : werkstoff.contains(SubTag.MAGICAL) ? Materials.Thaumium : werkstoffBridgeMaterial.mDurability > 5120 ? Materials.TungstenSteel : werkstoffBridgeMaterial.mDurability > 1280 ? Materials.Steel : Materials.Wood;
- toRem.add(werkstoffBridgeMaterial);
+ //toRem.add(werkstoffBridgeMaterial);
+ if (werkstoff.getStats().isRadioactive()){
+ werkstoffBridgeMaterial.setEnchantmentForArmors(Enchantment_Radioactivity.INSTANCE,werkstoff.getStats().getEnchantmentlvl());
+ werkstoffBridgeMaterial.setEnchantmentForTools(Enchantment_Radioactivity.INSTANCE,werkstoff.getStats().getEnchantmentlvl());
+ }
werkstoff.setBridgeMaterial(werkstoffBridgeMaterial);
if (WerkstoffLoader.items.get(prefixes) != null)
if ((werkstoff.getGenerationFeatures().toGenerate & Werkstoff.GenerationFeatures.prefixLogic.get(prefixes)) != 0 && (werkstoff.getGenerationFeatures().blacklist & Werkstoff.GenerationFeatures.prefixLogic.get(prefixes)) == 0 && werkstoff.get(prefixes) != null && werkstoff.get(prefixes).getItem() != null)
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/emt/tileentities/multi/GT_Industrial_Alchemic_Construct.java b/src/main/java/com/github/bartimaeusnek/crossmod/emt/tileentities/multi/GT_Industrial_Alchemic_Construct.java
index f7f2298c28..0db95667ae 100644
--- a/src/main/java/com/github/bartimaeusnek/crossmod/emt/tileentities/multi/GT_Industrial_Alchemic_Construct.java
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/emt/tileentities/multi/GT_Industrial_Alchemic_Construct.java
@@ -47,7 +47,7 @@ import static gregtech.api.enums.GT_Values.V;
public class GT_Industrial_Alchemic_Construct extends GT_MetaTileEntity_MultiBlockBase {
- List<Object> mEssentiaHatches = new ArrayList<>();
+ private List<Object> mEssentiaHatches = new ArrayList<>();
public boolean addInputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
if (aTileEntity.getClass().isInstance(EMTHandler.aEssentiaInputHatch))
@@ -75,7 +75,7 @@ public class GT_Industrial_Alchemic_Construct extends GT_MetaTileEntity_MultiBlo
super(aID, aName, aNameRegional);
}
- public GT_Industrial_Alchemic_Construct(String aName) {
+ private GT_Industrial_Alchemic_Construct(String aName) {
super(aName);
}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/galaxySpace/tileEntity/DysonSwarmSunReplacement.java b/src/main/java/com/github/bartimaeusnek/crossmod/galaxySpace/tileEntity/DysonSwarmSunReplacement.java
new file mode 100644
index 0000000000..ffc3c9f756
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/galaxySpace/tileEntity/DysonSwarmSunReplacement.java
@@ -0,0 +1,98 @@
+package com.github.bartimaeusnek.crossmod.galaxySpace.tileEntity;
+
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.MetaTileEntity;
+import micdoodle8.mods.galacticraft.core.GalacticraftCore;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.ResourceLocation;
+
+public class DysonSwarmSunReplacement extends MetaTileEntity {
+ private static boolean wasBuild;
+ private static long dysonObjs;
+ private static long swarmControllers;
+
+
+ public DysonSwarmSunReplacement(int aID, String aBasicName, String aRegionalName, int aInvSlotCount) {
+ super(aID, aBasicName, aRegionalName, aInvSlotCount);
+ }
+
+ private DysonSwarmSunReplacement(String aName, int aInvSlotCount) {
+ super(aName, aInvSlotCount);
+ }
+
+
+ public void toggle(){
+ if (!wasBuild) {
+ GalacticraftCore.solarSystemSol.getMainStar().setBodyIcon(new ResourceLocation(GalacticraftCore.ASSET_PREFIX, "textures/gui/celestialbodies/moon.png"));
+ wasBuild = !wasBuild;
+ } else {
+ GalacticraftCore.solarSystemSol.getMainStar().setBodyIcon(new ResourceLocation(GalacticraftCore.ASSET_PREFIX, "textures/gui/celestialbodies/sun.png"));
+ wasBuild = !wasBuild;
+ }
+ }
+
+ @Override
+ public byte getTileEntityBaseType() {
+ return 2;
+ }
+
+ @Override
+ public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) {
+ ++swarmControllers;
+ }
+
+ @Override
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
+ toggle();
+ return super.onRightclick(aBaseMetaTileEntity, aPlayer);
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity iGregTechTileEntity) {
+ return new DysonSwarmSunReplacement(this.mName,this.mInventory.length);
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound nbtTagCompound) {
+ nbtTagCompound.setLong("dysonObjs", dysonObjs);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound nbtTagCompound) {
+ dysonObjs = Math.max(dysonObjs, nbtTagCompound.getLong("dysonObjs"));
+ }
+
+ @Override
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
+ aBaseMetaTileEntity.increaseStoredEnergyUnits((DysonSwarmSunReplacement.dysonObjs*10000)/ swarmControllers, true);
+ }
+
+ public boolean isEnetOutput() {
+ return true;
+ }
+
+ @Override
+ public boolean allowPullStack(IGregTechTileEntity iGregTechTileEntity, int i, byte b, ItemStack itemStack) {
+ return false;
+ }
+
+ @Override
+ public boolean allowPutStack(IGregTechTileEntity iGregTechTileEntity, int i, byte b, ItemStack itemStack) {
+ return false;
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[0];
+ }
+
+ @Override
+ public ITexture[] getTexture(IGregTechTileEntity iGregTechTileEntity, byte b, byte b1, byte b2, boolean b3, boolean b4) {
+ return new ITexture[0];
+ }
+
+}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/galaxySpace/tileEntity/GalaxySpaceProxy.java b/src/main/java/com/github/bartimaeusnek/crossmod/galaxySpace/tileEntity/GalaxySpaceProxy.java
new file mode 100644
index 0000000000..c03a8f5f04
--- /dev/null
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/galaxySpace/tileEntity/GalaxySpaceProxy.java
@@ -0,0 +1,58 @@
+package com.github.bartimaeusnek.crossmod.galaxySpace.tileEntity;
+
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+
+public class GalaxySpaceProxy {
+
+ private GalaxySpaceProxy() {
+ }
+
+ public static void postInit(FMLPostInitializationEvent e){
+
+ }
+
+ public static void preInit(FMLPreInitializationEvent e) {
+
+ }
+
+ private static void serverpreInit(FMLPreInitializationEvent e) {
+
+ }
+
+ private static void clientpreInit(FMLPreInitializationEvent e) {
+ }
+
+ private static void commonpreInit(FMLPreInitializationEvent e) {
+
+ }
+
+ public static void init(FMLInitializationEvent e) {
+
+ }
+
+ private static void serverInit(FMLInitializationEvent e) {
+
+ }
+
+ private static void clientInit(FMLInitializationEvent e) {
+
+ }
+
+ private static void commonInit(FMLInitializationEvent e) {
+
+ }
+ private static void serverPostInit(FMLPostInitializationEvent e) {
+
+ }
+
+ private static void clientPostInit(FMLPostInitializationEvent e) {
+
+ }
+
+ private static void commonPostInit(FMLPostInitializationEvent e) {
+
+ }
+
+}
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/thaumcraft/util/ThaumcraftHandler.java b/src/main/java/com/github/bartimaeusnek/crossmod/thaumcraft/util/ThaumcraftHandler.java
index 3486b52135..5396f872ec 100644
--- a/src/main/java/com/github/bartimaeusnek/crossmod/thaumcraft/util/ThaumcraftHandler.java
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/thaumcraft/util/ThaumcraftHandler.java
@@ -150,13 +150,13 @@ public class ThaumcraftHandler {
for (OrePrefixes element : OrePrefixes.values()) {
if ((werkstoff.getGenerationFeatures().toGenerate & Werkstoff.GenerationFeatures.prefixLogic.get(element)) != 0 && (werkstoff.getGenerationFeatures().blacklist & Werkstoff.GenerationFeatures.prefixLogic.get(element)) == 0) {
if (element.mMaterialAmount >= 3628800L || element == OrePrefixes.ore) {
- DebugLog.log("OrePrefix: "+element.name() + " mMaterialAmount: " + element.mMaterialAmount/3628800L);
+ DebugLog.log("OrePrefix: " + element.name() + " mMaterialAmount: " + element.mMaterialAmount/3628800L);
if (WerkstoffLoader.items.get(element) != null)
ThaumcraftHandler.AspectAdder.addAspectViaBW(werkstoff.get(element), werkstoff.getTCAspects(element == OrePrefixes.ore ? 1 : (int) (element.mMaterialAmount / 3628800L)));
}
else if (element.mMaterialAmount >= 0L) {
if (WerkstoffLoader.items.get(element) != null)
- ThaumcraftHandler.AspectAdder.addAspectViaBW(werkstoff.get(element), new Pair<Object, Integer>(TC_Aspects.PERDITIO.mAspect, 1));
+ ThaumcraftHandler.AspectAdder.addAspectViaBW(werkstoff.get(element), new Pair<>(TC_Aspects.PERDITIO.mAspect, 1));
}
}
}
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.Core_Reactor_Cell.png b/src/main/resources/assets/gregtech/textures/items/gt.Core_Reactor_Cell.png
new file mode 100644
index 0000000000..e372f01092
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.Core_Reactor_Cell.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.Core_Reactor_CellDep.png b/src/main/resources/assets/gregtech/textures/items/gt.Core_Reactor_CellDep.png
new file mode 100644
index 0000000000..b0836b8d41
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.Core_Reactor_CellDep.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/DIAMOND/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/DULL/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/EMERALD/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/FIERY/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/FINE/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/FLINT/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/FLUID/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_HORIZONTAL/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/GEM_VERTICAL/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/GLASS/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/LAPIS/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/LEAF/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/LIGNITE/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/MAGNETIC/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/METALLIC/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/NETHERSTAR/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/NONE/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/OPAL/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/PAPER/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/POWDER/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/QUARTZ/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/ROUGH/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/RUBY/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/SAND/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/SHARDS/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/SHINY/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/WOOD/bottle_OVERLAY.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/bottle.png b/src/main/resources/assets/gregtech/textures/items/materialicons/bottle.png
new file mode 100644
index 0000000000..dbf735f4fb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/bottle.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/materialicons/bottle_OVERLAY.png b/src/main/resources/assets/gregtech/textures/items/materialicons/bottle_OVERLAY.png
new file mode 100644
index 0000000000..66bd26dc46
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/materialicons/bottle_OVERLAY.png
Binary files differ