package brickbreaker;

import java.awt.Color;
import java.awt.Graphics;

public class Ball {
    private Vector position;
    private Vector direction;
    public int radius;
    public Color color;
    
    public Ball(int posX, int posY, int dirX, int dirY, int radius, Color color) {
        this.position = new Vector(posX, posY);
        this.direction = new Vector(dirX, dirY);
        this.radius = radius;
        this.color = color;
    }
    
    public void setPosition(int posX, int posY) {
        this.position = new Vector(posX, posY);
    }
    
    public void setDirection(int dirX, int dirY) {
        this.direction = new Vector(dirX, dirY);
    }
    
    public Vector getPosition() {
        return this.position;
    }
    
    public int getRadius() {
        return this.radius;
    }
    
    public Color getColor() {
        return this.color;
    }
    
    public Vector getDirection() {
        return this.direction;
    }
    
    public void move(){
        position.x += direction.x;
        position.y += direction.y;
    }
    
    public void checkForWallCollisions() {
        if (position.x <= 0) { // Left wall collision
        position.x = 0; // Set the ball at the left edge
        direction.x = Math.abs(direction.x); // Reverse the x direction
        }

        if (position.x + radius >= 680) { // Right wall collision
            position.x = 680 - radius; // Set the ball at the right edge
            direction.x = -Math.abs(direction.x); // Reverse the x direction
        }

        if (position.y <= 0) { // Top wall collision
            position.y = 0; // Set the ball at the top edge
            direction.y = Math.abs(direction.y); // Reverse the y direction
        }
    }
    
    public void draw(Graphics graphics) {
        graphics.setColor(this.color); // ball color
        graphics.fillOval(position.x, position.y, radius, radius);
    }
}