aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/github/technus/tectech/loader/thing/MachineLoader.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/casing/GT_Block_CasingsBA0.java103
-rw-r--r--src/main/java/com/github/technus/tectech/thing/casing/GT_Item_CasingsBA0.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/item/TeslaCoilCapacitor.java8
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/hatch/GT_MetaTileEntity_Hatch_Capacitor.java16
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java4
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java254
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java2
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_SIDES.png (renamed from src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaBase.png)bin592 -> 592 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_TOP_BOTTOM.png (renamed from src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaTopBottom.png)bin606 -> 606 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS.png (renamed from src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CAPS.png)bin527 -> 527 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS_ACTIVE.pngbin0 -> 527 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_TOROID.png (renamed from src/main/resources/assets/gregtech/textures/blocks/iconsets/ToroidBase.png)bin619 -> 619 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_0.png (renamed from src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilPrimary.png)bin631 -> 631 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_1.pngbin0 -> 631 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_2.pngbin0 -> 631 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_3.pngbin0 -> 631 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_4.pngbin0 -> 631 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_5.pngbin0 -> 631 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_0.pngbin0 -> 606 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_1.pngbin0 -> 606 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_2.pngbin0 -> 606 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_3.pngbin0 -> 606 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_4.pngbin0 -> 606 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_5.pngbin0 -> 606 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_SECONDARY.png (renamed from src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilSecondary.png)bin745 -> 745 bytes
26 files changed, 260 insertions, 131 deletions
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<String, GT_MetaTileEntity_Hatch_Capacitor.CapacitorComponent> 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<GT_MetaTileEntity_TM_microwave> POWER_NAME = (base, p)-> "Power setting";
+ private static final NameFunction<GT_MetaTileEntity_TM_microwave> POWER_SETTING_NAME = (base, p)-> "Power setting";
private static final NameFunction<GT_MetaTileEntity_TM_microwave> TIMER_SETTING_NAME = (base, p)-> "Timer setting";
private static final NameFunction<GT_MetaTileEntity_TM_microwave> TIMER_REMAINING_NAME = (base, p)-> "Timer remaining";
private static final NameFunction<GT_MetaTileEntity_TM_microwave> 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<GT_MetaTileEntity_TM_teslaCoil> HYSTERESIS_LOW_SETTING_NAME = (base, p)-> "Hysteresis low setting";
+ private static final NameFunction<GT_MetaTileEntity_TM_teslaCoil> HYSTERESIS_HIGH_SETTING_NAME = (base, p)-> "Hysteresis high setting";
+ private static final NameFunction<GT_MetaTileEntity_TM_teslaCoil> TRANSFER_RADIUS_TOWER_SETTING_NAME = (base, p)-> "Tesla Towers transfer radius";
+ private static final NameFunction<GT_MetaTileEntity_TM_teslaCoil> TRANSFER_RADIUS_TRANSCEIVER_SETTING_NAME = (base, p)-> "Tesla Transceiver transfer radius";
+ private static final NameFunction<GT_MetaTileEntity_TM_teslaCoil> TRANSFER_RADIUS_COVER_ULTIMATE_SETTING_NAME = (base, p)-> "Tesla Ultimate Cover transfer radius";
+ private static final NameFunction<GT_MetaTileEntity_TM_teslaCoil> OUTPUT_VOLTAGE_SETTING_NAME = (base, p)-> "Output voltage setting";
+ private static final NameFunction<GT_MetaTileEntity_TM_teslaCoil> OUTPUT_CURRENT_SETTING_NAME = (base, p)-> "Output current setting";
+ private static final NameFunction<GT_MetaTileEntity_TM_teslaCoil> SCAN_TIME_MIN_SETTING_NAME = (base, p)-> "Scan time Min setting";
+ private static final NameFunction<GT_MetaTileEntity_TM_teslaCoil> OVERDRIVE_SETTING_NAME = (base, p)-> "Overdrive setting";
+
+ private final StatusFunction<GT_MetaTileEntity_TM_teslaCoil> 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<GT_MetaTileEntity_TM_teslaCoil> 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(value<histLowSetting.get()) return STATUS_TOO_LOW;
+ if(value>0.95) return STATUS_TOO_HIGH;
+ return STATUS_OK;
+ };
+ private static final StatusFunction<GT_MetaTileEntity_TM_teslaCoil> 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<GT_MetaTileEntity_TM_teslaCoil> 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<GT_MetaTileEntity_TM_teslaCoil> 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<GT_MetaTileEntity_TM_teslaCoil> 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<GT_MetaTileEntity_TM_teslaCoil> 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<GT_MetaTileEntity_TM_teslaCoil> 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<GT_MetaTileEntity_TM_teslaCoil> 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<IGregTechTileEntity, Integer> 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<IGregTechTileEntity, Integer> 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/TeslaBase.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_SIDES.png
index 52087f837e..52087f837e 100644
--- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaBase.png
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_SIDES.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaTopBottom.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_TOP_BOTTOM.png
index 5ba1e61487..5ba1e61487 100644
--- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/TeslaTopBottom.png
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_BASE_TOP_BOTTOM.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CAPS.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS.png
index 4401341ad7..4401341ad7 100644
--- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_CAPS.png
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_CAPS_ACTIVE.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/ToroidBase.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_TOROID.png
index e6b07eb650..e6b07eb650 100644
--- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/ToroidBase.png
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_TOROID.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilPrimary.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_0.png
index 4598fc32b3..4598fc32b3 100644
--- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilPrimary.png
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_0.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_1.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_2.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_3.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_4.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_SIDES_5.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_0.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_1.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_2.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_3.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_4.png
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_PRIMARY_TOP_BOTTOM_5.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilSecondary.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_SECONDARY.png
index 76388e39c7..76388e39c7 100644
--- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/CoilSecondary.png
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/TM_TESLA_WINDING_SECONDARY.png
Binary files differ