001         package com.croftsoft.apps.mars.ai;
002    
003         import java.awt.Shape;
004    
005         import com.croftsoft.core.ai.astar.SpaceTester;
006         import com.croftsoft.core.math.geom.PointXY;
007    
008         import com.croftsoft.apps.mars.model.TankAccessor;
009    
010         /*********************************************************************
011         * The tank console.
012         *
013         * @version
014         *   2003-04-29
015         * @since
016         *   2003-03-29
017         * @author
018         *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
019         *********************************************************************/
020    
021         public interface  TankConsole
022           extends TankAccessor, SpaceTester
023         //////////////////////////////////////////////////////////////////////
024         //////////////////////////////////////////////////////////////////////
025         {
026    
027         public int     getAmmo              ( );
028    
029         public double  getBodyHeading       ( );
030    
031         public double  getBodyRotationSpeed ( );
032    
033         public Shape   getShape             ( );
034    
035         public double  getTankSpeed         ( );
036    
037         public double  getTurretHeading     ( );
038    
039         //////////////////////////////////////////////////////////////////////
040         //////////////////////////////////////////////////////////////////////
041    
042         public PointXY  getClosestAmmoDumpCenter  ( );
043    
044         public PointXY  getClosestEnemyTankCenter ( );
045    
046         //
047    
048         public void  fire ( );
049    
050         public void  go ( PointXY  destination );
051    
052         public void  rotateTurret ( PointXY  targetPointXY );
053    
054         //////////////////////////////////////////////////////////////////////
055         //////////////////////////////////////////////////////////////////////
056         }