public void draw(Field field, Graphics graphics) {
        Graphics2D g2d = (Graphics2D) graphics;
        // craft tail
        this.trail.updateTrail();
        for (int i=0; i<this.trail.getPoints().size(); i++){
            graphics.setColor(this.trail.getFadeColors().get(i));
            graphics.fillRect((int) this.trail.getPoints().get(i).getX(), (int) this.trail.getPoints().get(i).getY(), 1, 1);
        }
        // craft itself
        this.bounds = null;
        this.bounds = new Rectangle((int)this.x-this.craftSize/2, (int)this.y-this.craftSize/2, this.craftSize, this.craftSize);
        AffineTransform at = g2d.getTransform();
        at.rotate(this.getDirection(), this.x, this.y);
        g2d.setTransform(at);
        g2d.drawImage(this.getImage(), (int)this.x-this.craftSize/2, (int)this.y-this.craftSize/2, field);
        at.rotate(-this.getDirection(), this.x, this.y);
        g2d.setTransform(at);
    }