2013-07-22 07:05:40 +02:00
|
|
|
package icbm.api;
|
|
|
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import universalelectricity.core.block.IElectricalStorage;
|
|
|
|
import universalelectricity.core.vector.Vector3;
|
|
|
|
|
|
|
|
/**
|
2013-07-23 00:24:55 +02:00
|
|
|
* Applied to all launcher TileEntitiies that operates the launching of missiles.
|
2013-07-22 07:05:40 +02:00
|
|
|
*
|
|
|
|
* @author Calclavia
|
|
|
|
*/
|
2013-07-23 00:24:55 +02:00
|
|
|
public interface ILauncherController extends IElectricalStorage, IBlockFrequency
|
|
|
|
{
|
2013-07-22 07:05:40 +02:00
|
|
|
/**
|
|
|
|
* What type of launcher is this?
|
|
|
|
*/
|
|
|
|
public LauncherType getLauncherType();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Launches the missile into the specified target.
|
|
|
|
*/
|
|
|
|
public void launch();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Can the launcher launch the missile?
|
|
|
|
*/
|
|
|
|
public boolean canLaunch();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return The status of the launcher.
|
|
|
|
*/
|
|
|
|
public String getStatus();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return The target of the launcher.
|
|
|
|
*/
|
|
|
|
public Vector3 getTarget();
|
|
|
|
|
|
|
|
/**
|
2013-07-23 00:24:55 +02:00
|
|
|
* @param target Sets the target of the launcher
|
2013-07-22 07:05:40 +02:00
|
|
|
*/
|
|
|
|
public void setTarget(Vector3 target);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Places a missile into the launcher.
|
|
|
|
*/
|
|
|
|
public void placeMissile(ItemStack itemStack);
|
|
|
|
|
|
|
|
public IMissile getMissile();
|
|
|
|
}
|