content: package rabbitescape.render;
  
  import rabbitescape.engine.util.Position;
  
  /**
   * A Bitmap name and a location at which to draw it.
   */
  public class Sprite
  {
      public final String bitmapName;
      public final String soundEffect;
      public final int tileX;
      public final int tileY;
  
      private final int offset32X; // X offset relative to a 32x32 image
      private final int offset32Y; // X offset relative to a 32x32 image
  
      public Sprite(
          String bitmapName,
          String soundEffect,
          Position tilePos,
          Position offset
      )
      {
          this(
              bitmapName,
              soundEffect,
              tilePos.x,
              tilePos.y,
              offset.x,
              offset.y
          );
      }
  
      /**
       * @param bitmapName
       * @param tileX
       * @param tileY
       * @param offset32X x offset (relative to 32x32 image)
       * @param offset32Y y offset (relative to 32x32 image)
       */
      public Sprite(
          String bitmapName,
          String soundEffect,
          int tileX,
          int tileY,
          int offset32X,
          int offset32Y
      )
      {
          this.bitmapName = bitmapName;
          this.soundEffect = soundEffect;
          this.tileX = tileX;
          this.tileY = tileY;
  
          this.offset32X = offset32X;
          this.offset32Y = offset32Y;
      }
  
      public int offsetX( int tileSize )
      {
          return (int)( offset32X * ( tileSize / 32.0 ) );
      }
  
      public int offsetY( int tileSize )
      {
          return (int)( offset32Y * ( tileSize / 32.0 ) );
      }
  }
  