/* * A super messy way to initiate the camera position without gameplay-input (meant to be run exactly once, * at the beginning of the loading of a level). */ public void findPlayer() { boolean lockNS = ResourceManager.MANAGER.playerFocusEntity.cameraLockNS( GameMap.MAP, GraphicsManager.MANAGER); boolean lockEW = ResourceManager.MANAGER.playerFocusEntity.cameraLockEW( GameMap.MAP, GraphicsManager.MANAGER); int mapHeight = GameMap.MAP.mapCanvas.get(ResourceManager.MANAGER.playerFocusEntity.mapLevel).mapHeight * GameMap.MAP.tileDimensions; int mapWidth = GameMap.MAP.mapCanvas.get(ResourceManager.MANAGER.playerFocusEntity.mapLevel).mapWidth * GameMap.MAP.tileDimensions; int screenHeight = GraphicsManager.MANAGER.getHeight(); int screenWidth = GraphicsManager.MANAGER.getWidth(); int top = mapHeight - screenHeight + (GraphicsManager.MANAGER.border * 2); // excess height! int right = mapWidth - screenWidth + (GraphicsManager.MANAGER.border * 2); setPosition(0, 0, 0); if (lockNS) position.y = ResourceManager.MANAGER.playerFocusEntity.position.y; else { if (ResourceManager.MANAGER.playerFocusEntity.position.y > ((mapHeight / 2) - top / 2)) position.y = mapHeight / 2 + top / 2; else position.y = mapHeight / 2 - top / 2; } if (lockEW) position.x = ResourceManager.MANAGER.playerFocusEntity.position.x; else { if (ResourceManager.MANAGER.playerFocusEntity.position.x > ((mapWidth / 2) - right / 2)) position.x = mapWidth / 2 + right / 2; else position.x = mapWidth / 2 - right / 2; } }
public void pollMouse() { int mouseWheelDelta = Mouse.getDWheel(); for (String b : buttons.keySet()) { buttons.get(b).checkHover(Mouse.getX(), GraphicsManager.MANAGER.getHeight() - Mouse.getY()); } for (MessageBox mb : messageBoxes) { mb.checkHover(Mouse.getX(), GraphicsManager.MANAGER.getHeight() - Mouse.getY()); } while (Mouse.next()) { if (Mouse.getEventButtonState()) { switch (Mouse.getEventButton()) { case 0: // Left click for (Button b : buttons.values()) { if (b.hovering) { b.onClick(); } } for (MessageBox mb : messageBoxes) { if (mb.hovering) mb.onClick(); } break; case 1: // Right click break; } } if (mouseWheelDelta != 0) for (MessageBox mb : messageBoxes) { if (mb.hovering) { mb.onScroll(mouseWheelDelta); } } } }