From 468b6dc32751989ed4633aa78ecf82849b1d78b7 Mon Sep 17 00:00:00 2001 From: opfromthestart Date: Fri, 16 Apr 2021 19:25:26 -0400 Subject: [PATCH] Create Button.java Created Button class Trying to give good functionality --- .../client/graphics/gui/Button.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/main/java/ru/windcorp/progressia/client/graphics/gui/Button.java diff --git a/src/main/java/ru/windcorp/progressia/client/graphics/gui/Button.java b/src/main/java/ru/windcorp/progressia/client/graphics/gui/Button.java new file mode 100644 index 0000000..a09022a --- /dev/null +++ b/src/main/java/ru/windcorp/progressia/client/graphics/gui/Button.java @@ -0,0 +1,33 @@ +package ru.windcorp.progressia.client.graphics.gui; + +import java.util.function.Supplier; + +import glm.mat._4.Mat4; +import glm.vec._2.i.Vec2i; +import ru.windcorp.progressia.client.graphics.flat.RenderTarget; +import ru.windcorp.progressia.client.graphics.font.Font; +import ru.windcorp.progressia.client.graphics.input.bus.InputListener; +import ru.windcorp.progressia.client.graphics.input.InputEvent; +import ru.windcorp.progressia.client.graphics.input.KeyEvent; + +public class Button extends Component { + + private Font font; + private String currentText; + private Vec2i currentSize; + private String text; + + public Button(String name, Font font, String text, InputListener onClick, Class onClickClass) { + super(name); + this.font = font; + this.text = text; + super.addListener(onClickClass, onClick); + } + + @Override + protected void assembleSelf(RenderTarget target) { + target.pushTransform(new Mat4().identity().translate(getX(), getY(), -1000).scale(2)); + target.addCustomRenderer(font.assembleDynamic(getContentSupplier(), Float.POSITIVE_INFINITY)); + target.popTransform(); + } +}