package com.jaquadro.minecraft.gardencore.block; import com.jaquadro.minecraft.gardencore.GardenCore; import com.jaquadro.minecraft.gardencore.api.plant.PlantSize; import com.jaquadro.minecraft.gardencore.block.support.BasicConnectionProfile; import com.jaquadro.minecraft.gardencore.block.support.BasicSlotProfile; import com.jaquadro.minecraft.gardencore.block.support.SlotShare0Profile; import com.jaquadro.minecraft.gardencore.block.tile.TileEntityGarden; import com.jaquadro.minecraft.gardencore.block.tile.TileEntityGardenFarmland; import com.jaquadro.minecraft.gardencore.core.ModBlocks; import com.jaquadro.minecraft.gardencore.core.ModCreativeTabs; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockCrops; import net.minecraft.block.IGrowable; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.EnumPlantType; import net.minecraftforge.common.IPlantable; import net.minecraftforge.common.util.ForgeDirection; import java.util.Random; public class BlockGardenFarmland extends BlockGarden { @SideOnly(Side.CLIENT) IIcon iconTilledSoil; private static ItemStack substrate = new ItemStack(Blocks.farmland, 1); public BlockGardenFarmland (String blockName) { super(blockName, Material.ground); setCreativeTab(ModCreativeTabs.tabGardenCore); setHardness(0.5f); setStepSound(Block.soundTypeGrass); setBlockBounds(0, 0, 0, 1, .9375f, 1); if (GardenCore.config.enableTilledSoilGrowthBonus) setTickRandomly(true); connectionProfile = new BasicConnectionProfile(); slotShareProfile = new SlotShare0Profile(); slotProfile = new BasicSlotProfile(new BasicSlotProfile.Slot[0]); } @Override public AxisAlignedBB getCollisionBoundingBoxFromPool (World world, int x, int y, int z) { return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); } @Override public boolean isOpaqueCube () { return false; } @Override public boolean renderAsNormalBlock () { return false; } @Override public boolean isFertile (World world, int x, int y, int z) { return true; } @Override public boolean canSustainPlant (IBlockAccess world, int x, int y, int z, ForgeDirection direction, IPlantable plantable) { EnumPlantType plantType = plantable.getPlantType(world, x, y, z); if (plantType == EnumPlantType.Crop) return true; return false; } @Override public void updateTick (World world, int x, int y, int z, Random random) { Block block = world.getBlock(x, y + 1, z); if (block instanceof IPlantable || block instanceof IGrowable) block.updateTick(world, x, y + 1, z, random); } @Override public Item getItemDropped (int meta, Random rand, int fortune) { return Item.getItemFromBlock(ModBlocks.gardenSoil); } @Override public TileEntityGarden createNewTileEntity (World world, int meta) { return new TileEntityGardenFarmland(); } @Override public ItemStack getGardenSubstrate (IBlockAccess blockAccess, int x, int y, int z, int slot) { return substrate; } @Override public IIcon getIcon (int side, int meta) { if (side == 1) return iconTilledSoil; return blockIcon; } @SideOnly(Side.CLIENT) @Override public void registerBlockIcons (IIconRegister iconRegister) { blockIcon = iconRegister.registerIcon(GardenCore.MOD_ID + ":garden_dirt"); iconTilledSoil = iconRegister.registerIcon(GardenCore.MOD_ID + ":garden_farmland"); } }