diff options
Diffstat (limited to 'main/java/gregtech/api/metatileentity/MetaPipeEntity.java')
-rw-r--r-- | main/java/gregtech/api/metatileentity/MetaPipeEntity.java | 534 |
1 files changed, 0 insertions, 534 deletions
diff --git a/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/main/java/gregtech/api/metatileentity/MetaPipeEntity.java deleted file mode 100644 index d82a23b6d7..0000000000 --- a/main/java/gregtech/api/metatileentity/MetaPipeEntity.java +++ /dev/null @@ -1,534 +0,0 @@ -package gregtech.api.metatileentity; - -import static gregtech.api.enums.GT_Values.GT; -import static gregtech.api.enums.GT_Values.V; -import gregtech.api.GregTech_API; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.objects.GT_ItemStack; -import gregtech.api.util.GT_Config; -import gregtech.api.util.GT_LanguageManager; -import gregtech.api.util.GT_Utility; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** - * NEVER INCLUDE THIS FILE IN YOUR MOD!!! - * - * Extend this Class to add a new MetaPipe - * Call the Constructor with the desired ID at the load-phase (not preload and also not postload!) - * Implement the newMetaEntity-Method to return a new ready instance of your MetaTileEntity - * - * Call the Constructor like the following example inside the Load Phase, to register it. - * "new GT_MetaTileEntity_E_Furnace(54, "GT_E_Furnace", "Automatic E-Furnace");" - */ -public abstract class MetaPipeEntity implements IMetaTileEntity { - /** - * This variable tells, which directions the Block is connected to. It is a Bitmask. - */ - public byte mConnections = 0; - - /** - * For Pipe Rendering - */ - public abstract float getThickNess(); - - /** - * For Pipe Rendering - */ - public abstract boolean renderInside(byte aSide); - - /** - * Only assigned for the MetaTileEntity in the List! Also only used to get the localized Name for the ItemStack and for getInvName. - */ - public String mName; - - public boolean doTickProfilingInThisTick = true; - - /** - * accessibility to this Field is no longer given, see below - */ - private IGregTechTileEntity mBaseMetaTileEntity; - - @Override - public IGregTechTileEntity getBaseMetaTileEntity() { - return mBaseMetaTileEntity; - } - - @Override - public ItemStack getStackForm(long aAmount) { - return new ItemStack(GregTech_API.sBlockMachines, (int)aAmount, getBaseMetaTileEntity().getMetaTileID()); - } - - /** - * The Inventory of the MetaTileEntity. Amount of Slots can be larger than 256. HAYO! - */ - public final ItemStack[] mInventory; - - /** - * This registers your Machine at the List. - * Use only ID's larger than 2048, because i reserved these ones. - * See also the List in the API, as it has a Description containing all the reservations. - * @param aID the ID - * @example for Constructor overload. - * - * public GT_MetaTileEntity_EBench(int aID, String mName, String mNameRegional) { - * super(aID, mName, mNameRegional); - * } - */ - public MetaPipeEntity(int aID, String aBasicName, String aRegionalName, int aInvSlotCount) { - if (GregTech_API.sPostloadStarted || !GregTech_API.sPreloadStarted) throw new IllegalAccessError("This Constructor has to be called in the load Phase"); - if (GregTech_API.METATILEENTITIES[aID] == null) { - GregTech_API.METATILEENTITIES[aID] = this; - } else { - throw new IllegalArgumentException("MetaMachine-Slot Nr. " + aID + " is already occupied!"); - } - mName = aBasicName.replaceAll(" ", "_").toLowerCase(); - setBaseMetaTileEntity(new BaseMetaPipeEntity()); - getBaseMetaTileEntity().setMetaTileID((short)aID); - GT_LanguageManager.addStringLocalization("gt.blockmachines." + mName + ".name", aRegionalName); - mInventory = new ItemStack[aInvSlotCount]; - - if (GT.isClientSide()) { - ItemStack tStack = new ItemStack(GregTech_API.sBlockMachines, 1, aID); - tStack.getItem().addInformation(tStack, null, new ArrayList<String>(), true); - } - } - - @Override - public void setBaseMetaTileEntity(IGregTechTileEntity aBaseMetaTileEntity) { - if (mBaseMetaTileEntity != null && aBaseMetaTileEntity == null) { - mBaseMetaTileEntity.getMetaTileEntity().inValidate(); - mBaseMetaTileEntity.setMetaTileEntity(null); - } - mBaseMetaTileEntity = aBaseMetaTileEntity; - if (mBaseMetaTileEntity != null) { - mBaseMetaTileEntity.setMetaTileEntity(this); - } - } - - /** - * This is the normal Constructor. - */ - public MetaPipeEntity(String aName, int aInvSlotCount) { - mInventory = new ItemStack[aInvSlotCount]; - mName = aName; - } - - @Override - public void onServerStart() {/*Do nothing*/} - @Override - public void onWorldSave(File aSaveDirectory) {/*Do nothing*/} - @Override - public void onWorldLoad(File aSaveDirectory) {/*Do nothing*/} - @Override - public void onConfigLoad(GT_Config aConfig) {/*Do nothing*/} - @Override - public void setItemNBT(NBTTagCompound aNBT) {/*Do nothing*/} - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister aBlockIconRegister) {/*Do nothing*/} - - @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) {return true;} - @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {/*Do nothing*/} - @Override - public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {return false;} - @Override - public void onExplosion() {/*Do nothing*/} - @Override - public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) {/*Do nothing*/} - @Override - public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {/*Do nothing*/} - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {/*Do nothing*/} - @Override - public void inValidate() {/*Do nothing*/} - @Override - public void onRemoval() {/*Do nothing*/} - @Override - public void initDefaultModes(NBTTagCompound aNBT) {/*Do nothing*/} - - /** - * When a GUI is opened - */ - public void onOpenGUI() {/*Do nothing*/} - - /** - * When a GUI is closed - */ - public void onCloseGUI() {/*Do nothing*/} - - /** - * a Player rightclicks the Machine - * Sneaky rightclicks are not getting passed to this! - */ - @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) {return false;} - @Override - public void onLeftclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {/*Do nothing*/} - @Override - public void onValueUpdate(byte aValue) {/*Do nothing*/} - @Override - public byte getUpdateData() {return 0;} - - @Override - public void doSound(byte aIndex, double aX, double aY, double aZ) {/*Do nothing*/} - @Override - public void startSoundLoop(byte aIndex, double aX, double aY, double aZ) {/*Do nothing*/} - @Override - public void stopSoundLoop(byte aValue, double aX, double aY, double aZ) {/*Do nothing*/} - - @Override - public final void sendSound(byte aIndex) {if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte)4, aIndex);} - @Override - public final void sendLoopStart(byte aIndex) {if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte)5, aIndex);} - @Override - public final void sendLoopEnd(byte aIndex) {if (!getBaseMetaTileEntity().hasMufflerUpgrade()) getBaseMetaTileEntity().sendBlockEvent((byte)6, aIndex);} - - @Override - public boolean isFacingValid(byte aFacing) {return false;} - @Override - public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override - public boolean isValidSlot(int aIndex) {return true;} - @Override - public boolean setStackToZeroInsteadOfNull(int aIndex) {return false;} - - @Override - public ArrayList<String> getSpecialDebugInfo(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, int aLogLevel, ArrayList<String> aList) { - return aList; - } - - @Override - public boolean isLiquidInput(byte aSide) { - return true; - } - - @Override - public boolean isLiquidOutput(byte aSide) { - return true; - } - - /** - * gets the contained Liquid - */ - @Override - public FluidStack getFluid() {return null;} - - /** - * tries to fill this Tank - */ - @Override - public int fill(FluidStack resource, boolean doFill) {return 0;} - - /** - * tries to empty this Tank - */ - @Override - public FluidStack drain(int maxDrain, boolean doDrain) {return null;} - - /** - * Tank pressure - */ - public int getTankPressure() {return 0;} - - /** - * Liquid Capacity - */ - @Override - public int getCapacity() {return 0;} - - /** - * Progress this machine has already made - */ - public int getProgresstime() {return 0;} - - /** - * Progress this Machine has to do to produce something - */ - public int maxProgresstime() {return 0;} - - /** - * Increases the Progress, returns the overflown Progress. - */ - public int increaseProgress(int aProgress) {return 0;} - - @Override - public void onMachineBlockUpdate() {/*Do nothing*/} - @Override - public void receiveClientEvent(byte aEventID, byte aValue) {/*Do nothing*/} - @Override - public boolean isSimpleMachine() {return false;} - - @Override - public byte getComparatorValue(byte aSide) { - return 0; - } - - @Override - public boolean acceptsRotationalEnergy(byte aSide) { - return false; - } - - @Override - public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { - return false; - } - - @Override - public String getSpecialVoltageToolTip() {return null;} - - @Override - public boolean isGivingInformation() {return false;} - @Override - public String[] getInfoData() {return new String[]{};} - - public boolean isDigitalChest() {return false;} - public ItemStack[] getStoredItemData() {return null;} - public void setItemCount(int aCount) {/*Do nothing*/} - public int getMaxItemCount() {return 0;} - - @Override - public int getSizeInventory() {return mInventory.length;} - @Override - public ItemStack getStackInSlot(int aIndex) {if (aIndex >= 0 && aIndex < mInventory.length) return mInventory[aIndex]; return null;} - @Override - public void setInventorySlotContents(int aIndex, ItemStack aStack) {if (aIndex >= 0 && aIndex < mInventory.length) mInventory[aIndex] = aStack;} - @Override - public String getInventoryName() {if (GregTech_API.METATILEENTITIES[getBaseMetaTileEntity().getMetaTileID()] != null) return GregTech_API.METATILEENTITIES[getBaseMetaTileEntity().getMetaTileID()].getMetaName(); return "";} - @Override - public int getInventoryStackLimit() {return 64;} - @Override - public boolean isItemValidForSlot(int aIndex, ItemStack aStack) {return getBaseMetaTileEntity().isValidSlot(aIndex);} - - @Override - public ItemStack decrStackSize(int aIndex, int aAmount) { - ItemStack tStack = getStackInSlot(aIndex), rStack = GT_Utility.copy(tStack); - if (tStack != null) { - if (tStack.stackSize <= aAmount) { - if (setStackToZeroInsteadOfNull(aIndex)) tStack.stackSize = 0; else setInventorySlotContents(aIndex, null); - } else { - rStack = tStack.splitStack(aAmount); - if (tStack.stackSize == 0 && !setStackToZeroInsteadOfNull(aIndex)) setInventorySlotContents(aIndex, null); - } - } - return rStack; - } - - @Override - public int[] getAccessibleSlotsFromSide(int aSide) { - ArrayList<Integer> tList = new ArrayList<Integer>(); - IGregTechTileEntity tTileEntity = getBaseMetaTileEntity(); - boolean tSkip = tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsIn((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), -2, tTileEntity) || tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsOut((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), -2, tTileEntity); - for (int i = 0; i < getSizeInventory(); i++) if (isValidSlot(i) && (tSkip || tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsOut((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), i, tTileEntity) || tTileEntity.getCoverBehaviorAtSide((byte)aSide).letsItemsIn((byte)aSide, tTileEntity.getCoverIDAtSide((byte)aSide), tTileEntity.getCoverDataAtSide((byte)aSide), i, tTileEntity))) tList.add(i); - int[] rArray = new int[tList.size()]; - for (int i = 0; i < rArray.length; i++) rArray[i] = tList.get(i); - return rArray; - } - - @Override - public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { - return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length && (mInventory[aIndex] == null || GT_Utility.areStacksEqual(aStack, mInventory[aIndex])) && allowPutStack(getBaseMetaTileEntity(), aIndex, (byte)aSide, aStack); - } - - @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { - return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length && allowPullStack(getBaseMetaTileEntity(), aIndex, (byte)aSide, aStack); - } - - @Override - public boolean canFill(ForgeDirection aSide, Fluid aFluid) { - return fill(aSide, new FluidStack(aFluid, 1), false) == 1; - } - - @Override - public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { - return drain(aSide, new FluidStack(aFluid, 1), false) != null; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { - if (getCapacity() <= 0 && !getBaseMetaTileEntity().hasSteamEngineUpgrade()) return new FluidTankInfo[] {}; - return new FluidTankInfo[] {getInfo()}; - } - - public int fill_default(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { - return fill(aFluid, doFill); - } - - @Override - public int fill(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { - return fill_default(aSide, aFluid, doFill); - } - - @Override - public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { - if (getFluid() != null && aFluid != null && getFluid().isFluidEqual(aFluid)) return drain(aFluid.amount, doDrain); - return null; - } - - @Override - public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { - return drain(maxDrain, doDrain); - } - - @Override - public int getFluidAmount() { - return 0; - } - - @Override - public FluidTankInfo getInfo() { - return new FluidTankInfo(this); - } - - @Override - public String getMetaName() { - return mName; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - return null; - } - - @Override - public boolean doTickProfilingMessageDuringThisTick() { - return doTickProfilingInThisTick; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityplayer) { - return false; - } - - @Override - public boolean connectsToItemPipe(byte aSide) { - return false; - } - - @Override - public void openInventory() { - // - } - - @Override - public void closeInventory() { - // - } - - @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override - public float getExplosionResistance(byte aSide) { - return 10.0F; - } - - @Override - public ItemStack[] getRealInventory() { - return mInventory; - } - - @Override - public boolean hasCustomInventoryName() { - return false; - } - - @Override - public void markDirty() { - // - } - - @Override - public void onColorChangeServer(byte aColor) { - // - } - - @Override - public void onColorChangeClient(byte aColor) { - // - } - - public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean renderInInventory(Block aBlock, int aMeta, RenderBlocks aRenderer) { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean renderInWorld(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer) { - return false; - } - - @Override - public void doExplosion(long aExplosionPower) { - float tStrength = aExplosionPower<V[0]?1.0F:aExplosionPower<V[1]?2.0F:aExplosionPower<V[2]?3.0F:aExplosionPower<V[3]?4.0F:aExplosionPower<V[4]?5.0F:aExplosionPower<V[4]*2?6.0F:aExplosionPower<V[5]?7.0F:aExplosionPower<V[6]?8.0F:aExplosionPower<V[7]?9.0F:10.0F; - int tX=getBaseMetaTileEntity().getXCoord(), tY=getBaseMetaTileEntity().getYCoord(), tZ=getBaseMetaTileEntity().getZCoord(); - World tWorld = getBaseMetaTileEntity().getWorld(); - tWorld.setBlock(tX, tY, tZ, Blocks.air); - if (GregTech_API.sMachineExplosions) tWorld.createExplosion(null, tX+0.5, tY+0.5, tZ+0.5, tStrength, true); - } - - @Override - public int getLightOpacity() { - return 0; - } - - @Override - public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List<AxisAlignedBB> outputAABB, Entity collider) { - AxisAlignedBB axisalignedbb1 = getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); - if (axisalignedbb1 != null && inputAABB.intersectsWith(axisalignedbb1)) outputAABB.add(axisalignedbb1); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { - return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX+1, aY+1, aZ+1); - } - - @Override - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) { - // - } - - @Override - public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { - // - } -}
\ No newline at end of file |