aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorBass <tudurap.com@gmail.com>2019-08-18 04:47:45 +0100
committerBass <tudurap.com@gmail.com>2019-08-18 04:47:45 +0100
commit4f2726d40b956fb5831566ef5d63bbd4cbe9ef09 (patch)
tree5e4964f3f22808f1f7a25feec0664b1c8f4c357a /src/main
parentd3ce9e9b2df98c4ea85497814e69ce86b74c74a0 (diff)
downloadGT5-Unofficial-4f2726d40b956fb5831566ef5d63bbd4cbe9ef09.tar.gz
GT5-Unofficial-4f2726d40b956fb5831566ef5d63bbd4cbe9ef09.tar.bz2
GT5-Unofficial-4f2726d40b956fb5831566ef5d63bbd4cbe9ef09.zip
Tesla work extras
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/github/technus/tectech/Util.java8
-rw-r--r--src/main/java/com/github/technus/tectech/mechanics/data/RendererMessage.java23
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java112
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_TeslaCoil.java4
4 files changed, 84 insertions, 63 deletions
diff --git a/src/main/java/com/github/technus/tectech/Util.java b/src/main/java/com/github/technus/tectech/Util.java
index 774e8a45c8..17c50c92d6 100644
--- a/src/main/java/com/github/technus/tectech/Util.java
+++ b/src/main/java/com/github/technus/tectech/Util.java
@@ -149,8 +149,8 @@ public final class Util {
public static class thaumSpark implements Serializable {
private static final long serialVersionUID = 3235649915488422364L;
- public int x, z, wID;
- public byte y, xR, yR, zR;
+ public int x, y, z, wID;
+ public byte xR, yR, zR;
public thaumSpark(){
this.x = 0;
@@ -164,7 +164,7 @@ public final class Util {
this.wID = 0;
}
- public thaumSpark(int x, byte y, int z, byte xR, byte yR, byte zR, int wID) {
+ public thaumSpark(int x, int y, int z, byte xR, byte yR, byte zR, int wID) {
this.x = x;
this.z = z;
this.y = y;
@@ -192,7 +192,7 @@ public final class Util {
@Override
public int hashCode() {
- return Objects.hash(x, z, y, wID, xR, yR, zR);
+ return Objects.hash(x, y, z, wID, xR, yR, zR);
}
}
diff --git a/src/main/java/com/github/technus/tectech/mechanics/data/RendererMessage.java b/src/main/java/com/github/technus/tectech/mechanics/data/RendererMessage.java
index 70ea9cd158..796e6ec40a 100644
--- a/src/main/java/com/github/technus/tectech/mechanics/data/RendererMessage.java
+++ b/src/main/java/com/github/technus/tectech/mechanics/data/RendererMessage.java
@@ -19,7 +19,8 @@ import java.util.HashSet;
public class RendererMessage implements IMessage {
HashSet<Util.thaumSpark> sparkList = new HashSet<Util.thaumSpark>();
- public RendererMessage(){}
+ public RendererMessage() {
+ }
@Override
public void fromBytes(ByteBuf pBuffer) {
@@ -30,7 +31,7 @@ public class RendererMessage implements IMessage {
InputStream is = new ByteArrayInputStream(boop);
ObjectInputStream ois = new ObjectInputStream(is);
Object data = ois.readObject();
- sparkList = (HashSet<Util.thaumSpark>)data;
+ sparkList = (HashSet<Util.thaumSpark>) data;
} catch (IOException | ClassNotFoundException ex) {
}
}
@@ -58,20 +59,20 @@ public class RendererMessage implements IMessage {
public RendererData() {
}
- public RendererData(RendererQuery query){
- sparkList=query.sparkList;
+ public RendererData(RendererQuery query) {
+ sparkList = query.sparkList;
}
public RendererData(HashSet<Util.thaumSpark> eSparkList) {
- sparkList=eSparkList;
+ sparkList = eSparkList;
}
}
- public static class ClientHandler extends AbstractClientMessageHandler<RendererData>{
+ public static class ClientHandler extends AbstractClientMessageHandler<RendererData> {
@Override
public IMessage handleClientMessage(EntityPlayer pPlayer, RendererData pMessage, MessageContext pCtx) {
- for(Util.thaumSpark sp : pMessage.sparkList){
+ for (Util.thaumSpark sp : pMessage.sparkList) {
thaumLightning(sp.x, sp.y, sp.z, sp.xR, sp.yR, sp.zR, sp.wID);
}
pMessage.sparkList.clear();
@@ -79,17 +80,17 @@ public class RendererMessage implements IMessage {
}
}
- public static class ServerHandler extends AbstractServerMessageHandler<RendererQuery>{
+ public static class ServerHandler extends AbstractServerMessageHandler<RendererQuery> {
@Override
public IMessage handleServerMessage(EntityPlayer pPlayer, RendererQuery pMessage, MessageContext pCtx) {
return new RendererData(pMessage);
}
}
- private static void thaumLightning(int tX, byte tY, int tZ, int tXN, byte tYN, int tZN, int wID){
- if(Loader.isModLoaded("Thaumcraft")){
+ private static void thaumLightning(int tX, int tY, int tZ, int tXN, int tYN, int tZN, int wID) {
+ if (Loader.isModLoaded("Thaumcraft")) {
World world = DimensionManager.getWorld(wID);
- FXLightningBolt bolt = new FXLightningBolt(world,tX+0.5F,tY+0.5F,tZ+0.5F,tX+tXN+0.5F,tY+tYN+0.5F,tZ+tZN+0.5F,world.rand.nextLong(), 6, 0.5F, 8);
+ FXLightningBolt bolt = new FXLightningBolt(world, tX + 0.5F, tY + 0.5F, tZ + 0.5F, tX + tXN + 0.5F, tY + tYN + 0.5F, tZ + tZN + 0.5F, world.rand.nextLong(), 6, 0.5F, 8);
bolt.defaultFractal();
bolt.setType(2);
bolt.setWidth(0.125F);
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 639024732a..53c949da36 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
@@ -68,21 +68,25 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
//Scan range fields
private static int xPosOffsetScanMin;
private static int xPosOffsetScanMax;
- private static byte yPosOffsetScan0;
- private static byte yPosOffsetScan1;
- private static byte yPosOffsetScan2;
- private static byte yPosOffsetScan3;
- private static byte yPosOffsetScan4;
- private static byte yPosOffsetScan5;
+ private static int yPosOffsetScan0;
+ private static int yPosOffsetScan1;
+ private static int yPosOffsetScan2;
+ private static int yPosOffsetScan3;
+ private static int yPosOffsetScan4;
+ private static int yPosOffsetScan5;
private static int zPosOffsetScanMin;
private static int zPosOffsetScanMax;
+ //Power Transfer Origin
+ public int xPosZap;
+ public int yPosZap;
+ public int zPosZap;
+
//Lightning Origin
public int xPosTop;
- public byte yPosTop;
+ public int yPosTop;
public int zPosTop;
- //TODO Add center bottom
//region structure
private static final String[][] shape0 = new String[][]{//3 16 0
{"\u000F", "A . ",},
@@ -496,27 +500,33 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
}
//Calculate offsets for scanning
- int[] xyzOffsets=getTranslatedOffsets(40,0,43);
- xPosOffsetScanMin =xyzOffsets[0];
- yPosOffsetScan0 =(byte)xyzOffsets[1];
- zPosOffsetScanMin =xyzOffsets[2];
- xyzOffsets=getTranslatedOffsets(-40,-4,-37);
- yPosOffsetScan1 =(byte)xyzOffsets[1];
- xyzOffsets=getTranslatedOffsets(-40,-8,-37);
- yPosOffsetScan2 =(byte)xyzOffsets[1];
- xyzOffsets=getTranslatedOffsets(-40,-12,-37);
- yPosOffsetScan3 =(byte)xyzOffsets[1];
- xyzOffsets=getTranslatedOffsets(-40,-16,-37);
- yPosOffsetScan4 =(byte)xyzOffsets[1];
- xyzOffsets=getTranslatedOffsets(-40,-20,-37);
- xPosOffsetScanMax=xyzOffsets[0];
- yPosOffsetScan5 =(byte)xyzOffsets[1];
- zPosOffsetScanMax =xyzOffsets[2];
-
- //Calculate coordinates of the top of the tesla
+ int[] xyzOffsets = getTranslatedOffsets(40,0,43);
+ xPosOffsetScanMin = xyzOffsets[0];
+ yPosOffsetScan0 = xyzOffsets[1];
+ zPosOffsetScanMin = xyzOffsets[2];
+ xyzOffsets = getTranslatedOffsets(-40,-4,-37);
+ yPosOffsetScan1 = xyzOffsets[1];
+ xyzOffsets = getTranslatedOffsets(-40,-8,-37);
+ yPosOffsetScan2 = xyzOffsets[1];
+ xyzOffsets = getTranslatedOffsets(-40,-12,-37);
+ yPosOffsetScan3 = xyzOffsets[1];
+ xyzOffsets = getTranslatedOffsets(-40,-16,-37);
+ yPosOffsetScan4 = xyzOffsets[1];
+ xyzOffsets = getTranslatedOffsets(-40,-20,-37);
+ xPosOffsetScanMax= xyzOffsets[0];
+ yPosOffsetScan5 = xyzOffsets[1];
+ zPosOffsetScanMax = xyzOffsets[2];
+
+ //Calculate coordinates of the middle bottom
+ xyzOffsets=getTranslatedOffsets(0,0,2);
+ xPosZap = iGregTechTileEntity.getXCoord() + xyzOffsets[0];
+ yPosZap = iGregTechTileEntity.getYCoord() + xyzOffsets[1];
+ zPosZap = iGregTechTileEntity.getZCoord() + xyzOffsets[2];
+
+ //Calculate coordinates of the top sphere
xyzOffsets=getTranslatedOffsets(0,-14,2);
xPosTop = iGregTechTileEntity.getXCoord() + xyzOffsets[0];
- yPosTop = (byte)(iGregTechTileEntity.getYCoord() + xyzOffsets[1]);
+ yPosTop = iGregTechTileEntity.getYCoord() + xyzOffsets[1];
zPosTop = iGregTechTileEntity.getZCoord() + xyzOffsets[2];
return true;
@@ -570,14 +580,17 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
}
}
+ energyCapacity = 0;
+ outputCurrentMax = 0;
+
if(vTier < 0){
- return false;
+ //Returning true to allow for 'passive running'
+ outputVoltageMax = 0;
+ return true;
} else if (vTier > mTier && getEUVar() > 0){
explodeMultiblock();
}
- energyCapacity = 0;
- outputCurrentMax = 0;
outputVoltageMax = V[vTier+1];
for (GT_MetaTileEntity_Hatch_Capacitor cap : eCapacitorHatches) {
if (!GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(cap)) {
@@ -598,14 +611,21 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
return true;
}
- private void scanForTransmissionTargets(int xMin,int yMin, int zMin, int xMax, int yMax, int zMax){
+ private void scanForTransmissionTargets(IGregTechTileEntity mte, int xMin, int yMin, int zMin, int xMax, int yMax, int zMax){
+ int rX = mte.getXCoord();
+ int rY = mte.getYCoord();
+ int rZ = mte.getZCoord();
+
for (int xPosOffset = xMin; xPosOffset <= xMax; xPosOffset++) {
for (int yPosOffset = yMin; yPosOffset <= yMax; yPosOffset++) {
for (int zPosOffset = zMin; zPosOffset <= zMax; zPosOffset++) {
- if (xPosOffset == 0 && yPosOffset == 0 && zPosOffset == 0) {
+ int tX = xPosZap+xPosOffset;
+ int tY = yPosZap+yPosOffset;
+ int tZ = zPosZap+zPosOffset;
+ if (rX == tX && rY == tY && rZ == tZ) {
continue;
}
- IGregTechTileEntity node = getBaseMetaTileEntity().getIGregTechTileEntityOffset(xPosOffset, yPosOffset, zPosOffset);
+ IGregTechTileEntity node = getBaseMetaTileEntity().getIGregTechTileEntity(tX,tY,tZ);
if (node == null) {
continue;
}
@@ -620,9 +640,9 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
}
private void thaumLightning(IGregTechTileEntity mte, IGregTechTileEntity node) {
- byte xR = (byte) (node.getXCoord() - xPosTop);
- byte yR = (byte) (node.getYCoord() - yPosTop);
- byte zR = (byte) (node.getZCoord() - zPosTop);
+ byte xR = (byte)(node.getXCoord() - xPosTop);
+ byte yR = (byte)(node.getYCoord() - yPosTop);
+ byte zR = (byte)(node.getZCoord() - zPosTop);
int wID = mte.getWorld().provider.dimensionId;
@@ -678,23 +698,23 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
switch (scanTime) {
case 0:
scanTimeDisplay.updateStatus();
- scanForTransmissionTargets(xPosOffsetScanMin, yPosOffsetScan0, zPosOffsetScanMin, xPosOffsetScanMax - 1, yPosOffsetScan1 - 1, zPosOffsetScanMax - 1);
+ scanForTransmissionTargets(mte, xPosOffsetScanMin, yPosOffsetScan0, zPosOffsetScanMin, xPosOffsetScanMax - 1, yPosOffsetScan1 - 1, zPosOffsetScanMax - 1);
break;
case 20:
scanTimeDisplay.updateStatus();
- scanForTransmissionTargets(xPosOffsetScanMin, yPosOffsetScan1, zPosOffsetScanMin, xPosOffsetScanMax - 1, yPosOffsetScan1 - 1, zPosOffsetScanMax - 1);
+ scanForTransmissionTargets(mte, xPosOffsetScanMin, yPosOffsetScan1, zPosOffsetScanMin, xPosOffsetScanMax - 1, yPosOffsetScan1 - 1, zPosOffsetScanMax - 1);
break;
case 40:
scanTimeDisplay.updateStatus();
- scanForTransmissionTargets(xPosOffsetScanMin, yPosOffsetScan2, zPosOffsetScanMin, xPosOffsetScanMax - 1, yPosOffsetScan1 - 1, zPosOffsetScanMax - 1);
+ scanForTransmissionTargets(mte, xPosOffsetScanMin, yPosOffsetScan2, zPosOffsetScanMin, xPosOffsetScanMax - 1, yPosOffsetScan1 - 1, zPosOffsetScanMax - 1);
break;
case 60:
scanTimeDisplay.updateStatus();
- scanForTransmissionTargets(xPosOffsetScanMin, yPosOffsetScan3, zPosOffsetScanMin, xPosOffsetScanMax - 1, yPosOffsetScan4 - 1, zPosOffsetScanMax - 1);
+ scanForTransmissionTargets(mte, xPosOffsetScanMin, yPosOffsetScan3, zPosOffsetScanMin, xPosOffsetScanMax - 1, yPosOffsetScan4 - 1, zPosOffsetScanMax - 1);
break;
case 80:
scanTimeDisplay.updateStatus();
- scanForTransmissionTargets(xPosOffsetScanMin, yPosOffsetScan4, zPosOffsetScanMin, xPosOffsetScanMax, yPosOffsetScan5, zPosOffsetScanMax);
+ scanForTransmissionTargets(mte, xPosOffsetScanMin, yPosOffsetScan4, zPosOffsetScanMin, xPosOffsetScanMax, yPosOffsetScan5, zPosOffsetScanMax);
break;
default:
if (scanTime == (int) scanTimeMinSetting.get() - 1) {
@@ -709,12 +729,12 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
GT_MetaTileEntity_TeslaCoil teslaCoil = (GT_MetaTileEntity_TeslaCoil) nodeInside;
int tX = node.getXCoord();
- byte tY = (byte)node.getYCoord();
+ int tY = node.getYCoord();
int tZ = node.getZCoord();
- int tXN = mte.getXCoord();
- byte tYN = (byte)mte.getYCoord();
- int tZN = mte.getZCoord();
+ int tXN = xPosZap;
+ int tYN = yPosZap;
+ int tZN = zPosZap;
int tOffset = (int) Math.ceil(Math.sqrt(Math.pow(tX - tXN, 2) + Math.pow(tY - tYN, 2) + Math.pow(tZ - tZN, 2)));
teslaCoil.eTeslaMap.put(mte, tOffset);
@@ -725,7 +745,7 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
continue;
}
tXN = nodeN.getXCoord();
- tYN = (byte)nodeN.getYCoord();
+ tYN = nodeN.getYCoord();
tZN = nodeN.getZCoord();
tOffset = (int) Math.ceil(Math.sqrt(Math.pow(tX - tXN, 2) + Math.pow(tY - tYN, 2) + Math.pow(tZ - tZN, 2)));
if (tOffset > 20) {
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 83e79cacb9..16488403a4 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
@@ -182,7 +182,7 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB
private void thaumLightning(IGregTechTileEntity mte, IGregTechTileEntity node) {
int x = mte.getXCoord();
- byte y = (byte) mte.getYCoord();
+ int y = mte.getYCoord();
int z = mte.getZCoord();
byte xR;
@@ -190,7 +190,7 @@ public class GT_MetaTileEntity_TeslaCoil extends GT_MetaTileEntity_BasicBatteryB
byte zR;
IMetaTileEntity nodeInside = node.getMetaTileEntity();
- if (nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil) {//TODO Fix lightning alignment
+ if (nodeInside instanceof GT_MetaTileEntity_TM_teslaCoil) {
GT_MetaTileEntity_TM_teslaCoil nodeTesla = (GT_MetaTileEntity_TM_teslaCoil) nodeInside;
xR = (byte) (nodeTesla.xPosTop - x);
yR = (byte) (nodeTesla.yPosTop - y);