Enable providing Context and GUI via constructor in Component Inflater
This commit is contained in:
@@ -1,11 +1,20 @@
|
||||
package com.bartlomiejpluta.base.api.game.gui.component;
|
||||
|
||||
import com.bartlomiejpluta.base.api.game.context.Context;
|
||||
import com.bartlomiejpluta.base.api.game.gui.base.BaseWidget;
|
||||
import com.bartlomiejpluta.base.api.game.gui.base.GUI;
|
||||
|
||||
import static java.util.Collections.emptyList;
|
||||
|
||||
public abstract class BaseComponent extends BaseWidget implements Component {
|
||||
protected boolean focused;
|
||||
protected final Context context;
|
||||
protected final GUI gui;
|
||||
|
||||
protected BaseComponent(Context context, GUI gui) {
|
||||
this.context = context;
|
||||
this.gui = gui;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Component> getChildren() {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
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.input.KeyEvent;
|
||||
|
||||
import java.util.LinkedList;
|
||||
@@ -11,6 +13,10 @@ public abstract class BaseContainer extends BaseComponent implements Container {
|
||||
protected final List<Component> children = new LinkedList<>();
|
||||
private final List<Component> readOnlyChildren = unmodifiableList(children);
|
||||
|
||||
public BaseContainer(Context context, GUI gui) {
|
||||
super(context, gui);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Component> getChildren() {
|
||||
return readOnlyChildren;
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
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;
|
||||
|
||||
public class HLayout extends BaseContainer {
|
||||
|
||||
public HLayout(Context context, GUI gui) {
|
||||
super(context, gui);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getContentWidth() {
|
||||
return sumChildrenWidth();
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
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.input.Key;
|
||||
import com.bartlomiejpluta.base.api.game.input.KeyAction;
|
||||
import com.bartlomiejpluta.base.api.game.input.KeyEvent;
|
||||
@@ -10,6 +12,10 @@ public class HOptionChoice extends HLayout {
|
||||
private static final EnumSet<KeyAction> ACTIONS = EnumSet.of(KeyAction.PRESS, KeyAction.REPEAT);
|
||||
private int selected = 0;
|
||||
|
||||
public HOptionChoice(Context context, GUI gui) {
|
||||
super(context, gui);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void focus() {
|
||||
super.focus();
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
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.gui.base.Image;
|
||||
import com.bartlomiejpluta.base.api.game.gui.base.Paint;
|
||||
import com.bartlomiejpluta.base.api.game.screen.Screen;
|
||||
|
||||
import static java.util.Objects.requireNonNull;
|
||||
|
||||
public class ImageView extends BaseComponent {
|
||||
private final GUI gui;
|
||||
private final Paint paint;
|
||||
|
||||
private Image image;
|
||||
@@ -17,10 +15,9 @@ public class ImageView extends BaseComponent {
|
||||
private float scaleX = 1;
|
||||
private float scaleY = 1;
|
||||
|
||||
public ImageView(GUI gui, String imageUid) {
|
||||
this.gui = requireNonNull(gui);
|
||||
public ImageView(Context context, GUI gui) {
|
||||
super(context, gui);
|
||||
this.paint = gui.createPaint();
|
||||
this.image = gui.getImage(imageUid);
|
||||
}
|
||||
|
||||
public void setImage(String imageUid) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.bartlomiejpluta.base.api.game.gui.component;
|
||||
|
||||
import com.bartlomiejpluta.base.api.game.context.Context;
|
||||
import com.bartlomiejpluta.base.api.game.gui.base.Color;
|
||||
import com.bartlomiejpluta.base.api.game.gui.base.GUI;
|
||||
import com.bartlomiejpluta.base.api.game.screen.Screen;
|
||||
@@ -7,8 +8,6 @@ import com.bartlomiejpluta.base.api.game.screen.Screen;
|
||||
import static java.util.Objects.requireNonNull;
|
||||
|
||||
public class Label extends BaseComponent {
|
||||
// private final GUI gui;
|
||||
|
||||
private String text = "";
|
||||
private String font;
|
||||
private float fontSize;
|
||||
@@ -17,17 +16,11 @@ public class Label extends BaseComponent {
|
||||
|
||||
private final float[] bounds = new float[4];
|
||||
|
||||
public Label() {
|
||||
|
||||
public Label(Context context, GUI gui) {
|
||||
super(context, gui);
|
||||
this.color = gui.createColor();
|
||||
}
|
||||
|
||||
// public Label(GUI gui, String font) {
|
||||
// this.gui = requireNonNull(gui);
|
||||
// this.font = requireNonNull(font);
|
||||
//
|
||||
// this.color = this.gui.createColor();
|
||||
// }
|
||||
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
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;
|
||||
|
||||
public class VLayout extends BaseContainer {
|
||||
|
||||
public VLayout(Context context, GUI gui) {
|
||||
super(context, gui);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getContentWidth() {
|
||||
return maxChildrenWidth();
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
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.input.Key;
|
||||
import com.bartlomiejpluta.base.api.game.input.KeyAction;
|
||||
import com.bartlomiejpluta.base.api.game.input.KeyEvent;
|
||||
@@ -10,6 +12,10 @@ public class VOptionChoice extends VLayout {
|
||||
private static final EnumSet<KeyAction> ACTIONS = EnumSet.of(KeyAction.PRESS, KeyAction.REPEAT);
|
||||
private int selected = 0;
|
||||
|
||||
public VOptionChoice(Context context, GUI gui) {
|
||||
super(context, gui);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void focus() {
|
||||
super.focus();
|
||||
|
||||
Reference in New Issue
Block a user