55 lines
1.3 KiB
Java
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);
|
|
}
|