aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/dreamcraft/DreamCraftRecipeLoader.java116
-rw-r--r--src/main/java/com/github/technus/tectech/loader/thing/MachineLoader.java234
-rw-r--r--src/main/java/com/github/technus/tectech/thing/CustomItemList.java33
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/Textures.java55
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_WirelessMulti.java213
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_16A.pngbin0 -> 6612 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_16A.png.mcmeta1
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_4A.pngbin0 -> 7917 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_4A.png.mcmeta1
-rw-r--r--src/main/resources/assets/tectech/lang/en_US.lang68
10 files changed, 718 insertions, 3 deletions
diff --git a/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/DreamCraftRecipeLoader.java b/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/DreamCraftRecipeLoader.java
index 9a4de84b6d..ac0a8cfdd4 100644
--- a/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/DreamCraftRecipeLoader.java
+++ b/src/main/java/com/github/technus/tectech/compatibility/dreamcraft/DreamCraftRecipeLoader.java
@@ -6035,6 +6035,27 @@ public class DreamCraftRecipeLoader {
getItemContainer("Hatch_Energy_UEV").get(1L), getItemContainer("Hatch_Energy_UIV").get(1L),
getItemContainer("Hatch_Energy_UMV").get(1L), getItemContainer("Hatch_Energy_UXV").get(1L) };
+ ItemStack[] energyHatches_4A = { CustomItemList.eM_energyMulti4_EV.get(1),
+ CustomItemList.eM_energyMulti4_IV.get(1), CustomItemList.eM_energyMulti4_LuV.get(1),
+ CustomItemList.eM_energyMulti4_ZPM.get(1), CustomItemList.eM_energyMulti4_UV.get(1),
+ CustomItemList.eM_energyMulti4_UHV.get(1), CustomItemList.eM_energyMulti4_UEV.get(1),
+ CustomItemList.eM_energyMulti4_UIV.get(1), CustomItemList.eM_energyMulti4_UMV.get(1),
+ CustomItemList.eM_energyMulti4_UXV.get(1) };
+
+ ItemStack[] energyHatches_16A = { CustomItemList.eM_energyMulti16_EV.get(1),
+ CustomItemList.eM_energyMulti16_IV.get(1), CustomItemList.eM_energyMulti16_LuV.get(1),
+ CustomItemList.eM_energyMulti16_ZPM.get(1), CustomItemList.eM_energyMulti16_UV.get(1),
+ CustomItemList.eM_energyMulti16_UHV.get(1), CustomItemList.eM_energyMulti16_UEV.get(1),
+ CustomItemList.eM_energyMulti16_UIV.get(1), CustomItemList.eM_energyMulti16_UMV.get(1),
+ CustomItemList.eM_energyMulti16_UXV.get(1) };
+
+ ItemStack[] energyHatches_64A = { CustomItemList.eM_energyMulti64_EV.get(1),
+ CustomItemList.eM_energyMulti64_IV.get(1), CustomItemList.eM_energyMulti64_LuV.get(1),
+ CustomItemList.eM_energyMulti64_ZPM.get(1), CustomItemList.eM_energyMulti64_UV.get(1),
+ CustomItemList.eM_energyMulti64_UHV.get(1), CustomItemList.eM_energyMulti64_UEV.get(1),
+ CustomItemList.eM_energyMulti64_UIV.get(1), CustomItemList.eM_energyMulti64_UMV.get(1),
+ CustomItemList.eM_energyMulti64_UXV.get(1) };
+
ItemStack[] dynamoHatches = { ItemList.Hatch_Dynamo_ULV.get(1), ItemList.Hatch_Dynamo_LV.get(1),
ItemList.Hatch_Dynamo_MV.get(1), ItemList.Hatch_Dynamo_HV.get(1), ItemList.Hatch_Dynamo_EV.get(1),
ItemList.Hatch_Dynamo_IV.get(1), ItemList.Hatch_Dynamo_LuV.get(1), ItemList.Hatch_Dynamo_ZPM.get(1),
@@ -6057,7 +6078,7 @@ public class DreamCraftRecipeLoader {
new Object[] { OrePrefixes.circuit.get(Materials.Quantum), 4L }, // MAX (Technically not MAX, can be
// changed once MAX circuits become
// craftable)
- new Object[] { OrePrefixes.circuit.get(Materials.Quantum), 16L }, // MAX (Technically not MAX, can be
+ new Object[] { OrePrefixes.circuit.get(Materials.Quantum), 16L } // MAX (Technically not MAX, can be
// changed once MAX circuits become
// craftable)
};
@@ -6069,7 +6090,28 @@ public class DreamCraftRecipeLoader {
ItemList.Wireless_Hatch_Energy_ZPM.get(1), ItemList.Wireless_Hatch_Energy_UV.get(1),
ItemList.Wireless_Hatch_Energy_UHV.get(1), ItemList.Wireless_Hatch_Energy_UEV.get(1),
ItemList.Wireless_Hatch_Energy_UIV.get(1), ItemList.Wireless_Hatch_Energy_UMV.get(1),
- ItemList.Wireless_Hatch_Energy_UXV.get(1), };
+ ItemList.Wireless_Hatch_Energy_UXV.get(1) };
+
+ ItemStack[] wirelessHatches_4A = { CustomItemList.eM_energyWirelessMulti4_EV.get(1),
+ CustomItemList.eM_energyWirelessMulti4_IV.get(1), CustomItemList.eM_energyWirelessMulti4_LuV.get(1),
+ CustomItemList.eM_energyWirelessMulti4_ZPM.get(1), CustomItemList.eM_energyWirelessMulti4_UV.get(1),
+ CustomItemList.eM_energyWirelessMulti4_UHV.get(1), CustomItemList.eM_energyWirelessMulti4_UEV.get(1),
+ CustomItemList.eM_energyWirelessMulti4_UIV.get(1), CustomItemList.eM_energyWirelessMulti4_UMV.get(1),
+ CustomItemList.eM_energyWirelessMulti4_UXV.get(1) };
+
+ ItemStack[] wirelessHatches_16A = { CustomItemList.eM_energyWirelessMulti16_EV.get(1),
+ CustomItemList.eM_energyWirelessMulti16_IV.get(1), CustomItemList.eM_energyWirelessMulti16_LuV.get(1),
+ CustomItemList.eM_energyWirelessMulti16_ZPM.get(1), CustomItemList.eM_energyWirelessMulti16_UV.get(1),
+ CustomItemList.eM_energyWirelessMulti16_UHV.get(1), CustomItemList.eM_energyWirelessMulti16_UEV.get(1),
+ CustomItemList.eM_energyWirelessMulti16_UIV.get(1), CustomItemList.eM_energyWirelessMulti16_UMV.get(1),
+ CustomItemList.eM_energyWirelessMulti16_UXV.get(1) };
+
+ ItemStack[] wirelessHatches_64A = { CustomItemList.eM_energyWirelessMulti64_EV.get(1),
+ CustomItemList.eM_energyWirelessMulti64_IV.get(1), CustomItemList.eM_energyWirelessMulti64_LuV.get(1),
+ CustomItemList.eM_energyWirelessMulti64_ZPM.get(1), CustomItemList.eM_energyWirelessMulti64_UV.get(1),
+ CustomItemList.eM_energyWirelessMulti64_UHV.get(1), CustomItemList.eM_energyWirelessMulti64_UEV.get(1),
+ CustomItemList.eM_energyWirelessMulti64_UIV.get(1), CustomItemList.eM_energyWirelessMulti64_UMV.get(1),
+ CustomItemList.eM_energyWirelessMulti64_UXV.get(1) };
ItemStack[] wirelessDynamos = { ItemList.Wireless_Dynamo_Energy_ULV.get(1),
ItemList.Wireless_Dynamo_Energy_LV.get(1), ItemList.Wireless_Dynamo_Energy_MV.get(1),
@@ -6078,7 +6120,7 @@ public class DreamCraftRecipeLoader {
ItemList.Wireless_Dynamo_Energy_ZPM.get(1), ItemList.Wireless_Dynamo_Energy_UV.get(1),
ItemList.Wireless_Dynamo_Energy_UHV.get(1), ItemList.Wireless_Dynamo_Energy_UEV.get(1),
ItemList.Wireless_Dynamo_Energy_UIV.get(1), ItemList.Wireless_Dynamo_Energy_UMV.get(1),
- ItemList.Wireless_Dynamo_Energy_UXV.get(1), };
+ ItemList.Wireless_Dynamo_Energy_UXV.get(1) };
// ------------------------ Wireless EU hatches ------------------------
@@ -6102,6 +6144,74 @@ public class DreamCraftRecipeLoader {
recipeEuPerTick);
}
+ // ------------------------ 4A Wireless EU hatches ------------------------
+
+ for (int i = 0; i < wirelessHatches_4A.length; i++) {
+
+ TT_recipeAdder.addResearchableAssemblylineRecipe(
+ energyHatches_4A[i],
+ totalComputation * 4,
+ compPerSecond * 4,
+ researchEuPerTick,
+ researchAmperage * 2,
+ new Object[] { energyHatches_4A[i], getModItem("GoodGenerator", "compactFusionCoil", 1, 1),
+ ItemList.Casing_Coil_Superconductor.get(1), CustomItemList.Machine_Multi_Transformer.get(1),
+ CustomItemList.eM_Power.get(4),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SpaceTime, 4),
+ GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.WhiteDwarfMatter, 1),
+ circuitsTierPlusTwo[i + 4], ItemList.EnergisedTesseract.get(1) },
+ new FluidStack[] { new FluidStack(solderUEV, 1_296 * 4), Materials.ExcitedDTEC.getFluid(500L * 4) },
+ wirelessHatches_4A[i],
+ recipeDurationTicks,
+ recipeEuPerTick);
+ }
+
+ // ------------------------ 16A Wireless EU hatches ------------------------
+
+ for (int i = 0; i < wirelessHatches_16A.length; i++) {
+
+ TT_recipeAdder.addResearchableAssemblylineRecipe(
+ energyHatches_16A[i],
+ totalComputation * 16,
+ compPerSecond * 16,
+ researchEuPerTick,
+ researchAmperage * 4,
+ new Object[] { energyHatches_16A[i], getModItem("GoodGenerator", "compactFusionCoil", 1, 2),
+ ItemList.Casing_Coil_Superconductor.get(1), CustomItemList.Machine_Multi_Transformer.get(1),
+ CustomItemList.eM_Power.get(16),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SpaceTime, 16),
+ GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.BlackDwarfMatter, 1),
+ circuitsTierPlusTwo[i + 4], ItemList.EnergisedTesseract.get(1) },
+ new FluidStack[] { new FluidStack(solderUEV, 1_296 * 16),
+ Materials.ExcitedDTEC.getFluid(500L * 16) },
+ wirelessHatches_16A[i],
+ recipeDurationTicks,
+ recipeEuPerTick);
+ }
+
+ // ------------------------ 64A Wireless EU hatches ------------------------
+
+ for (int i = 0; i < wirelessHatches_64A.length; i++) {
+
+ TT_recipeAdder.addResearchableAssemblylineRecipe(
+ energyHatches_64A[i],
+ totalComputation * 64,
+ compPerSecond * 64,
+ researchEuPerTick,
+ researchAmperage * 8,
+ new Object[] { energyHatches_64A[i], getModItem("GoodGenerator", "compactFusionCoil", 1, 3),
+ ItemList.Casing_Coil_Superconductor.get(1), CustomItemList.Machine_Multi_Transformer.get(1),
+ CustomItemList.eM_Power.get(64),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt01, Materials.SpaceTime, 64),
+ GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Universium, 1),
+ circuitsTierPlusTwo[i + 4], ItemList.EnergisedTesseract.get(1) },
+ new FluidStack[] { new FluidStack(solderUEV, 1_296 * 64),
+ Materials.ExcitedDTEC.getFluid(500L * 64) },
+ wirelessHatches_64A[i],
+ recipeDurationTicks,
+ recipeEuPerTick);
+ }
+
// ------------------------ Wireless EU dynamos ------------------------
for (int i = 0; i < wirelessHatches.length; i++) {
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 300b193dc6..99844a034b 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
@@ -418,6 +418,240 @@ public class MachineLoader implements Runnable {
"UXV 64A Energy Hatch",
13,
64).getStackForm(1L));
+ // ===================================================================================================
+ // Multi AMP Wireless INPUTS
+ // ===================================================================================================
+ eM_energyWirelessMulti4_EV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15065,
+ "hatch.energywirelessmulti04.tier.04",
+ "EV 4A Wireless Energy Hatch",
+ 4,
+ 4).getStackForm(1L));
+ eM_energyWirelessMulti16_EV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15066,
+ "hatch.energywirelessmulti16.tier.04",
+ "EV 16A Wireless Energy Hatch",
+ 4,
+ 16).getStackForm(1L));
+ eM_energyWirelessMulti64_EV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15067,
+ "hatch.energywirelessmulti64.tier.04",
+ "EV 64A Wireless Energy Hatch",
+ 4,
+ 64).getStackForm(1L));
+ eM_energyWirelessMulti4_IV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15068,
+ "hatch.energywirelessmulti04.tier.05",
+ "IV 4A Wireless Energy Hatch",
+ 5,
+ 4).getStackForm(1L));
+ eM_energyWirelessMulti16_IV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15069,
+ "hatch.energywirelessmulti16.tier.05",
+ "IV 16A Wireless Energy Hatch",
+ 5,
+ 16).getStackForm(1L));
+ eM_energyWirelessMulti64_IV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15070,
+ "hatch.energywirelessmulti64.tier.05",
+ "IV 64A Wireless Energy Hatch",
+ 5,
+ 64).getStackForm(1L));
+ eM_energyWirelessMulti4_LuV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15071,
+ "hatch.energywirelessmulti04.tier.06",
+ "LuV 4A Wireless Energy Hatch",
+ 6,
+ 4).getStackForm(1L));
+ eM_energyWirelessMulti16_LuV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15072,
+ "hatch.energywirelessmulti16.tier.06",
+ "LuV 16A Wireless Energy Hatch",
+ 6,
+ 16).getStackForm(1L));
+ eM_energyWirelessMulti64_LuV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15073,
+ "hatch.energywirelessmulti64.tier.06",
+ "LuV 64A Wireless Energy Hatch",
+ 6,
+ 64).getStackForm(1L));
+ eM_energyWirelessMulti4_ZPM.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15074,
+ "hatch.energywirelessmulti04.tier.07",
+ "ZPM 4A Wireless Energy Hatch",
+ 7,
+ 4).getStackForm(1L));
+ eM_energyWirelessMulti16_ZPM.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15075,
+ "hatch.energywirelessmulti16.tier.07",
+ "ZPM 16A Wireless Energy Hatch",
+ 7,
+ 16).getStackForm(1L));
+ eM_energyWirelessMulti64_ZPM.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15076,
+ "hatch.energywirelessmulti64.tier.07",
+ "ZPM 64A Wireless Energy Hatch",
+ 7,
+ 64).getStackForm(1L));
+ eM_energyWirelessMulti4_UV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15077,
+ "hatch.energywirelessmulti04.tier.08",
+ "UV 4A Wireless Energy Hatch",
+ 8,
+ 4).getStackForm(1L));
+ eM_energyWirelessMulti16_UV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15078,
+ "hatch.energywirelessmulti16.tier.08",
+ "UV 16A Wireless Energy Hatch",
+ 8,
+ 16).getStackForm(1L));
+ eM_energyWirelessMulti64_UV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15079,
+ "hatch.energywirelessmulti64.tier.08",
+ "UV 64A Wireless Energy Hatch",
+ 8,
+ 64).getStackForm(1L));
+ eM_energyWirelessMulti4_UHV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15080,
+ "hatch.energywirelessmulti04.tier.09",
+ "UHV 4A Wireless Energy Hatch",
+ 9,
+ 4).getStackForm(1L));
+ eM_energyWirelessMulti16_UHV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15081,
+ "hatch.energywirelessmulti16.tier.09",
+ "UHV 16A Wireless Energy Hatch",
+ 9,
+ 16).getStackForm(1L));
+ eM_energyWirelessMulti64_UHV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15082,
+ "hatch.energywirelessmulti64.tier.09",
+ "UHV 64A Wireless Energy Hatch",
+ 9,
+ 64).getStackForm(1L));
+ eM_energyWirelessMulti4_UEV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15083,
+ "hatch.energywirelessmulti04.tier.10",
+ "UEV 4A Wireless Energy Hatch",
+ 10,
+ 4).getStackForm(1L));
+ eM_energyWirelessMulti16_UEV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15084,
+ "hatch.energywirelessmulti16.tier.10",
+ "UEV 16A Wireless Energy Hatch",
+ 10,
+ 16).getStackForm(1L));
+ eM_energyWirelessMulti64_UEV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15085,
+ "hatch.energywirelessmulti64.tier.10",
+ "UEV 64A Wireless Energy Hatch",
+ 10,
+ 64).getStackForm(1L));
+ eM_energyWirelessMulti4_UIV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15086,
+ "hatch.energywirelessmulti04.tier.11",
+ "UIV 4A Wireless Energy Hatch",
+ 11,
+ 4).getStackForm(1L));
+ eM_energyWirelessMulti16_UIV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15087,
+ "hatch.energywirelessmulti16.tier.11",
+ "UIV 16A Wireless Energy Hatch",
+ 11,
+ 16).getStackForm(1L));
+ eM_energyWirelessMulti64_UIV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15088,
+ "hatch.energywirelessmulti64.tier.11",
+ "UIV 64A Wireless Energy Hatch",
+ 11,
+ 64).getStackForm(1L));
+ eM_energyWirelessMulti4_UMV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15089,
+ "hatch.energywirelessmulti04.tier.12",
+ "UMV 4A Wireless Energy Hatch",
+ 12,
+ 4).getStackForm(1L));
+ eM_energyWirelessMulti16_UMV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15090,
+ "hatch.energywirelessmulti16.tier.12",
+ "UMV 16A Wireless Energy Hatch",
+ 12,
+ 16).getStackForm(1L));
+ eM_energyWirelessMulti64_UMV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15091,
+ "hatch.energywirelessmulti64.tier.12",
+ "UMV 64A Wireless Energy Hatch",
+ 12,
+ 64).getStackForm(1L));
+ eM_energyWirelessMulti4_UXV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15092,
+ "hatch.energywirelessmulti04.tier.13",
+ "UXV 4A Wireless Energy Hatch",
+ 13,
+ 4).getStackForm(1L));
+ eM_energyWirelessMulti16_UXV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15093,
+ "hatch.energywirelessmulti16.tier.13",
+ "UXV 16A Wireless Energy Hatch",
+ 13,
+ 16).getStackForm(1L));
+ eM_energyWirelessMulti64_UXV.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15094,
+ "hatch.energywirelessmulti64.tier.13",
+ "UXV 64A Wireless Energy Hatch",
+ 13,
+ 64).getStackForm(1L));
+ eM_energyWirelessMulti4_MAX.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15095,
+ "hatch.energywirelessmulti04.tier.14",
+ "MAX 4A Wireless Energy Hatch",
+ 14,
+ 4).getStackForm(1L));
+ eM_energyWirelessMulti16_MAX.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15096,
+ "hatch.energywirelessmulti16.tier.14",
+ "MAX 16A Wireless Energy Hatch",
+ 14,
+ 16).getStackForm(1L));
+ eM_energyWirelessMulti64_MAX.set(
+ new GT_MetaTileEntity_Hatch_WirelessMulti(
+ 15097,
+ "hatch.energywirelessmulti64.tier.14",
+ "MAX 64A Wireless Energy Hatch",
+ 14,
+ 64).getStackForm(1L));
// ===================================================================================================
// Multi AMP Laser INPUTS
diff --git a/src/main/java/com/github/technus/tectech/thing/CustomItemList.java b/src/main/java/com/github/technus/tectech/thing/CustomItemList.java
index d33d8a20a1..ce7fa23f60 100644
--- a/src/main/java/com/github/technus/tectech/thing/CustomItemList.java
+++ b/src/main/java/com/github/technus/tectech/thing/CustomItemList.java
@@ -198,6 +198,39 @@ public enum CustomItemList implements IItemContainer {
eM_energyMulti4_UXV,
eM_energyMulti16_UXV,
eM_energyMulti64_UXV,
+ eM_energyWirelessMulti4_EV,
+ eM_energyWirelessMulti16_EV,
+ eM_energyWirelessMulti64_EV,
+ eM_energyWirelessMulti4_IV,
+ eM_energyWirelessMulti16_IV,
+ eM_energyWirelessMulti64_IV,
+ eM_energyWirelessMulti4_LuV,
+ eM_energyWirelessMulti16_LuV,
+ eM_energyWirelessMulti64_LuV,
+ eM_energyWirelessMulti4_ZPM,
+ eM_energyWirelessMulti16_ZPM,
+ eM_energyWirelessMulti64_ZPM,
+ eM_energyWirelessMulti4_UV,
+ eM_energyWirelessMulti16_UV,
+ eM_energyWirelessMulti64_UV,
+ eM_energyWirelessMulti4_UHV,
+ eM_energyWirelessMulti16_UHV,
+ eM_energyWirelessMulti64_UHV,
+ eM_energyWirelessMulti4_UEV,
+ eM_energyWirelessMulti16_UEV,
+ eM_energyWirelessMulti64_UEV,
+ eM_energyWirelessMulti4_UIV,
+ eM_energyWirelessMulti16_UIV,
+ eM_energyWirelessMulti64_UIV,
+ eM_energyWirelessMulti4_UMV,
+ eM_energyWirelessMulti16_UMV,
+ eM_energyWirelessMulti64_UMV,
+ eM_energyWirelessMulti4_UXV,
+ eM_energyWirelessMulti16_UXV,
+ eM_energyWirelessMulti64_UXV,
+ eM_energyWirelessMulti4_MAX,
+ eM_energyWirelessMulti16_MAX,
+ eM_energyWirelessMulti64_MAX,
eM_energyTunnel1_IV,
eM_energyTunnel2_IV,
eM_energyTunnel3_IV,
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/Textures.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/Textures.java
index 604160cdd5..04df5d23ad 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/Textures.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/Textures.java
@@ -8,6 +8,7 @@ import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.ITexture;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.objects.GT_SidedTexture;
+import gregtech.api.render.TextureFactory;
public class Textures {
@@ -15,6 +16,10 @@ public class Textures {
private static final IIconContainer OVERLAY_ENERGY_OUT_POWER = new CustomIcon("iconsets/OVERLAY_ENERGY_OUT_POWER");
private static final IIconContainer OVERLAY_ENERGY_IN_LASER = new CustomIcon("iconsets/OVERLAY_ENERGY_IN_LASER");
private static final IIconContainer OVERLAY_ENERGY_OUT_LASER = new CustomIcon("iconsets/OVERLAY_ENERGY_OUT_LASER");
+ private static final IIconContainer OVERLAY_ENERGY_ON_WIRELESS_4A = new CustomIcon(
+ "iconsets/OVERLAY_ENERGY_ON_WIRELESS_4A");
+ private static final IIconContainer OVERLAY_ENERGY_ON_WIRELESS_16A = new CustomIcon(
+ "iconsets/OVERLAY_ENERGY_ON_WIRELESS_16A");
private static final IIconContainer MACHINE_UEV_SIDE = new CustomIcon("iconsets/MACHINE_UEV_SIDE");
private static final IIconContainer MACHINE_UIV_SIDE = new CustomIcon("iconsets/MACHINE_UIV_SIDE");
private static final IIconContainer MACHINE_UMV_SIDE = new CustomIcon("iconsets/MACHINE_UMV_SIDE");
@@ -173,6 +178,56 @@ public class Textures {
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_LASER, new short[] { 100, 100, 245, 0 }),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_LASER, new short[] { 80, 80, 245, 0 }),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_LASER, new short[] { 60, 60, 245, 0 }), };
+ public static final ITexture[] OVERLAYS_ENERGY_IN_WIRELESS_MULTI_4A = {
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_4A, new short[] { 255, 255, 255, 0 }) };
+
+ public static final ITexture[] OVERLAYS_ENERGY_IN_WIRELESS_MULTI_16A = {
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS_16A, new short[] { 255, 255, 255, 0 }) };
+
+ public static final ITexture[] OVERLAYS_ENERGY_IN_WIRELESS_MULTI_64A = {
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }),
+ TextureFactory.of(OVERLAY_ENERGY_ON_WIRELESS, new short[] { 25, 43, 255, 0 }) };
public static ITexture[][] MACHINE_CASINGS_TT = new ITexture[15][17];
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_WirelessMulti.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_WirelessMulti.java
new file mode 100644
index 0000000000..75ed7fe8a6
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_WirelessMulti.java
@@ -0,0 +1,213 @@
+package com.github.technus.tectech.thing.metaTileEntity.hatch;
+
+import static com.github.technus.tectech.thing.metaTileEntity.Textures.*;
+import static com.gtnewhorizon.gtnhlib.util.AnimatedTooltipHandler.*;
+import static gregtech.api.enums.GT_Values.AuthorColen;
+import static gregtech.api.enums.GT_Values.V;
+import static net.minecraft.util.StatCollector.translateToLocal;
+
+import java.math.BigInteger;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+
+import com.github.technus.tectech.util.TT_Utility;
+
+import gregtech.api.interfaces.IGlobalWirelessEnergy;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.interfaces.tileentity.IWirelessEnergyHatchInformation;
+import gregtech.api.metatileentity.MetaTileEntity;
+
+public class GT_MetaTileEntity_Hatch_WirelessMulti extends GT_MetaTileEntity_Hatch_EnergyMulti
+ implements IGlobalWirelessEnergy, IWirelessEnergyHatchInformation {
+
+ private final BigInteger eu_transferred_per_operation = BigInteger
+ .valueOf(Amperes * V[mTier] * ticks_between_energy_addition);
+ private final long eu_transferred_per_operation_long = eu_transferred_per_operation.longValue();
+
+ private String owner_uuid;
+ private String owner_name;
+
+ public GT_MetaTileEntity_Hatch_WirelessMulti(int aID, String aName, String aNameRegional, int aTier, int aAmp) {
+ super(
+ aID,
+ aName,
+ aNameRegional,
+ aTier,
+ 0,
+ translateToLocal("gt.blockmachines.hatch.energymulti.desc.0"), // Multiple
+ // Ampere
+ // Energy
+ // Injector
+ // for
+ // Multiblocks
+ aAmp);
+ TT_Utility.setTier(aTier, this);
+ }
+
+ public GT_MetaTileEntity_Hatch_WirelessMulti(String aName, int aTier, int aAmp, String aDescription,
+ ITexture[][][] aTextures) {
+ super(aName, aTier, aAmp, aDescription, aTextures);
+ }
+
+ private ITexture[] TEXTURE_OVERLAY;
+
+ @Override
+ public ITexture[] getTexturesActive(ITexture aBaseTexture) {
+ switch (Amperes) {
+ case 4:
+ TEXTURE_OVERLAY = OVERLAYS_ENERGY_IN_WIRELESS_MULTI_4A;
+ break;
+ case 16:
+ TEXTURE_OVERLAY = OVERLAYS_ENERGY_IN_WIRELESS_MULTI_16A;
+ break;
+ case 64:
+ TEXTURE_OVERLAY = OVERLAYS_ENERGY_IN_WIRELESS_MULTI_64A;
+ break;
+ }
+ return new ITexture[] { aBaseTexture, TEXTURE_OVERLAY[mTier] };
+ }
+
+ @Override
+ public ITexture[] getTexturesInactive(ITexture aBaseTexture) {
+ switch (Amperes) {
+ case 4:
+ TEXTURE_OVERLAY = OVERLAYS_ENERGY_IN_WIRELESS_MULTI_4A;
+ break;
+ case 16:
+ TEXTURE_OVERLAY = OVERLAYS_ENERGY_IN_WIRELESS_MULTI_16A;
+ break;
+ case 64:
+ TEXTURE_OVERLAY = OVERLAYS_ENERGY_IN_WIRELESS_MULTI_64A;
+ break;
+ }
+ return new ITexture[] { aBaseTexture, TEXTURE_OVERLAY[mTier] };
+ }
+
+ @Override
+ public boolean isSimpleMachine() {
+ return true;
+ }
+
+ @Override
+ public boolean isFacingValid(byte aFacing) {
+ return true;
+ }
+
+ @Override
+ public boolean isAccessAllowed(EntityPlayer aPlayer) {
+ return true;
+ }
+
+ @Override
+ public boolean isEnetInput() {
+ return false;
+ }
+
+ @Override
+ public boolean isInputFacing(byte aSide) {
+ return aSide == getBaseMetaTileEntity().getFrontFacing();
+ }
+
+ @Override
+ public boolean isValidSlot(int aIndex) {
+ return false;
+ }
+
+ @Override
+ public long getMinimumStoredEU() {
+ return Amperes * V[mTier];
+ }
+
+ @Override
+ public long maxEUInput() {
+ return V[mTier];
+ }
+
+ @Override
+ public long maxEUStore() {
+ return totalStorage(V[mTier]) * Amperes / 2;
+ }
+
+ @Override
+ public long maxAmperesIn() {
+ return Amperes;
+ }
+
+ @Override
+ public long maxWorkingAmperesIn() {
+ return Amperes;
+ }
+
+ @Override
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_Hatch_WirelessMulti(mName, mTier, Amperes, mDescription, mTextures);
+ }
+
+ @Override
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[] { GRAY + "Stores energy globally in a network, up to 2^(2^31) EU.",
+ GRAY + "Does not connect to wires. This block withdraws EU from the network.",
+ AuthorColen + GRAY + BOLD + " & " + BLUE + BOLD + "Cloud" };
+ }
+
+ @Override
+ public ConnectionType getConnectionType() {
+ return ConnectionType.WIRELESS;
+ }
+
+ @Override
+ public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) {
+ if (aBaseMetaTileEntity.isServerSide()) {
+ // On first tick find the player name and attempt to add them to the map.
+
+ // UUID and username of the owner.
+ owner_uuid = aBaseMetaTileEntity.getOwnerUuid().toString();
+ owner_name = aBaseMetaTileEntity.getOwnerName();
+
+ strongCheckOrAddUser(owner_uuid, owner_name);
+
+ if (addEUToGlobalEnergyMap(owner_uuid, eu_transferred_per_operation.negate()))
+ setEUVar(eu_transferred_per_operation_long);
+ }
+ }
+
+ @Override
+ public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
+
+ super.onPreTick(aBaseMetaTileEntity, aTick);
+
+ if (aBaseMetaTileEntity.isServerSide()) {
+
+ // This is set up in a way to be as optimised as possible. If a user has a relatively plentiful energy
+ // network
+ // it should make no difference to them. Minimising the number of operations on BigInteger is essential.
+
+ // Every ticks_between_energy_addition add eu_transferred_per_operation to internal EU storage from network.
+ if (aTick % ticks_between_energy_addition == 0L) {
+ long total_eu = getBaseMetaTileEntity().getStoredEU();
+
+ // Can the machine store the EU being added?
+ long new_eu_storage = total_eu + eu_transferred_per_operation_long;
+ if (new_eu_storage <= maxEUStore()) {
+
+ // Attempt to remove energy from the network and add it to the internal buffer of the machine.
+ if (addEUToGlobalEnergyMap(owner_uuid, eu_transferred_per_operation.negate())) {
+ setEUVar(new_eu_storage);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_16A.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_16A.png
new file mode 100644
index 0000000000..7db32095ce
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_16A.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_16A.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_16A.png.mcmeta
new file mode 100644
index 0000000000..0dab81071f
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_16A.png.mcmeta
@@ -0,0 +1 @@
+{"animation": {"frametime": 3}} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_4A.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_4A.png
new file mode 100644
index 0000000000..531db420c7
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_4A.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_4A.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_4A.png.mcmeta
new file mode 100644
index 0000000000..0dab81071f
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_4A.png.mcmeta
@@ -0,0 +1 @@
+{"animation": {"frametime": 3}} \ No newline at end of file
diff --git a/src/main/resources/assets/tectech/lang/en_US.lang b/src/main/resources/assets/tectech/lang/en_US.lang
index 8d1e6241c2..b1754a5535 100644
--- a/src/main/resources/assets/tectech/lang/en_US.lang
+++ b/src/main/resources/assets/tectech/lang/en_US.lang
@@ -217,6 +217,74 @@ gt.blockmachines.hatch.energymulti64.tier.13.name=UXV 64A Energy Hatch
gt.blockmachines.hatch.energymulti.desc.0=Multiple Ampere Energy Injector for Multiblocks
gt.blockmachines.hatch.energymulti.desc.1=Amperes In
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.04=EV 4A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.04=EV 16A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.04=EV 64A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.05=IV 4A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.05=IV 16A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.05=IV 64A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.06=LuV 4A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.06=LuV 16A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.06=LuV 64A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.07=ZPM 4A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.07=ZPM 16A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.07=ZPM 64A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.08=UV 4A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.08=UV 16A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.08=UV 64A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.09=UHV 4A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.09=UHV 16A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.09=UHV 64A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.10=UEV 4A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.10=UEV 16A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.10=UEV 64A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.11=UIV 4A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.11=UIV 16A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.11=UIV 64A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.12=UMV 4A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.12=UMV 16A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.12=UMV 64A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.13=UXV 4A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.13=UXV 16A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.13=UXV 64A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.14=MAX 4A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.14=MAX 16A Wireless Energy Hatch
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.14=MAX 64A Wireless Energy Hatch
+
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.04.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.04.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.04.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.05.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.05.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.05.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.06.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.06.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.06.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.07.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.07.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.07.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.08.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.08.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.08.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.09.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.09.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.09.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.10.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.10.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.10.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.11.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.11.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.11.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.12.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.12.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.12.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.13.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.13.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.13.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti04.tier.14.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti16.tier.14.desc=Multi Amp Wireless Energy!
+achievement.gt.blockmachines.hatch.energywirelessmulti64.tier.14.desc=Multi Amp Wireless Energy!
+
gt.blockmachines.hatch.energytunnel1.tier.05.name=IV 256A/t Laser Target Hatch
gt.blockmachines.hatch.energytunnel2.tier.05.name=IV 1024A/t Laser Target Hatch
gt.blockmachines.hatch.energytunnel3.tier.05.name=IV 4096A/t Laser Target Hatch