@author Gregorius Techneticies
| 59 | * @author Gregorius Techneticies |
| 60 | */ |
| 61 | @Optional.InterfaceList(value = { |
| 62 | @Optional.Interface(iface = "micdoodle8.mods.galacticraft.api.block.IOxygenReliantBlock", modid = ModIDs.GC) |
| 63 | }) |
| 64 | public abstract class BlockBaseFlower extends BlockFlower implements IBlockBase, IBlockSealable, IOxygenReliantBlock, IGrowable { |
| 65 | public final String mNameInternal; |
| 66 | public IIconContainer[] mIcons; |
| 67 | /** For Creative Subsets, not actually important. */ |
| 68 | private final byte mMaxMeta; |
| 69 | |
| 70 | /** @param aSpeed is usually 0.4F */ |
| 71 | public BlockBaseFlower(Class<? extends ItemBlockBase> aItemClass, String aNameInternal, long aMaxMeta, IIconContainer[] aIcons) { |
| 72 | super(0); |
| 73 | mMaxMeta = (byte)(UT.Code.bind4(aMaxMeta-1)+1); |
| 74 | mIcons = aIcons; |
| 75 | setStepSound(soundTypeGrass); |
| 76 | setBlockName(mNameInternal = aNameInternal); |
| 77 | setCreativeTab(CreativeTabs.tabDecorations); |
| 78 | ST.register(this, mNameInternal, aItemClass); |
| 79 | if (MD.RC.mLoaded) try {EntityTunnelBore.addMineableBlock(this);} catch(Throwable e) {e.printStackTrace(ERR);} |
| 80 | if (COMPAT_FR != null) COMPAT_FR.addToBackpacks("forester", ST.make(this, 1, W)); |
| 81 | } |
| 82 | |
| 83 | @Override public final String getUnlocalizedName() {return mNameInternal;} |
| 84 | @Override public String name(byte aMeta) {return mNameInternal + "." + aMeta;} |
| 85 | @Override public String getLocalizedName() {return StatCollector.translateToLocal(mNameInternal);} |
| 86 | @Override public float getBlockHardness(World aWorld, int aX, int aY, int aZ) {return 0;} |
| 87 | @Override public float getExplosionResistance(Entity aEntity, World aWorld, int aX, int aY, int aZ, double eX, double eY, double eZ) {return 0;} |
| 88 | @Override public float getExplosionResistance(Entity aEntity) {return 0;} |
| 89 | @Override public String getHarvestTool(int aMeta) {return TOOL_sword;} |
| 90 | @Override public int getHarvestLevel(int aMeta) {return 0;} |
| 91 | @Override public boolean canSilkHarvest() {return canSilkHarvest((byte)0);} |
| 92 | @Override public boolean canSilkHarvest(World aWorld, EntityPlayer aPlayer, int aX, int aY, int aZ, int aMeta) {return canSilkHarvest(UT.Code.bind4(aMeta));} |
| 93 | @Override public boolean isToolEffective(String aType, int aMeta) {return T;} |
| 94 | @Override public boolean canBeReplacedByLeaves(IBlockAccess aWorld, int aX, int aY, int aZ) {return T;} |
| 95 | @Override public boolean isNormalCube(IBlockAccess aWorld, int aX, int aY, int aZ) {return F;} |
| 96 | @Override public boolean isSideSolid(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection aDirection) {return F;} |
| 97 | @Override public int damageDropped(int aMeta) {return aMeta;} |
| 98 | @Override public int quantityDropped(Random par1Random) {return 1;} |
| 99 | @Override public int getDamageValue(World aWorld, int aX, int aY, int aZ) {return WD.meta(aWorld, aX, aY, aZ);} |
| 100 | @Override public int getLightOpacity() {return LIGHT_OPACITY_NONE;} |
| 101 | @Override public Item getItemDropped(int par1, Random aRandom, int par3) {return Item.getItemFromBlock(this);} |
| 102 | @Override public Item getItem(World aWorld, int aX, int aY, int aZ) {return Item.getItemFromBlock(this);} |
| 103 | @Override public void registerBlockIcons(IIconRegister aIconRegister) {/**/} |
| 104 | @Override public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess aWorld, int aX, int aY, int aZ) {return F;} |
| 105 | @SuppressWarnings("unchecked") @Override public void getSubBlocks(Item aItem, CreativeTabs aTab, @SuppressWarnings("rawtypes") List aList) {for (int i = 0; i < maxMeta(); i++) aList.add(ST.make(aItem, 1, i));} |
| 106 | @Override public boolean isSealed(World aWorld, int aX, int aY, int aZ, ForgeDirection aDirection) {return F;} |
| 107 | @Override public Block getBlock() {return this;} |
| 108 | @Override public byte maxMeta() {return mMaxMeta;} |
| 109 | @Override public IIcon getIcon(int aSide, int aMeta) {return mIcons[aMeta % mIcons.length].getIcon(0);} |
| 110 | @Override public void onOxygenAdded(World aWorld, int aX, int aY, int aZ) {/**/} |
| 111 | @Override public void onOxygenRemoved(World aWorld, int aX, int aY, int aZ) {if (!aWorld.isRemote && !WD.oxygen(aWorld, aX, aY, aZ)) {aWorld.setBlock(aX, aY, aZ, NB, 0, 3); return;}} |
| 112 | |
| 113 | @Override public void addInformation(ItemStack aStack, byte aMeta, EntityPlayer aPlayer, List<String> aList, boolean aF3_H) {/**/} |
| 114 | @Override public float getExplosionResistance(byte aMeta) {return 0;} |
| 115 | @Override public boolean useGravity(byte aMeta) {return F;} |
| 116 | @Override public boolean doesWalkSpeed(byte aMeta) {return F;} |
| 117 | @Override public boolean doesPistonPush(byte aMeta) {return F;} |
| 118 | @Override public boolean canSilkHarvest(byte aMeta) {return T;} |
nothing calls this directly
no outgoing calls
no test coverage detected