diff options
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java | 386 |
1 files changed, 11 insertions, 375 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java index 214fcc6a3f..939cac2779 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java @@ -8,33 +8,22 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.metatileentity.BaseMetaTileEntity; import gregtech.api.util.GT_Log; -import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import gregtech.common.GT_Pollution; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy; import ic2.api.Direction; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; public class BaseCustomTileEntity extends BaseMetaTileEntity { - - protected boolean mHasEnoughEnergy; - - protected short mID; - protected long oOutput; - - protected long mAcceptedAmperes; - protected NBTTagCompound mRecipeStuff; - - - - protected boolean[] mActiveEUInputs; - protected boolean[] mActiveEUOutputs; + + protected NBTTagCompound mRecipeStuff2; public BaseCustomTileEntity() { super(); + Logger.INFO("Created new BaseCustomTileEntity"); } public void writeToNBT(NBTTagCompound aNBT) { @@ -47,184 +36,20 @@ public class BaseCustomTileEntity extends BaseMetaTileEntity { } try { - aNBT.setInteger("nbtVersion", GT_Mod.TOTAL_VERSION); + if (!aNBT.hasKey("ModVersion")) + aNBT.setString("ModVersion", CORE.VERSION); } catch (Throwable arg6) { GT_Log.err.println( "Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould\'ve been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!"); arg6.printStackTrace(GT_Log.err); } - - } - - public void readFromNBT(NBTTagCompound aNBT) { - super.readFromNBT(aNBT); - this.setInitialValuesAsNBT(aNBT, (short) 0); - } - - public void updateStatus() { - } - - public void chargeItem(ItemStack aStack) { - this.decreaseStoredEU( - (long) GT_ModHandler.chargeElectricItem(aStack, (int) Math.min(2147483647L, this.getStoredEU()), - (int) Math.min(2147483647L, this.mMetaTileEntity.getOutputTier()), false, false), - true); - } - - public void dischargeItem(ItemStack aStack) { - this.increaseStoredEnergyUnits((long) GT_ModHandler.dischargeElectricItem(aStack, - (int) Math.min(2147483647L, this.getEUCapacity() - this.getStoredEU()), - (int) Math.min(2147483647L, this.mMetaTileEntity.getInputTier()), false, false, false), true); - } - - public boolean decreaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooLessEnergy) { - return !this.canAccessData() ? false - : (this.mHasEnoughEnergy = this.decreaseStoredEU(aEnergy, aIgnoreTooLessEnergy) - || this.decreaseStoredSteam(aEnergy, false) - || aIgnoreTooLessEnergy && this.decreaseStoredSteam(aEnergy, true)); - } - - public boolean increaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooMuchEnergy) { - if (!this.canAccessData()) { - return false; - } else if (this.getStoredEU() >= this.getEUCapacity() && !aIgnoreTooMuchEnergy) { - return false; - } else { - this.setStoredEU(this.mMetaTileEntity.getEUVar() + aEnergy); - return true; - } - } - - public boolean inputEnergyFrom(byte aSide) { - return aSide == 6 ? true - : (!this.isServerSide() ? this.isEnergyInputSide(aSide) - : aSide >= 0 && aSide < 6 && this.mActiveEUInputs[aSide] && !this.mReleaseEnergy); - } - - public boolean outputsEnergyTo(byte aSide) { - return aSide == 6 ? true - : (!this.isServerSide() ? this.isEnergyOutputSide(aSide) - : aSide >= 0 && aSide < 6 && this.mActiveEUOutputs[aSide] || this.mReleaseEnergy); - } - - public long getOutputAmperage() { - return this.canAccessData() && this.mMetaTileEntity.isElectric() ? this.mMetaTileEntity.maxAmperesOut() : 0L; - } - - public long getOutputVoltage() { - return this.canAccessData() && this.mMetaTileEntity.isElectric() && this.mMetaTileEntity.isEnetOutput() - ? this.mMetaTileEntity.maxEUOutput() - : 0L; - } - - public long getInputAmperage() { - return this.canAccessData() && this.mMetaTileEntity.isElectric() ? this.mMetaTileEntity.maxAmperesIn() : 0L; - } - - public long getInputVoltage() { - return this.canAccessData() && this.mMetaTileEntity.isElectric() ? this.mMetaTileEntity.maxEUInput() - : 2147483647L; - } - - public boolean increaseStoredSteam(long aEnergy, boolean aIgnoreTooMuchEnergy) { - if (!this.canAccessData()) { - return false; - } else if (this.mMetaTileEntity.getSteamVar() >= this.getSteamCapacity() && !aIgnoreTooMuchEnergy) { - return false; - } else { - this.setStoredSteam(this.mMetaTileEntity.getSteamVar() + aEnergy); - return true; - } - } - - public long getUniversalEnergyStored() { - return Math.max(this.getStoredEU(), this.getStoredSteam()); - } - - public long getUniversalEnergyCapacity() { - return Math.max(this.getEUCapacity(), this.getSteamCapacity()); - } - - public long getStoredEU() { - return this.canAccessData() ? Math.min(this.mMetaTileEntity.getEUVar(), this.getEUCapacity()) : 0L; - } - - public long getEUCapacity() { - return this.canAccessData() ? this.mMetaTileEntity.maxEUStore() : 0L; - } - - private boolean isEnergyInputSide(byte aSide) { - if (aSide >= 0 && aSide < 6) { - if (!this.getCoverBehaviorAtSide(aSide).letsEnergyIn(aSide, this.getCoverIDAtSide(aSide), - this.getCoverDataAtSide(aSide), this)) { - return false; - } - - if (this.isInvalid() || this.mReleaseEnergy) { - return false; - } - - if (this.canAccessData() && this.mMetaTileEntity.isElectric() && this.mMetaTileEntity.isEnetInput()) { - return this.mMetaTileEntity.isInputFacing(aSide); - } - } - - return false; - } - - private boolean isEnergyOutputSide(byte aSide) { - if (aSide >= 0 && aSide < 6) { - if (!this.getCoverBehaviorAtSide(aSide).letsEnergyOut(aSide, this.getCoverIDAtSide(aSide), - this.getCoverDataAtSide(aSide), this)) { - return false; - } - - if (this.isInvalid() || this.mReleaseEnergy) { - return this.mReleaseEnergy; - } - - if (this.canAccessData() && this.mMetaTileEntity.isElectric() && this.mMetaTileEntity.isEnetOutput()) { - return this.mMetaTileEntity.isOutputFacing(aSide); - } - } - - return false; - } - - public boolean setStoredEU(long aEnergy) { - if (!this.canAccessData()) { - return false; - } else { - if (aEnergy < 0L) { - aEnergy = 0L; - } - - this.mMetaTileEntity.setEUVar(aEnergy); - return true; - } - } - - public boolean decreaseStoredEU(long aEnergy, boolean aIgnoreTooLessEnergy) { - if (!this.canAccessData()) { - return false; - } else if (this.mMetaTileEntity.getEUVar() - aEnergy < 0L && !aIgnoreTooLessEnergy) { - return false; - } else { - this.setStoredEU(this.mMetaTileEntity.getEUVar() - aEnergy); - if (this.mMetaTileEntity.getEUVar() < 0L) { - this.setStoredEU(0L); - return false; - } else { - return true; - } - } } public void doEnergyExplosion() { if (this.getUniversalEnergyCapacity() > 0L && this.getUniversalEnergyStored() >= this.getUniversalEnergyCapacity() / 5L) { this.doExplosion( - this.oOutput * (long) (this.getUniversalEnergyStored() >= this.getUniversalEnergyCapacity() ? 4 + this.getOutput() * (long) (this.getUniversalEnergyStored() >= this.getUniversalEnergyCapacity() ? 4 : (this.getUniversalEnergyStored() >= this.getUniversalEnergyCapacity() / 2L ? 2 : 1))); GT_Mod arg9999 = GT_Mod.instance; GT_Mod.achievements.issueAchievement(this.getWorldObj().getPlayerEntityByName(this.getOwnerName()), @@ -257,11 +82,9 @@ public class BaseCustomTileEntity extends BaseMetaTileEntity { } } - if (this.mRecipeStuff != null) { + if (this.mRecipeStuff2 != null) { for (i = 0; i < 9; ++i) { - if (this.getRandomNumber(100) < 50) { - this.dropItems(GT_Utility.loadItem(this.mRecipeStuff, "Ingredient." + i)); - } + this.dropItems(GT_Utility.loadItem(this.mRecipeStuff2, "Ingredient." + i)); } } @@ -272,7 +95,7 @@ public class BaseCustomTileEntity extends BaseMetaTileEntity { } public ArrayList<ItemStack> getDrops() { - ItemStack rStack = new ItemStack(Meta_GT_Proxy.sBlockMachines, 1, this.mID); + ItemStack rStack = new ItemStack(Meta_GT_Proxy.sBlockMachines, 1, this.getMetaTileID()); NBTTagCompound aSuperNBT = super.getDrops().get(0).getTagCompound(); NBTTagCompound tNBT = aSuperNBT; if (this.hasValidMetaTileEntity()) { @@ -285,195 +108,8 @@ public class BaseCustomTileEntity extends BaseMetaTileEntity { return new ArrayList<ItemStack>(Arrays.asList(new ItemStack[] { rStack })); } - public long getAverageElectricInput() { - int rEU = 0; - - for (int i = 0; i < this.mAverageEUInput.length; ++i) { - if (i != this.mAverageEUInputIndex) { - rEU += this.mAverageEUInput[i]; - } - } - - return (long) (rEU / (this.mAverageEUInput.length - 1)); - } - - public long getAverageElectricOutput() { - int rEU = 0; - - for (int i = 0; i < this.mAverageEUOutput.length; ++i) { - if (i != this.mAverageEUOutputIndex) { - rEU += this.mAverageEUOutput[i]; - } - } - - return (long) (rEU / (this.mAverageEUOutput.length - 1)); - } - - public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - if (this.canAccessData() && this.mMetaTileEntity.isElectric() && this.inputEnergyFrom(aSide) && aAmperage > 0L - && aVoltage > 0L && this.getStoredEU() < this.getEUCapacity() - && this.mMetaTileEntity.maxAmperesIn() > this.mAcceptedAmperes) { - if (aVoltage > this.getInputVoltage()) { - this.doExplosion(aVoltage); - return 0L; - } else if (this - .increaseStoredEnergyUnits( - aVoltage * (aAmperage = Math - .min(aAmperage, - Math.min(this.mMetaTileEntity.maxAmperesIn() - this.mAcceptedAmperes, - 1L + (this.getEUCapacity() - this.getStoredEU()) / aVoltage))), - true)) { - this.mAverageEUInput[this.mAverageEUInputIndex] = (int) ((long) this.mAverageEUInput[this.mAverageEUInputIndex] - + aVoltage * aAmperage); - this.mAcceptedAmperes += aAmperage; - return aAmperage; - } else { - return 0L; - } - } else { - return 0L; - } - } - - public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - if (this.canAccessData() && this.mMetaTileEntity.isElectric() && this.outputsEnergyTo(aSide) - && this.getStoredEU() - aVoltage * aAmperage >= this.mMetaTileEntity.getMinimumStoredEU()) { - if (this.decreaseStoredEU(aVoltage * aAmperage, false)) { - this.mAverageEUOutput[this.mAverageEUOutputIndex] = (int) ((long) this.mAverageEUOutput[this.mAverageEUOutputIndex] - + aVoltage * aAmperage); - return true; - } else { - return false; - } - } else { - return false; - } - } - - public boolean acceptsRotationalEnergy(byte aSide) { - return this.canAccessData() && this.getCoverIDAtSide(aSide) == 0 - ? this.mMetaTileEntity.acceptsRotationalEnergy(aSide) - : false; - } - - public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { - return this.canAccessData() && this.getCoverIDAtSide(aSide) == 0 - ? this.mMetaTileEntity.injectRotationalEnergy(aSide, aSpeed, aEnergy) - : false; - } - - public double getOutputEnergyUnitsPerTick() { - return (double) this.oOutput; - } - - public double demandedEnergyUnits() { - return !this.mReleaseEnergy && this.canAccessData() && this.mMetaTileEntity.isEnetInput() - ? (double) (this.getEUCapacity() - this.getStoredEU()) - : 0.0D; - } - - public double injectEnergyUnits(ForgeDirection aDirection, double aAmount) { - return this.injectEnergyUnits((byte) aDirection.ordinal(), (long) ((int) aAmount), 1L) > 0L ? 0.0D : aAmount; - } - - public boolean acceptsEnergyFrom(TileEntity aEmitter, ForgeDirection aDirection) { - return this.inputEnergyFrom((byte) aDirection.ordinal()); - } - - public boolean emitsEnergyTo(TileEntity aReceiver, ForgeDirection aDirection) { - return this.outputsEnergyTo((byte) aDirection.ordinal()); - } - - public double getOfferedEnergy() { - return this.canAccessData() && this.getStoredEU() - this.mMetaTileEntity.getMinimumStoredEU() >= this.oOutput - ? (double) Math.max(0L, this.oOutput) - : 0.0D; - } - - public void drawEnergy(double amount) { - this.mAverageEUOutput[this.mAverageEUOutputIndex] = (int) ((double) this.mAverageEUOutput[this.mAverageEUOutputIndex] - + amount); - this.decreaseStoredEU((long) ((int) amount), true); - } - - public int injectEnergy(ForgeDirection aForgeDirection, int aAmount) { - return this.injectEnergyUnits((byte) aForgeDirection.ordinal(), (long) aAmount, 1L) > 0L ? 0 : aAmount; - } - - public int addEnergy(int aEnergy) { - if (!this.canAccessData()) { - return 0; - } else { - if (aEnergy > 0) { - this.increaseStoredEnergyUnits((long) aEnergy, true); - } else { - this.decreaseStoredEU((long) (-aEnergy), true); - } - - return (int) Math.min(2147483647L, this.mMetaTileEntity.getEUVar()); - } - } - - public boolean isAddedToEnergyNet() { - return false; - } - - public int demandsEnergy() { - return !this.mReleaseEnergy && this.canAccessData() && this.mMetaTileEntity.isEnetInput() - ? this.getCapacity() - this.getStored() - : 0; - } - - public int getCapacity() { - return (int) Math.min(2147483647L, this.getEUCapacity()); - } - - public int getStored() { - return (int) Math.min(2147483647L, Math.min(this.getStoredEU(), (long) this.getCapacity())); - } - - public void setStored(int aEU) { - if (this.canAccessData()) { - this.setStoredEU((long) aEU); - } - - } - - public int getMaxSafeInput() { - return (int) Math.min(2147483647L, this.getInputVoltage()); - } - - public int getMaxEnergyOutput() { - return this.mReleaseEnergy ? Integer.MAX_VALUE : this.getOutput(); - } - - public int getOutput() { - return (int) Math.min(2147483647L, this.oOutput); - } - - public int injectEnergy(Direction aDirection, int aAmount) { - return this.injectEnergyUnits((byte) aDirection.toSideValue(), (long) aAmount, 1L) > 0L ? 0 : aAmount; - } - public boolean isTeleporterCompatible(Direction aSide) { return this.canAccessData() && this.mMetaTileEntity.isTeleporterCompatible(); } - public boolean acceptsEnergyFrom(TileEntity aReceiver, Direction aDirection) { - return this.inputEnergyFrom((byte) aDirection.toSideValue()); - } - - public boolean emitsEnergyTo(TileEntity aReceiver, Direction aDirection) { - return this.outputsEnergyTo((byte) aDirection.toSideValue()); - } - - public boolean isUniversalEnergyStored(long aEnergyAmount) { - if (this.getUniversalEnergyStored() >= aEnergyAmount) { - return true; - } else { - this.mHasEnoughEnergy = false; - return false; - } - } - }
\ No newline at end of file |