BloodMagic/BM_src/forestry/api/farming/IFarmHousing.java

69 lines
1.6 KiB
Java
Raw Normal View History

package forestry.api.farming;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
public interface IFarmHousing {
int[] getCoords();
int[] getArea();
int[] getOffset();
World getWorld();
/**
* Will run the work cycle on a master TE. Will do nothing on any other farm component.
*
* @return true if any work was done, false otherwise.
*/
boolean doWork();
boolean hasLiquid(FluidStack liquid);
void removeLiquid(FluidStack liquid);
boolean hasResources(ItemStack[] resources);
void removeResources(ItemStack[] resources);
/**
* Callback for {@link IFarmLogic}s to plant a sapling, seed, germling, stem. Will remove the appropriate germling from the farm's inventory. It's up to the
* logic to only call this on a valid location.
*
* @param farmable
* @param world
* @param x
* @param y
* @param z
* @return true if planting was successful, false otherwise.
*/
boolean plantGermling(IFarmable farmable, World world, int x, int y, int z);
/* INTERACTION WITH HATCHES */
boolean acceptsAsGermling(ItemStack itemstack);
boolean acceptsAsResource(ItemStack itemstack);
boolean acceptsAsFertilizer(ItemStack itemstack);
/* LOGIC */
/**
* Set a farm logic for the given direction. UP/DOWN/UNKNOWN are invalid!
*
* @param direction
* @param logic
*/
void setFarmLogic(ForgeDirection direction, IFarmLogic logic);
/**
* Reset the farm logic for the given direction to default. UP/DOWN/UNKNOWN are invalid!
*
* @param direction
*/
void resetFarmLogic(ForgeDirection direction);
}