diff options
author | Martin Robertz <dream-master@gmx.net> | 2023-03-25 13:00:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-25 13:00:29 +0100 |
commit | bdf64584ccf40fb36325e9968ab3abe047ac7166 (patch) | |
tree | 2b37698a594513b2f91e064e0d62b81eb2c580bb | |
parent | bf92a9a7bd5e5f9b4b1e21253fcd6c9013036992 (diff) | |
parent | 5805a1658991cad5bfa3bd2386c39844338747b6 (diff) | |
download | GT5-Unofficial-bdf64584ccf40fb36325e9968ab3abe047ac7166.tar.gz GT5-Unofficial-bdf64584ccf40fb36325e9968ab3abe047ac7166.tar.bz2 GT5-Unofficial-bdf64584ccf40fb36325e9968ab3abe047ac7166.zip |
Merge pull request #178 from GTNewHorizons/multiAmpWireless
Multi amp wireless hatches
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 Binary files differnew file mode 100644 index 0000000000..7db32095ce --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_16A.png 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 Binary files differnew file mode 100644 index 0000000000..531db420c7 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_ENERGY_ON_WIRELESS_4A.png 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 |