From bf8f896c81d91ecbb00d07f3f2683ba11a6ef299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Fri, 19 Mar 2021 14:10:37 +0100 Subject: [PATCH] Create ComponentWrapper --- .../game/gui/component/ComponentWrapper.java | 37 +++++++++++++++++++ .../api/game/gui/window/WindowManager.java | 10 ++--- 2 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 api/src/main/java/com/bartlomiejpluta/base/api/game/gui/component/ComponentWrapper.java diff --git a/api/src/main/java/com/bartlomiejpluta/base/api/game/gui/component/ComponentWrapper.java b/api/src/main/java/com/bartlomiejpluta/base/api/game/gui/component/ComponentWrapper.java new file mode 100644 index 00000000..59d64413 --- /dev/null +++ b/api/src/main/java/com/bartlomiejpluta/base/api/game/gui/component/ComponentWrapper.java @@ -0,0 +1,37 @@ +package com.bartlomiejpluta.base.api.game.gui.component; + +import com.bartlomiejpluta.base.api.game.context.Context; +import com.bartlomiejpluta.base.api.game.gui.base.GUI; +import com.bartlomiejpluta.base.api.game.screen.Screen; + +import static java.util.Objects.requireNonNull; + +public abstract class ComponentWrapper extends BaseComponent { + protected Component component; + + protected ComponentWrapper(Context context, GUI gui) { + super(context, gui); + } + + @Override + public void add(Component component) { + this.component = requireNonNull(component); + component.setParent(this); + } + + @Override + protected float getContentWidth() { + return component.getWidth(); + } + + @Override + protected float getContentHeight() { + return component.getHeight(); + } + + @Override + public void draw(Screen screen, GUI gui) { + component.setPosition(x, y); + component.draw(screen, gui); + } +} diff --git a/api/src/main/java/com/bartlomiejpluta/base/api/game/gui/window/WindowManager.java b/api/src/main/java/com/bartlomiejpluta/base/api/game/gui/window/WindowManager.java index 5cf0795f..40c63c3c 100644 --- a/api/src/main/java/com/bartlomiejpluta/base/api/game/gui/window/WindowManager.java +++ b/api/src/main/java/com/bartlomiejpluta/base/api/game/gui/window/WindowManager.java @@ -27,27 +27,27 @@ public final class WindowManager extends BaseWidget { } @Override - protected float getContentWidth() { + protected final float getContentWidth() { return 0; } @Override - protected float getContentHeight() { + protected final float getContentHeight() { return 0; } @Override - public void setSizeMode(SizeMode widthMode, SizeMode heightMode) { + public final void setSizeMode(SizeMode widthMode, SizeMode heightMode) { throw new UnsupportedOperationException("Window Manager is hardcoded to be of MATCH_PARENT mode"); } @Override - public void setWidthMode(SizeMode mode) { + public final void setWidthMode(SizeMode mode) { throw new UnsupportedOperationException("Window Manager is hardcoded to be of MATCH_PARENT mode"); } @Override - public void setHeightMode(SizeMode mode) { + public final void setHeightMode(SizeMode mode) { throw new UnsupportedOperationException("Window Manager is hardcoded to be of MATCH_PARENT mode"); }