resonant-induction/APIs/icbm/api/IMissile.java
2013-07-22 18:24:55 -04:00

53 lines
1.3 KiB
Java

package icbm.api;
import icbm.api.explosion.IExplosiveContainer;
import universalelectricity.core.vector.Vector3;
/**
* This is an interface applied by all missile entities. You may cast this into an @Entity. The
* "set" version of the function will make the entity do the action on the next tick.
*
* @author Calclavia
*/
public interface IMissile extends IExplosiveContainer
{
/**
* Blows up this missile. It will detonate the missile with the appropriate explosion.
*/
public void explode();
public void setExplode();
/**
* Blows up this missile like a TNT explosion. Small explosion used for events such as a missile
* crashing or failure to explode will result in this function being called.
*/
public void normalExplode();
public void setNormalExplode();
/**
* Drops the specified missile as an item.
*/
public void dropMissileAsItem();
/**
* The amount of ticks this missile has been flying for. Returns -1 if the missile is not
* flying.
*/
public int getTicksInAir();
/**
* Gets the launcher this missile is launched from.
*/
public ILauncherContainer getLauncher();
/**
* Launches the missile into a specific target.
*
* @param target
*/
public void launch(Vector3 target);
public void launch(Vector3 target, int height);
}