electrodynamics/APIs/icbm/api/IMissile.java
2013-07-22 01:20:20 -04:00

55 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);
}