UNPKG

seed-engine

Version:

A Lightweight 2D game engine using WebGL2. The engine is designed on the focus of creating a bridge between creating and publishing games to the Seed Network as modules.

74 lines (60 loc) 2.12 kB
import { ClickController, Point, SceneObject, Renderable2D, UIManager, UIElement, RenderableText } from '../../entry'; export default class UIText extends UIElement { constructor(viewport, x, y, w, h, text, shadow = false) { super(new Point(x, y, 0), new Point(w, h, 0), 0); this.text = text; this.shadow = shadow; this.currentTextScale = 16; this.textObject = new SceneObject(new Point(x, y, 0), new Point(w, h, 0), 0); this.textObject.renderableText = new RenderableText(this.uiStyle.fontTexture); this.textObject.addComponent(this.textObject.renderableText); this.textObject.renderableText.addToViewport(viewport); this.setText(text, shadow, h); this.textObject.renderableText.setDepth(-2000); } setTextAlign(textAlign) { this.textObject.renderableText.setTextAlign(textAlign); return this; } translate(x, y) { this.transform.translate(x, y); this.textObject.transform.translate(x, y); } setPosition(x, y) { this.transform.setPosition(x, y, 0); this.textObject.transform.setPosition(x, y, 0); } setColor(r, g, b, a) { this.textObject.renderableText.setColor(r, g, b, a); return this; } getTextWidth() { return this.textObject.transform.getScale().x; } getText() { return this.text; } setText(text, shadow, scale = this.currentTextScale) { this.text = text; this.shadow = shadow; this.currentTextScale = Math.max(1, scale); this.textObject.renderableText.setText(text, shadow, this.currentTextScale); } onPause() { this.textObject.pause(); this.textObject.renderableText.pause(); } onUnpause() { this.textObject.unpause(); this.textObject.renderableText.unpause(); this.setText(this.text); } setDepth(depth) { this.textObject.renderableText.setDepth(depth); return this; } end() { this.textObject.removeAllComponents(); this.textObject.end(); } }