@author Gregorius Techneticies
| 61 | * @author Gregorius Techneticies |
| 62 | */ |
| 63 | public class BlockBaseRail extends BlockRailBase implements IBlockBase, IBlockSealable, IBlockToolable { |
| 64 | public final String mNameInternal; |
| 65 | public final float mSpeed, mExplosionResistance; |
| 66 | public final IIconContainer mIconPrimary, mIconSecondary; |
| 67 | public final int mHarvestLevel; |
| 68 | public final boolean mPowerRail, mDetectorRail; |
| 69 | |
| 70 | /** @param aSpeed is usually 0.4F */ |
| 71 | public BlockBaseRail(Class<? extends ItemBlockBase> aItemClass, String aNameInternal, String aLocalName, boolean aPowerRail, boolean aDetectorRail, float aSpeed, float aExplosionResistance, int aHarvestLevel, IIconContainer aIconPrimary, IIconContainer aIconSecondary) { |
| 72 | super(aPowerRail || aDetectorRail); |
| 73 | setBlockName(mNameInternal = aNameInternal); |
| 74 | setCreativeTab(CreativeTabs.tabTransport); |
| 75 | ST.register(this, mNameInternal, aItemClass); |
| 76 | LH.add(mNameInternal, aLocalName); |
| 77 | mExplosionResistance = aExplosionResistance; |
| 78 | mHarvestLevel = aHarvestLevel; |
| 79 | mSpeed = aSpeed; |
| 80 | mIconSecondary = aIconSecondary; |
| 81 | mIconPrimary = aIconPrimary; |
| 82 | mDetectorRail = aDetectorRail; |
| 83 | mPowerRail = aPowerRail; |
| 84 | if (aPowerRail) REDSTONE_SINKS.add(this); |
| 85 | if (COMPAT_FR != null) COMPAT_FR.addToBackpacks("builder", ST.make(this, 1, W)); |
| 86 | } |
| 87 | |
| 88 | @Override |
| 89 | @SuppressWarnings("unchecked") |
| 90 | public void addInformation(ItemStack aStack, byte aMeta, EntityPlayer aPlayer, @SuppressWarnings("rawtypes") List aList, boolean aF3_H) { |
| 91 | aList.add(LH.Chat.CYAN + LH.get(LH.TOOLTIP_RAILSPEED) + LH.Chat.GREEN + Math.min(MD.RC.mLoaded ? 3 : 10, mSpeed/0.4F) + "x"); |
| 92 | } |
| 93 | |
| 94 | @Override public final String getUnlocalizedName() {return mNameInternal;} |
| 95 | @Override public String name(byte aMeta) {return mNameInternal;} |
| 96 | @Override public String getLocalizedName() {return StatCollector.translateToLocal(mNameInternal);} |
| 97 | @Override public float getBlockHardness(World aWorld, int aX, int aY, int aZ) {return Blocks.rail.getBlockHardness(aWorld, aX, aY, aZ);} |
| 98 | @Override public float getExplosionResistance(Entity aEntity, World aWorld, int aX, int aY, int aZ, double eX, double eY, double eZ) {return mExplosionResistance;} |
| 99 | @Override public float getExplosionResistance(Entity aEntity) {return mExplosionResistance;} |
| 100 | @Override public String getHarvestTool(int aMeta) {return TOOL_crowbar;} |
| 101 | @Override public int getHarvestLevel(int aMeta) {return mHarvestLevel;} |
| 102 | @Override public boolean canSilkHarvest() {return canSilkHarvest((byte)0);} |
| 103 | @Override public boolean canSilkHarvest(World aWorld, EntityPlayer aPlayer, int aX, int aY, int aZ, int aMeta) {return canSilkHarvest(UT.Code.bind4(aMeta));} |
| 104 | @Override public boolean isToolEffective(String aType, int aMeta) {return getHarvestTool(aMeta).equals(aType);} |
| 105 | @Override public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) {return F;} |
| 106 | @Override public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) {return F;} |
| 107 | @Override public boolean renderAsNormalBlock() {return F;} |
| 108 | @Override public boolean isOpaqueCube() {return F;} |
| 109 | @Override public boolean isSideSolid(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection aDirection) {return F;} |
| 110 | @Override public int damageDropped(int aMeta) {return 0;} |
| 111 | @Override public int quantityDropped(Random par1Random) {return 1;} |
| 112 | @Override public int getDamageValue(World aWorld, int aX, int aY, int aZ) {return 0;} |
| 113 | @Override public int getLightOpacity() {return LIGHT_OPACITY_NONE;} |
| 114 | @Override public Item getItemDropped(int par1, Random par2Random, int par3) {return Item.getItemFromBlock(this);} |
| 115 | @Override public Item getItem(World aWorld, int aX, int aY, int aZ) {return Item.getItemFromBlock(this);} |
| 116 | @Override public void registerBlockIcons(IIconRegister aIconRegister) {/**/} |
| 117 | @Override public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess aWorld, int aX, int aY, int aZ) {return canCreatureSpawn(WD.meta(aWorld, aX, aY, aZ));} |
| 118 | @SuppressWarnings("unchecked") @Override public void getSubBlocks(Item aItem, CreativeTabs par2CreativeTabs, @SuppressWarnings("rawtypes") List aList) {aList.add(ST.make(aItem, 1, 0));} |
| 119 | @Override public IIcon getIcon(int aSide, int aMeta) {return ((mPowerRail||mDetectorRail?(aMeta&8)!=0:aMeta>=6)?mIconSecondary:mIconPrimary).getIcon(0);} |
| 120 | @Override public boolean isSealed(World aWorld, int aX, int aY, int aZ, ForgeDirection aDirection) {return F;} |
nothing calls this directly
no outgoing calls
no test coverage detected