aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/github/technus/tectech/thing/cover/GT_Cover_TM_TeslaCoil.java16
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java11
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java6
-rw-r--r--src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java16
-rw-r--r--src/main/java/gregtech/api/util/GT_CoverBehavior.java18
-rw-r--r--src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java11
-rw-r--r--src/main/java/gregtech/common/covers/CoverInfo.java4
-rw-r--r--src/main/resources/assets/tectech/lang/en_US.lang1
-rw-r--r--src/main/resources/assets/tectech/lang/zh_CN.lang5
9 files changed, 80 insertions, 8 deletions
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 e5d2b7acde..381aa1d730 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
@@ -32,6 +32,16 @@ public class GT_Cover_TM_TeslaCoil extends GT_CoverBehavior {
}
@Override
+ public void onCoverUnload(ICoverable aTileEntity) {
+ if (!aTileEntity.isClientSide()) {
+ teslaSimpleNodeSetRemove(
+ new TeslaCoverConnection(
+ aTileEntity.getIGregTechTileEntityOffset(0, 0, 0),
+ getTeslaReceptionCapability()));
+ }
+ }
+
+ @Override
public boolean onCoverRemoval(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity,
boolean aForced) {
teslaSimpleNodeSetRemove(
@@ -40,6 +50,12 @@ public class GT_Cover_TM_TeslaCoil extends GT_CoverBehavior {
}
@Override
+ public void onBaseTEDestroyed(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
+ teslaSimpleNodeSetRemove(
+ new TeslaCoverConnection(aTileEntity.getIGregTechTileEntityOffset(0, 0, 0), getTeslaReceptionCapability()));
+ }
+
+ @Override
public String getDescription(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
return "Do not attempt to use screwdriver!"; // TODO Translation support
}
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 d3fa0401e6..8c3ad47ebe 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
@@ -310,8 +310,8 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
transferRadiusTransceiverSetting, transferRadiusCoverUltimateSetting, outputVoltageSetting,
outputCurrentSetting, sortTimeMinSetting, overDriveSetting;
protected Parameters.Group.ParameterOut popogaDisplay, transferRadiusTowerDisplay, transferRadiusTransceiverDisplay,
- transferRadiusCoverUltimateDisplay, outputVoltageDisplay, outputCurrentDisplay, energyCapacityDisplay,
- energyStoredDisplay, energyFractionDisplay, sortTimeDisplay;
+ transferRadiusCoverUltimateDisplay, outputVoltageDisplay, outputCurrentDisplay, outputMaxDisplay,
+ energyCapacityDisplay, energyStoredDisplay, energyFractionDisplay, sortTimeDisplay;
private static final INameFunction<GT_MetaTileEntity_TM_teslaCoil> HYSTERESIS_LOW_SETTING_NAME = (base,
p) -> translateToLocal("gt.blockmachines.multimachine.tm.teslaCoil.cfgi.0"); // Hysteresis low setting
@@ -350,6 +350,8 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
// display
private static final INameFunction<GT_MetaTileEntity_TM_teslaCoil> OUTPUT_VOLTAGE_DISPLAY_NAME = (base,
p) -> translateToLocal("gt.blockmachines.multimachine.tm.teslaCoil.cfgo.3"); // Output voltage display
+ private static final INameFunction<GT_MetaTileEntity_TM_teslaCoil> OUTPUT_MAX_DISPLAY_NAME = (base,
+ p) -> translateToLocal("gt.blockmachines.multimachine.tm.teslaCoil.cfgo.9"); // Output max display
private static final INameFunction<GT_MetaTileEntity_TM_teslaCoil> OUTPUT_CURRENT_DISPLAY_NAME = (base,
p) -> translateToLocal("gt.blockmachines.multimachine.tm.teslaCoil.cfgo.4"); // Output current display
private static final INameFunction<GT_MetaTileEntity_TM_teslaCoil> ENERGY_CAPACITY_DISPLAY_NAME = (base,
@@ -784,7 +786,7 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
transferRadiusCoverUltimateDisplay = hatch_3
.makeOutParameter(1, 0, TRANSFER_RADIUS_COVER_ULTIMATE_DISPLAY_NAME, TRANSFER_RADIUS_COVER_ULTIMATE_STATUS);
outputVoltageDisplay = hatch_4.makeOutParameter(0, 0, OUTPUT_VOLTAGE_DISPLAY_NAME, POWER_STATUS);
- popogaDisplay = hatch_4.makeOutParameter(1, 0, POPOGA_NAME, POPOGA_STATUS);
+ outputMaxDisplay = hatch_4.makeOutParameter(1, 0, OUTPUT_MAX_DISPLAY_NAME, POWER_STATUS);
outputCurrentDisplay = hatch_5.makeOutParameter(0, 0, OUTPUT_CURRENT_DISPLAY_NAME, POWER_STATUS);
energyCapacityDisplay = hatch_5.makeOutParameter(1, 0, ENERGY_CAPACITY_DISPLAY_NAME, ENERGY_STATUS);
energyStoredDisplay = hatch_6.makeOutParameter(0, 0, ENERGY_STORED_DISPLAY_NAME, ENERGY_STATUS);
@@ -822,6 +824,7 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
setEUVar(0);
energyStoredDisplay.set(0);
energyFractionDisplay.set(0);
+ outputMaxDisplay.set(0);
}
@Override
@@ -861,7 +864,7 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
// Power transfer
outputCurrentDisplay.set(powerTeslaNodeMap(this));
-
+ outputMaxDisplay.set(Math.max(outputCurrentDisplay.get(), outputMaxDisplay.get()));
// TODO Encapsulate the spark sender
sparkCount--;
if (sparkCount == 0 && visualEffect) {
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
index bf6358c884..386975dd6d 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
@@ -980,9 +980,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity
@Override
public void onChunkUnload() {
if (canAccessData()) {
+ onCoverUnload();
mMetaTileEntity.onUnload();
}
-
super.onChunkUnload();
onChunkUnloadAE();
}
@@ -2276,7 +2276,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity
@Override
public void onBlockDestroyed() {
- if (canAccessData()) getMetaTileEntity().onBlockDestroyed();
+ if (canAccessData()) {
+ getMetaTileEntity().onBlockDestroyed();
+ }
}
@Override
diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
index 277b79c777..4dce0a083e 100644
--- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
@@ -194,6 +194,22 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov
return true;
}
+ protected void onCoverUnload() {
+ byte validCoversMask = this.validCoversMask;
+ if (validCoversMask == 0) return;
+
+ for (int i = Integer.numberOfTrailingZeros(validCoversMask); i < 6; i++) {
+ if (((validCoversMask >>> i) & 1) == 0) continue;
+ onCoverUnloadAtSide(ForgeDirection.VALID_DIRECTIONS[i]);
+ }
+ }
+
+ public void onCoverUnloadAtSide(ForgeDirection side) {
+ final CoverInfo coverInfo = getCoverInfoAtSide(side);
+ if (!coverInfo.isValid()) return;
+ coverInfo.onCoverUnload();
+ }
+
public boolean tickCoverAtSide(ForgeDirection side) {
return tickCoverAtSide(side, mTickTimer);
}
diff --git a/src/main/java/gregtech/api/util/GT_CoverBehavior.java b/src/main/java/gregtech/api/util/GT_CoverBehavior.java
index 34fc151b9a..3c3a8607fe 100644
--- a/src/main/java/gregtech/api/util/GT_CoverBehavior.java
+++ b/src/main/java/gregtech/api/util/GT_CoverBehavior.java
@@ -100,6 +100,18 @@ public abstract class GT_CoverBehavior extends GT_CoverBehaviorBase<ISerializabl
}
@Override
+ protected void onBaseTEDestroyedImpl(ForgeDirection side, int aCoverID,
+ ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) {
+ onBaseTEDestroyed(side, aCoverID, convert(aCoverVariable), aTileEntity);
+ }
+
+ @Override
+ protected void onCoverUnloadImpl(ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable,
+ ICoverable aTileEntity) {
+ onCoverUnload(aTileEntity);
+ }
+
+ @Override
protected String getDescriptionImpl(ForgeDirection side, int aCoverID,
ISerializableObject.LegacyCoverData aCoverVariable, ICoverable aTileEntity) {
return getDescription(side, aCoverID, convert(aCoverVariable), aTileEntity);
@@ -275,6 +287,12 @@ public abstract class GT_CoverBehavior extends GT_CoverBehaviorBase<ISerializabl
return true;
}
+ public void onCoverUnload(ICoverable aTileEntity) {
+
+ }
+
+ public void onBaseTEDestroyed(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {}
+
/**
* Gives a small Text for the status of the Cover.
*/
diff --git a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java
index be9492ebba..76408e59c0 100644
--- a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java
+++ b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java
@@ -256,6 +256,14 @@ public abstract class GT_CoverBehaviorBase<T extends ISerializableObject> {
}
/**
+ * Called when Base TE being unloaded.
+ */
+ public void onCoverUnload(ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable,
+ ICoverable aTileEntity) {
+ onCoverUnloadImpl(side, aCoverID, forceCast(aCoverVariable), aTileEntity);
+ }
+
+ /**
* How Blast Proof the Cover is. 30 is normal.
*/
public final float getBlastProofLevel(ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable,
@@ -581,6 +589,9 @@ public abstract class GT_CoverBehaviorBase<T extends ISerializableObject> {
protected void onBaseTEDestroyedImpl(ForgeDirection side, int aCoverID, T aCoverVariable, ICoverable aTileEntity) {}
+ protected void onCoverUnloadImpl(ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable,
+ ICoverable aTileEntity) {}
+
protected boolean isRedstoneSensitiveImpl(ForgeDirection side, int aCoverID, T aCoverVariable,
ICoverable aTileEntity, long aTimer) {
return false;
diff --git a/src/main/java/gregtech/common/covers/CoverInfo.java b/src/main/java/gregtech/common/covers/CoverInfo.java
index 3deafba899..f6c8fd963c 100644
--- a/src/main/java/gregtech/common/covers/CoverInfo.java
+++ b/src/main/java/gregtech/common/covers/CoverInfo.java
@@ -151,6 +151,10 @@ public final class CoverInfo {
.doCoverThings(coverSide, aRedstone, coverID, coverData, coveredTile.get(), aTickTimer);
}
+ public void onCoverUnload() {
+ getCoverBehavior().onCoverUnload(coverSide, coverID, coverData, coveredTile.get());
+ }
+
public void onBaseTEDestroyed() {
getCoverBehavior().onBaseTEDestroyed(coverSide, coverID, coverData, coveredTile.get());
}
diff --git a/src/main/resources/assets/tectech/lang/en_US.lang b/src/main/resources/assets/tectech/lang/en_US.lang
index 511def2331..e92bbd69d9 100644
--- a/src/main/resources/assets/tectech/lang/en_US.lang
+++ b/src/main/resources/assets/tectech/lang/en_US.lang
@@ -684,6 +684,7 @@ gt.blockmachines.multimachine.tm.teslaCoil.cfgo.5=Energy Capacity display
gt.blockmachines.multimachine.tm.teslaCoil.cfgo.6=Energy Stored display
gt.blockmachines.multimachine.tm.teslaCoil.cfgo.7=Energy Fraction display
gt.blockmachines.multimachine.tm.teslaCoil.cfgo.8=Scan time display
+gt.blockmachines.multimachine.tm.teslaCoil.cfgo.9=Output max display
gt.blockmachines.multimachine.em.switch.name=Network Switch With QoS
gt.blockmachines.multimachine.em.switch.hint=1 - Classic/Data Hatches or Computer casing
diff --git a/src/main/resources/assets/tectech/lang/zh_CN.lang b/src/main/resources/assets/tectech/lang/zh_CN.lang
index dd32b7a6ec..9a64ade7c7 100644
--- a/src/main/resources/assets/tectech/lang/zh_CN.lang
+++ b/src/main/resources/assets/tectech/lang/zh_CN.lang
@@ -585,6 +585,7 @@ gt.blockmachines.multimachine.tm.teslaCoil.cfgo.5=能量容量显示
gt.blockmachines.multimachine.tm.teslaCoil.cfgo.6=已存储能量显示
gt.blockmachines.multimachine.tm.teslaCoil.cfgo.7=充能进度显示
gt.blockmachines.multimachine.tm.teslaCoil.cfgo.8=扫描时间显示
+gt.blockmachines.multimachine.tm.teslaCoil.cfgo.9=最高输出电流显示
gt.blockmachines.multimachine.em.switch.name=QoS网络交换机
gt.blockmachines.multimachine.em.switch.hint=1 - 基础仓室、光学接口或电子计算机机械方块
@@ -806,7 +807,7 @@ gt.blockmachines.debug.tt.writer.desc.2=ABC轴沿机器正面确定
#Example: ID:3
tt.keyword.ID=ID
#Example: 32EU at 1A
-tt.keyword.at=
+tt.keyword.at=
# Structure is too complex
tt.keyword.Structure.StructureTooComplex=结构太复杂了!
# Any X
@@ -1293,4 +1294,4 @@ tt.IUPAC.ium=元素
tt.IUPAC.Anti=反
tt.keyword.Weird=*
-tt.chat.debug.generator=激光模式:%s \ No newline at end of file
+tt.chat.debug.generator=激光模式:%s