aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java25
-rw-r--r--src/main/java/gregtech/api/metatileentity/MetaTileEntity.java29
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java33
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java6
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java6
5 files changed, 54 insertions, 45 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
index 894eee729c..a23fbd8a85 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
@@ -58,6 +58,8 @@ import gregtech.api.enums.Textures;
import gregtech.api.graphs.GenerateNodeMap;
import gregtech.api.graphs.GenerateNodeMapPower;
import gregtech.api.graphs.Node;
+import gregtech.api.interfaces.ICleanroom;
+import gregtech.api.interfaces.ICleanroomReceiver;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IDebugableTileEntity;
@@ -83,8 +85,9 @@ import mcp.mobius.waila.api.IWailaDataAccessor;
* <p/>
* This is the main TileEntity for EVERYTHING.
*/
-public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTechTileEntity, IActionHost,
- IGridProxyable, IAlignmentProvider, IConstructableProvider, IDebugableTileEntity, IGregtechWailaProvider {
+public class BaseMetaTileEntity extends CommonMetaTileEntity
+ implements IGregTechTileEntity, IActionHost, IGridProxyable, IAlignmentProvider, IConstructableProvider,
+ IDebugableTileEntity, IGregtechWailaProvider, ICleanroomReceiver {
private static final Field ENTITY_ITEM_HEALTH_FIELD = ReflectionHelper
.findField(EntityItem.class, "health", "field_70291_e");
@@ -1310,6 +1313,22 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec
return mLockUpgrade || mMetaTileEntity.ownerControl();
}
+ @Nullable
+ @Override
+ public ICleanroom getCleanroom() {
+ if (canAccessData()) {
+ return mMetaTileEntity.getCleanroom();
+ }
+ return null;
+ }
+
+ @Override
+ public void setCleanroom(ICleanroom cleanroom) {
+ if (canAccessData()) {
+ mMetaTileEntity.setCleanroom(cleanroom);
+ }
+ }
+
public void doEnergyExplosion() {
if (getUniversalEnergyCapacity() > 0 && getUniversalEnergyStored() >= getUniversalEnergyCapacity() / 5) {
GT_Log.exp.println(
@@ -1358,7 +1377,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec
}
}
- GT_Pollution.addPollution(this, GT_Mod.gregtechproxy.mPollutionOnExplosion);
+ GT_Pollution.addPollution((TileEntity) this, GT_Mod.gregtechproxy.mPollutionOnExplosion);
mMetaTileEntity.doExplosion(aAmount);
}
}
diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
index fc923927ae..453849923d 100644
--- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
@@ -25,6 +25,8 @@ import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
+import org.jetbrains.annotations.Nullable;
+
import com.gtnewhorizons.modularui.api.forge.ItemStackHandler;
import appeng.api.implementations.IPowerChannelState;
@@ -44,8 +46,9 @@ import gregtech.api.enums.SoundResource;
import gregtech.api.enums.SteamVariant;
import gregtech.api.gui.GT_GUIColorOverride;
import gregtech.api.gui.modularui.GUITextureSet;
+import gregtech.api.interfaces.ICleanroom;
+import gregtech.api.interfaces.ICleanroomReceiver;
import gregtech.api.interfaces.IConfigurationCircuitSupport;
-import gregtech.api.interfaces.metatileentity.IMachineCallback;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Cable;
@@ -72,7 +75,7 @@ import mcp.mobius.waila.api.IWailaDataAccessor;
* GT_MetaTileEntity_E_Furnace(54, "GT_E_Furnace", "Automatic E-Furnace");"
*/
@SuppressWarnings("unused")
-public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallback<MetaTileEntity> {
+public abstract class MetaTileEntity implements IMetaTileEntity, ICleanroomReceiver {
/**
* Only assigned for the MetaTileEntity in the List! Also only used to get the localized Name for the ItemStack and
@@ -99,7 +102,7 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac
public boolean doTickProfilingInThisTick = true;
- private MetaTileEntity mCallBackTile;
+ private ICleanroom cleanroom;
/**
* accessibility to this Field is no longer given, see below
@@ -114,14 +117,14 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac
* <p>
* The constructor can be overloaded as follows:
* <blockquote>
- *
+ *
* <pre>
- *
+ *
* public GT_MetaTileEntity_EBench(int id, String name, String nameRegional) {
* super(id, name, nameRegional);
* }
* </pre>
- *
+ *
* </blockquote>
*
* @param aID the machine ID
@@ -388,19 +391,15 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac
/* Do nothing */
}
+ @Nullable
@Override
- public MetaTileEntity getCallbackBase() {
- return mCallBackTile;
+ public ICleanroom getCleanroom() {
+ return cleanroom;
}
@Override
- public void setCallbackBase(MetaTileEntity callback) {
- this.mCallBackTile = callback;
- }
-
- @Override
- public Class<?> getType() {
- return null;
+ public void setCleanroom(ICleanroom cleanroom) {
+ this.cleanroom = cleanroom;
}
@Override
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 649d47d89b..f251b5c02f 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
@@ -62,6 +62,7 @@ import gregtech.api.gui.GT_GUIContainer_BasicMachine;
import gregtech.api.gui.modularui.GT_UIInfos;
import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.gui.modularui.SteamTexture;
+import gregtech.api.interfaces.ICleanroom;
import gregtech.api.interfaces.IConfigurationCircuitSupport;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.modularui.IAddGregtechLogo;
@@ -81,7 +82,6 @@ import gregtech.api.util.GT_Waila;
import gregtech.common.gui.modularui.UIHelper;
import gregtech.common.power.BasicMachineEUPower;
import gregtech.common.power.Power;
-import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Cleanroom;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
@@ -1103,26 +1103,29 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
mOutputBlocked++;
return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
}
- if (tRecipe.mSpecialValue == -200
- && (getCallbackBase() == null || !(getCallbackBase() instanceof GT_MetaTileEntity_Cleanroom)
- || ((GT_MetaTileEntity_Cleanroom) getCallbackBase()).mEfficiency == 0))
- return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
+ ICleanroom cleanroom = getCleanroom();
+ if (tRecipe.mSpecialValue == -200 || tRecipe.mSpecialValue == -300) {
+ if (cleanroom == null || !cleanroom.isValidCleanroom() || cleanroom.getCleanness() == 0) {
+ return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
+ }
+ }
if (!tRecipe.isRecipeInputEqual(true, new FluidStack[] { getFillableStack() }, getAllInputs()))
return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
for (int i = 0; i < mOutputItems.length; i++)
if (getBaseMetaTileEntity().getRandomNumber(10000) < tRecipe.getOutputChance(i))
mOutputItems[i] = tRecipe.getOutput(i);
- if (tRecipe.mSpecialValue == -200 || tRecipe.mSpecialValue == -300)
- for (int i = 0; i < mOutputItems.length; i++)
- if (mOutputItems[i] != null && getBaseMetaTileEntity().getRandomNumber(10000)
- > ((GT_MetaTileEntity_Cleanroom) getCallbackBase()).mEfficiency) {
- if (debugCleanroom) {
- GT_Log.out.println(
- "BasicMachine: Voiding output due to efficiency failure. mEfficiency = "
- + ((GT_MetaTileEntity_Cleanroom) getCallbackBase()).mEfficiency);
- }
- mOutputItems[i] = null;
+ if (tRecipe.mSpecialValue == -200 || tRecipe.mSpecialValue == -300) {
+ assert cleanroom != null;
+ for (int i = 0; i < mOutputItems.length; i++) if (mOutputItems[i] != null
+ && getBaseMetaTileEntity().getRandomNumber(10000) > cleanroom.getCleanness()) {
+ if (debugCleanroom) {
+ GT_Log.out.println(
+ "BasicMachine: Voiding output due to cleanness failure. Cleanness = "
+ + cleanroom.getCleanness());
}
+ mOutputItems[i] = null;
+ }
+ }
mOutputFluid = tRecipe.getFluidOutput(0);
if (!skipOC) {
calculateOverclockedNess(tRecipe);
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java
index bd94371440..b95737bb0e 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java
@@ -19,7 +19,6 @@ import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.WorldSpawnedEventBuilder;
import gregtech.common.GT_Pollution;
-import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Cleanroom;
@SuppressWarnings("unused") // Unused API is expected within scope
public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch {
@@ -111,11 +110,6 @@ public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch {
}
@Override
- public Class<?> getType() {
- return GT_MetaTileEntity_Cleanroom.class;
- }
-
- @Override
public boolean isFacingValid(ForgeDirection facing) {
return true;
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java
index 765cd047ad..dd21d6f412 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java
@@ -12,7 +12,6 @@ import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.util.GT_Utility;
-import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Cleanroom;
public abstract class GT_MetaTileEntity_TieredMachineBlock extends MetaTileEntity {
@@ -57,11 +56,6 @@ public abstract class GT_MetaTileEntity_TieredMachineBlock extends MetaTileEntit
else mTextures = null;
}
- @Override
- public Class<?> getType() {
- return GT_MetaTileEntity_Cleanroom.class;
- }
-
public GT_MetaTileEntity_TieredMachineBlock(String aName, int aTier, int aInvSlotCount, String aDescription,
ITexture[][][] aTextures) {
super(aName, aInvSlotCount);