aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity/implementations
diff options
context:
space:
mode:
authorJakub Szewczyk <git@kubasz.xyz>2022-03-31 17:31:42 +0100
committerGitHub <noreply@github.com>2022-03-31 18:31:42 +0200
commit2ed0d164315810c0c03e92d30e52225a8228ac99 (patch)
tree32546c67961d47ed9b7767c18b625952fff576be /src/main/java/gregtech/api/metatileentity/implementations
parentbec757c9d1f329fb30ed262b3eea9e9b69289181 (diff)
downloadGT5-Unofficial-2ed0d164315810c0c03e92d30e52225a8228ac99.tar.gz
GT5-Unofficial-2ed0d164315810c0c03e92d30e52225a8228ac99.tar.bz2
GT5-Unofficial-2ed0d164315810c0c03e92d30e52225a8228ac99.zip
Make gregtech machines mark the chunk they're in as dirty on updates (#1001)
* Make gregtech machines mark the chunk they're in as dirty on updates * Avoid any potential NPE in markDirty * Mark dirty on GT tool use (screwdriver/wrench/etc) * Fix multiblocks not marking hatches/buses as dirty too
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity/implementations')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java12
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java1
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java5
3 files changed, 12 insertions, 6 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
index ef492950a1..4c890a5673 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
@@ -125,7 +125,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
mNEIName = aNEIName;
mPower = buildPower();
}
-
+
public GT_MetaTileEntity_BasicMachine(String aName, int aTier, int aAmperage, String[] aDescription, ITexture[][][] aTextures, int aInputSlotCount, int aOutputSlotCount, String aGUIName, String aNEIName) {
super(aName, aTier, OTHER_SLOT_COUNT + aInputSlotCount + aOutputSlotCount + 1, aDescription, aTextures);
mInputSlotCount = Math.max(0, aInputSlotCount);
@@ -146,7 +146,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
protected boolean isValidMainFacing(byte aSide) {
return aSide > 1;
}
-
+
public boolean setMainFacing(byte aSide){
if (!isValidMainFacing(aSide)) return false;
mMainFacing = aSide;
@@ -408,6 +408,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
@Override
public FluidStack setDrainableStack(FluidStack aFluid) {
+ markDirty();
mFluidOut = aFluid;
return mFluidOut;
}
@@ -428,9 +429,9 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
if(aBaseMetaTileEntity.getAirAtSide(i)){
aBaseMetaTileEntity.openGUI(aPlayer);
return true;
- }
+ }
}
- GT_Utility.sendChatToPlayer(aPlayer,"No free Side!");
+ GT_Utility.sendChatToPlayer(aPlayer,"No free Side!");
return true;
}
@@ -509,6 +510,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
boolean tSucceeded = false;
if (mMaxProgresstime > 0 && (mProgresstime >= 0 || aBaseMetaTileEntity.isAllowedToWork())) {
+ markDirty();
aBaseMetaTileEntity.setActive(true);
if (mProgresstime < 0 || drainEnergyForProcess(mEUt)) {
if (++mProgresstime >= mMaxProgresstime) {
@@ -966,7 +968,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
{
if (debugCleanroom) {
GT_Log.out.println(
- "BasicMachine: Voiding output due to efficiency failure. mEfficiency = " +
+ "BasicMachine: Voiding output due to efficiency failure. mEfficiency = " +
getCallbackBase().mEfficiency
);
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java
index 60832dd4d9..8ee2f48b2d 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java
@@ -133,6 +133,7 @@ public class GT_MetaTileEntity_Hatch_OutputBus extends GT_MetaTileEntity_Hatch {
* @return true if stack is fully accepted. false is stack is partially accepted or nothing is accepted
*/
public boolean storeAll(ItemStack aStack) {
+ markDirty();
for (int i = 0, mInventoryLength = mInventory.length; i < mInventoryLength && aStack.stackSize > 0; i++) {
ItemStack tSlot = mInventory[i];
if (GT_Utility.isStackInvalid(tSlot)) {
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index dcbee86a2d..a2d6f3a05b 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -354,6 +354,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
protected void runMachine(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
if (mMaxProgresstime > 0 && doRandomMaintenanceDamage()) {
if (onRunningTick(mInventory[1])) {
+ markDirty();
if (!polluteEnvironment(getPollutionPerTick(mInventory[1]))) {
stopMachine();
}
@@ -390,7 +391,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
if (aTick % 100 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified()) {
if (aBaseMetaTileEntity.isAllowedToWork()) {
- checkRecipe(mInventory[1]);
+ if(checkRecipe(mInventory[1])) {
+ markDirty();
+ }
}
if (mMaxProgresstime <= 0) mEfficiency = Math.max(0, mEfficiency - 1000);
}