|
@@ -1,8 +1,155 @@
|
|
|
-class UIObject extends GameObject {
|
|
|
- constructor(name) {
|
|
|
+class UIObject extends GameObject
|
|
|
+{
|
|
|
+ constructor(name)
|
|
|
+ {
|
|
|
super(name);
|
|
|
|
|
|
- this.position = Vector2.ZERO();
|
|
|
- this.size = Vector2(100, 100);
|
|
|
+ this.P5Element = null;
|
|
|
+ this.visible = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ connectCallbacks()
|
|
|
+ {
|
|
|
+ this.P5Element.mousePressed(this._onMousePressed);
|
|
|
+ this.P5Element.doubleClicked(this._onDoubleClicked);
|
|
|
+ this.P5Element.mouseWheel(this._onMouseWheel);
|
|
|
+ this.P5Element.mouseReleased(this._onMouseReleased);
|
|
|
+ this.P5Element.mouseClicked(this._onMouseClicked);
|
|
|
+ this.P5Element.mouseMoved(this._onMouseMoved);
|
|
|
+ this.P5Element.mouseOver(this._onMouseOver);
|
|
|
+ this.P5Element.mouseOut(this._onMouseOut);
|
|
|
+ this.P5Element.touchStarted(this._onTouchStarted);
|
|
|
+ this.P5Element.touchMoved(this._onTouchMoved);
|
|
|
+ this.P5Element.touchEnded(this._onTouchEnded);
|
|
|
+ this.P5Element.dragOver(this._onDragOver);
|
|
|
+ this.P5Element.dragLeave(this._onDragLeave);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Setters
|
|
|
+ setPosition(x, y)
|
|
|
+ {
|
|
|
+ this.P5Element.position(x, y);
|
|
|
+ }
|
|
|
+
|
|
|
+ setSize(w, h)
|
|
|
+ {
|
|
|
+ this.P5Element.size(w, h);
|
|
|
+ }
|
|
|
+
|
|
|
+ setVisibility(vis)
|
|
|
+ {
|
|
|
+ if (vis) this.P5Element.show();
|
|
|
+ else this.P5Element.hide();
|
|
|
+ this.visible = !this.visible;
|
|
|
+ }
|
|
|
+
|
|
|
+ setValue(val)
|
|
|
+ {
|
|
|
+ this.P5Element.value(val)
|
|
|
+ }
|
|
|
+
|
|
|
+ setStyle(style)
|
|
|
+ {
|
|
|
+ for (const [key, value] of Object.entries(style))
|
|
|
+ {
|
|
|
+ this.P5Element.style(`${key}`, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Getters
|
|
|
+ getPosition()
|
|
|
+ {
|
|
|
+ return this.P5Element.position();
|
|
|
+ }
|
|
|
+
|
|
|
+ getVisibility()
|
|
|
+ {
|
|
|
+ return this.visible;
|
|
|
+ }
|
|
|
+
|
|
|
+ getValue()
|
|
|
+ {
|
|
|
+ return this.P5Element.value();
|
|
|
+ }
|
|
|
+
|
|
|
+ // Methods
|
|
|
+ toggleVisibility()
|
|
|
+ {
|
|
|
+ this.setVisibility(!this.visible);
|
|
|
+ }
|
|
|
+
|
|
|
+ addChild(child)
|
|
|
+ {
|
|
|
+ child.parent = this;
|
|
|
+ child.parented = true;
|
|
|
+ this.children.push(child);
|
|
|
+
|
|
|
+ child.P5Element.parent(this.P5Element);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Callbacks
|
|
|
+ _onMousePressed()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onDoubleClicked()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onMouseWheel()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onMouseReleased()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onMouseClicked()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onMouseMoved()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onMouseOver()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onMouseOut()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onTouchStarted()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onTouchMoved()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onTouchEnded()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onDragOver()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _onDragLeave()
|
|
|
+ {
|
|
|
+
|
|
|
}
|
|
|
}
|