From a875f2899b632c1f0b1277cd67c52d7addb44480 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 13 Jul 2019 10:03:30 +0200 Subject: Tesla work more??? BLINKEN LIGHTS!! --- .../tectech/loader/thing/MachineLoader.java | 2 + .../tectech/thing/casing/GT_Block_CasingsBA0.java | 103 +++++++-- .../tectech/thing/casing/GT_Item_CasingsBA0.java | 2 +- .../tectech/thing/item/TeslaCoilCapacitor.java | 8 +- .../hatch/GT_MetaTileEntity_Hatch_Capacitor.java | 16 +- .../multi/GT_MetaTileEntity_TM_microwave.java | 4 +- .../multi/GT_MetaTileEntity_TM_teslaCoil.java | 254 +++++++++++++-------- .../single/GT_MetaTileEntity_TeslaCoil.java | 2 +- .../textures/blocks/iconsets/CoilPrimary.png | Bin 631 -> 0 bytes .../textures/blocks/iconsets/CoilSecondary.png | Bin 745 -> 0 bytes .../textures/blocks/iconsets/OVERLAY_CAPS.png | Bin 527 -> 0 bytes .../blocks/iconsets/TM_TESLA_BASE_SIDES.png | Bin 0 -> 592 bytes .../blocks/iconsets/TM_TESLA_BASE_TOP_BOTTOM.png | Bin 0 -> 606 bytes .../textures/blocks/iconsets/TM_TESLA_CAPS.png | Bin 0 -> 527 bytes .../blocks/iconsets/TM_TESLA_CAPS_ACTIVE.png | Bin 0 -> 527 bytes .../textures/blocks/iconsets/TM_TESLA_TOROID.png | Bin 0 -> 619 bytes .../iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_0.png | Bin 0 -> 631 bytes .../iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_1.png | Bin 0 -> 631 bytes .../iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_2.png | Bin 0 -> 631 bytes .../iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_3.png | Bin 0 -> 631 bytes .../iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_4.png | Bin 0 -> 631 bytes .../iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_5.png | Bin 0 -> 631 bytes .../TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_0.png | Bin 0 -> 606 bytes .../TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_1.png | Bin 0 -> 606 bytes .../TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_2.png | Bin 0 -> 606 bytes .../TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_3.png | Bin 0 -> 606 bytes .../TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_4.png | Bin 0 -> 606 bytes .../TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_5.png | Bin 0 -> 606 bytes .../blocks/iconsets/TM_TESLA_WINDING_SECONDARY.png | Bin 0 -> 745 bytes .../textures/blocks/iconsets/TeslaBase.png | Bin 592 -> 0 bytes .../textures/blocks/iconsets/TeslaTopBottom.png | Bin 606 -> 0 bytes .../textures/blocks/iconsets/ToroidBase.png | Bin 619 -> 0 bytes 32 files changed, 260 insertions(+), 131 deletions(-) delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilPrimary.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilSecondary.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CAPS.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_SIDES.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_TOP_BOTTOM.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS_ACTIVE.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_TOROID.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_0.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_1.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_2.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_3.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_4.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_5.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_0.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_1.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_2.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_3.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_4.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_5.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_SECONDARY.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaBase.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaTopBottom.png delete mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/ToroidBase.png 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 cc864ab03d..dcd7f526d7 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 @@ -642,6 +642,8 @@ public class MachineLoader implements Runnable { GT_MetaTileEntity_DataReader.run(); + GT_MetaTileEntity_Hatch_Capacitor.run(); + if (!Loader.isModLoaded(Reference.DREAMCRAFT)) { new NoDreamCraftMachineLoader().run(); } diff --git a/src/main/java/com/github/technus/tectech/thing/casing/GT_Block_CasingsBA0.java b/src/main/java/com/github/technus/tectech/thing/casing/GT_Block_CasingsBA0.java index a9baeeacd0..4042187361 100644 --- a/src/main/java/com/github/technus/tectech/thing/casing/GT_Block_CasingsBA0.java +++ b/src/main/java/com/github/technus/tectech/thing/casing/GT_Block_CasingsBA0.java @@ -25,7 +25,16 @@ import static com.github.technus.tectech.TecTech.tectechTexturePage1; public class GT_Block_CasingsBA0 extends GT_Block_Casings_Abstract { public static final byte texturePage=tectechTexturePage1; public static final short textureOffset = (texturePage << 7)+16;//Start of PAGE 8 (which is the 9th page) (8*128)+16 - private static IIcon tM0, tM1, tM2, tM3, tM4, tM5, tM6, tM7, tM8; + + private static IIcon[] tM0 = new IIcon[2]; + private static IIcon[] tM1 = new IIcon[2]; + private static IIcon[] tM2 = new IIcon[2]; + private static IIcon[] tM3 = new IIcon[2]; + private static IIcon[] tM4 = new IIcon[2]; + private static IIcon[] tM5 = new IIcon[2]; + private static IIcon[] tM6 = new IIcon[2]; + private static IIcon tM7; + private static IIcon[] tM8 = new IIcon[2]; public GT_Block_CasingsBA0() { super(GT_Item_CasingsBA0.class, "gt.blockcasingsBA0", GT_Material_Casings.INSTANCE); @@ -43,7 +52,7 @@ public class GT_Block_CasingsBA0 extends GT_Block_Casings_Abstract { GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Tesla Base Casing"); GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Tesla Toroid Casing"); - GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Tesla Structural Frame"); + GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Tesla Secondary Windings"); CustomItemList.tM_TeslaPrimary_0.set(new ItemStack(this, 1, 0)); CustomItemList.tM_TeslaPrimary_1.set(new ItemStack(this, 1, 1)); @@ -59,39 +68,95 @@ public class GT_Block_CasingsBA0 extends GT_Block_Casings_Abstract { @Override public void registerBlockIcons(IIconRegister aIconRegister) { - tM0 = aIconRegister.registerIcon("gregtech:iconsets/EM_POWER"); - tM1 = aIconRegister.registerIcon("gregtech:iconsets/EM_POWER"); - tM2 = aIconRegister.registerIcon("gregtech:iconsets/EM_POWER"); - tM3 = aIconRegister.registerIcon("gregtech:iconsets/EM_POWER"); - tM4 = aIconRegister.registerIcon("gregtech:iconsets/EM_POWER"); - tM5 = aIconRegister.registerIcon("gregtech:iconsets/EM_POWER"); + tM0[0] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_0"); + tM0[1] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_0"); + tM1[0] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_1"); + tM1[1] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_1"); + tM2[0] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_2"); + tM2[1] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_2"); + tM3[0] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_3"); + tM3[1] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_3"); + tM4[0] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_4"); + tM4[1] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_4"); + tM5[0] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_5"); + tM5[1] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_5"); - tM6 = aIconRegister.registerIcon("gregtech:iconsets/EM_POWER"); - tM7 = aIconRegister.registerIcon("gregtech:iconsets/EM_POWER"); - tM8 = aIconRegister.registerIcon("gregtech:iconsets/EM_POWER"); + tM6[0] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_BASE_TOP_BOTTOM"); + tM6[1] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_BASE_SIDES"); + tM7 = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_TOROID"); + tM8[0] = aIconRegister.registerIcon("gregtech:iconsets/EM_POWER"); + tM8[1] = aIconRegister.registerIcon("gregtech:iconsets/TM_TESLA_WINDING_SECONDARY"); } @Override public IIcon getIcon(int aSide, int aMeta) { switch (aMeta) { case 0: - return tM0; + switch (aSide){ + case 0: + case 1: + return tM0[0]; + default: + return tM0[1]; + } case 1: - return tM1; + switch (aSide){ + case 0: + case 1: + return tM1[0]; + default: + return tM1[1]; + } case 2: - return tM2; + switch (aSide){ + case 0: + case 1: + return tM2[0]; + default: + return tM2[1]; + } case 3: - return tM3; + switch (aSide){ + case 0: + case 1: + return tM3[0]; + default: + return tM3[1]; + } case 4: - return tM4; + switch (aSide){ + case 0: + case 1: + return tM4[0]; + default: + return tM4[1]; + } case 5: - return tM5; + switch (aSide){ + case 0: + case 1: + return tM5[0]; + default: + return tM5[1]; + } case 6: - return tM6; + switch (aSide){ + case 0: + case 1: + return tM6[0]; + default: + return tM6[1]; + } case 7: return tM7; case 8: - return tM8; + switch (aSide){ + case 0: + case 1: + return tM8[0]; + default: + return tM8[1]; + } default: return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); } diff --git a/src/main/java/com/github/technus/tectech/thing/casing/GT_Item_CasingsBA0.java b/src/main/java/com/github/technus/tectech/thing/casing/GT_Item_CasingsBA0.java index 0c84692dba..8a494baea1 100644 --- a/src/main/java/com/github/technus/tectech/thing/casing/GT_Item_CasingsBA0.java +++ b/src/main/java/com/github/technus/tectech/thing/casing/GT_Item_CasingsBA0.java @@ -58,7 +58,7 @@ public class GT_Item_CasingsBA0 extends GT_Item_Casings_Abstract { aList.add("Well it does things too..."); aList.add(EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD + "[Use this coil!]"); break; - case 8://"Tesla Structural Frame" + case 8://"Tesla Secondary Windings" aList.add("Reinforced accelerator tunnel."); aList.add(EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD + "Most advanced pipe ever."); break; diff --git a/src/main/java/com/github/technus/tectech/thing/item/TeslaCoilCapacitor.java b/src/main/java/com/github/technus/tectech/thing/item/TeslaCoilCapacitor.java index 1755ad05fb..7322ec55ee 100644 --- a/src/main/java/com/github/technus/tectech/thing/item/TeslaCoilCapacitor.java +++ b/src/main/java/com/github/technus/tectech/thing/item/TeslaCoilCapacitor.java @@ -15,7 +15,6 @@ import net.minecraft.util.IIcon; import java.util.List; -import static com.github.technus.tectech.CommonValues.VN; import static com.github.technus.tectech.Reference.MODID; @@ -41,6 +40,9 @@ public final class TeslaCoilCapacitor extends Item { public void addInformation(ItemStack aStack, EntityPlayer ep, List aList, boolean boo) { aList.add(CommonValues.BASS_MARK); switch (aStack.getItemDamage()) { + case 0://"LV" + aList.add("Stores energy for tesla towers! (LV)"); + break; case 1://"MV" aList.add("Stores energy for tesla towers! (MV)"); break; @@ -62,8 +64,8 @@ public final class TeslaCoilCapacitor extends Item { case 7://"UV" aList.add("Stores energy for tesla towers! (UV)"); break; - default://"LV" - aList.add("Stores energy for tesla towers! (LV)"); + default:// + aList.add("Yeet this broken item into some spicy water!"); break; } aList.add(EnumChatFormatting.BLUE + "Insert into a Capacitor hatch of a Tesla Tower"); diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_Capacitor.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_Capacitor.java index b27efb59e2..937a433250 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_Capacitor.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_Capacitor.java @@ -6,10 +6,8 @@ import com.github.technus.tectech.TecTech; import com.github.technus.tectech.Util; import com.github.technus.tectech.thing.metaTileEntity.hatch.gui.GT_Container_Capacitor; import com.github.technus.tectech.thing.metaTileEntity.hatch.gui.GT_GUIContainer_Capacitor; -import cpw.mods.fml.common.Loader; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -34,8 +32,8 @@ import static com.github.technus.tectech.loader.TecTechConfig.DEBUG_MODE; * Created by Tec on 03.04.2017. */ public class GT_MetaTileEntity_Hatch_Capacitor extends GT_MetaTileEntity_Hatch { - private static Textures.BlockIcons.CustomIcon EM_H; - private static Textures.BlockIcons.CustomIcon EM_H_ACTIVE; + private static Textures.BlockIcons.CustomIcon TM_H; + private static Textures.BlockIcons.CustomIcon TM_H_ACTIVE; private static Map componentBinds = new HashMap<>(); public float energyStoredFrac = 0; @@ -69,18 +67,18 @@ public class GT_MetaTileEntity_Hatch_Capacitor extends GT_MetaTileEntity_Hatch { @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister aBlockIconRegister) { super.registerIcons(aBlockIconRegister); - EM_H_ACTIVE = new Textures.BlockIcons.CustomIcon("iconsets/EM_HOLDER_ACTIVE"); - EM_H = new Textures.BlockIcons.CustomIcon("iconsets/EM_HOLDER"); + TM_H_ACTIVE = new Textures.BlockIcons.CustomIcon("iconsets/TM_TESLA_CAPS_ACTIVE"); + TM_H = new Textures.BlockIcons.CustomIcon("iconsets/TM_TESLA_CAPS"); } @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(EM_H_ACTIVE)}; + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(TM_H_ACTIVE)}; } @Override public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(EM_H)}; + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(TM_H)}; } @Override @@ -157,9 +155,11 @@ public class GT_MetaTileEntity_Hatch_Capacitor extends GT_MetaTileEntity_Hatch { long tEnergyMax = 0; for (int i = 0; i < mInventory.length; i++) { if (mInventory[i] == null || mInventory[i].stackSize != 1) { + System.out.println("FUK"); continue; } CapacitorComponent cap = componentBinds.get(getUniqueIdentifier(mInventory[i])); + System.out.println(getUniqueIdentifier(mInventory[i])); if (cap != null && cap.tier > tier) { tier = cap.tier; } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java index 7894a7fa37..05d496e844 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java @@ -62,7 +62,7 @@ public class GT_MetaTileEntity_TM_microwave extends GT_MetaTileEntity_Multiblock //region parameters protected Parameters.Group.ParameterIn powerSetting,timerSetting; protected Parameters.Group.ParameterOut timerValue,remainingTime; - private static final NameFunction POWER_NAME = (base, p)-> "Power setting"; + private static final NameFunction POWER_SETTING_NAME = (base, p)-> "Power setting"; private static final NameFunction TIMER_SETTING_NAME = (base, p)-> "Timer setting"; private static final NameFunction TIMER_REMAINING_NAME = (base, p)-> "Timer remaining"; private static final NameFunction TIMER_VALUE_NAME = (base,p)-> "Timer value"; @@ -89,7 +89,7 @@ public class GT_MetaTileEntity_TM_microwave extends GT_MetaTileEntity_Multiblock @Override protected void parametersInstantiation_EM() { Parameters.Group hatch_0=parametrization.getGroup(0, true); - powerSetting=hatch_0.makeInParameter(0,1000, POWER_NAME,POWER_STATUS); + powerSetting=hatch_0.makeInParameter(0,1000, POWER_SETTING_NAME,POWER_STATUS); timerSetting=hatch_0.makeInParameter(1,360, TIMER_SETTING_NAME,TIMER_STATUS); timerValue=hatch_0.makeOutParameter(0,0,TIMER_VALUE_NAME,TIMER_STATUS); remainingTime=hatch_0.makeOutParameter(1,360,TIMER_REMAINING_NAME,TIMER_STATUS); diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java index 75f849d9ac..2a5348ac6d 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java @@ -7,8 +7,7 @@ import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_H import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_Param; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.*; import com.github.technus.tectech.thing.metaTileEntity.single.GT_MetaTileEntity_TeslaCoil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -32,8 +31,7 @@ import static com.github.technus.tectech.Util.StructureBuilder; import static com.github.technus.tectech.Util.entriesSortedByValues; import static com.github.technus.tectech.thing.casing.GT_Block_CasingsTT.texturePage; import static com.github.technus.tectech.thing.casing.TT_Container_Casings.sBlockCasingsBA0; -import static com.github.technus.tectech.thing.casing.TT_Container_Casings.sBlockCasingsTT; -import static gregtech.api.GregTech_API.*; +import static com.github.technus.tectech.thing.metaTileEntity.multi.base.LedStatus.*; import static gregtech.api.enums.GT_Values.E; public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable {//TODO Add capacitors @@ -41,7 +39,10 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock private static Textures.BlockIcons.CustomIcon ScreenON; private int tier = 0; + private int mTier = 1;//Tier offset by +1 private int orientation = 0; + private int maxTier = 6; + private int minTier = 1; private int scanTime = 0; //Sets scan time to Z E R O :epic: private int scanTimeMin = 100; //Min scan time in ticks @@ -66,21 +67,31 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock private long outputCurrent = 0; //Tesla Current Output private long energyCapacity = 0; //Total energy the tower can store - public boolean powerPassToggle = false; //Power Pass for public viewing + //public boolean powerPassToggle = false; //Power Pass for public viewing - private boolean parametrized = false; //Assumes no parametrizer on initialisation - //Default parametrized variables - private long histLowParam = 0; - private long histHighParam = 0; - private long histScaleParam = 0; - private int transferRadiusTowerParam = 0; - private int transferRadiusTransceiverParam = 0; - private int transferRadiusCoverUltimateParam = 0; - private long outputVoltageParam = 0; - private long outputCurrentParam = 0; - private int scanTimeMinParam = 0; + public boolean tPowerPass(){ + return ePowerPass; + } public int vTier = -1; + + private long lossPerBlock = 1; //EU lost per block traveled + private float energyEfficiencyMax = 0.95F; //Max efficiency + private float energyEfficiencyMin = 0.75F; //Min efficiency + private int overDrive = 0; + private boolean overDriveToggle(){return (overDrive > 0);} + private float overdriveEfficiency = 0.95F; //Overdrive efficiency + private long outputVoltageInjectable = 0; //How much EU will be received post distance losses + private long outputVoltageConsumption = 0; //How much EU will be drained + + private long getEnergyEfficiency(long voltage, int mTier){ + if (overDriveToggle()){ + return (long)(voltage * energyEfficiencyMin + (energyEfficiencyMax - energyEfficiencyMin) / (maxTier - minTier + 1) * (mTier - 1)); //Efficiency Formula + } else { + return (long)(voltage * (2-energyEfficiencyMin + (energyEfficiencyMax - energyEfficiencyMin) / (maxTier - minTier + 1) * (mTier - 1))*(2- overdriveEfficiency)); //Sum overdrive efficiency formula + } + } + public int pTier = 0; public int sTier = 0; @@ -132,9 +143,9 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock private static final byte[] blockMetaT5 = new byte[]{7, 5, 6, 8}; private static final byte[][] blockMetas = new byte[][]{blockMetaT0,blockMetaT1,blockMetaT2,blockMetaT3,blockMetaT4,blockMetaT5}; private final HatchAdder[] addingMethods = new HatchAdder[]{this::addCapacitorToMachineList, this::addFrameToMachineList}; - private static final short[] casingTextures = new short[]{29, 0}; - private static final Block[] blockTypeFallback = new Block[]{sBlockCasings2, null}; - private static final byte[] blockMetaFallback = new byte[]{13, 0}; + private static final short[] casingTextures = new short[]{(texturePage << 7)+16+6, 0}; + private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsBA0, null}; + private static final byte[] blockMetaFallback = new byte[]{6, 0}; private static final String[] description = new String[]{ EnumChatFormatting.AQUA + "Hint Details:", "1 - Classic Hatches or Steel Pipe Casing", @@ -142,6 +153,87 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock }; //endregion + //region parameters + protected Parameters.Group.ParameterIn histLowSetting,histHighSetting,transferRadiusTowerSetting,transferRadiusTransceiverSetting,transferRadiusCoverUltimateSetting,outputVoltageSetting,outputCurrentSetting,scanTimeMinSetting,overDriveSetting; + //protected Parameters.Group.ParameterOut timerValue,remainingTime; + private static final NameFunction HYSTERESIS_LOW_SETTING_NAME = (base, p)-> "Hysteresis low setting"; + private static final NameFunction HYSTERESIS_HIGH_SETTING_NAME = (base, p)-> "Hysteresis high setting"; + private static final NameFunction TRANSFER_RADIUS_TOWER_SETTING_NAME = (base, p)-> "Tesla Towers transfer radius"; + private static final NameFunction TRANSFER_RADIUS_TRANSCEIVER_SETTING_NAME = (base, p)-> "Tesla Transceiver transfer radius"; + private static final NameFunction TRANSFER_RADIUS_COVER_ULTIMATE_SETTING_NAME = (base, p)-> "Tesla Ultimate Cover transfer radius"; + private static final NameFunction OUTPUT_VOLTAGE_SETTING_NAME = (base, p)-> "Output voltage setting"; + private static final NameFunction OUTPUT_CURRENT_SETTING_NAME = (base, p)-> "Output current setting"; + private static final NameFunction SCAN_TIME_MIN_SETTING_NAME = (base, p)-> "Scan time Min setting"; + private static final NameFunction OVERDRIVE_SETTING_NAME = (base, p)-> "Overdrive setting"; + + private final StatusFunction HYSTERESIS_LOW_STATUS=(base, p)->{ + double value=p.get(); + if(Double.isNaN(value)){ + System.out.println("HIS LO"); + return STATUS_WRONG;} + System.out.println("HIS LO"); + System.out.println(value); + if(value<0.05) return STATUS_TOO_LOW; + if(value>histHighSetting.get()) return STATUS_TOO_HIGH; + return STATUS_OK; + }; + private final StatusFunction HYSTERESIS_HIGH_STATUS=(base, p)->{ + double value=p.get(); + if(Double.isNaN(value)) return STATUS_WRONG; + System.out.println("HIS HI"); + System.out.println(value); + if(value0.95) return STATUS_TOO_HIGH; + return STATUS_OK; + }; + private static final StatusFunction TRANSFER_RADIUS_TOWER_STATUS=(base, p)->{ + double value=p.get(); + if(Double.isNaN(value)) return STATUS_WRONG; + value=(int)value; + if(value<0) return STATUS_TOO_LOW; + if(value>32) return STATUS_TOO_HIGH; + return STATUS_OK; + }; + private static final StatusFunction TRANSFER_RADIUS_TRANSCEIVER_STATUS=(base, p)->{ + double value=p.get(); + if(Double.isNaN(value)) return STATUS_WRONG; + value=(int)value; + if(value<0) return STATUS_TOO_LOW; + if(value>16) return STATUS_TOO_HIGH; + return STATUS_OK; + }; + private static final StatusFunction TRANSFER_RADIUS_COVER_ULTIMATE_STATUS=(base, p)->{ + double value=p.get(); + if(Double.isNaN(value)) return STATUS_WRONG; + value=(int)value; + if(value<0) return STATUS_TOO_LOW; + if(value>16) return STATUS_TOO_HIGH; + return STATUS_OK; + }; + private static final StatusFunction OUTPUT_VOLTAGE_STATUS=(base, p)->{ + double value=p.get(); + if(Double.isNaN(value)) return STATUS_WRONG; + value=(long)value; + if(value<=0) return STATUS_TOO_LOW; + return STATUS_OK; + }; + private static final StatusFunction OUTPUT_CURRENT_STATUS=(base, p)->{ + double value=p.get(); + if(Double.isNaN(value)) return STATUS_WRONG; + value=(long)value; + if(value<=0) return STATUS_TOO_LOW; + return STATUS_OK; + }; + private static final StatusFunction SCAN_TIME_MIN_STATUS=(base, p)->{ + double value=p.get(); + if(Double.isNaN(value)) return STATUS_WRONG; + value=(int)value; + if(value<100) return STATUS_TOO_LOW; + return STATUS_OK; + }; + private static final StatusFunction OVERDRIVE_STATUS=(base, p)-> STATUS_OK; + //endregion + public GT_MetaTileEntity_TM_teslaCoil(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); } @@ -150,6 +242,24 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock super(aName); } + protected void parametersInstantiation_EM() { + Parameters.Group hatch_0=parametrization.getGroup(0, true); + Parameters.Group hatch_1=parametrization.getGroup(1, true); + Parameters.Group hatch_2=parametrization.getGroup(2, true); + Parameters.Group hatch_3=parametrization.getGroup(3, true); + Parameters.Group hatch_4=parametrization.getGroup(4, true); + + histLowSetting=hatch_0.makeInParameter(0,0.25, HYSTERESIS_LOW_SETTING_NAME,HYSTERESIS_LOW_STATUS); + histHighSetting=hatch_0.makeInParameter(1,0.75, HYSTERESIS_HIGH_SETTING_NAME,HYSTERESIS_HIGH_STATUS); + transferRadiusTowerSetting=hatch_1.makeInParameter(0,32, TRANSFER_RADIUS_TOWER_SETTING_NAME,TRANSFER_RADIUS_TOWER_STATUS); + transferRadiusTransceiverSetting=hatch_1.makeInParameter(1,16, TRANSFER_RADIUS_TRANSCEIVER_SETTING_NAME,TRANSFER_RADIUS_TRANSCEIVER_STATUS); + transferRadiusCoverUltimateSetting=hatch_2.makeInParameter(0,16, TRANSFER_RADIUS_COVER_ULTIMATE_SETTING_NAME,TRANSFER_RADIUS_COVER_ULTIMATE_STATUS); + outputVoltageSetting=hatch_2.makeInParameter(1,-1, OUTPUT_VOLTAGE_SETTING_NAME,OUTPUT_VOLTAGE_STATUS); + outputCurrentSetting=hatch_3.makeInParameter(0,-1, OUTPUT_CURRENT_SETTING_NAME,OUTPUT_CURRENT_STATUS); + scanTimeMinSetting=hatch_3.makeInParameter(1,100, SCAN_TIME_MIN_SETTING_NAME,SCAN_TIME_MIN_STATUS); + overDriveSetting=hatch_4.makeInParameter(0,0, OVERDRIVE_SETTING_NAME,OVERDRIVE_STATUS); + } + @Override public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_TM_teslaCoil(mName); @@ -171,9 +281,9 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock @Override public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { if (aSide == aFacing) { - return new ITexture[]{Textures.BlockIcons.casingTexturePages[texturePage][4], new GT_RenderedTexture(aActive ? ScreenON : ScreenOFF)}; + return new ITexture[]{Textures.BlockIcons.casingTexturePages[texturePage][16+6], new GT_RenderedTexture(aActive ? ScreenON : ScreenOFF)}; } - return new ITexture[]{Textures.BlockIcons.casingTexturePages[texturePage][4]}; + return new ITexture[]{Textures.BlockIcons.casingTexturePages[texturePage][16+6]}; } @Override @@ -255,25 +365,25 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock int yOffset; int zOffset; - if (coil0 == sBlockCasingsTT) { + if (coil0 == sBlockCasingsBA0) { xOffset = 3; yOffset = 16; zOffset = 0; orientation = 0; tier = iGregTechTileEntity.getMetaIDOffset(coilX0, coilY0, coilZ0); - } else if (coil1 == sBlockCasingsTT) { + } else if (coil1 == sBlockCasingsBA0) { xOffset = 3; yOffset = 0; zOffset = 0; orientation = 1; tier = iGregTechTileEntity.getMetaIDOffset(coilX0, -coilY0, coilZ0); - } else if (coil2 == sBlockCasingsTT) { + } else if (coil2 == sBlockCasingsBA0) { xOffset = 16; yOffset = 3; zOffset = 0; orientation = 2; tier = iGregTechTileEntity.getMetaIDOffset(coilX1, coilY1, coilZ1); - } else if (coil3 == sBlockCasingsTT) { + } else if (coil3 == sBlockCasingsBA0) { xOffset = 0; yOffset = 3; zOffset = 0; @@ -283,6 +393,8 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock return false; } + mTier = tier + 1; + if (structureCheck_EM(shapes[orientation], blockType, blockMetas[tier], addingMethods, casingTextures, blockTypeFallback, blockMetaFallback, xOffset, yOffset, zOffset) && eCaps.size() > 0) { for (GT_MetaTileEntity_Hatch_Capacitor cap : eCaps) { if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(cap)) { @@ -319,6 +431,7 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock mEfficiencyIncrease = 10000; mMaxProgresstime = 20; vTier = -1; + energyCapacity = 0; outputCurrent = 0; long[] capacitorData; @@ -330,7 +443,7 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock vTier = (int) cap.getCapacitors()[0]; } } - if(vTier < 0){ return false; } + if(vTier < 0){return false;} outputVoltage = V[vTier]; for (GT_MetaTileEntity_Hatch_Capacitor cap : eCaps) { if (!GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(cap)) { @@ -341,7 +454,6 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock if (capacitorData[0] < vTier) { if(getEUVar() > 0 && capacitorData[0] != 0){ cap.getBaseMetaTileEntity().setToFire(); - System.out.println("Oman oman a hatch burst into flame!"); } eCaps.remove(cap); } else { @@ -357,22 +469,6 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock if (getBaseMetaTileEntity().isClientSide()) { return true; } - //Parametrizer hatch loader TODO Add parametrizer detection - if (false) { - parametrized = true; - histLowParam = 0; - histHighParam = 0; - histScaleParam = 0; - transferRadiusTowerParam = 0; - transferRadiusTransceiverParam = 0; - transferRadiusCoverUltimateParam = 0; - outputVoltageParam = 0; - outputCurrentParam = 0; - scanTimeMin = 0; - } else { - parametrized = false; - } - ////Hysteresis based ePowerPass Config long energyMax = maxEUStore() / 2; long energyStored = getEUVar(); @@ -386,38 +482,14 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock cap.energyStoredFrac = energyFrac; } - //Hysteresis Parameters sanity check - if (parametrized && histScaleParam > 0 && histLowParam > 0 && histScaleParam <= histHighParam && histLowParam < histHighParam) { - float histLowt = (float)histLowParam/histScaleParam; - if (histLowt >= histLowLimit){ - histLow = histLowt; - } else { - histLow = histLowLimit; - } - - float histHight = (float)histHighParam/histScaleParam; - if (histHight <= histHighLimit){ - histHigh = histHight; - } else { - histHigh = histHighLimit; - } - } - - //TODO Fix this because something broke it :L //ePowerPass hist toggle if (!ePowerPass && energyFrac > histHigh) { ePowerPass = true; } else if (ePowerPass && energyFrac < histLow) { ePowerPass = false; } - powerPassToggle = ePowerPass; - ////Scanning for active teslas - if (parametrized && scanTimeMinParam > scanTimeMin) { - scanTimeTill = scanTimeMinParam; - } - scanTime++; if (scanTime >= scanTimeTill) { scanTime = 0; @@ -443,31 +515,12 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock } //Stuff to do if ePowerPass - if (powerPassToggle) { - if (parametrized && outputVoltageParam > 0 && outputVoltage > outputVoltageParam) { - outputVoltage = outputVoltageParam; - } - - if (parametrized && outputCurrentParam > 0 && outputCurrent > outputCurrentParam) { - outputCurrent = outputCurrentParam; - } + if (ePowerPass) { transferRadiusTower = 32; //TODO generate based on power stored transferRadiusTransceiver = 16; //TODO generate based on power stored transferRadiusCoverUltimate = 16; //TODO generate based on power stored - if (parametrized && transferRadiusTowerParam > 0 && transferRadiusTowerParam < transferRadiusTower) { - transferRadiusTower = transferRadiusTowerParam; - } - - if (parametrized && transferRadiusTransceiverParam > 0 && transferRadiusTransceiverParam < transferRadiusTransceiver) { - transferRadiusTransceiver = transferRadiusTransceiverParam; - } - - if (parametrized && transferRadiusCoverUltimateParam > 0 && transferRadiusCoverUltimateParam < transferRadiusCoverUltimate) { - transferRadiusCoverUltimate = transferRadiusCoverUltimateParam; - } - //Clean the eTeslaMap for (Map.Entry Rx : eTeslaMap.entrySet()) { IGregTechTileEntity node = Rx.getKey(); @@ -500,17 +553,24 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock while (sparks > 0) { boolean idle = true; for (Map.Entry Rx : entriesSortedByValues(eTeslaMap)) { - if(energyStored > outputVoltage) { + if(energyStored >= (overDriveToggle() ? outputVoltage*2 : outputVoltage)) { IGregTechTileEntity node = Rx.getKey(); IMetaTileEntity nodeInside = node.getMetaTileEntity(); - long euTran = outputVoltage;//TODO Efficency? + + if (overDriveToggle()){ + outputVoltageInjectable = outputVoltage; + outputVoltageConsumption = getEnergyEfficiency(outputVoltage, mTier) + (lossPerBlock * Rx.getValue()); + } else { + outputVoltageInjectable = getEnergyEfficiency(outputVoltage, mTier) - (lossPerBlock * Rx.getValue()); + outputVoltageConsumption = outputVoltage; + } if (nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil && Rx.getValue() <= transferRadiusTower) { GT_MetaTileEntity_TM_teslaCoil nodeTesla = (GT_MetaTileEntity_TM_teslaCoil) nodeInside; - if (!nodeTesla.powerPassToggle) { - if (nodeTesla.getEUVar() + euTran <= (nodeTesla.maxEUStore() / 2)) { - setEUVar(getEUVar() - euTran); - node.increaseStoredEnergyUnits(euTran, true); + if (!nodeTesla.tPowerPass()) { + if (nodeTesla.getEUVar() + outputVoltageInjectable <= (nodeTesla.maxEUStore() / 2)) { + setEUVar(getEUVar() - outputVoltageConsumption); + node.increaseStoredEnergyUnits(outputVoltageConsumption, true); sparks--; sparkz++; idle = false; @@ -519,16 +579,16 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock } else if (nodeInside instanceof GT_MetaTileEntity_TeslaCoil && Rx.getValue() <= transferRadiusTransceiver) { GT_MetaTileEntity_TeslaCoil nodeTesla = (GT_MetaTileEntity_TeslaCoil) nodeInside; if (!nodeTesla.powerPassToggle) { - if (node.injectEnergyUnits((byte) 6, euTran, 1L) > 0L) { - setEUVar(getEUVar() - euTran); + if (node.injectEnergyUnits((byte) 6, outputVoltageInjectable, 1L) > 0L) { + setEUVar(getEUVar() - outputVoltageConsumption); sparks--; sparkz++; idle = false; } } } else if ((node.getCoverBehaviorAtSide((byte) 1) instanceof GT_Cover_TM_TeslaCoil_Ultimate) && Rx.getValue() <= transferRadiusCoverUltimate) { - if (node.injectEnergyUnits((byte) 1, euTran, 1L) > 0L) { - setEUVar(getEUVar() - euTran); + if (node.injectEnergyUnits((byte) 1, outputVoltageInjectable, 1L) > 0L) { + setEUVar(getEUVar() - outputVoltageConsumption); sparks--; sparkz++; idle = false; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java index c1a66eb83b..f4430adf66 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java @@ -236,7 +236,7 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB } if (nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil && Rx.getValue() <= transferRadiusTower) { GT_MetaTileEntity_TM_teslaCoil nodeTesla = (GT_MetaTileEntity_TM_teslaCoil) nodeInside; - if (!nodeTesla.powerPassToggle) { + if (!nodeTesla.tPowerPass()) { if (nodeTesla.getEUVar() + outputVoltageInjectable <= (nodeTesla.maxEUStore() / 2)) { setEUVar(getEUVar() - outputVoltageConsumption); node.increaseStoredEnergyUnits(outputVoltageInjectable, true); diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilPrimary.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilPrimary.png deleted file mode 100644 index 4598fc32b3..0000000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilPrimary.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilSecondary.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilSecondary.png deleted file mode 100644 index 76388e39c7..0000000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilSecondary.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CAPS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CAPS.png deleted file mode 100644 index 4401341ad7..0000000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CAPS.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_SIDES.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_SIDES.png new file mode 100644 index 0000000000..52087f837e Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_SIDES.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_TOP_BOTTOM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_TOP_BOTTOM.png new file mode 100644 index 0000000000..5ba1e61487 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_TOP_BOTTOM.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS.png new file mode 100644 index 0000000000..4401341ad7 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS_ACTIVE.png new file mode 100644 index 0000000000..4401341ad7 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS_ACTIVE.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_TOROID.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_TOROID.png new file mode 100644 index 0000000000..e6b07eb650 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_TOROID.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_0.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_0.png new file mode 100644 index 0000000000..4598fc32b3 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_0.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_1.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_1.png new file mode 100644 index 0000000000..4598fc32b3 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_1.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_2.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_2.png new file mode 100644 index 0000000000..4598fc32b3 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_2.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_3.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_3.png new file mode 100644 index 0000000000..4598fc32b3 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_3.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_4.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_4.png new file mode 100644 index 0000000000..4598fc32b3 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_4.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_5.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_5.png new file mode 100644 index 0000000000..4598fc32b3 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_5.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_0.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_0.png new file mode 100644 index 0000000000..5ba1e61487 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_0.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_1.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_1.png new file mode 100644 index 0000000000..5ba1e61487 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_1.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_2.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_2.png new file mode 100644 index 0000000000..5ba1e61487 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_2.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_3.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_3.png new file mode 100644 index 0000000000..5ba1e61487 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_3.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_4.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_4.png new file mode 100644 index 0000000000..5ba1e61487 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_4.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_5.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_5.png new file mode 100644 index 0000000000..5ba1e61487 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_5.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_SECONDARY.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_SECONDARY.png new file mode 100644 index 0000000000..76388e39c7 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_SECONDARY.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaBase.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaBase.png deleted file mode 100644 index 52087f837e..0000000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaBase.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaTopBottom.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaTopBottom.png deleted file mode 100644 index 5ba1e61487..0000000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaTopBottom.png and /dev/null differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/ToroidBase.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/ToroidBase.png deleted file mode 100644 index e6b07eb650..0000000000 Binary files a/src/main/resources/assets/gregtech/textures/blocks/iconsets/ToroidBase.png and /dev/null differ -- cgit