aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbasdxz <tudurap.com@gmail.com>2020-11-15 17:57:49 +0000
committerbasdxz <tudurap.com@gmail.com>2020-11-15 17:57:49 +0000
commitab706fea9e4192b611788981930a575f6d4205fe (patch)
tree2111e6b3fb00b174edbd68e33d8f806c4002b931
parent548e3eb74288448704ec790b4be6bdd16d3f7549 (diff)
downloadGT5-Unofficial-ab706fea9e4192b611788981930a575f6d4205fe.tar.gz
GT5-Unofficial-ab706fea9e4192b611788981930a575f6d4205fe.tar.bz2
GT5-Unofficial-ab706fea9e4192b611788981930a575f6d4205fe.zip
Thaum Lightning fixes
-Less spammy lightning bolts -Still has duplicate code and stuff
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/tesla/ITeslaConnectable.java19
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java55
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java82
3 files changed, 49 insertions, 107 deletions
diff --git a/src/main/java/com/github/technus/tectech/mechanics/tesla/ITeslaConnectable.java b/src/main/java/com/github/technus/tectech/mechanics/tesla/ITeslaConnectable.java
index 07059c82b2..74aa4b8463 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/tesla/ITeslaConnectable.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/tesla/ITeslaConnectable.java
@@ -5,7 +5,6 @@ import com.google.common.collect.Multimap;
import java.util.HashSet;
import java.util.Map;
-import java.util.Objects;
import static java.lang.Math.sqrt;
@@ -74,17 +73,15 @@ public interface ITeslaConnectable extends ITeslaConnectableSimple {
}
public static void generateTeslaNodeMap(ITeslaConnectable origin) {
- if(!teslaNodeSet.contains(origin)) {
- origin.getTeslaNodeMap().clear();
- for (ITeslaConnectableSimple target : teslaSimpleNodeSet) {
- //Sanity checks
- if (target == null) {
- //The Tesla Covers do not remove themselves from the list and this is the code that does
- teslaSimpleNodeSet.remove(null);
- continue;
- }
- addTargetToTeslaOrigin(target, origin);
+ origin.getTeslaNodeMap().clear();
+ for (ITeslaConnectableSimple target : teslaSimpleNodeSet) {
+ //Sanity checks
+ if (target == null) {
+ //The Tesla Covers do not remove themselves from the list and this is the code that does
+ teslaSimpleNodeSet.remove(null);
+ continue;
}
+ addTargetToTeslaOrigin(target, origin);
}
teslaNodeSet.add(origin);
}
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 22f1d003e6..d1d645acc2 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
@@ -52,8 +52,9 @@ import static net.minecraft.util.StatCollector.translateToLocal;
public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable, ITeslaConnectable {
//Interface fields
- Multimap<Integer, ITeslaConnectableSimple> teslaNodeMap = ArrayListMultimap.create();
- HashSet<ThaumSpark> sparkList = new HashSet<>();
+ private final Multimap<Integer, ITeslaConnectableSimple> teslaNodeMap = ArrayListMultimap.create();
+ private final HashSet<ThaumSpark> sparkList = new HashSet<>();
+ private int sparkCount = 10;
//region variables
private static final int transferRadiusTowerFromConfig = TecTech.configTecTech.TESLA_MULTI_RANGE_TOWER;//Default is 32
@@ -81,8 +82,6 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
private final ArrayList<GT_MetaTileEntity_Hatch_Capacitor> eCapacitorHatches = new ArrayList<>(); //Capacitor hatches which determine the max voltage tier and count of amps
- private int sortTime = 0; //Scan timer used for tesla search intervals
-
private long energyCapacity = 0; //Total energy storage limited by capacitors
private long outputVoltageMax = 0; //Tesla voltage output limited by capacitors
private int vTier = -1; //Tesla voltage tier limited by capacitors
@@ -459,13 +458,12 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
@Override
public void onRemoval() {
super.onRemoval();
- if (this.getBaseMetaTileEntity().isClientSide()) {
- return;
- }
- teslaSimpleNodeSetRemove(this);
- for (GT_MetaTileEntity_Hatch_Capacitor cap : eCapacitorHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(cap)) {
- cap.getBaseMetaTileEntity().setActive(false);
+ if (!getBaseMetaTileEntity().isClientSide()) {
+ teslaSimpleNodeSetRemove(this);
+ for (GT_MetaTileEntity_Hatch_Capacitor cap : eCapacitorHatches) {
+ if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(cap)) {
+ cap.getBaseMetaTileEntity().setActive(false);
+ }
}
}
}
@@ -557,13 +555,12 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
super.onFirstTick_EM(aBaseMetaTileEntity);
if (!aBaseMetaTileEntity.isClientSide()) {
teslaSimpleNodeSetAdd(this);
+ generateTeslaNodeMap(this);
}
}
@Override
public boolean onRunningTick(ItemStack aStack) {
- IGregTechTileEntity mte = getBaseMetaTileEntity();
-
//Hysteresis based ePowerPass setting
float energyFrac = (float) getEUVar() / energyCapacity;
@@ -577,15 +574,6 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
ePowerPass = false;
}
- //Create the teslaNodeMap
- if (sortTime == sortTimeMinSetting.get()) {
- sortTime = 0;
- sortTimeDisplay.updateStatus();
- generateTeslaNodeMap(this);
- }
- sortTime++;
- sortTimeDisplay.set(sortTime);
-
//Power Limit Settings
if (outputVoltageSetting.get() > 0) {
outputVoltage = min(outputVoltageMax, (long) outputVoltageSetting.get());
@@ -609,16 +597,21 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
//Power transfer
outputCurrentDisplay.set(powerTeslaNodeMap(this));
- if (!sparkList.isEmpty()) {
- NetworkDispatcher.INSTANCE.sendToAllAround(new RendererMessage.RendererData(sparkList),
- mte.getWorld().provider.dimensionId,
- posTop.get0(),
- posTop.get1(),
- posTop.get2(),
- 256);
+ //Randomly send all the sparks out once every 3 to 5 seconds
+ sparkCount--;
+ if (sparkCount == 0){
+ IGregTechTileEntity mte = getBaseMetaTileEntity();
+ sparkCount = 60 + mte.getWorld().rand.nextInt(41);
+ if(!sparkList.isEmpty()){
+ NetworkDispatcher.INSTANCE.sendToAllAround(new RendererMessage.RendererData(sparkList),
+ mte.getWorld().provider.dimensionId,
+ mte.getXCoord(),
+ mte.getYCoord(),
+ mte.getZCoord(),
+ 256);
+ sparkList.clear();
+ }
}
- sparkList.clear();
-
return 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 c7ebb76e09..292d363ad9 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
@@ -35,15 +35,13 @@ import static net.minecraft.util.StatCollector.translateToLocalFormatted;
public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryBuffer implements ITeslaConnectable {
//Interface fields
- Multimap<Integer, ITeslaConnectableSimple> teslaNodeMap = ArrayListMultimap.create();
- HashSet<ThaumSpark> sparkList = new HashSet<>();
+ private final Multimap<Integer, ITeslaConnectableSimple> teslaNodeMap = ArrayListMultimap.create();
+ private final HashSet<ThaumSpark> sparkList = new HashSet<>();
+ private int sparkCount = 10;
private final static int transferRadiusMax = TecTech.configTecTech.TESLA_SINGLE_RANGE;//Default is 20
private final static int perBlockLoss = TecTech.configTecTech.TESLA_SINGLE_LOSS_PER_BLOCK;//Default is 1
private final static float overDriveLoss = TecTech.configTecTech.TESLA_SINGLE_LOSS_FACTOR_OVERDRIVE;//Default is 0.25F
-
- private byte sparkCount = 0;
-
private final static int transferRadiusMin = 4;//Minimum user configurable
private int transferRadius = transferRadiusMax;//Default transferRadius setting
@@ -61,9 +59,6 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB
private String clientLocale = "en_US";
- private int sortTime = 0;//Sorting tick counter
- private final static int sortTimeMax = 100;//Sorting tick counter limit, so we only sort once every 5 seconds
-
public GT_MetaTileEntity_TeslaCoil(int aID, String aName, String aNameRegional, int aTier, int aSlotCount) {
super(aID, aName, aNameRegional, aTier, "", aSlotCount);
Util.setTier(aTier, this);
@@ -185,51 +180,12 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB
return new GT_MetaTileEntity_TeslaCoil(mName, mTier, mDescription, mTextures, mInventory.length);
}
-// private void thaumLightning(IGregTechTileEntity mte, IGregTechTileEntity node) {
-// int x = mte.getXCoord();
-// int y = mte.getYCoord();
-// int z = mte.getZCoord();
-//
-// byte xR;
-// byte yR;
-// byte zR;
-//
-// IMetaTileEntity nodeInside = node.getMetaTileEntity();
-// if (nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil) {
-// GT_MetaTileEntity_TM_teslaCoil nodeTesla = (GT_MetaTileEntity_TM_teslaCoil) nodeInside;
-// xR = (byte) (nodeTesla.posTop.get0() - x);
-// yR = (byte) (nodeTesla.posTop.get1() - y);
-// zR = (byte) (nodeTesla.posTop.get2() - z);
-// } else {
-// xR = (byte) (node.getXCoord() - x);
-// yR = (byte) (node.getYCoord() - y);
-// zR = (byte) (node.getZCoord() - z);
-// }
-//
-// int wID = mte.getWorld().provider.dimensionId;
-//
-// sparkList.add(new ThaumSpark(x, y, z, xR, yR, zR, wID));
-// }
-//
-// private long[] getOutputVoltage(long outputVoltage, int distance, boolean overDriveToggle) {
-// long outputVoltageInjectable;
-// long outputVoltageConsumption;
-//
-// if (overDriveToggle) {
-// outputVoltageInjectable = outputVoltage;
-// outputVoltageConsumption = outputVoltage + (distance * perBlockLoss) + (long) Math.round(overDriveLoss * outputVoltage);
-// } else {
-// outputVoltageInjectable = outputVoltage - (distance * perBlockLoss);
-// outputVoltageConsumption = outputVoltage;
-// }
-// return new long[]{outputVoltageInjectable, outputVoltageConsumption};
-// }
-
@Override
public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) {
super.onFirstTick(aBaseMetaTileEntity);
if (!aBaseMetaTileEntity.isClientSide()) {
teslaSimpleNodeSetAdd(this);
+ generateTeslaNodeMap(this);
}
}
@@ -266,27 +222,23 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB
powerPassToggle = false;
}
- //Create the teslaNodeMap
- if (sortTime == sortTimeMax) {
- sortTime = 0;
- generateTeslaNodeMap(this);
- }
- sortTime++;
-
//Send Power
powerTeslaNodeMap(this);
- sparkCount++;
- if (sparkCount == 60 && !sparkList.isEmpty()) {
- sparkCount = 0;
- NetworkDispatcher.INSTANCE.sendToAllAround(new RendererMessage.RendererData(sparkList),
- aBaseMetaTileEntity.getWorld().provider.dimensionId,
- aBaseMetaTileEntity.getXCoord(),
- aBaseMetaTileEntity.getYCoord(),
- aBaseMetaTileEntity.getZCoord(),
- 256);
+ //Randomly send all the sparks out once every 3 to 5 seconds
+ sparkCount--;
+ if (sparkCount == 0){
+ sparkCount = 60 + aBaseMetaTileEntity.getWorld().rand.nextInt(41);
+ if(!sparkList.isEmpty()){
+ NetworkDispatcher.INSTANCE.sendToAllAround(new RendererMessage.RendererData(sparkList),
+ aBaseMetaTileEntity.getWorld().provider.dimensionId,
+ aBaseMetaTileEntity.getXCoord(),
+ aBaseMetaTileEntity.getYCoord(),
+ aBaseMetaTileEntity.getZCoord(),
+ 256);
+ sparkList.clear();
+ }
}
- sparkList.clear();
}
@Override