package org.codecranachan.asteroidpush.base.ui.workshop; import org.codecranachan.asteroidpush.base.ui.widget.BasicWidget; import org.codecranachan.asteroidpush.base.workshop.WorkshopCoordinator; import org.newdawn.slick.Color; import org.newdawn.slick.Font; import org.newdawn.slick.Graphics; import org.newdawn.slick.Input; import org.newdawn.slick.geom.Rectangle; public class CreateBlueprintButton extends BasicWidget { private Font font; private WorkshopCoordinator coordinator; static private String CREATE_TEXT = "< Click to create new blueprint >"; static private String ERROR_TEXT = "CreateBlueprintButton: No coordinator set"; public CreateBlueprintButton(WorkshopCoordinator coordinator, Font font) { this.font = font; this.coordinator = coordinator; } @Override public void render(Graphics g) { String text; if (coordinator == null) { text = ERROR_TEXT; g.setColor(Color.red); } else { text = CREATE_TEXT; g.setColor(Color.green); } Rectangle frame = getFrame(); Font currentFont = g.getFont(); g.setFont(font); g.drawRoundRect(frame.getX(), frame.getY(), frame.getWidth() - 2, frame.getHeight() - 2, 15); g.drawString(text, frame.getCenterX() - (float) font.getWidth(text) / 2.0f, frame.getCenterY() - (float) font.getHeight(text) / 2.0f); g.setFont(currentFont); } @Override public void mousePressed(int button, int x, int y) { if (coordinator == null) { return; } if (button == Input.MOUSE_LEFT_BUTTON) { coordinator.createNewBlueprint(); } } }