package zmaster587.advancedRocketry.api; /** * Implemented by a class if it can be linked to a rocket by a linking tool */ public interface IInfrastructure { /** * Called when the rocket unlinks the object */ public void unlinkRocket(); /** * @return true if the object is to be automatically unlinked by the rocket when launched */ public boolean disconnectOnLiftOff(); /** * Called when the rocket attempts to link to the block * @param rocket Rocket Requesting the link * @return true if the infrastructure should be allowed to link */ public boolean linkRocket(EntityRocketBase rocket); /** * Called when a mission attempts to link to the block * @param misson * @return */ public boolean linkMission(IMission misson); /** * Called when mission is to be unlinked from the tile * @param misson * @return */ public void unlinkMission(); /** * @return maximum link distance in block for the tile */ public int getMaxLinkDistance(); /** * @return true if a connection can be rendered to the infrastructure */ public boolean canRenderConnection(); }