From 1b820de08a05070909a267e17f033fcf58ac8710 Mon Sep 17 00:00:00 2001 From: NotAPenguin Date: Mon, 2 Sep 2024 23:17:17 +0200 Subject: The Great Renaming (#3014) * move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names --- .../implementations/GT_MetaPipeEntity_Cable.java | 649 ----- .../implementations/GT_MetaPipeEntity_Fluid.java | 979 ------- .../implementations/GT_MetaPipeEntity_Frame.java | 119 - .../implementations/GT_MetaPipeEntity_Item.java | 530 ---- .../GT_MetaTileEntity_BasicBatteryBuffer.java | 436 ---- .../GT_MetaTileEntity_BasicGenerator.java | 339 --- .../GT_MetaTileEntity_BasicHull.java | 175 -- .../GT_MetaTileEntity_BasicHull_NonElectric.java | 78 - .../GT_MetaTileEntity_BasicMachine.java | 1563 ----------- .../GT_MetaTileEntity_BasicMachine_Bronze.java | 387 --- .../GT_MetaTileEntity_BasicMachine_GT_Recipe.java | 818 ------ .../GT_MetaTileEntity_BasicMachine_Steel.java | 150 -- .../GT_MetaTileEntity_BasicTank.java | 331 --- .../implementations/GT_MetaTileEntity_Buffer.java | 563 ---- .../GT_MetaTileEntity_CubicMultiBlockBase.java | 141 - .../GT_MetaTileEntity_EnhancedMultiBlockBase.java | 318 --- ...MetaTileEntity_ExtendedPowerMultiBlockBase.java | 242 -- .../GT_MetaTileEntity_FilterBase.java | 106 - .../implementations/GT_MetaTileEntity_Hatch.java | 252 -- .../GT_MetaTileEntity_Hatch_DataAccess.java | 170 -- .../GT_MetaTileEntity_Hatch_Dynamo.java | 110 - .../GT_MetaTileEntity_Hatch_Energy.java | 125 - .../GT_MetaTileEntity_Hatch_Input.java | 196 -- .../GT_MetaTileEntity_Hatch_InputBus.java | 318 --- .../GT_MetaTileEntity_Hatch_Maintenance.java | 459 ---- .../GT_MetaTileEntity_Hatch_Muffler.java | 208 -- .../GT_MetaTileEntity_Hatch_MultiInput.java | 300 --- .../GT_MetaTileEntity_Hatch_Output.java | 497 ---- .../GT_MetaTileEntity_Hatch_OutputBus.java | 323 --- ...GT_MetaTileEntity_Hatch_QuadrupleHumongous.java | 27 - .../GT_MetaTileEntity_MagHatch.java | 103 - .../GT_MetaTileEntity_MultiBlockBase.java | 2754 -------------------- .../GT_MetaTileEntity_SpecialFilter.java | 134 - .../GT_MetaTileEntity_TieredMachineBlock.java | 119 - .../GT_MetaTileEntity_TooltipMultiBlockBase.java | 57 - .../GT_MetaTileEntity_Transformer.java | 326 --- .../GT_MetaTileEntity_WetTransformer.java | 93 - .../GT_MetaTileEntity_Wireless_Dynamo.java | 146 -- .../GT_MetaTileEntity_Wireless_Hatch.java | 168 -- .../implementations/MTEBasicBatteryBuffer.java | 435 ++++ .../implementations/MTEBasicGenerator.java | 338 +++ .../implementations/MTEBasicHull.java | 173 ++ .../implementations/MTEBasicHullNonElectric.java | 75 + .../implementations/MTEBasicMachine.java | 1563 +++++++++++ .../implementations/MTEBasicMachineBronze.java | 387 +++ .../implementations/MTEBasicMachineSteel.java | 149 ++ .../implementations/MTEBasicMachineWithRecipe.java | 817 ++++++ .../implementations/MTEBasicTank.java | 328 +++ .../metatileentity/implementations/MTEBuffer.java | 559 ++++ .../metatileentity/implementations/MTECable.java | 649 +++++ .../implementations/MTECubicMultiBlockBase.java | 141 + .../implementations/MTEEnhancedMultiBlockBase.java | 318 +++ .../MTEExtendedPowerMultiBlockBase.java | 242 ++ .../implementations/MTEFilterBase.java | 104 + .../metatileentity/implementations/MTEFluid.java | 971 +++++++ .../metatileentity/implementations/MTEFrame.java | 119 + .../metatileentity/implementations/MTEHatch.java | 250 ++ .../implementations/MTEHatchDataAccess.java | 169 ++ .../implementations/MTEHatchDynamo.java | 109 + .../implementations/MTEHatchEnergy.java | 123 + .../implementations/MTEHatchInput.java | 192 ++ .../implementations/MTEHatchInputBus.java | 315 +++ .../implementations/MTEHatchMagnet.java | 102 + .../implementations/MTEHatchMaintenance.java | 455 ++++ .../implementations/MTEHatchMuffler.java | 208 ++ .../implementations/MTEHatchMultiInput.java | 299 +++ .../implementations/MTEHatchOutput.java | 493 ++++ .../implementations/MTEHatchOutputBus.java | 320 +++ .../MTEHatchQuadrupleHumongous.java | 27 + .../metatileentity/implementations/MTEItem.java | 523 ++++ .../implementations/MTEMultiBlockBase.java | 2742 +++++++++++++++++++ .../implementations/MTESpecialFilter.java | 132 + .../implementations/MTETieredMachineBlock.java | 119 + .../implementations/MTETooltipMultiBlockBase.java | 56 + .../implementations/MTETransformer.java | 325 +++ .../implementations/MTEWetTransformer.java | 92 + .../implementations/MTEWirelessDynamo.java | 144 + .../implementations/MTEWirelessEnergy.java | 167 ++ 78 files changed, 14730 insertions(+), 14809 deletions(-) delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Steel.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_CubicMultiBlockBase.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ExtendedPowerMultiBlockBase.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_FilterBase.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_DataAccess.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_MultiInput.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_QuadrupleHumongous.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MagHatch.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SpecialFilter.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TieredMachineBlock.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_TooltipMultiBlockBase.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_WetTransformer.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Dynamo.java delete mode 100644 src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Hatch.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEBasicBatteryBuffer.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEBasicGenerator.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEBasicHull.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEBasicHullNonElectric.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEBasicMachine.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEBasicMachineBronze.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEBasicMachineSteel.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEBasicMachineWithRecipe.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEBasicTank.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEBuffer.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTECable.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTECubicMultiBlockBase.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEEnhancedMultiBlockBase.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEExtendedPowerMultiBlockBase.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEFilterBase.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEFluid.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEFrame.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatch.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchDataAccess.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchDynamo.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchEnergy.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchInput.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchInputBus.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchMagnet.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchMaintenance.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchMuffler.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchMultiInput.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchOutput.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchOutputBus.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEHatchQuadrupleHumongous.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEItem.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTESpecialFilter.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTETieredMachineBlock.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTETooltipMultiBlockBase.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTETransformer.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEWetTransformer.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEWirelessDynamo.java create mode 100644 src/main/java/gregtech/api/metatileentity/implementations/MTEWirelessEnergy.java (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java deleted file mode 100644 index e44860963f..0000000000 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ /dev/null @@ -1,649 +0,0 @@ -package gregtech.api.metatileentity.implementations; - -import static gregtech.api.enums.Mods.GalacticraftCore; -import static net.minecraftforge.common.util.ForgeDirection.DOWN; -import static net.minecraftforge.common.util.ForgeDirection.EAST; -import static net.minecraftforge.common.util.ForgeDirection.NORTH; -import static net.minecraftforge.common.util.ForgeDirection.SOUTH; -import static net.minecraftforge.common.util.ForgeDirection.UP; -import static net.minecraftforge.common.util.ForgeDirection.WEST; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cofh.api.energy.IEnergyReceiver; -import gregtech.GT_Mod; -import gregtech.api.GregTech_API; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.Materials; -import gregtech.api.enums.TextureSet; -import gregtech.api.enums.Textures; -import gregtech.api.graphs.Node; -import gregtech.api.graphs.NodeList; -import gregtech.api.graphs.PowerNode; -import gregtech.api.graphs.PowerNodes; -import gregtech.api.graphs.consumers.ConsumerNode; -import gregtech.api.graphs.paths.PowerNodePath; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IConnectable; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.metatileentity.IMetaTileEntityCable; -import gregtech.api.interfaces.tileentity.ICoverable; -import gregtech.api.interfaces.tileentity.IEnergyConnected; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.logic.interfaces.PowerLogicHost; -import gregtech.api.metatileentity.BaseMetaPipeEntity; -import gregtech.api.metatileentity.MetaPipeEntity; -import gregtech.api.objects.GT_Cover_None; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_CoverBehavior; -import gregtech.api.util.GT_CoverBehaviorBase; -import gregtech.api.util.GT_GC_Compat; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_Utility; -import gregtech.api.util.ISerializableObject; -import gregtech.common.GT_Client; -import gregtech.common.covers.CoverInfo; -import gregtech.common.covers.GT_Cover_SolarPanel; -import ic2.api.energy.EnergyNet; -import ic2.api.energy.tile.IEnergyEmitter; -import ic2.api.energy.tile.IEnergySink; -import ic2.api.energy.tile.IEnergySource; -import ic2.api.energy.tile.IEnergyTile; -import ic2.api.reactor.IReactorChamber; -import mcp.mobius.waila.api.IWailaConfigHandler; -import mcp.mobius.waila.api.IWailaDataAccessor; - -public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTileEntityCable { - - public final float mThickNess; - public final Materials mMaterial; - public final long mCableLossPerMeter, mAmperage, mVoltage; - public final boolean mInsulated, mCanShock; - - public int mTransferredAmperage = 0; - - public GT_MetaPipeEntity_Cable(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, - long aCableLossPerMeter, long aAmperage, long aVoltage, boolean aInsulated, boolean aCanShock) { - super(aID, aName, aNameRegional, 0); - mThickNess = aThickNess; - mMaterial = aMaterial; - mAmperage = aAmperage; - mVoltage = aVoltage; - mInsulated = aInsulated; - mCanShock = aCanShock; - mCableLossPerMeter = aCableLossPerMeter; - } - - public GT_MetaPipeEntity_Cable(String aName, float aThickNess, Materials aMaterial, long aCableLossPerMeter, - long aAmperage, long aVoltage, boolean aInsulated, boolean aCanShock) { - super(aName, 0); - mThickNess = aThickNess; - mMaterial = aMaterial; - mAmperage = aAmperage; - mVoltage = aVoltage; - mInsulated = aInsulated; - mCanShock = aCanShock; - mCableLossPerMeter = aCableLossPerMeter; - } - - @Override - public byte getTileEntityBaseType() { - return (byte) (mInsulated ? 9 : 8); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaPipeEntity_Cable( - mName, - mThickNess, - mMaterial, - mCableLossPerMeter, - mAmperage, - mVoltage, - mInsulated, - mCanShock); - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, - int facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { - if (!mInsulated) return new ITexture[] { TextureFactory - .of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], Dyes.getModulation(colorIndex, mMaterial.mRGBa)) }; - if (active) { - float tThickNess = getThickNess(); - if (tThickNess < 0.124F) return new ITexture[] { TextureFactory - .of(Textures.BlockIcons.INSULATION_FULL, Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; - if (tThickNess < 0.374F) // 0.375 x1 - return new ITexture[] { - TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), - TextureFactory.of( - Textures.BlockIcons.INSULATION_TINY, - Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; - if (tThickNess < 0.499F) // 0.500 x2 - return new ITexture[] { - TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), - TextureFactory.of( - Textures.BlockIcons.INSULATION_SMALL, - Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; - if (tThickNess < 0.624F) // 0.625 x4 - return new ITexture[] { - TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), - TextureFactory.of( - Textures.BlockIcons.INSULATION_MEDIUM, - Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; - if (tThickNess < 0.749F) // 0.750 x8 - return new ITexture[] { - TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), - TextureFactory.of( - Textures.BlockIcons.INSULATION_MEDIUM_PLUS, - Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; - if (tThickNess < 0.874F) // 0.825 x12 - return new ITexture[] { - TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), - TextureFactory.of( - Textures.BlockIcons.INSULATION_LARGE, - Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; - return new ITexture[] { - TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), - TextureFactory.of( - Textures.BlockIcons.INSULATION_HUGE, - Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; - } - return new ITexture[] { TextureFactory - .of(Textures.BlockIcons.INSULATION_FULL, Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; - } - - @Override - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) { - - if (!mCanShock) return; - - final BaseMetaPipeEntity baseEntity = (BaseMetaPipeEntity) getBaseMetaTileEntity(); - - if (!(aEntity instanceof EntityLivingBase livingEntity)) return; - if (!(baseEntity.getNodePath() instanceof PowerNodePath powerPath)) return; - - if (isCoverOnSide(baseEntity, livingEntity)) return; - if ((baseEntity.mConnections & IConnectable.HAS_HARDENEDFOAM) == 1) return; - - final long amperage = powerPath.getAmperage(); - final long voltage = powerPath.getVoltage(); - - if (amperage == 0L) return; - - GT_Utility.applyElectricityDamage(livingEntity, voltage, amperage); - } - - @Override - public boolean isSimpleMachine() { - return true; - } - - @Override - public boolean isFacingValid(ForgeDirection facing) { - return false; - } - - @Override - public boolean isValidSlot(int aIndex) { - return true; - } - - @Override - public final boolean renderInside(ForgeDirection side) { - return false; - } - - @Override - public int getProgresstime() { - return (int) mTransferredAmperage * 64; - } - - @Override - public int maxProgresstime() { - return (int) mAmperage * 64; - } - - @Override - public long injectEnergyUnits(ForgeDirection side, long voltage, long amperage) { - if (!isConnectedAtSide(side) && side != ForgeDirection.UNKNOWN) return 0; - if (!getBaseMetaTileEntity().getCoverInfoAtSide(side) - .letsEnergyIn()) return 0; - return transferElectricity(side, voltage, amperage, (HashSet) null); - } - - @Override - @Deprecated - public long transferElectricity(ForgeDirection side, long aVoltage, long aAmperage, - ArrayList aAlreadyPassedTileEntityList) { - return transferElectricity(side, aVoltage, aAmperage, new HashSet<>(aAlreadyPassedTileEntityList)); - } - - @Override - public long transferElectricity(ForgeDirection side, long voltage, long amperage, - HashSet alreadyPassedSet) { - if (!getBaseMetaTileEntity().isServerSide() || !isConnectedAtSide(side) && side != ForgeDirection.UNKNOWN) - return 0; - final BaseMetaPipeEntity tBase = (BaseMetaPipeEntity) getBaseMetaTileEntity(); - if (!(tBase.getNode() instanceof PowerNode tNode)) return 0; - int tPlace = 0; - final Node[] tToPower = new Node[tNode.mConsumers.size()]; - if (tNode.mHadVoltage) { - for (ConsumerNode consumer : tNode.mConsumers) { - if (consumer.needsEnergy()) tToPower[tPlace++] = consumer; - } - } else { - tNode.mHadVoltage = true; - for (ConsumerNode consumer : tNode.mConsumers) { - tToPower[tPlace++] = consumer; - } - } - return PowerNodes.powerNode(tNode, null, new NodeList(tToPower), (int) voltage, (int) amperage); - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - super.onPostTick(aBaseMetaTileEntity, aTick); - if (aTick % 20 == 0 && aBaseMetaTileEntity.isServerSide() - && (!GT_Mod.gregtechproxy.gt6Cable || mCheckConnections)) { - checkConnections(); - } - } - - @Override - public boolean onWireCutterRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer aPlayer, - float aX, float aY, float aZ) { - if (GT_Mod.gregtechproxy.gt6Cable - && GT_ModHandler.damageOrDechargeItem(aPlayer.inventory.getCurrentItem(), 1, 500, aPlayer)) { - if (isConnectedAtSide(wrenchingSide)) { - disconnect(wrenchingSide); - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("215", "Disconnected")); - } else if (!GT_Mod.gregtechproxy.costlyCableConnection) { - if (connect(wrenchingSide) > 0) - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("214", "Connected")); - } - return true; - } - return false; - } - - @Override - public boolean onSolderingToolRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer aPlayer, - float aX, float aY, float aZ) { - if (GT_Mod.gregtechproxy.gt6Cable - && GT_ModHandler.damageOrDechargeItem(aPlayer.inventory.getCurrentItem(), 1, 500, aPlayer)) { - if (isConnectedAtSide(wrenchingSide)) { - disconnect(wrenchingSide); - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("215", "Disconnected")); - } else if (!GT_Mod.gregtechproxy.costlyCableConnection || GT_ModHandler.consumeSolderingMaterial(aPlayer)) { - if (connect(wrenchingSide) > 0) - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("214", "Connected")); - } - return true; - } - return false; - } - - @Override - public boolean letsIn(GT_CoverBehavior coverBehavior, ForgeDirection side, int aCoverID, int aCoverVariable, - ICoverable aTileEntity) { - return coverBehavior.letsEnergyIn(side, aCoverID, aCoverVariable, aTileEntity); - } - - @Override - public boolean letsOut(GT_CoverBehavior coverBehavior, ForgeDirection side, int aCoverID, int aCoverVariable, - ICoverable aTileEntity) { - return coverBehavior.letsEnergyOut(side, aCoverID, aCoverVariable, aTileEntity); - } - - @Override - public boolean letsIn(GT_CoverBehaviorBase coverBehavior, ForgeDirection side, int aCoverID, - ISerializableObject aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsEnergyIn(side, aCoverID, aCoverVariable, aTileEntity); - } - - @Override - public boolean letsOut(GT_CoverBehaviorBase coverBehavior, ForgeDirection side, int aCoverID, - ISerializableObject aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsEnergyOut(side, aCoverID, aCoverVariable, aTileEntity); - } - - @Override - public boolean letsIn(CoverInfo coverInfo) { - return coverInfo.letsEnergyIn(); - } - - @Override - public boolean letsOut(CoverInfo coverInfo) { - return coverInfo.letsEnergyOut(); - } - - @Override - public boolean canConnect(ForgeDirection side, TileEntity tileEntity) { - final IGregTechTileEntity baseMetaTile = getBaseMetaTileEntity(); - final GT_CoverBehaviorBase coverBehavior = baseMetaTile.getCoverBehaviorAtSideNew(side); - final ForgeDirection oppositeSide = side.getOpposite(); - - // GT Machine handling - if ((tileEntity instanceof PowerLogicHost powerLogic && powerLogic.getPowerLogic(oppositeSide) != null) - || ((tileEntity instanceof IEnergyConnected energyConnected) - && (energyConnected.inputEnergyFrom(oppositeSide, false) - || energyConnected.outputsEnergyTo(oppositeSide, false)))) - return true; - - // Solar Panel Compat - if (coverBehavior instanceof GT_Cover_SolarPanel) return true; - - // ((tIsGregTechTileEntity && tIsTileEntityCable) && (tAlwaysLookConnected || tLetEnergyIn || tLetEnergyOut) ) - // --> Not needed - if (GalacticraftCore.isModLoaded() && GT_GC_Compat.canConnect(tileEntity, oppositeSide)) return true; - - // AE2-p2p Compat - if (tileEntity instanceof appeng.tile.powersink.IC2 ic2sink - && ic2sink.acceptsEnergyFrom((TileEntity) baseMetaTile, oppositeSide)) return true; - - // IC2 Compat - { - final TileEntity ic2Energy; - - if (tileEntity instanceof IReactorChamber) - ic2Energy = (TileEntity) ((IReactorChamber) tileEntity).getReactor(); - else ic2Energy = (tileEntity == null || tileEntity instanceof IEnergyTile || EnergyNet.instance == null) - ? tileEntity - : EnergyNet.instance - .getTileEntity(tileEntity.getWorldObj(), tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - - // IC2 Sink Compat - if ((ic2Energy instanceof IEnergySink) - && ((IEnergySink) ic2Energy).acceptsEnergyFrom((TileEntity) baseMetaTile, oppositeSide)) return true; - - // IC2 Source Compat - if (GT_Mod.gregtechproxy.ic2EnergySourceCompat && (ic2Energy instanceof IEnergySource)) { - if (((IEnergySource) ic2Energy).emitsEnergyTo((TileEntity) baseMetaTile, oppositeSide)) { - return true; - } - } - } - // RF Output Compat - if (GregTech_API.mOutputRF && tileEntity instanceof IEnergyReceiver - && ((IEnergyReceiver) tileEntity).canConnectEnergy(oppositeSide)) return true; - - // RF Input Compat - return GregTech_API.mInputRF && (tileEntity instanceof IEnergyEmitter - && ((IEnergyEmitter) tileEntity).emitsEnergyTo((TileEntity) baseMetaTile, oppositeSide)); - } - - @Override - public boolean getGT6StyleConnection() { - // Yes if GT6 Cables are enabled - return GT_Mod.gregtechproxy.gt6Cable; - } - - @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, - ItemStack aStack) { - return false; - } - - @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, - ItemStack aStack) { - return false; - } - - @Override - public String[] getDescription() { - return new String[] { - StatCollector.translateToLocal("GT5U.item.cable.max_voltage") + ": %%%" - + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(mVoltage) - + " (" - + GT_Utility.getColoredTierNameFromVoltage(mVoltage) - + EnumChatFormatting.GREEN - + ")" - + EnumChatFormatting.GRAY, - StatCollector.translateToLocal("GT5U.item.cable.max_amperage") + ": %%%" - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(mAmperage) - + EnumChatFormatting.GRAY, - StatCollector.translateToLocal("GT5U.item.cable.loss") + ": %%%" - + EnumChatFormatting.RED - + GT_Utility.formatNumbers(mCableLossPerMeter) - + EnumChatFormatting.GRAY - + "%%% " - + StatCollector.translateToLocal("GT5U.item.cable.eu_volt") }; - } - - @Override - public float getThickNess() { - if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x1) != 0) return 0.0625F; - return mThickNess; - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - if (GT_Mod.gregtechproxy.gt6Cable) aNBT.setByte("mConnections", mConnections); - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - if (GT_Mod.gregtechproxy.gt6Cable) { - mConnections = aNBT.getByte("mConnections"); - } - } - - @Override - public boolean isGivingInformation() { - return true; - } - - @Override - public String[] getInfoData() { - final BaseMetaPipeEntity base = (BaseMetaPipeEntity) getBaseMetaTileEntity(); - final PowerNodePath path = (PowerNodePath) base.getNodePath(); - - if (path == null) - return new String[] { EnumChatFormatting.RED + "Failed to get Power Node info" + EnumChatFormatting.RESET }; - - final long currAmp = path.getAmperage(); - final long currVoltage = path.getVoltage(); - - final double avgAmp = path.getAvgAmperage(); - final double avgVoltage = path.getAvgVoltage(); - - final long maxVoltageOut = (mVoltage - mCableLossPerMeter) * mAmperage; - - return new String[] { - "Amperage: " + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(currAmp) - + EnumChatFormatting.RESET - + " / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(mAmperage) - + EnumChatFormatting.RESET - + " A", - "Voltage Out: " + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(currVoltage) - + EnumChatFormatting.RESET - + " / " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(maxVoltageOut) - + EnumChatFormatting.RESET - + " EU/t", - "Avg Amperage (20t): " + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(avgAmp) - + EnumChatFormatting.RESET - + " A", - "Avg Output (20t): " + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(avgVoltage) - + EnumChatFormatting.RESET - + " EU/t" }; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { - if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x2) != 0) - return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 1, aZ + 1); - else return getActualCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); - } - - private AxisAlignedBB getActualCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { - float tSpace = (1f - mThickNess) / 2; - float spaceDown = tSpace; - float spaceUp = 1f - tSpace; - float spaceNorth = tSpace; - float spaceSouth = 1f - tSpace; - float spaceWest = tSpace; - float spaceEast = 1f - tSpace; - - if (getBaseMetaTileEntity().getCoverIDAtSide(DOWN) != 0) { - spaceDown = spaceNorth = spaceWest = 0; - spaceSouth = spaceEast = 1; - } - if (getBaseMetaTileEntity().getCoverIDAtSide(UP) != 0) { - spaceNorth = spaceWest = 0; - spaceUp = spaceSouth = spaceEast = 1; - } - if (getBaseMetaTileEntity().getCoverIDAtSide(NORTH) != 0) { - spaceDown = spaceNorth = spaceWest = 0; - spaceUp = spaceEast = 1; - } - if (getBaseMetaTileEntity().getCoverIDAtSide(SOUTH) != 0) { - spaceDown = spaceWest = 0; - spaceUp = spaceSouth = spaceEast = 1; - } - if (getBaseMetaTileEntity().getCoverIDAtSide(WEST) != 0) { - spaceDown = spaceNorth = spaceWest = 0; - spaceUp = spaceSouth = 1; - } - if (getBaseMetaTileEntity().getCoverIDAtSide(EAST) != 0) { - spaceDown = spaceNorth = 0; - spaceUp = spaceSouth = spaceEast = 1; - } - - byte tConn = ((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections; - if ((tConn & DOWN.flag) != 0) spaceDown = 0f; - if ((tConn & UP.flag) != 0) spaceUp = 1f; - if ((tConn & NORTH.flag) != 0) spaceNorth = 0f; - if ((tConn & SOUTH.flag) != 0) spaceSouth = 1f; - if ((tConn & WEST.flag) != 0) spaceWest = 0f; - if ((tConn & EAST.flag) != 0) spaceEast = 1f; - - return AxisAlignedBB.getBoundingBox( - aX + spaceWest, - aY + spaceDown, - aZ + spaceNorth, - aX + spaceEast, - aY + spaceUp, - aZ + spaceSouth); - } - - @Override - public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, - List outputAABB, Entity collider) { - super.addCollisionBoxesToList(aWorld, aX, aY, aZ, inputAABB, outputAABB, collider); - if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x2) != 0) { - final AxisAlignedBB aabb = getActualCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); - if (inputAABB.intersectsWith(aabb)) outputAABB.add(aabb); - } - } - - @Override - public boolean shouldJoinIc2Enet() { - if (!GT_Mod.gregtechproxy.ic2EnergySourceCompat) return false; - - if (mConnections != 0) { - final IGregTechTileEntity baseMeta = getBaseMetaTileEntity(); - for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { - if (isConnectedAtSide(side)) { - final TileEntity tTileEntity = baseMeta.getTileEntityAtSide(side); - final TileEntity tEmitter = (tTileEntity == null || tTileEntity instanceof IEnergyTile - || EnergyNet.instance == null) - ? tTileEntity - : EnergyNet.instance.getTileEntity( - tTileEntity.getWorldObj(), - tTileEntity.xCoord, - tTileEntity.yCoord, - tTileEntity.zCoord); - - if (tEmitter instanceof IEnergyEmitter) return true; - } - } - } - return false; - } - - @Override - public void reloadLocks() { - final BaseMetaPipeEntity pipe = (BaseMetaPipeEntity) getBaseMetaTileEntity(); - if (pipe.getNode() != null) { - for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { - if (isConnectedAtSide(side)) { - final CoverInfo coverInfo = pipe.getCoverInfoAtSide(side); - if (coverInfo.getCoverBehavior() instanceof GT_Cover_None) continue; - if (!letsIn(coverInfo) || !letsOut(coverInfo)) { - pipe.addToLock(pipe, side); - } else { - pipe.removeFromLock(pipe, side); - } - } - } - } else { - boolean dontAllow = false; - for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { - if (isConnectedAtSide(side)) { - final CoverInfo coverInfo = pipe.getCoverInfoAtSide(side); - if (coverInfo.getCoverBehavior() instanceof GT_Cover_None) continue; - - if (!letsIn(coverInfo) || !letsOut(coverInfo)) { - dontAllow = true; - } - } - } - if (dontAllow) { - pipe.addToLock(pipe, DOWN); - } else { - pipe.removeFromLock(pipe, DOWN); - } - } - } - - @Override - public void getWailaBody(ItemStack itemStack, List currenttip, IWailaDataAccessor accessor, - IWailaConfigHandler config) { - - currenttip.add( - StatCollector.translateToLocal("GT5U.item.cable.max_voltage") + ": " - + EnumChatFormatting.GREEN - + GT_Utility.formatNumbers(mVoltage) - + " (" - + GT_Utility.getColoredTierNameFromVoltage(mVoltage) - + EnumChatFormatting.GREEN - + ")"); - currenttip.add( - StatCollector.translateToLocal("GT5U.item.cable.max_amperage") + ": " - + EnumChatFormatting.YELLOW - + GT_Utility.formatNumbers(mAmperage)); - currenttip.add( - StatCollector.translateToLocal("GT5U.item.cable.loss") + ": " - + EnumChatFormatting.RED - + GT_Utility.formatNumbers(mCableLossPerMeter) - + EnumChatFormatting.RESET - + " " - + StatCollector.translateToLocal("GT5U.item.cable.eu_volt")); - } -} diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java deleted file mode 100644 index cafd1c9cb7..0000000000 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java +++ /dev/null @@ -1,979 +0,0 @@ -package gregtech.api.metatileentity.implementations; - -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; -import static gregtech.api.enums.GT_Values.D1; -import static gregtech.api.enums.Mods.TinkerConstruct; -import static gregtech.api.enums.Mods.Translocator; -import static gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid.Border.BOTTOM; -import static gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid.Border.LEFT; -import static gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid.Border.RIGHT; -import static gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid.Border.TOP; -import static gregtech.api.objects.XSTR.XSTR_INSTANCE; -import static net.minecraftforge.common.util.ForgeDirection.DOWN; -import static net.minecraftforge.common.util.ForgeDirection.EAST; -import static net.minecraftforge.common.util.ForgeDirection.NORTH; -import static net.minecraftforge.common.util.ForgeDirection.SOUTH; -import static net.minecraftforge.common.util.ForgeDirection.UP; -import static net.minecraftforge.common.util.ForgeDirection.WEST; - -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; - -import org.apache.commons.lang3.tuple.MutableTriple; - -import cpw.mods.fml.common.Optional; -import gregtech.GT_Mod; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.Materials; -import gregtech.api.enums.Mods; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.ParticleFX; -import gregtech.api.enums.SoundResource; -import gregtech.api.enums.Textures; -import gregtech.api.enums.ToolModes; -import gregtech.api.interfaces.IIconContainer; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.ICoverable; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.items.GT_MetaGenerated_Tool; -import gregtech.api.metatileentity.BaseMetaPipeEntity; -import gregtech.api.metatileentity.MetaPipeEntity; -import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_CoverBehavior; -import gregtech.api.util.GT_CoverBehaviorBase; -import gregtech.api.util.GT_Log; -import gregtech.api.util.GT_Utility; -import gregtech.api.util.ISerializableObject; -import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; -import gregtech.common.GT_Client; -import gregtech.common.config.other.ConfigGeneral; -import gregtech.common.covers.CoverInfo; -import gregtech.common.covers.GT_Cover_Drain; -import gregtech.common.covers.GT_Cover_FluidRegulator; - -public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { - - protected static final EnumMap> FACE_BORDER_MAP = new EnumMap<>( - ForgeDirection.class); - - static { - FACE_BORDER_MAP.put(DOWN, borderMap(NORTH, SOUTH, EAST, WEST)); - FACE_BORDER_MAP.put(UP, borderMap(NORTH, SOUTH, WEST, EAST)); - FACE_BORDER_MAP.put(NORTH, borderMap(UP, DOWN, EAST, WEST)); - FACE_BORDER_MAP.put(SOUTH, borderMap(UP, DOWN, WEST, EAST)); - FACE_BORDER_MAP.put(WEST, borderMap(UP, DOWN, NORTH, SOUTH)); - FACE_BORDER_MAP.put(EAST, borderMap(UP, DOWN, SOUTH, NORTH)); - } - - protected static final Map RESTR_TEXTURE_MAP = new HashMap<>(); - - static { - RESTR_TEXTURE_MAP.put(TOP.mask, Textures.BlockIcons.PIPE_RESTRICTOR_UP); - RESTR_TEXTURE_MAP.put(BOTTOM.mask, Textures.BlockIcons.PIPE_RESTRICTOR_DOWN); - RESTR_TEXTURE_MAP.put(TOP.mask | BOTTOM.mask, Textures.BlockIcons.PIPE_RESTRICTOR_UD); - RESTR_TEXTURE_MAP.put(LEFT.mask, Textures.BlockIcons.PIPE_RESTRICTOR_LEFT); - RESTR_TEXTURE_MAP.put(TOP.mask | LEFT.mask, Textures.BlockIcons.PIPE_RESTRICTOR_UL); - RESTR_TEXTURE_MAP.put(BOTTOM.mask | LEFT.mask, Textures.BlockIcons.PIPE_RESTRICTOR_DL); - RESTR_TEXTURE_MAP.put(TOP.mask | BOTTOM.mask | LEFT.mask, Textures.BlockIcons.PIPE_RESTRICTOR_NR); - RESTR_TEXTURE_MAP.put(RIGHT.mask, Textures.BlockIcons.PIPE_RESTRICTOR_RIGHT); - RESTR_TEXTURE_MAP.put(TOP.mask | RIGHT.mask, Textures.BlockIcons.PIPE_RESTRICTOR_UR); - RESTR_TEXTURE_MAP.put(BOTTOM.mask | RIGHT.mask, Textures.BlockIcons.PIPE_RESTRICTOR_DR); - RESTR_TEXTURE_MAP.put(TOP.mask | BOTTOM.mask | RIGHT.mask, Textures.BlockIcons.PIPE_RESTRICTOR_NL); - RESTR_TEXTURE_MAP.put(LEFT.mask | RIGHT.mask, Textures.BlockIcons.PIPE_RESTRICTOR_LR); - RESTR_TEXTURE_MAP.put(TOP.mask | LEFT.mask | RIGHT.mask, Textures.BlockIcons.PIPE_RESTRICTOR_ND); - RESTR_TEXTURE_MAP.put(BOTTOM.mask | LEFT.mask | RIGHT.mask, Textures.BlockIcons.PIPE_RESTRICTOR_NU); - RESTR_TEXTURE_MAP.put(TOP.mask | BOTTOM.mask | LEFT.mask | RIGHT.mask, Textures.BlockIcons.PIPE_RESTRICTOR); - } - - public final float mThickNess; - public final Materials mMaterial; - public final int mCapacity, mHeatResistance, mPipeAmount; - public final boolean mGasProof; - public final FluidStack[] mFluids; - public byte mLastReceivedFrom = 0, oLastReceivedFrom = 0; - /** - * Bitmask for whether disable fluid input form each side. - */ - public byte mDisableInput = 0; - - public GT_MetaPipeEntity_Fluid(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, - int aCapacity, int aHeatResistance, boolean aGasProof) { - this(aID, aName, aNameRegional, aThickNess, aMaterial, aCapacity, aHeatResistance, aGasProof, 1); - } - - public GT_MetaPipeEntity_Fluid(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, - int aCapacity, int aHeatResistance, boolean aGasProof, int aFluidTypes) { - super(aID, aName, aNameRegional, 0, false); - mThickNess = aThickNess; - mMaterial = aMaterial; - mCapacity = aCapacity; - mGasProof = aGasProof; - mHeatResistance = aHeatResistance; - mPipeAmount = aFluidTypes; - mFluids = new FluidStack[mPipeAmount]; - addInfo(aID); - } - - public GT_MetaPipeEntity_Fluid(String aName, float aThickNess, Materials aMaterial, int aCapacity, - int aHeatResistance, boolean aGasProof, int aFluidTypes) { - super(aName, 0); - mThickNess = aThickNess; - mMaterial = aMaterial; - mCapacity = aCapacity; - mGasProof = aGasProof; - mHeatResistance = aHeatResistance; - mPipeAmount = aFluidTypes; - mFluids = new FluidStack[mPipeAmount]; - } - - @Override - public byte getTileEntityBaseType() { - return (byte) (mMaterial == null ? 4 : (byte) (4) + Math.max(0, Math.min(3, mMaterial.mToolQuality))); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaPipeEntity_Fluid( - mName, - mThickNess, - mMaterial, - mCapacity, - mHeatResistance, - mGasProof, - mPipeAmount); - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, int aConnections, - int colorIndex, boolean aConnected, boolean redstoneLevel) { - if (side == ForgeDirection.UNKNOWN) return Textures.BlockIcons.ERROR_RENDERING; - final float tThickNess = getThickNess(); - if (mDisableInput == 0) - return new ITexture[] { aConnected ? getBaseTexture(tThickNess, mPipeAmount, mMaterial, colorIndex) - : TextureFactory.of( - mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], - Dyes.getModulation(colorIndex, mMaterial.mRGBa)) }; - int borderMask = 0; - for (Border border : Border.values()) { - if (isInputDisabledAtSide(getSideAtBorder(side, border))) borderMask |= border.mask; - } - - return new ITexture[] { aConnected ? getBaseTexture(tThickNess, mPipeAmount, mMaterial, colorIndex) - : TextureFactory.of( - mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], - Dyes.getModulation(colorIndex, mMaterial.mRGBa)), - getRestrictorTexture(borderMask) }; - } - - protected static ITexture getBaseTexture(float aThickNess, int aPipeAmount, Materials aMaterial, int colorIndex) { - if (aPipeAmount >= 9) return TextureFactory.of( - aMaterial.mIconSet.mTextures[OrePrefixes.pipeNonuple.mTextureIndex], - Dyes.getModulation(colorIndex, aMaterial.mRGBa)); - if (aPipeAmount >= 4) return TextureFactory.of( - aMaterial.mIconSet.mTextures[OrePrefixes.pipeQuadruple.mTextureIndex], - Dyes.getModulation(colorIndex, aMaterial.mRGBa)); - if (aThickNess < 0.124F) return TextureFactory.of( - aMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], - Dyes.getModulation(colorIndex, aMaterial.mRGBa)); - if (aThickNess < 0.374F) return TextureFactory.of( - aMaterial.mIconSet.mTextures[OrePrefixes.pipeTiny.mTextureIndex], - Dyes.getModulation(colorIndex, aMaterial.mRGBa)); - if (aThickNess < 0.499F) return TextureFactory.of( - aMaterial.mIconSet.mTextures[OrePrefixes.pipeSmall.mTextureIndex], - Dyes.getModulation(colorIndex, aMaterial.mRGBa)); - if (aThickNess < 0.749F) return TextureFactory.of( - aMaterial.mIconSet.mTextures[OrePrefixes.pipeMedium.mTextureIndex], - Dyes.getModulation(colorIndex, aMaterial.mRGBa)); - if (aThickNess < 0.874F) return TextureFactory.of( - aMaterial.mIconSet.mTextures[OrePrefixes.pipeLarge.mTextureIndex], - Dyes.getModulation(colorIndex, aMaterial.mRGBa)); - return TextureFactory.of( - aMaterial.mIconSet.mTextures[OrePrefixes.pipeHuge.mTextureIndex], - Dyes.getModulation(colorIndex, aMaterial.mRGBa)); - } - - protected static ITexture getRestrictorTexture(int borderMask) { - final IIconContainer restrictorIcon = RESTR_TEXTURE_MAP.get(borderMask); - return restrictorIcon != null ? TextureFactory.of(restrictorIcon) : null; - } - - @Override - public void onValueUpdate(byte aValue) { - mDisableInput = aValue; - } - - @Override - public byte getUpdateData() { - return mDisableInput; - } - - @Override - public boolean isSimpleMachine() { - return true; - } - - @Override - public boolean isFacingValid(ForgeDirection facing) { - return false; - } - - @Override - public boolean isValidSlot(int aIndex) { - return false; - } - - @Override - public final boolean renderInside(ForgeDirection side) { - return false; - } - - @Override - public int getProgresstime() { - return getFluidAmount(); - } - - @Override - public int maxProgresstime() { - return getCapacity(); - } - - @Override - public void saveNBTData(NBTTagCompound aNBT) { - for (int i = 0; i < mPipeAmount; i++) if (mFluids[i] != null) - aNBT.setTag("mFluid" + (i == 0 ? "" : i), mFluids[i].writeToNBT(new NBTTagCompound())); - aNBT.setByte("mLastReceivedFrom", mLastReceivedFrom); - if (GT_Mod.gregtechproxy.gt6Pipe) { - aNBT.setByte("mConnections", mConnections); - aNBT.setByte("mDisableInput", mDisableInput); - } - } - - @Override - public void loadNBTData(NBTTagCompound aNBT) { - for (int i = 0; i < mPipeAmount; i++) - mFluids[i] = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluid" + (i == 0 ? "" : i))); - mLastReceivedFrom = aNBT.getByte("mLastReceivedFrom"); - if (GT_Mod.gregtechproxy.gt6Pipe) { - mConnections = aNBT.getByte("mConnections"); - mDisableInput = aNBT.getByte("mDisableInput"); - } - } - - @Override - public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) { - if ((((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections & -128) == 0 - && aEntity instanceof EntityLivingBase) { - for (FluidStack tFluid : mFluids) { - if (tFluid != null) { - final int tTemperature = tFluid.getFluid() - .getTemperature(tFluid); - if (tTemperature > 320 - && !isCoverOnSide((BaseMetaPipeEntity) getBaseMetaTileEntity(), (EntityLivingBase) aEntity)) { - GT_Utility.applyHeatDamage((EntityLivingBase) aEntity, (tTemperature - 300) / 50.0F); - break; - } else if (tTemperature < 260 - && !isCoverOnSide((BaseMetaPipeEntity) getBaseMetaTileEntity(), (EntityLivingBase) aEntity)) { - GT_Utility.applyFrostDamage((EntityLivingBase) aEntity, (270 - tTemperature) / 25.0F); - break; - } - } - } - } - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - super.onPostTick(aBaseMetaTileEntity, aTick); - if (aBaseMetaTileEntity.isServerSide() && aTick % 5 == 0) { - mLastReceivedFrom &= 63; - if (mLastReceivedFrom == 63) { - mLastReceivedFrom = 0; - } - - if (!GT_Mod.gregtechproxy.gt6Pipe || mCheckConnections) checkConnections(); - - final boolean shouldDistribute = (oLastReceivedFrom == mLastReceivedFrom); - for (int i = 0, j = aBaseMetaTileEntity.getRandomNumber(mPipeAmount); i < mPipeAmount; i++) { - final int index = (i + j) % mPipeAmount; - if (mFluids[index] != null && mFluids[index].amount <= 0) mFluids[index] = null; - if (mFluids[index] == null) continue; - - if (checkEnvironment(index, aBaseMetaTileEntity)) return; - - if (shouldDistribute) { - distributeFluid(index, aBaseMetaTileEntity); - mLastReceivedFrom = 0; - } - } - - oLastReceivedFrom = mLastReceivedFrom; - } - } - - private boolean checkEnvironment(int index, IGregTechTileEntity aBaseMetaTileEntity) { - // Check for hot liquids that melt the pipe or gasses that escape and burn/freeze people - final FluidStack tFluid = mFluids[index]; - - if (tFluid != null && tFluid.amount > 0) { - final int tTemperature = tFluid.getFluid() - .getTemperature(tFluid); - if (tTemperature > mHeatResistance) { - if (aBaseMetaTileEntity.getRandomNumber(100) == 0) { - // Poof - GT_Log.exp.println( - "Set Pipe to Fire due to to low heat resistance at " + aBaseMetaTileEntity.getXCoord() - + " | " - + aBaseMetaTileEntity.getYCoord() - + " | " - + aBaseMetaTileEntity.getZCoord() - + " DIMID: " - + aBaseMetaTileEntity.getWorld().provider.dimensionId); - aBaseMetaTileEntity.setToFire(); - return true; - } - // Mmhmm, Fire - aBaseMetaTileEntity.setOnFire(); - GT_Log.exp.println( - "Set Blocks around Pipe to Fire due to to low heat resistance at " + aBaseMetaTileEntity.getXCoord() - + " | " - + aBaseMetaTileEntity.getYCoord() - + " | " - + aBaseMetaTileEntity.getZCoord() - + " DIMID: " - + aBaseMetaTileEntity.getWorld().provider.dimensionId); - } - if (!mGasProof && tFluid.getFluid() - .isGaseous(tFluid)) { - tFluid.amount -= 5; - sendSound((byte) 9); - if (tTemperature > 320) { - try { - for (EntityLivingBase tLiving : getBaseMetaTileEntity().getWorld() - .getEntitiesWithinAABB( - EntityLivingBase.class, - AxisAlignedBB.getBoundingBox( - getBaseMetaTileEntity().getXCoord() - 2, - getBaseMetaTileEntity().getYCoord() - 2, - getBaseMetaTileEntity().getZCoord() - 2, - getBaseMetaTileEntity().getXCoord() + 3, - getBaseMetaTileEntity().getYCoord() + 3, - getBaseMetaTileEntity().getZCoord() + 3))) { - GT_Utility.applyHeatDamage(tLiving, (tTemperature - 300) / 25.0F); - } - } catch (Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - } else if (tTemperature < 260) { - try { - for (EntityLivingBase tLiving : getBaseMetaTileEntity().getWorld() - .getEntitiesWithinAABB( - EntityLivingBase.class, - AxisAlignedBB.getBoundingBox( - getBaseMetaTileEntity().getXCoord() - 2, - getBaseMetaTileEntity().getYCoord() - 2, - getBaseMetaTileEntity().getZCoord() - 2, - getBaseMetaTileEntity().getXCoord() + 3, - getBaseMetaTileEntity().getYCoord() + 3, - getBaseMetaTileEntity().getZCoord() + 3))) { - GT_Utility.applyFrostDamage(tLiving, (270 - tTemperature) / 12.5F); - } - } catch (Throwable e) { - if (D1) e.printStackTrace(GT_Log.err); - } - } - } - if (tFluid.amount <= 0) mFluids[index] = null; - } - return false; - } - - private void distributeFluid(int index, IGregTechTileEntity aBaseMetaTileEntity) { - final FluidStack tFluid = mFluids[index]; - if (tFluid == null) return; - - // Tank, From, Amount to receive - final List> tTanks = new ArrayList<>(); - final int amount = tFluid.amount; - final byte tOffset = (byte) getBaseMetaTileEntity().getRandomNumber(6); - for (final byte i : ALL_VALID_SIDES) { - // Get a list of tanks accepting fluids, and what side they're on - final ForgeDirection side = ForgeDirection.getOrientation((i + tOffset) % 6); - final ForgeDirection oppositeSide = side.getOpposite(); - final IFluidHandler tTank = aBaseMetaTileEntity.getITankContainerAtSide(side); - final IGregTechTileEntity gTank = tTank instanceof IGregTechTileEntity ? (IGregTechTileEntity) tTank : null; - - if (isConnectedAtSide(side) && tTank != null - && (mLastReceivedFrom & side.flag) == 0 - && getBaseMetaTileEntity().getCoverInfoAtSide(side) - .letsFluidOut(tFluid.getFluid()) - && (gTank == null || gTank.getCoverInfoAtSide(oppositeSide) - .letsFluidIn(tFluid.getFluid()))) { - if (tTank.fill(oppositeSide, tFluid, false) > 0) { - tTanks.add(new MutableTriple<>(tTank, oppositeSide, 0)); - } - tFluid.amount = amount; // Because some mods do actually modify input fluid stack - } - } - - // How much of this fluid is available for distribution? - final double tAmount = Math.max(1, Math.min(mCapacity * 10, tFluid.amount)); - - final FluidStack maxFluid = tFluid.copy(); - maxFluid.amount = Integer.MAX_VALUE; - - double availableCapacity = 0; - // Calculate available capacity for distribution from all tanks - for (final MutableTriple tEntry : tTanks) { - tEntry.right = tEntry.left.fill(tEntry.middle, maxFluid, false); - availableCapacity += tEntry.right; - } - - // Now distribute - for (final MutableTriple tEntry : tTanks) { - // Distribue fluids based on percentage available space at destination - if (availableCapacity > tAmount) - tEntry.right = (int) Math.floor(tEntry.right * tAmount / availableCapacity); - - // If the percent is not enough to give at least 1L, try to give 1L - if (tEntry.right == 0) tEntr