aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/github/technus/tectech/TecTech.java4
-rw-r--r--src/main/java/com/github/technus/tectech/Util.java100
-rw-r--r--src/main/java/com/github/technus/tectech/chunkData/ChunkDataHandler.java87
-rw-r--r--src/main/java/com/github/technus/tectech/chunkData/IChunkMetaDataHandler.java5
-rw-r--r--src/main/java/com/github/technus/tectech/loader/thing/MachineLoader.java1301
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/PlayerPersistence.java42
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/anomaly/AnomalyHandler.java102
-rw-r--r--src/main/java/com/github/technus/tectech/thing/CustomItemList.java516
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_OverflowElemental.java8
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java4
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/pipe/GT_MetaTileEntity_Pipe_Data.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_DebugPollutor.java184
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_Container_DebugPollutor.java150
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_GUIContainer_DebugPollutor.java31
14 files changed, 1532 insertions, 1004 deletions
diff --git a/src/main/java/com/github/technus/tectech/TecTech.java b/src/main/java/com/github/technus/tectech/TecTech.java
index 9d3273f10e..76cdc56060 100644
--- a/src/main/java/com/github/technus/tectech/TecTech.java
+++ b/src/main/java/com/github/technus/tectech/TecTech.java
@@ -4,6 +4,7 @@ import com.github.technus.tectech.loader.MainLoader;
import com.github.technus.tectech.loader.TecTechConfig;
import com.github.technus.tectech.mechanics.ConvertFloat;
import com.github.technus.tectech.mechanics.ConvertInteger;
+import com.github.technus.tectech.mechanics.PlayerPersistence;
import com.github.technus.tectech.mechanics.anomaly.AnomalyHandler;
import com.github.technus.tectech.chunkData.ChunkDataHandler;
import com.github.technus.tectech.mechanics.elementalMatter.core.commands.GiveEM;
@@ -44,6 +45,7 @@ public class TecTech {
public static ChunkDataHandler chunkDataHandler;
public static AnomalyHandler anomalyHandler;
+ public static PlayerPersistence playerPersistence;
/**
* For Loader.isModLoaded checks during the runtime
@@ -189,6 +191,8 @@ public class TecTech {
MainLoader.postLoad();
chunkDataHandler.registerChunkMetaDataHandler(anomalyHandler=new AnomalyHandler());
+
+ playerPersistence=new PlayerPersistence("tec");
}
@Mod.EventHandler
diff --git a/src/main/java/com/github/technus/tectech/Util.java b/src/main/java/com/github/technus/tectech/Util.java
index 53e9627187..6a8ab2d57e 100644
--- a/src/main/java/com/github/technus/tectech/Util.java
+++ b/src/main/java/com/github/technus/tectech/Util.java
@@ -3,6 +3,8 @@ package com.github.technus.tectech;
import com.github.technus.tectech.thing.casing.TT_Container_Casings;
import com.github.technus.tectech.thing.metaTileEntity.IFrontRotation;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder;
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.ObfuscationReflectionHelper;
import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.api.GregTech_API;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
@@ -12,19 +14,27 @@ import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.ChunkCoordIntPair;
import net.minecraft.world.World;
+import net.minecraft.world.storage.IPlayerFileData;
+import net.minecraft.world.storage.SaveHandler;
import net.minecraftforge.fluids.FluidStack;
import org.apache.commons.lang3.StringUtils;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.lang.reflect.Field;
import java.util.*;
import java.util.regex.Matcher;
@@ -1457,4 +1467,94 @@ public final class Util {
int z=chunk.getCenterZPosition();
return world.checkChunksExist(x, 0, z, x, 0, z);
}
+
+ public static NBTTagCompound getPlayerData(EntityPlayer player,String extension) {
+ try {
+ if (FMLCommonHandler.instance().getEffectiveSide().isServer()) {
+ if (player != null) {
+ IPlayerFileData playerNBTManagerObj = MinecraftServer.getServer().worldServerForDimension(0).getSaveHandler().getSaveHandler();
+ SaveHandler sh = (SaveHandler)playerNBTManagerObj;
+ File dir = ObfuscationReflectionHelper.getPrivateValue(SaveHandler.class, sh, new String[]{"playersDirectory", "field_75771_c"});
+ String id1=player.getUniqueID().toString();
+ NBTTagCompound tagCompound=read(new File(dir, id1 + "."+extension));
+ if(tagCompound!=null){
+ return tagCompound;
+ }
+ tagCompound=readBackup(new File(dir, id1 + "."+extension+"_bak"));
+ if(tagCompound!=null){
+ return tagCompound;
+ }
+ String id2=UUID.nameUUIDFromBytes(player.getCommandSenderName().getBytes()).toString();
+ tagCompound=read(new File(dir, id2 + "."+extension));
+ if(tagCompound!=null){
+ return tagCompound;
+ }
+ tagCompound=readBackup(new File(dir, id2 + "."+extension+"_bak"));
+ if(tagCompound!=null){
+ return tagCompound;
+ }
+ }
+ }
+ } catch (Exception var9) {
+ TecTech.LOGGER.fatal("Error reading data for: "+player.getCommandSenderName());
+ }
+ return new NBTTagCompound();
+ }
+
+ public static void savePlayerFile(EntityPlayer player,String extension, NBTTagCompound data) {
+ try {
+ if (FMLCommonHandler.instance().getEffectiveSide().isServer()) {
+ if (player != null) {
+ IPlayerFileData playerNBTManagerObj = MinecraftServer.getServer().worldServerForDimension(0).getSaveHandler().getSaveHandler();
+ SaveHandler sh = (SaveHandler)playerNBTManagerObj;
+ File dir = ObfuscationReflectionHelper.getPrivateValue(SaveHandler.class, sh, new String[]{"playersDirectory", "field_75771_c"});
+ String id1=player.getUniqueID().toString();
+ write(new File(dir, id1 + "."+extension),data);
+ write(new File(dir, id1 + "."+extension+"_bak"),data);
+ String id2=UUID.nameUUIDFromBytes(player.getCommandSenderName().getBytes()).toString();
+ write(new File(dir, id2 + "."+extension),data);
+ write(new File(dir, id2 + "."+extension+"_bak"),data);
+ }
+ }
+ } catch (Exception var10) {
+ TecTech.LOGGER.fatal("Error saving data for: "+player.getCommandSenderName());
+ }
+ }
+
+ private static NBTTagCompound read(File file){
+ if (file != null && file.exists()) {
+ try(FileInputStream fileInputStream= new FileInputStream(file)) {
+ return CompressedStreamTools.readCompressed(fileInputStream);
+ } catch (Exception var9) {
+ TecTech.LOGGER.error("Cannot read NBT File: "+file.getAbsolutePath());
+ }
+ }
+ return null;
+ }
+
+ private static NBTTagCompound readBackup(File file){
+ if (file != null && file.exists()) {
+ try(FileInputStream fileInputStream= new FileInputStream(file)) {
+ return CompressedStreamTools.readCompressed(fileInputStream);
+ } catch (Exception var9) {
+ TecTech.LOGGER.error("Cannot read NBT File: "+file.getAbsolutePath());
+ return new NBTTagCompound();
+ }
+ }
+ return null;
+ }
+
+ private static void write(File file,NBTTagCompound tagCompound){
+ if (file != null) {
+ if(tagCompound==null){
+ if(file.exists()) file.delete();
+ }else {
+ try(FileOutputStream fileOutputStream= new FileOutputStream(file)) {
+ CompressedStreamTools.writeCompressed(tagCompound,fileOutputStream);
+ } catch (Exception var9) {
+ TecTech.LOGGER.error("Cannot write NBT File: "+file.getAbsolutePath());
+ }
+ }
+ }
+ }
}
diff --git a/src/main/java/com/github/technus/tectech/chunkData/ChunkDataHandler.java b/src/main/java/com/github/technus/tectech/chunkData/ChunkDataHandler.java
index f7b3895a80..108e762af0 100644
--- a/src/main/java/com/github/technus/tectech/chunkData/ChunkDataHandler.java
+++ b/src/main/java/com/github/technus/tectech/chunkData/ChunkDataHandler.java
@@ -18,7 +18,8 @@ public class ChunkDataHandler {
private final HashMap<Integer,HashMap<ChunkCoordIntPair, NBTChunk>> dimensionWiseChunkData=new HashMap<>();
private final HashMap<String,HashMap<Integer,ChunkHashMap >> dimensionWiseMetaChunkData=new HashMap<>();
private final HashMap<String, IChunkMetaDataHandler> metaDataHandlerHashMap =new HashMap<>();
- private final ArrayList<IChunkMetaDataHandler> clientSyncHandlers =new ArrayList<>();
+ private final ArrayList<IChunkMetaDataHandler> pushSyncHandlers =new ArrayList<>();
+ private final ArrayList<IChunkMetaDataHandler> pullSyncHandlers =new ArrayList<>();
private final ArrayList<IChunkMetaDataHandler> serverHandlers=new ArrayList<>();
private final ArrayList<IChunkMetaDataHandler> worldHandlers=new ArrayList<>();
private final ArrayList<IChunkMetaDataHandler> playerHandlers=new ArrayList<>();
@@ -95,13 +96,13 @@ public class ChunkDataHandler {
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void onLoadChunk(ChunkEvent.Load aEvent){
- clientSyncHandlers.forEach(chunkMetaDataHandler -> chunkMetaDataHandler.requestData(aEvent));
+ pullSyncHandlers.forEach(chunkMetaDataHandler -> chunkMetaDataHandler.pullData(aEvent));
}
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void onUnLoadChunk(ChunkEvent.Unload aEvent){
- clientSyncHandlers.forEach(chunkMetaDataHandler -> dimensionWiseMetaChunkData
+ pullSyncHandlers.forEach(chunkMetaDataHandler -> dimensionWiseMetaChunkData
.get(chunkMetaDataHandler.getTagName())
.get(aEvent.world.provider.dimensionId)
.remove(aEvent.getChunk().getChunkCoordIntPair()));
@@ -130,38 +131,39 @@ public class ChunkDataHandler {
dimensionWiseMetaChunkData.get(chunkMetaDataHandler.getTagName()), aEvent));
}
- @SideOnly(Side.SERVER)
@SubscribeEvent
public void onWorldTickEvent(TickEvent.WorldTickEvent aEvent) {
- int dim=aEvent.world.provider.dimensionId;
- clientSyncHandlers.forEach(chunkMetaDataHandler -> {
- ChunkHashMap data=dimensionWiseMetaChunkData
- .get(chunkMetaDataHandler.getTagName()).get(dim);
- int cycle=chunkMetaDataHandler.pushPayloadSpreadPeriod();
- int epoch=(int)(aEvent.world.getTotalWorldTime()%cycle);
- ArrayList<ChunkCoordIntPair> work;
- if(epoch==0){
- int per=data.dirtyBoys.size()/cycle;
- int mod=data.dirtyBoys.size()%cycle;
- Iterator<ChunkCoordIntPair> iter=data.dirtyBoys.iterator();
- for (int periodWork = 0; periodWork < cycle; periodWork++) {
- work=data.workLoad.get(periodWork);
- for (int i = 0; i < per; i++) {
- work.add(iter.next());
- }
- if(periodWork<mod){
- work.add(iter.next());
+ if(aEvent.side.isServer()) {
+ int dim = aEvent.world.provider.dimensionId;
+ pushSyncHandlers.forEach(chunkMetaDataHandler -> {
+ ChunkHashMap data = dimensionWiseMetaChunkData
+ .get(chunkMetaDataHandler.getTagName()).get(dim);
+ int cycle = chunkMetaDataHandler.pushPayloadSpreadPeriod();
+ int epoch = (int) (aEvent.world.getTotalWorldTime() % cycle);
+ ArrayList<ChunkCoordIntPair> work;
+ if (epoch == 0) {
+ int per = data.dirtyBoys.size() / cycle;
+ int mod = data.dirtyBoys.size() % cycle;
+ Iterator<ChunkCoordIntPair> iter = data.dirtyBoys.iterator();
+ for (int periodWork = 0; periodWork < cycle; periodWork++) {
+ work = data.workLoad.get(periodWork);
+ for (int i = 0; i < per; i++) {
+ work.add(iter.next());
+ }
+ if (periodWork < mod) {
+ work.add(iter.next());
+ }
}
+ data.dirtyBoys.clear();
}
- data.dirtyBoys.clear();
- }
- work=data.workLoad.get(epoch);
- chunkMetaDataHandler.pushPayload(dim,work);
- work.clear();
- });
- worldHandlers.forEach(chunkMetaDataHandler ->
- chunkMetaDataHandler.tickWorld(
- dimensionWiseMetaChunkData.get(chunkMetaDataHandler.getTagName()), aEvent));
+ work = data.workLoad.get(epoch);
+ chunkMetaDataHandler.pushPayload(dim, work);
+ work.clear();
+ });
+ worldHandlers.forEach(chunkMetaDataHandler ->
+ chunkMetaDataHandler.tickWorld(
+ dimensionWiseMetaChunkData.get(chunkMetaDataHandler.getTagName()), aEvent));
+ }
}
@SubscribeEvent
@@ -192,23 +194,20 @@ public class ChunkDataHandler {
if(clazz.getMethod("tickPlayer", HashMap.class, TickEvent.PlayerTickEvent.class).getDeclaringClass()!= IChunkMetaDataHandler.class){
playerHandlers.add(handler);
}
- if (clazz.getMethod("requestData", ChunkEvent.Load.class).getDeclaringClass() != IChunkMetaDataHandler.class) {
- clientSyncHandlers.add(handler);
+ if (clazz.getMethod("pushData", int.class, ChunkCoordIntPair.class).getDeclaringClass()!=IChunkMetaDataHandler.class) {
+ pushSyncHandlers.add(handler);
}
- } catch (NoSuchMethodException e) {
- throw new RuntimeException("Cannot register common event handlers!");
- }
- if(FMLCommonHandler.instance().getEffectiveSide().isServer()) {
- try {
- if(clazz.getMethod("tickWorld", HashMap.class, TickEvent.WorldTickEvent.class).getDeclaringClass()!= IChunkMetaDataHandler.class){
- worldHandlers.add(handler);
- }
- } catch (NoSuchMethodException e) {
- throw new RuntimeException("Cannot register client event handlers!");
+ if(clazz.getMethod("tickWorld", HashMap.class, TickEvent.WorldTickEvent.class).getDeclaringClass()!= IChunkMetaDataHandler.class){
+ worldHandlers.add(handler);
}
+ } catch (NoSuchMethodException e) {
+ throw new RuntimeException("Cannot register common event handlers!",e);
}
if(FMLCommonHandler.instance().getEffectiveSide().isClient()) {
try {
+ if (clazz.getMethod("pullData", ChunkEvent.Load.class).getDeclaringClass() != IChunkMetaDataHandler.class) {
+ pullSyncHandlers.add(handler);
+ }
if (clazz.getMethod("tickClient", HashMap.class, TickEvent.ClientTickEvent.class).getDeclaringClass() != IChunkMetaDataHandler.class) {
clientHandlers.add(handler);
}
@@ -216,7 +215,7 @@ public class ChunkDataHandler {
renderHandlers.add(handler);
}
} catch (NoSuchMethodException e) {
- throw new RuntimeException("Cannot register client event handlers!");
+ throw new RuntimeException("Cannot register client event handlers!",e);
}
}
}
diff --git a/src/main/java/com/github/technus/tectech/chunkData/IChunkMetaDataHandler.java b/src/main/java/com/github/technus/tectech/chunkData/IChunkMetaDataHandler.java
index b904f09f33..b5c79a4628 100644
--- a/src/main/java/com/github/technus/tectech/chunkData/IChunkMetaDataHandler.java
+++ b/src/main/java/com/github/technus/tectech/chunkData/IChunkMetaDataHandler.java
@@ -15,10 +15,8 @@ public interface IChunkMetaDataHandler {
void mergeData(NBTTagCompound target, NBTTagCompound loadedData);
NBTTagCompound createData();
@SideOnly(Side.CLIENT)
- default void requestData(ChunkEvent.Load aEvent){}
- @SideOnly(Side.SERVER)
+ default void pullData(ChunkEvent.Load aEvent){}
default void pushData(int world, ChunkCoordIntPair chunk){}
- @SideOnly(Side.SERVER)
default void pushPayload(int world, ArrayList<ChunkCoordIntPair> chunk){
chunk.forEach(chunkCoordIntPair -> pushData(world,chunkCoordIntPair));
}
@@ -30,7 +28,6 @@ public interface IChunkMetaDataHandler {
@SideOnly(Side.CLIENT)
default void tickClient(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.ClientTickEvent aEvent){}
default void tickServer(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.ServerTickEvent event){}
- @SideOnly(Side.SERVER)
default void tickWorld(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.WorldTickEvent aEvent){}
default void tickPlayer(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.PlayerTickEvent aEvent){}
}
diff --git a/src/main/java/com/github/technus/tectech/loader/thing/MachineLoader.java b/src/main/java/com/github/technus/tectech/loader/thing/MachineLoader.java
index f96794c795..9e3caca4db 100644
--- a/src/main/java/com/github/technus/tectech/loader/thing/MachineLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/thing/MachineLoader.java
@@ -1,650 +1,651 @@
-package com.github.technus.tectech.loader.thing;
-
-import com.github.technus.tectech.Reference;
-import com.github.technus.tectech.compatibility.dreamcraft.NoDreamCraftMachineLoader;
-import com.github.technus.tectech.compatibility.thaumcraft.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_essentiaDequantizer;
-import com.github.technus.tectech.compatibility.thaumcraft.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_essentiaQuantizer;
-import com.github.technus.tectech.thing.metaTileEntity.hatch.*;
-import com.github.technus.tectech.thing.metaTileEntity.multi.*;
-import com.github.technus.tectech.thing.metaTileEntity.multi.em_machine.GT_MetaTileEntity_EM_machine;
-import com.github.technus.tectech.thing.metaTileEntity.pipe.GT_MetaTileEntity_Pipe_Data;
-import com.github.technus.tectech.thing.metaTileEntity.pipe.GT_MetaTileEntity_Pipe_EM;
-import com.github.technus.tectech.thing.metaTileEntity.pipe.GT_MetaTileEntity_Pipe_Energy;
-import com.github.technus.tectech.thing.metaTileEntity.single.*;
-import cpw.mods.fml.common.Loader;
-import net.minecraft.init.Blocks;
-import net.minecraft.item.ItemStack;
-
-import static com.github.technus.tectech.CommonValues.V;
-import static com.github.technus.tectech.thing.CustomItemList.*;
-
-/**
- * Created by danie_000 on 16.11.2016.
- */
-public class MachineLoader implements Runnable {
- @Override
- public void run() {
- // ===================================================================================================
- // eM IN
- // ===================================================================================================
-
- eM_in_UV.set(new GT_MetaTileEntity_Hatch_InputElemental(
- 15000, "hatch.emin.tier.08", "UV Elemental Input Hatch", 8).getStackForm(1L));
-
- eM_in_UHV.set(new GT_MetaTileEntity_Hatch_InputElemental(
- 15001, "hatch.emin.tier.09", "UHV Elemental Input Hatch", 9).getStackForm(1L));
-
- eM_in_UEV.set(new GT_MetaTileEntity_Hatch_InputElemental(
- 15002, "hatch.emin.tier.10", "UEV Elemental Input Hatch", 10).getStackForm(1L));
-
- eM_in_UIV.set(new GT_MetaTileEntity_Hatch_InputElemental(
- 15003, "hatch.emin.tier.11", "UIV Elemental Input Hatch", 11).getStackForm(1L));
-
- eM_in_UMV.set(new GT_MetaTileEntity_Hatch_InputElemental(
- 15004, "hatch.emin.tier.12", "UMV Elemental Input Hatch", 12).getStackForm(1L));
-
- eM_in_UXV.set(new GT_MetaTileEntity_Hatch_InputElemental(
- 15005, "hatch.emin.tier.13", "UXV Elemental Input Hatch", 13).getStackForm(1L));
-
- // ===================================================================================================
- // eM OUT
- // ===================================================================================================
-
- eM_out_UV.set(new GT_MetaTileEntity_Hatch_OutputElemental(
- 15010, "hatch.emout.tier.08", "UV Elemental Output Hatch", 8).getStackForm(1L));
-
- eM_out_UHV.set(new GT_MetaTileEntity_Hatch_OutputElemental(
- 15011, "hatch.emout.tier.09", "UHV Elemental Output Hatch", 9).getStackForm(1L));
-
- eM_out_UEV.set(new GT_MetaTileEntity_Hatch_OutputElemental(
- 15012, "hatch.emout.tier.10", "UEV Elemental Output Hatch", 10).getStackForm(1L));
-
- eM_out_UIV.set(new GT_MetaTileEntity_Hatch_OutputElemental(
- 15013, "hatch.emout.tier.11", "UIV Elemental Output Hatch", 11).getStackForm(1L));
-
- eM_out_UMV.set(new GT_MetaTileEntity_Hatch_OutputElemental(
- 15014, "hatch.emout.tier.12", "UMV Elemental Output Hatch", 12).getStackForm(1L));
-
- eM_out_UXV.set(new GT_MetaTileEntity_Hatch_OutputElemental(
- 15015, "hatch.emout.tier.13", "UXV Elemental Output Hatch", 13).getStackForm(1L));
-
- // ===================================================================================================
- // eM Waste OUT
- // ===================================================================================================
-
- eM_muffler_UV.set(new GT_MetaTileEntity_Hatch_OverflowElemental(
- 15020, "hatch.emmuffler.tier.08", "UV Overflow Output Hatch", 8, 1e10f).getStackForm(1L));
-
- eM_muffler_UHV.set(new GT_MetaTileEntity_Hatch_OverflowElemental(
- 15021, "hatch.emmuffler.tier.09", "UHV Overflow Output Hatch", 9, 5e10f).getStackForm(1L));
-
- eM_muffler_UEV.set(new GT_MetaTileEntity_Hatch_OverflowElemental(
- 15022, "hatch.emmuffler.tier.10", "UEV Overflow Output Hatch", 10, 25e10f).getStackForm(1L));
-
- eM_muffler_UIV.set(new GT_MetaTileEntity_Hatch_OverflowElemental(
- 15023, "hatch.emmuffler.tier.11", "UIV Overflow Output Hatch", 11, 125e10f).getStackForm(1L));
-
- eM_muffler_UMV.set(new GT_MetaTileEntity_Hatch_OverflowElemental(
- 15024, "hatch.emmuffler.tier.12", "UMV Overflow Output Hatch", 12, 125e11f).getStackForm(1L));
-
- eM_muffler_UXV.set(new GT_MetaTileEntity_Hatch_OverflowElemental(
- 15025, "hatch.emmuffler.tier.13", "UXV Overflow Output Hatch", 13, 125e12f).getStackForm(1L));
-
- // ===================================================================================================
- // Multi AMP Power INPUTS
- // ===================================================================================================
-
- eM_energymulti4_IV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15100, "hatch.energymulti04.tier.05", "IV 4A Energy Hatch", 5, 4).getStackForm(1L));
- eM_energymulti16_IV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15110, "hatch.energymulti16.tier.05", "IV 16A Energy Hatch", 5, 16).getStackForm(1L));
- eM_energymulti64_IV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15120, "hatch.energymulti64.tier.05", "IV 64A Energy Hatch", 5, 64).getStackForm(1L));
-
- eM_energymulti4_LuV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15101, "hatch.energymulti04.tier.06", "LuV 4A Energy Hatch", 6, 4).getStackForm(1L));
- eM_energymulti16_LuV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15111, "hatch.energymulti16.tier.06", "LuV 16A Energy Hatch", 6, 16).getStackForm(1L));
- eM_energymulti64_LuV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15121, "hatch.energymulti64.tier.06", "LuV 64A Energy Hatch", 6, 64).getStackForm(1L));
-
- eM_energymulti4_ZPM.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15102, "hatch.energymulti04.tier.07", "ZPM 4A Energy Hatch", 7, 4).getStackForm(1L));
- eM_energymulti16_ZPM.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15112, "hatch.energymulti16.tier.07", "ZPM 16A Energy Hatch", 7, 16).getStackForm(1L));
- eM_energymulti64_ZPM.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15122, "hatch.energymulti64.tier.07", "ZPM 64A Energy Hatch", 7, 64).getStackForm(1L));
-
- eM_energymulti4_UV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15103, "hatch.energymulti04.tier.08", "UV 4A Energy Hatch", 8, 4).getStackForm(1L));
- eM_energymulti16_UV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15113, "hatch.energymulti16.tier.08", "UV 16A Energy Hatch", 8, 16).getStackForm(1L));
- eM_energymulti64_UV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15123, "hatch.energymulti64.tier.08", "UV 64A Energy Hatch", 8, 64).getStackForm(1L));
-
- eM_energymulti4_UHV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15104, "hatch.energymulti04.tier.09", "UHV 4A Energy Hatch", 9, 4).getStackForm(1L));
- eM_energymulti16_UHV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15114, "hatch.energymulti16.tier.09", "UHV 16A Energy Hatch", 9, 16).getStackForm(1L));
- eM_energymulti64_UHV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15124, "hatch.energymulti64.tier.09", "UHV 64A Energy Hatch", 9, 64).getStackForm(1L));
-
- eM_energymulti4_UEV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15105, "hatch.energymulti04.tier.10", "UEV 4A Energy Hatch", 10, 4).getStackForm(1L));
- eM_energymulti16_UEV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15115, "hatch.energymulti16.tier.10", "UEV 16A Energy Hatch", 10, 16).getStackForm(1L));
- eM_energymulti64_UEV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15125, "hatch.energymulti64.tier.10", "UEV 64A Energy Hatch", 10, 64).getStackForm(1L));
-
- eM_energymulti4_UIV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15106, "hatch.energymulti04.tier.11", "UIV 4A Energy Hatch", 11, 4).getStackForm(1L));
- eM_energymulti16_UIV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15116, "hatch.energymulti16.tier.11", "UIV 16A Energy Hatch", 11, 16).getStackForm(1L));
- eM_energymulti64_UIV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15126, "hatch.energymulti64.tier.11", "UIV 64A Energy Hatch", 11, 64).getStackForm(1L));
-
- eM_energymulti4_UMV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15107, "hatch.energymulti04.tier.12", "UMV 4A Energy Hatch", 12, 4).getStackForm(1L));
- eM_energymulti16_UMV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15117, "hatch.energymulti16.tier.12", "UMV 16A Energy Hatch", 12, 16).getStackForm(1L));
- eM_energymulti64_UMV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15127, "hatch.energymulti64.tier.12", "UMV 64A Energy Hatch", 12, 64).getStackForm(1L));
-
- eM_energymulti4_UXV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15108, "hatch.energymulti04.tier.13", "UXV 4A Energy Hatch", 13, 4).getStackForm(1L));
- eM_energymulti16_UXV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15118, "hatch.energymulti16.tier.13", "UXV 16A Energy Hatch", 13, 16).getStackForm(1L));
- eM_energymulti64_UXV.set(new GT_MetaTileEntity_Hatch_EnergyMulti(
- 15128, "hatch.energymulti64.tier.13", "UXV 64A Energy Hatch", 13, 64).getStackForm(1L));
-
-
- // ===================================================================================================
- // Multi AMP Laser INPUTS
- // ===================================================================================================
-
- eM_energytunnel1_IV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15130, "hatch.energytunnel1.tier.05", "IV 256/t Laser Target Hatch", 5, 256).getStackForm(1L));
- eM_energytunnel2_IV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15140, "hatch.energytunnel2.tier.05", "IV 1024/t Laser Target Hatch", 5, 1024).getStackForm(1L));
- eM_energytunnel3_IV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15150, "hatch.energytunnel3.tier.05", "IV 4096/t Laser Target Hatch", 5, 4096).getStackForm(1L));
- eM_energytunnel4_IV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15160, "hatch.energytunnel4.tier.05", "IV 16384/t Laser Target Hatch", 5, 16384).getStackForm(1L));
- eM_energytunnel5_IV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15170, "hatch.energytunnel5.tier.05", "IV 65536/t Laser Target Hatch", 5, 65536).getStackForm(1L));
- eM_energytunnel6_IV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15180, "hatch.energytunnel6.tier.05", "IV 262144/t Laser Target Hatch", 5, 262144).getStackForm(1L));
- eM_energytunnel7_IV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15190, "hatch.energytunnel7.tier.05", "IV 1048576/t Laser Target Hatch", 5, 1048576).getStackForm(1L));
-
- eM_energytunnel1_LuV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15131, "hatch.energytunnel1.tier.06", "LuV 256/t Laser Target Hatch", 6, 256).getStackForm(1L));
- eM_energytunnel2_LuV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15141, "hatch.energytunnel2.tier.06", "LuV 1024/t Laser Target Hatch", 6, 1024).getStackForm(1L));
- eM_energytunnel3_LuV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15151, "hatch.energytunnel3.tier.06", "LuV 4096/t Laser Target Hatch", 6, 4096).getStackForm(1L));
- eM_energytunnel4_LuV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15161, "hatch.energytunnel4.tier.06", "LuV 16384/t Laser Target Hatch", 6, 16384).getStackForm(1L));
- eM_energytunnel5_LuV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15171, "hatch.energytunnel5.tier.06", "LuV 65536/t Laser Target Hatch", 6, 65536).getStackForm(1L));
- eM_energytunnel6_LuV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15181, "hatch.energytunnel6.tier.06", "LuV 262144/t Laser Target Hatch", 6, 262144).getStackForm(1L));
- eM_energytunnel7_LuV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15191, "hatch.energytunnel7.tier.06", "LuV 1048576/t Laser Target Hatch", 6, 1048576).getStackForm(1L));
-
- eM_energytunnel1_ZPM.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15132, "hatch.energytunnel1.tier.07", "ZPM 256/t Laser Target Hatch", 7, 256).getStackForm(1L));
- eM_energytunnel2_ZPM.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15142, "hatch.energytunnel2.tier.07", "ZPM 1024/t Laser Target Hatch", 7, 1024).getStackForm(1L));
- eM_energytunnel3_ZPM.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15152, "hatch.energytunnel3.tier.07", "ZPM 4096/t Laser Target Hatch", 7, 4096).getStackForm(1L));
- eM_energytunnel4_ZPM.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15162, "hatch.energytunnel4.tier.07", "ZPM 16384/t Laser Target Hatch", 7, 16384).getStackForm(1L));
- eM_energytunnel5_ZPM.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15172, "hatch.energytunnel5.tier.07", "ZPM 65536/t Laser Target Hatch", 7, 65536).getStackForm(1L));
- eM_energytunnel6_ZPM.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15182, "hatch.energytunnel6.tier.07", "ZPM 262144/t Laser Target Hatch", 7, 262144).getStackForm(1L));
- eM_energytunnel7_ZPM.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15192, "hatch.energytunnel7.tier.07", "ZPM 1048576/t Laser Target Hatch", 7, 1048576).getStackForm(1L));
-
- eM_energytunnel1_UV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15133, "hatch.energytunnel1.tier.08", "UV 256/t Laser Target Hatch", 8, 256).getStackForm(1L));
- eM_energytunnel2_UV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15143, "hatch.energytunnel2.tier.08", "UV 1024/t Laser Target Hatch", 8, 1024).getStackForm(1L));
- eM_energytunnel3_UV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15153, "hatch.energytunnel3.tier.08", "UV 4096/t Laser Target Hatch", 8, 4096).getStackForm(1L));
- eM_energytunnel4_UV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15163, "hatch.energytunnel4.tier.08", "UV 16384/t Laser Target Hatch", 8, 16384).getStackForm(1L));
- eM_energytunnel5_UV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15173, "hatch.energytunnel5.tier.08", "UV 65536/t Laser Target Hatch", 8, 65536).getStackForm(1L));
- eM_energytunnel6_UV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15183, "hatch.energytunnel6.tier.08", "UV 262144/t Laser Target Hatch", 8, 262144).getStackForm(1L));
- eM_energytunnel7_UV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15193, "hatch.energytunnel7.tier.08", "UV 1048576/t Laser Target Hatch", 8, 1048576).getStackForm(1L));
-
- eM_energytunnel1_UHV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15134, "hatch.energytunnel1.tier.09", "UHV 256/t Laser Target Hatch", 9, 256).getStackForm(1L));
- eM_energytunnel2_UHV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15144, "hatch.energytunnel2.tier.09", "UHV 1024/t Laser Target Hatch", 9, 1024).getStackForm(1L));
- eM_energytunnel3_UHV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15154, "hatch.energytunnel3.tier.09", "UHV 4096/t Laser Target Hatch", 9, 4096).getStackForm(1L));
- eM_energytunnel4_UHV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15164, "hatch.energytunnel4.tier.09", "UHV 16384/t Laser Target Hatch", 9, 16384).getStackForm(1L));
- eM_energytunnel5_UHV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15174, "hatch.energytunnel5.tier.09", "UHV 65536/t Laser Target Hatch", 9, 65536).getStackForm(1L));
- eM_energytunnel6_UHV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15184, "hatch.energytunnel6.tier.09", "UHV 262144/t Laser Target Hatch", 9, 262144).getStackForm(1L));
- eM_energytunnel7_UHV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15194, "hatch.energytunnel7.tier.09", "UHV 1048576/t Laser Target Hatch", 9, 1048576).getStackForm(1L));
-
- eM_energytunnel1_UEV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15135, "hatch.energytunnel1.tier.10", "UEV 256/t Laser Target Hatch", 10, 256).getStackForm(1L));
- eM_energytunnel2_UEV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15145, "hatch.energytunnel2.tier.10", "UEV 1024/t Laser Target Hatch", 10, 1024).getStackForm(1L));
- eM_energytunnel3_UEV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15155, "hatch.energytunnel3.tier.10", "UEV 4096/t Laser Target Hatch", 10, 4096).getStackForm(1L));
- eM_energytunnel4_UEV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15165, "hatch.energytunnel4.tier.10", "UEV 16384/t Laser Target Hatch", 10, 16384).getStackForm(1L));
- eM_energytunnel5_UEV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15175, "hatch.energytunnel5.tier.10", "UEV 65536/t Laser Target Hatch", 10, 65536).getStackForm(1L));
- eM_energytunnel6_UEV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15185, "hatch.energytunnel6.tier.10", "UEV 262144/t Laser Target Hatch", 10, 262144).getStackForm(1L));
- eM_energytunnel7_UEV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15195, "hatch.energytunnel7.tier.10", "UEV 1048576/t Laser Target Hatch", 10, 1048576).getStackForm(1L));
-
- eM_energytunnel1_UIV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15136, "hatch.energytunnel1.tier.11", "UIV 256/t Laser Target Hatch", 11, 256).getStackForm(1L));
- eM_energytunnel2_UIV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15146, "hatch.energytunnel2.tier.11", "UIV 1024/t Laser Target Hatch", 11, 1024).getStackForm(1L));
- eM_energytunnel3_UIV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15156, "hatch.energytunnel3.tier.11", "UIV 4096/t Laser Target Hatch", 11, 4096).getStackForm(1L));
- eM_energytunnel4_UIV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15166, "hatch.energytunnel4.tier.11", "UIV 16384/t Laser Target Hatch", 11, 16384).getStackForm(1L));
- eM_energytunnel5_UIV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15176, "hatch.energytunnel5.tier.11", "UIV 65536/t Laser Target Hatch", 11, 65536).getStackForm(1L));
- eM_energytunnel6_UIV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15186, "hatch.energytunnel6.tier.11", "UIV 262144/t Laser Target Hatch", 11, 262144).getStackForm(1L));
- eM_energytunnel7_UIV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15196, "hatch.energytunnel7.tier.11", "UIV 1048576/t Laser Target Hatch", 11, 1048576).getStackForm(1L));
-
- eM_energytunnel1_UMV.set(new GT_MetaTileEntity_Hatch_EnergyTunnel(
- 15137