package com.infinityraider.agricraft.tiles.storage; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import java.util.List; import java.util.Optional; public interface ISeedStorageController { /** * Tries to add a stack to the inventory, returns true on success */ boolean addStackToInventory(ItemStack stack); /** * Returns a list of all the kinds of seeds */ List<ItemStack> getControlledSeeds(); /** * Returns a list of all the slots in the inventory corresponding to that seed */ List<SeedStorageSlot> getSlots(Item seed, int meta); /** * Adds a controllable to this controller */ void addControllable(ISeedStorageControllable controllable); /** * Checks if this controller is active */ boolean isControlling(); /** * Returns the coordinates of all the controllables under this controller */ List<int[]> getControlledCoordinates(); /** * Returns the coordinates of the controller */ int[] getCoordinates(); /** * Gets the id of the controllable in this controller */ int getControllableID(ISeedStorageControllable controllable); /** * Returns the controllable with this active stack */ Optional<ISeedStorageControllable> getControllable(ItemStack stack); }