diff options
author | basdxz <tudurap.com@gmail.com> | 2020-11-15 17:57:49 +0000 |
---|---|---|
committer | basdxz <tudurap.com@gmail.com> | 2020-11-15 17:57:49 +0000 |
commit | ab706fea9e4192b611788981930a575f6d4205fe (patch) | |
tree | 2111e6b3fb00b174edbd68e33d8f806c4002b931 | |
parent | 548e3eb74288448704ec790b4be6bdd16d3f7549 (diff) | |
download | GT5-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
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
|