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