| package ic2.api.crops; |
| |
| import net.minecraft.block.Block; |
| import net.minecraft.item.ItemStack; |
| import net.minecraft.nbt.NBTTagCompound; |
| import net.minecraft.util.ChunkCoordinates; |
| import net.minecraft.world.World; |
| |
| /** |
| * Interface implemented by the crop tile entity. |
| */ |
| public interface ICropTile { |
| /** |
| * Get the crop's plant ID. |
| * |
| * @return Plant ID, or -1 if there is no plant currently on the crop |
| */ |
| public short getID(); |
| |
| /** |
| * Set the crop's plant ID. |
| * |
| * @param id Plant ID, or -1 for no plant |
| */ |
| public void setID(short id); |
| |
| /** |
| * Get the crop's plant size. |
| * |
| * @return Plant size, starting with 1 and maximum varies depending on plant |
| */ |
| public byte getSize(); |
| |
| /** |
| * Set the crop's plant size. |
| * |
| * @param size Plant size |
| */ |
| public void setSize(byte size); |
| |
| /** |
| * Get the crop's plant growth stat. |
| * Higher values indicate faster growth. |
| * |
| * @return Plant growth stat |
| */ |
| public byte getGrowth(); |
| |
| /** |
| * Set the crop's plant growth stat. |
| * |
| * @param growth Plant growth stat |
| */ |
| public void setGrowth(byte growth); |
| |
| /** |
| * Get the crop's plant gain stat. |
| * Higher values indicate more drops. |
| * |
| * @return Plant gain stat |
| */ |
| public byte getGain(); |
| |
| /** |
| * Set the crop's plant gain stat. |
| * |
| * @param gain Plant gain stat |
| */ |
| public void setGain(byte gain); |
| |
| /** |
| * Get the crop's plant resistance stat. |
| * Higher values indicate more resistance against trampling. |
| * |
| * @return Plant resistance stat |
| */ |
| public byte getResistance(); |
| |
| /** |
| * Set the crop's plant resistance stat. |
| * |
| * @param resistance Plant resistance stat |
| */ |
| public void setResistance(byte resistance); |
| |
| /** |
| * Get the crop's plant scan level. |
| * Increases every time the seed is analyzed. |
| * |
| * @return Plant scan level |
| */ |
| public byte getScanLevel(); |
| |
| /** |
| * Set the crop's plant scan level. |
| * |
| * @param scanLevel Plant scan level |
| */ |
| public void setScanLevel(byte scanLevel); |
| |
| /** |
| * Get the crop's plant custom data, stored alongside the crop. |
| * Can be modified in place. |
| * |
| * @return Plant custom data |
| */ |
| public NBTTagCompound getCustomData(); |
| |
| /** |
| * Get the crop's nutrient storage. |
| * Ranges from 0 to 100. |
| * |
| * @return Crop nutrient storage |
| */ |
| public int getNutrientStorage(); |
| |
| /** |
| * Set the crop's nutrient storage. |
| * |
| * @param nutrientStorage Crop nutrient storage |
| */ |
| public void setNutrientStorage(int nutrientStorage); |
| |
| /** |
| * Get the crop's hydration storage. |
| * 0 indicates nothing, 1-10 indicate water hydration and 11-100 for hydration cells. |
| * |
| * @return Crop hydration storage |
| */ |
| public int getHydrationStorage(); |
| |
| /** |
| * Set the crop's hydration storage. |
| * |
| * @param hydrationStorage Crop hydration storage |
| */ |
| public void setHydrationStorage(int hydrationStorage); |
| |
| /** |
| * Get the crop's Weed-Ex storage. |
| * |
| * @return Crop Weed-Ex storage |
| */ |
| public int getWeedExStorage(); |
| |
| /** |
| * Set the crop's Weed-Ex storage. |
| * |
| * @param weedExStorage Crop Weed-Ex storage |
| */ |
| public void setWeedExStorage(int weedExStorage); |
| |
| /** |
| * Get the crop's humidity. |
| * Ranges from 0 (dry) to 10 (humid). |
| * Updates every couple of seconds or when an update is requested. |
| * |
| * @see #updateState() |
| * |
| * @return Crop humidity level |
| */ |
| public byte getHumidity(); |
| |
| /** |
| * Get the crop's nutrient level. |
| * Ranges from 0 (empty) to 10 (full). |
| * Updates every couple of seconds or when an update is requested. |
| * |
| * @see #updateState() |
| * |
| * @return Crop nutrient level |
| */ |
| public byte getNutrients(); |
| |
| /** |
| * Get the crop's air quality. |
| * Ranges from 0 (cluttered) to 10 (fresh). |
| * Updates every couple of seconds or when an update is requested. |
| * |
| * @see #updateState() |
| * |
| * @return Crop air quality |
| */ |
| public byte getAirQuality(); |
| |
| /** |
| * Get the crop's world. |
| * |
| * @return Crop world |
| */ |
| public World getWorld(); |
| |
| /** |
| * Get the crop's location. |
| * |
| * @return Crop location |
| */ |
| public ChunkCoordinates getLocation(); |
| |
| /** |
| * Get the crop's light level. |
| * |
| * @return Crop light level |
| */ |
| public int getLightLevel(); |
| |
| /** |
| * Pick the crop, removing and giving seeds for the plant. |
| * |
| * @param manual whether it was done by hand (not automated) |
| * @return true if successfully picked |
| */ |
| public boolean pick(boolean manual); |
| |
| /** |
| * Harvest the crop, turning it into gain and resetting its size. |
| * |
| * @param manual whether it one by hand (not automated) |
| * @return true if successfully harvested |
| */ |
| public boolean harvest(boolean manual); |
| |
| /** |
| * Fully clears the crop without dropping anything. |
| */ |
| public void reset(); |
| |
| /** |
| * Request a texture and lighting update. |
| */ |
| public void updateState(); |
| |
| /** |
| * Check if a block is under the farmland containing the crop. |
| * Searches up to 2 blocks below the farmland or an air space, whichever appears first. |
| * |
| * @param block block to search |
| * @return Whether the block was found |
| */ |
| public boolean isBlockBelow(Block block); |
| |
| /** |
| * Generate plant seeds with the given parameters. |
| * |
| * @param plant plant ID |
| * @param growth plant growth stat |
| * @param gain plant gain stat |
| * @param resis plant resistance stat |
| * @param scan plant scan level |
| * @return Plant seed item |
| */ |
| public ItemStack generateSeeds(short plant, byte growth, byte gain, byte resis, byte scan); |
| } |