Suggestion: add an API for Miner.
What it should have:
1. Support for customizable drills. Speed, etc.
Interface: IMinerDrill, methods:
/** * Returns speed (in ticks) of this drill */ int getSpeed(); /** * Returns the energy required to break block with this drill */ int getEnergy(); /** * Called each time a miner mines a block with this drill * Returns ItemStacks miner should drop/add into the chest after block is broken. */ ArrayList<ItemStack> onMined(ItemStack drillStack, World world, int x, int y, int z);
2. Support for customizable scanners.
Both interfaces are implemented on Items.