| package ic2.api; | |
| import net.minecraft.src.Block; | |
| import net.minecraft.src.ItemStack; | |
| import net.minecraft.src.TileEntity; | |
| /** | |
| * Provides access to a crop tile entity. Contains all methods and fields you can access from your CropCard. | |
| */ | |
| public abstract class TECrop extends TileEntity | |
| { | |
| /** | |
| * ID of the plant currently on the crop. | |
| * -1 if there is no plant currently on the crop. | |
| */ | |
| public short id = -1; | |
| /** | |
| * Current size of the plant. | |
| * 1 is the starting size and the maximum size varies from plant to plant. | |
| */ | |
| public byte size = 0; | |
| /** | |
| * Growth ability of a plant. | |
| * Higher values give faster growth. | |
| */ | |
| public byte statGrowth = 0; | |
| /** | |
| * Chances and amount of gain and seeds from harvested crops. | |
| * Higher values give more drops. | |
| */ | |
| public byte statGain = 0; | |
| /** | |
| * Ability for the plant to resist trampling. | |
| * Higher values give more resistance against trampling. | |
| */ | |
| public byte statResistance = 0; | |
| /** | |
| * Scan level, increases each time a seed goes through analysis. | |
| */ | |
| public byte scanLevel = 0; | |
| /** | |
| * Custom data stored along a TECrop. | |
| */ | |
| public short[] custumData = new short[16]; | |
| /** | |
| * Crop nutrients. | |
| * Ranges from 0 (empty) to 100 (full). | |
| */ | |
| public int nutrientStorage = 0; | |
| /** | |
| * Crop hydration. | |
| * Values are: | |
| * - 0 for nothing | |
| * - 1-10 for water hydration | |
| * - 11-100 for distilled water (hydration cell) hydration | |
| */ | |
| public int waterStorage = 0; | |
| /** | |
| * Remaining duration of WeedEX | |
| * PRevents weed from growing and protects against (unimplemented) insects or similar stuff | |
| */ | |
| public int exStorage = 0; | |
| /** | |
| * Crop humidity. | |
| * Ranges from 0 (dry) to 10 (humid). | |
| * Updates every couple of seconds or when an update is requested. | |
| * | |
| * @see #updateState() | |
| */ | |
| public abstract 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() | |
| */ | |
| public abstract 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 abstract byte getAirQuality(); | |
| /** | |
| * Get the crop's light level. | |
| * | |
| * @return Crop light level | |
| */ | |
| public int getLightLevel() | |
| { | |
| return worldObj.getBlockLightValue(xCoord, yCoord, zCoord); | |
| } | |
| /** | |
| * 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 abstract 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 abstract boolean harvest(boolean manual); | |
| /** | |
| * Fully clears the crop without dropping anything. | |
| */ | |
| public abstract void reset(); | |
| /** | |
| * Request a texture and lighting update. | |
| */ | |
| public abstract 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 abstract 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 abstract ItemStack generateSeeds(short plant, byte growth, byte gain, byte resis, byte scan); | |
| /** | |
| * For internal usage only. | |
| */ | |
| public abstract void addLocal(String s1, String s2); | |
| } |