diff options
author | Bass <tudurap.com@gmail.com> | 2019-02-16 08:14:14 +0000 |
---|---|---|
committer | Bass <tudurap.com@gmail.com> | 2019-02-16 08:14:14 +0000 |
commit | ee4bd9f91d4b8f85b550730aa1e3c63d91b3be2f (patch) | |
tree | d9177bdb474a4befe2cafc357f70207379dc6180 /src | |
parent | 14d4eef90b2fc83c81857de5b91a79a0d5f95299 (diff) | |
download | GT5-Unofficial-ee4bd9f91d4b8f85b550730aa1e3c63d91b3be2f.tar.gz GT5-Unofficial-ee4bd9f91d4b8f85b550730aa1e3c63d91b3be2f.tar.bz2 GT5-Unofficial-ee4bd9f91d4b8f85b550730aa1e3c63d91b3be2f.zip |
Tesla WIP
Both types of tesla now map other teslas
After talking to 0laf, I think a super high tier Tesla Cover for straight tower to machine transfers.
Diffstat (limited to 'src')
9 files changed, 210 insertions, 145 deletions
diff --git a/src/main/java/com/github/technus/tectech/loader/thing/CoverLoader.java b/src/main/java/com/github/technus/tectech/loader/thing/CoverLoader.java index ca81427e03..e71489339e 100644 --- a/src/main/java/com/github/technus/tectech/loader/thing/CoverLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/thing/CoverLoader.java @@ -3,15 +3,17 @@ package com.github.technus.tectech.loader.thing; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.thing.cover.GT_Cover_TM_TeslaCoil; +import com.github.technus.tectech.thing.cover.GT_Cover_TM_TeslaCoil_Ultimate; import com.github.technus.tectech.thing.item.TeslaCoilCover; +import com.github.technus.tectech.thing.item.TeslaCoilCoverUltimate; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.objects.GT_RenderedTexture; import net.minecraft.item.ItemStack; - public class CoverLoader implements Runnable { public void run(){ - GregTech_API.registerCover(new ItemStack(TeslaCoilCover.INSTANCE, 1), new GT_RenderedTexture(Textures.BlockIcons.VENT_ADVANCED), new GT_Cover_TM_TeslaCoil()); + GregTech_API.registerCover(new ItemStack(TeslaCoilCover.INSTANCE, 1), new GT_RenderedTexture(Textures.BlockIcons.VENT_NORMAL), new GT_Cover_TM_TeslaCoil()); + GregTech_API.registerCover(new ItemStack(TeslaCoilCoverUltimate.INSTANCE, 1), new GT_RenderedTexture(Textures.BlockIcons.VENT_ADVANCED), new GT_Cover_TM_TeslaCoil_Ultimate()); TecTech.LOGGER.info("Cover functionality registered"); } } diff --git a/src/main/java/com/github/technus/tectech/loader/thing/ThingsLoader.java b/src/main/java/com/github/technus/tectech/loader/thing/ThingsLoader.java index e9967a3e62..6951ef6533 100644 --- a/src/main/java/com/github/technus/tectech/loader/thing/ThingsLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/thing/ThingsLoader.java @@ -54,6 +54,7 @@ public class ThingsLoader implements Runnable { TecTech.LOGGER.info("Reactor Simulator registered"); TeslaCoilCover.run(); + TeslaCoilCoverUltimate.run(); TecTech.LOGGER.info("Covers Items registered"); ConstructableTriggerItem.run(); diff --git a/src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil.java b/src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil.java index e1e1b9d595..bfb4ae9208 100644 --- a/src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil.java +++ b/src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil.java @@ -1,6 +1,6 @@ package com.github.technus.tectech.thing.cover; -import gregtech.api.util.GT_CoverBehavior; + import gregtech.api.util.GT_CoverBehavior; public class GT_Cover_TM_TeslaCoil extends GT_CoverBehavior { public GT_Cover_TM_TeslaCoil() { diff --git a/src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil_Ultimate.java b/src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil_Ultimate.java new file mode 100644 index 0000000000..7ad6bc6f5f --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil_Ultimate.java @@ -0,0 +1,8 @@ +package com.github.technus.tectech.thing.cover; + + import gregtech.api.util.GT_CoverBehavior; + +public class GT_Cover_TM_TeslaCoil_Ultimate extends GT_CoverBehavior { + public GT_Cover_TM_TeslaCoil_Ultimate() { + } +}
\ No newline at end of file diff --git a/src/main/java/com/github/technus/tectech/thing/item/TeslaCoilCoverUltimate.java b/src/main/java/com/github/technus/tectech/thing/item/TeslaCoilCoverUltimate.java new file mode 100644 index 0000000000..115f3a34c6 --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/item/TeslaCoilCoverUltimate.java @@ -0,0 +1,36 @@ +package com.github.technus.tectech.thing.item; + +import com.github.technus.tectech.CommonValues; +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +import java.util.List; + +import static com.github.technus.tectech.Reference.MODID; + + +public final class TeslaCoilCoverUltimate extends Item { + public static TeslaCoilCoverUltimate INSTANCE; + + public TeslaCoilCoverUltimate() { + setUnlocalizedName("tm.teslaCoilCoverUltimate"); + setTextureName(MODID + ":itemParametrizerMemoryCardUnlocked"); + } + + @Override + public void addInformation(ItemStack aStack, EntityPlayer ep, List aList, boolean boo) { + aList.add(CommonValues.BASS_MARK); + aList.add("Tesla-Enables Machines! (BUT LOUDER!!)"); + aList.add(EnumChatFormatting.BLUE + "Use on a machine to apply Tesla capabilities"); + aList.add(EnumChatFormatting.BLUE + "Who the hell need cables anyway?"); + } + + public static void run() { + INSTANCE = new TeslaCoilCoverUltimate(); + System.out.print(INSTANCE.getUnlocalizedName()); + GameRegistry.registerItem(INSTANCE, INSTANCE.getUnlocalizedName()); + } +} 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 bb7c815416..926c5e5d30 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 @@ -1,6 +1,7 @@ package com.github.technus.tectech.thing.metaTileEntity.multi; import com.github.technus.tectech.CommonValues; +import com.github.technus.tectech.thing.cover.GT_Cover_TM_TeslaCoil_Ultimate; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_Capacitor; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti; @@ -20,7 +21,7 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -import java.util.ArrayList; +import java.util.*; import static com.github.technus.tectech.CommonValues.V; import static com.github.technus.tectech.Util.StructureBuilder; @@ -45,8 +46,7 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock private int scanTimeMin = 100; //Min scan time in ticks private int scanTimeTill = scanTimeMin; //Set default scan time - private ArrayList<GT_MetaTileEntity_TeslaCoil> eTeslaList = new ArrayList<>(); //Makes a list of Smol Teslas - private ArrayList<GT_MetaTileEntity_TM_teslaCoil> eTeslaTowerList = new ArrayList<>(); //Makes a list for BIGG Teslas + private Map<IGregTechTileEntity, Integer> eTeslaMap = new HashMap<IGregTechTileEntity, Integer>();//Tesla Map to map them tesla bois! private float histLow = 0.25F; //Power pass is disabled if power is under this fraction private float histHigh = 0.75F; //Power pass is enabled if power is over this fraction @@ -54,8 +54,11 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock private float histLowLimit = 0.05F; //How low can you configure it? private float histHighLimit = 0.95F; //How high can you configure it? - private int scanRadius = 64; //Radius for small to tower transfers - private int scanRadiusTower = scanRadius * 2; //Radius for tower to tower transfers + private int scanRadius = 64; //Tesla scan radius + + private int transferRadiusTower = 32; //Radius for tower to tower transfers + private int transferRadiusTransceiver = 16; //Radius for tower to transceiver transfers + private int transferRadiusCoverUltimate = 16; //Radius for tower to ultimate cover transfers private long outputVoltage = 512; //Tesla Voltage Output private long outputCurrent = 1; //Tesla Current Output @@ -68,12 +71,27 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock private long histLowParam = 0; private long histHighParam = 0; private long histScaleParam = 0; - private int scanRadiusParam = 0; - private int scanRadiusTowerParam = 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; + static <K, V extends Comparable<? super V>> SortedSet<Map.Entry<K, V>> entriesSortedByValues(Map<K, V> map) { + SortedSet<Map.Entry<K, V>> sortedEntries = new TreeSet<Map.Entry<K, V>>( + new Comparator<Map.Entry<K, V>>() { + @Override + public int compare(Map.Entry<K, V> e1, Map.Entry<K, V> e2) { + int res = e1.getValue().compareTo(e2.getValue()); + return res != 0 ? res : 1; // Special fix to preserve items with equal values + } + } + ); + sortedEntries.addAll(map.entrySet()); + return sortedEntries; + } + //region structure private static final String[][] shape0 = new String[][]{//3 16 0 {"\u000F", "A . ",}, @@ -295,8 +313,9 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock histLowParam = 0; histHighParam = 0; histScaleParam = 0; - scanRadiusParam = 0; - scanRadiusTowerParam = 0; + transferRadiusTowerParam = 0; + transferRadiusTransceiverParam = 0; + transferRadiusCoverUltimateParam = 0; outputVoltageParam = 0; outputCurrentParam = 0; scanTimeMin = 0; @@ -344,55 +363,24 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock scanTime++; if (scanTime >= scanTimeTill) { scanTime = 0; - - scanRadius = 64; //TODO Generate depending on power stored - eTeslaList.clear(); - - if (parametrized && scanRadiusParam > 0 && scanRadiusParam < scanRadius) { - scanRadius = scanRadiusParam; - } + eTeslaMap.clear(); for (int xPosOffset = -scanRadius; xPosOffset <= scanRadius; xPosOffset++) { - for (int yPosOffset = -scanRadius; yPosOffset <= scanRadius; yPosOffset++) { - for (int zPosOffset = -scanRadius; zPosOffset <= scanRadius; zPosOffset++) { - if (xPosOffset == 0 && yPosOffset == 0 && zPosOffset == 0){ + for (int yPosOffset = -scanRadius; yPosOffset <= scanRadius; yPosOffset++) { + for (int zPosOffset = -scanRadius; zPosOffset <= scanRadius; zPosOffset++) { + if (xPosOffset == 0 && yPosOffset == 0 && zPosOffset == 0) { continue; } IGregTechTileEntity node = mte.getIGregTechTileEntityOffset(xPosOffset, yPosOffset, zPosOffset); - if (node == null) { - continue; - } - IMetaTileEntity nodeInside = node.getMetaTileEntity(); - if (nodeInside instanceof GT_MetaTileEntity_TeslaCoil){ - eTeslaList.add((GT_MetaTileEntity_TeslaCoil) nodeInside); - } - } - } - } - - scanRadiusTower = scanRadius * 2; - eTeslaTowerList.clear(); - - if (parametrized && scanRadiusTowerParam > 0 && scanRadiusTowerParam < scanRadiusTower) { - scanRadiusTower = scanRadiusTowerParam; - } - - for (int xPosOffset = -scanRadiusTower; xPosOffset <= scanRadiusTower; xPosOffset++) { - for (int yPosOffset = -scanRadiusTower; yPosOffset <= scanRadiusTower; yPosOffset++) { - for (int zPosOffset = -scanRadiusTower; zPosOffset <= scanRadiusTower; zPosOffset++) { - if (xPosOffset == 0 && yPosOffset == 0 && zPosOffset == 0){ + if (node == null) { continue; } - IGregTechTileEntity node = mte.getIGregTechTileEntityOffset(xPosOffset, yPosOffset, zPosOffset); - if (node == null) { - continue; - } - IMetaTileEntity nodeInside = node.getMetaTileEntity(); - if (nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil && node.isActive()){ - eTeslaTowerList.add((GT_MetaTileEntity_TM_teslaCoil) nodeInside); - } - } - } + IMetaTileEntity nodeInside = node.getMetaTileEntity(); + if (nodeInside instanceof GT_MetaTileEntity_TeslaCoil || nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil && node.isActive() || (node.getCoverBehaviorAtSide((byte) 1) instanceof GT_Cover_TM_TeslaCoil_Ultimate)) { + eTeslaMap.put(node, (int) Math.ceil(Math.sqrt(xPosOffset * xPosOffset + yPosOffset * yPosOffset + zPosOffset * zPosOffset))); + } + } + } } } @@ -402,50 +390,80 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock outputCurrent = 1;//TODO Generate depending on count of capacitors if (parametrized && outputVoltageParam > 0 && outputVoltage > outputVoltageParam){ - outputVoltage = outputVoltageParam;} + outputVoltage = outputVoltageParam; + } if (parametrized && outputCurrentParam > 0 && outputCurrent > outputCurrentParam){ - outputCurrent = outputCurrentParam;} + outputCurrent = outputCurrentParam; + } outputEuT = outputVoltage * outputCurrent; - long requestedSumEU = 0; + transferRadiusTower = 32; //TODO generate based on power stored + transferRadiusTransceiver = 16; //TODO generate based on power stored + transferRadiusCoverUltimate = 16; //TODO generate based on power stored - //Clean the Smol Tesla list - for (GT_MetaTileEntity_TeslaCoil Rx : eTeslaList.toArray(new GT_MetaTileEntity_TeslaCoil[eTeslaList.size()])) { - try { - requestedSumEU += Rx.maxEUStore() - Rx.getEUVar(); - } catch (Exception e) { - eTeslaList.remove(Rx); - } + if(parametrized && transferRadiusTowerParam > 0 && transferRadiusTowerParam < transferRadiusTower){ + transferRadiusTower = transferRadiusTowerParam; } - //Clean the large tesla list - for (GT_MetaTileEntity_TM_teslaCoil Rx : eTeslaTowerList.toArray(new GT_MetaTileEntity_TM_teslaCoil[eTeslaTowerList.size()])) { - try { - requestedSumEU += Rx.maxEUStore() - Rx.getEUVar(); - } catch (Exception e) { - eTeslaTowerList.remove(Rx); - } + if(parametrized && transferRadiusTransceiverParam > 0 && transferRadiusTransceiverParam < transferRadiusTransceiver){ + transferRadiusTransceiver = transferRadiusTransceiverParam; } - //Try to send EU to the smol teslas - for (GT_MetaTileEntity_TeslaCoil Rx : eTeslaList) { - if (!Rx.powerPassToggle) { - long euTran = outputVoltage; - if (Rx.getBaseMetaTileEntity().injectEnergyUnits((byte)6, euTran, 1L) > 0L) { - setEUVar(getEUVar() - euTran); + if(parametrized && transferRadiusCoverUltimateParam > 0 && transferRadiusCoverUltimateParam < transferRadiusCoverUltimate){ + transferRadiusCoverUltimate = transferRadiusCoverUltimateParam; + } + + //Clean the eTeslaMap + for (Map.Entry<IGregTechTileEntity, Integer> Rx : entriesSortedByValues(eTeslaMap)) { + IGregTechTileEntity node = Rx.getKey(); + if (node != null) { + IMetaTileEntity nodeInside = node.getMetaTileEntity(); + try { + if (nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil && node.isActive()) { + GT_MetaTileEntity_TM_teslaCoil teslaTower = (GT_MetaTileEntity_TM_teslaCoil) nodeInside; + if (teslaTower.maxEUStore() > 0) { + continue; + } + } else if (nodeInside instanceof GT_MetaTileEntity_TeslaCoil) { + GT_MetaTileEntity_TeslaCoil teslaCoil = (GT_MetaTileEntity_TeslaCoil) nodeInside; + if (teslaCoil.getStoredEnergy()[1] > 0) { + continue; + } + } else if ((node.getCoverBehaviorAtSide((byte) 1) instanceof GT_Cover_TM_TeslaCoil_Ultimate) && node.getEUCapacity() > 0) { + continue; + } + } catch (Exception e) { } } + eTeslaMap.remove(Rx.getKey()); } - //Try to send EU to big teslas - for (GT_MetaTileEntity_TM_teslaCoil Rx : eTeslaTowerList) { - if (!Rx.powerPassToggle) { - long euTran = outputVoltage; - if (Rx.getEUVar() + euTran <= (Rx.maxEUStore()/2)) { + //Power transfer + for (Map.Entry<IGregTechTileEntity, Integer> Rx : entriesSortedByValues(eTeslaMap)) { + IGregTechTileEntity node = Rx.getKey(); + IMetaTileEntity nodeInside = node.getMetaTileEntity(); + long euTran = 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); + } + } + } 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); + } + } + } else if ((node.getCoverBehaviorAtSide((byte) 1) instanceof GT_Cover_TM_TeslaCoil_Ultimate) && Rx.getValue() <= transferRadiusCoverUltimate){ + if (node.injectEnergyUnits((byte)6, euTran, 1L) > 0L) { setEUVar(getEUVar() - euTran); - Rx.getBaseMetaTileEntity().increaseStoredEnergyUnits(euTran, true); } } } 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 a8797682e6..906ce556f7 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 @@ -25,27 +25,32 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB private int scanTimeMin = 100; //Min scan time in ticks
private int scanTimeTill = scanTimeMin; //Set default scan time
- private Map<IGregTechTileEntity, Integer> eTeslaTowerMap = new HashMap<IGregTechTileEntity, Integer>();
+ private Map<IGregTechTileEntity, Integer> eTeslaMap = new HashMap<IGregTechTileEntity, Integer>();//Tesla Map to map them tesla bois!
private int histSteps = 20; //Hysteresis Resolution
private int histSettingLow = 3;
private int histSettingHigh = 15;
private int histLowLimit = 1; //How low can you configure it?
- private int histHighLimit = histSteps-1; //How high can you configure it?
+ private int histHighLimit = histSteps - 1; //How high can you configure it?
- private float histLow = (float)histSettingLow/histSteps; //Power pass is disabled if power is under this fraction
- private float histHigh = (float)histSettingHigh/histSteps; //Power pass is enabled if power is over this fraction
+ private float histLow = (float) histSettingLow / histSteps; //Power pass is disabled if power is under this fraction
+ private float histHigh = (float) histSettingHigh / histSteps; //Power pass is enabled if power is over this fraction
+
+ private int scanRadius = 32; //Tesla scan radius
+
+ private int transferRadiusTower = 32; //Radius for transceiver to tower transfers
+ private int transferRadiusCover = 16; //Radius for transceiver to cover transfers
- private int scanRadiusTower = 64; //Radius for tower to tower transfers
private long outputVoltage = 512; //Tesla Voltage Output
private long outputCurrent = 1; //Tesla Current Output
private long outputEuT = outputVoltage * outputCurrent; //Tesla Power Output
- static <K,V extends Comparable<? super V>> SortedSet<Map.Entry<K,V>> entriesSortedByValues(Map<K,V> map) {
- SortedSet<Map.Entry<K,V>> sortedEntries = new TreeSet<Map.Entry<K,V>>(
- new Comparator<Map.Entry<K,V>>() {
- @Override public int compare(Map.Entry<K,V> e1, Map.Entry<K,V> e2) {
+ static <K, V extends Comparable<? super V>> SortedSet<Map.Entry<K, V>> entriesSortedByValues(Map<K, V> map) {
+ SortedSet<Map.Entry<K, V>> sortedEntries = new TreeSet<Map.Entry<K, V>>(
+ new Comparator<Map.Entry<K, V>>() {
+ @Override
+ public int compare(Map.Entry<K, V> e1, Map.Entry<K, V> e2) {
int res = e1.getValue().compareTo(e2.getValue());
return res != 0 ? res : 1; // Special fix to preserve items with equal values
}
@@ -67,20 +72,20 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
if (aPlayer.isSneaking()) {
- if (histSettingHigh<histHighLimit) {
+ if (histSettingHigh < histHighLimit) {
histSettingHigh++;
} else {
- histSettingHigh=histSettingLow+1;
+ histSettingHigh = histSettingLow + 1;
}
- histHigh = (float)histSettingHigh/histSteps;
+ histHigh = (float) histSettingHigh / histSteps;
PlayerChatHelper.SendInfo(aPlayer, "Hysteresis High Changed to " + round(histHigh * 100F) + "%");
} else {
- if (histSettingLow>histLowLimit) {
+ if (histSettingLow > histLowLimit) {
histSettingLow--;
} else {
- histSettingLow=histSettingHigh-1;
+ histSettingLow = histSettingHigh - 1;
}
- histLow = (float)histSettingLow/histSteps;
+ histLow = (float) histSettingLow / histSteps;
PlayerChatHelper.SendInfo(aPlayer, "Hysteresis Low Changed to " + round(histLow * 100F) + "%");
}
}
@@ -101,10 +106,6 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB ItemStack[] var4 = this.mInventory;
int var5 = var4.length;
- if (aBaseMetaTileEntity.getCoverBehaviorAtSide((byte)1) instanceof GT_Cover_TM_TeslaCoil && scanTime == 0){
- System.out.println("I myself feel quite tesla enabled indeed!");
- }
-
for (int var6 = 0; var6 < var5; ++var6) {
ItemStack tStack = var4[var6];
if (GT_ModHandler.isElectricItem(tStack, this.mTier)) {
@@ -119,8 +120,7 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB long energyMax = getStoredEnergy()[1];
long energyStored = getStoredEnergy()[0];
- float energyFrac = (float)energyStored/energyMax;
- //System.err.println(energyFrac); Debug energy fraction display
+ float energyFrac = (float) energyStored / energyMax;
//ePowerPass hist toggle
if (!powerPassToggle && energyFrac > histHigh) {
@@ -133,14 +133,12 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB scanTime++;
if (scanTime >= scanTimeTill) {
scanTime = 0;
+ eTeslaMap.clear();
- scanRadiusTower = 64; //TODO Generate depending on power stored
- eTeslaTowerMap.clear();
-
- for (int xPosOffset = -scanRadiusTower; xPosOffset <= scanRadiusTower; xPosOffset++) {
- for (int yPosOffset = -scanRadiusTower; yPosOffset <= scanRadiusTower; yPosOffset++) {
- for (int zPosOffset = -scanRadiusTower; zPosOffset <= scanRadiusTower; zPosOffset++) {
- if (xPosOffset == 0 && yPosOffset == 0 && zPosOffset == 0){
+ for (int xPosOffset = -scanRadius; xPosOffset <= scanRadius; xPosOffset++) {
+ for (int yPosOffset = -scanRadius; yPosOffset <= scanRadius; yPosOffset++) {
+ for (int zPosOffset = -scanRadius; zPosOffset <= scanRadius; zPosOffset++) {
+ if (xPosOffset == 0 && yPosOffset == 0 && zPosOffset == 0) {
continue;
}
IGregTechTileEntity node = mte.getIGregTechTileEntityOffset(xPosOffset, yPosOffset, zPosOffset);
@@ -148,18 +146,14 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB continue;
}
IMetaTileEntity nodeInside = node.getMetaTileEntity();
- if (nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil && node.isActive() || (node.getCoverBehaviorAtSide((byte)1) instanceof GT_Cover_TM_TeslaCoil)){
- eTeslaTowerMap.put(node,(int)Math.ceil(Math.sqrt(xPosOffset*xPosOffset + yPosOffset*yPosOffset + zPosOffset*zPosOffset)));
+ if (nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil && node.isActive() || (node.getCoverBehaviorAtSide((byte) 1) instanceof GT_Cover_TM_TeslaCoil)) {
+ eTeslaMap.put(node, (int) Math.ceil(Math.sqrt(xPosOffset * xPosOffset + yPosOffset * yPosOffset + zPosOffset * zPosOffset)));
}
}
}
}
}
- for (Map.Entry<IGregTechTileEntity, Integer> Rx : entriesSortedByValues(eTeslaTowerMap)) {
- System.out.println("yote @: " + Rx.getValue());
- }
-
//Stuff to do if ePowerPass
if (powerPassToggle) {
outputVoltage = 512;//TODO Set Depending On Tier
@@ -167,41 +161,45 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB outputEuT = outputVoltage * outputCurrent;
- long requestedSumEU = 0;//TODO Find a use for requestedSumEU
+ transferRadiusTower = 32; //TODO generate based on power stored
+ transferRadiusCover = 16; //TODO generate based on power stored
- //Clean the node list SMALL INSTANCE REAPING DOESN'T WORK
- for (Map.Entry<IGregTechTileEntity, Integer> Rx : entriesSortedByValues(eTeslaTowerMap)) {
+ //Clean the eTeslaMap
+ for (Map.Entry<IGregTechTileEntity, Integer> Rx : entriesSortedByValues(eTeslaMap)) {
IGregTechTileEntity node = Rx.getKey();
- if (node == null) {
- eTeslaTowerMap.remove(Rx.getKey());
- System.err.println("Dead Tesla Reaped!");
- continue;
- }
- IMetaTileEntity nodeInside = node.getMetaTileEntity();
- try {
- if (nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil && node.isActive()) {
- GT_MetaTileEntity_TM_teslaCoil teslaTower = (GT_MetaTileEntity_TM_teslaCoil) nodeInside;
- requestedSumEU += teslaTower.maxEUStore() - teslaTower.getEUVar();
- } else if ((node.getCoverBehaviorAtSide((byte) 1) instanceof GT_Cover_TM_TeslaCoil)) {
- requestedSumEU += node.getEUCapacity() - node.getStoredEU();
- } else {
- eTeslaTowerMap.remove(Rx.getKey());
- System.err.println("Dead Tesla Reaped!");
+ if (node != null) {
+ IMetaTileEntity nodeInside = node.getMetaTileEntity();
+ try {
+ if (nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil && node.isActive()) {
+ GT_MetaTileEntity_TM_teslaCoil teslaTower = (GT_MetaTileEntity_TM_teslaCoil) nodeInside;
+ if (teslaTower.maxEUStore() > 0) {
+ continue;
+ }
+ } else if ((node.getCoverBehaviorAtSide((byte) 1) instanceof GT_Cover_TM_TeslaCoil) && node.getEUCapacity() > 0) {
+ continue;
+ }
+ } catch (Exception e) {
}
- } catch (Exception e) {
- eTeslaTowerMap.remove(Rx.getKey());
- System.err.println("Dead Tesla Reaped!");
}
+ eTeslaMap.remove(Rx.getKey());
}
- for (Map.Entry<IGregTechTileEntity, Integer> Rx : entriesSortedByValues(eTeslaTowerMap)) {
- GT_MetaTileEntity_TM_teslaCoil nodeInside = (GT_MetaTileEntity_TM_teslaCoil) Rx.getKey().getMetaTileEntity();
- if (!nodeInside.powerPassToggle) {
- long euTran = outputVoltage;
- if (nodeInside.getEUVar() + euTran <= (nodeInside.maxEUStore() / 2)) {
+ //Power transfer
+ for (Map.Entry<IGregTechTileEntity, Integer> Rx : entriesSortedByValues(eTeslaMap)) {
+ IGregTechTileEntity node = Rx.getKey();
+ IMetaTileEntity nodeInside = node.getMetaTileEntity();
+ long euTran = 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);
+ }
+ }
+ } else if ((node.getCoverBehaviorAtSide((byte) 1) instanceof GT_Cover_TM_TeslaCoil) && Rx.getValue() <= transferRadiusCover){
+ if (node.injectEnergyUnits((byte)6, euTran, 1L) > 0L) {
setEUVar(getEUVar() - euTran);
- nodeInside.getBaseMetaTileEntity().increaseStoredEnergyUnits(euTran, true);
- System.err.println("Energy Sent!");
}
}
}
diff --git a/src/main/resources/assets/tectech/lang/en_US.lang b/src/main/resources/assets/tectech/lang/en_US.lang index 2c748a18d7..f01a74a0a2 100644 --- a/src/main/resources/assets/tectech/lang/en_US.lang +++ b/src/main/resources/assets/tectech/lang/en_US.lang @@ -10,6 +10,7 @@ item.em.parametrizerMemoryCard.name=Parametrizer Memory Card item.em.EuMeterGT.name=GT EU meter item.tm.teslaCoilCover.name=Tesla Coil Cover +item.tm.teslaCoilCoverUltimate=Tesla Coil Cover Rich Edition death.attack.microwaving=%1$s was dehydrated by radiation. death.attack.microwaving.player=%1$s was dehydrated by radiation while fighting %2$s. diff --git a/src/main/resources/assets/tectech/lang/zh_CN.lang b/src/main/resources/assets/tectech/lang/zh_CN.lang index 47912d245d..52ae6c594d 100644 --- a/src/main/resources/assets/tectech/lang/zh_CN.lang +++ b/src/main/resources/assets/tectech/lang/zh_CN.lang @@ -7,6 +7,7 @@ item.em.debugBuilder.name=多方块机器蓝图 item.em.parametrizerMemoryCard.name=参量机记忆卡 item.tm.teslaCoilCover.name=Tesla Coil Cover +item.tm.teslaCoilCoverUltimate=Tesla Coil Cover Rich Edition death.attack.microwaving=%1$s 被辐射脱水 death.attack.microwaving.player=%1$s 在与 %2$s 战斗中被辐射脱水 |