package view.entity; import controller.GameController; import controller.entity.EntityController; import view.GamePanel; import view.popUpMenu.PopupMenu; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.IOException; public abstract class EntityView { private int width, height; private EntityController controller; public double worldX, worldY; public int speed; public GamePanel gamePanel; public EntityController entityController; public GameController gameController; private int screenX, screenY; private PopupMenu popupMenu; private Runnable onClick; private BufferedImage image; public EntityView(int width, int height, GameController controller, EntityController entityController) { this.screenX = 100; this.screenY = 100; this.entityController = entityController; this.width = width; this.height = height; this.gameController = controller; } public void setImage(String imagePath) { try { image = ImageIO.read(getClass().getResourceAsStream(imagePath)); } catch (IOException e) { e.printStackTrace(); } } public void draw(Graphics2D g2) { g2.drawRect(10,10,10,10); } public void updateCoordinates(int screenX, int screenY) { this.screenX = screenX; this.screenY = screenY; } public PopupMenu getPopupMenu() { return popupMenu; } public void setOnClick(Runnable onClick) { System.out.println("No onclick set!"); } public void setPopupOnClick(PopupMenu popup) { this.popupMenu = popup; } public void runOnClick() { } public void drawPopUp(int screenXClick, int screenYClick, Graphics2D g2) { popupMenu.draw(screenXClick, screenYClick, g2); } public void drawSprite(Graphics2D g2){ g2.drawImage(image, screenX, screenY, gameController.getView().tileSize, gameController.getView().tileSize, null); } }