diff --git a/core/src/ru/deadsoftware/cavedroid/menu/submenus/Menu.java b/core/src/ru/deadsoftware/cavedroid/menu/submenus/Menu.java
index f9d648a37c6996fbc295d8026baf268ebd020f19..dcb06d3d937877a2cf3aa8ea4dd8daf05ad119f9 100644 (file)
import ru.deadsoftware.cavedroid.CaveGame;
import ru.deadsoftware.cavedroid.GameScreen;
import ru.deadsoftware.cavedroid.menu.objects.Button;
-import ru.deadsoftware.cavedroid.menu.objects.ButtonDrawer;
import ru.deadsoftware.cavedroid.menu.objects.ButtonEventListener;
+import ru.deadsoftware.cavedroid.menu.objects.ButtonRenderer;
import ru.deadsoftware.cavedroid.misc.Assets;
import java.util.HashMap;
public abstract class Menu {
+ private ButtonRenderer buttonRenderer;
+
private float width;
private float height;
private ArrayMap<String, Button> buttons;
/**
- * @param width Viewport width
- * @param height Viewport height
+ * @param width Viewport width
+ * @param height Viewport height
+ * @param buttonRenderer {@link ButtonRenderer} that will draw the buttons of this menu
*/
- Menu(float width, float height) {
+ Menu(float width, float height, ButtonRenderer buttonRenderer) {
this.width = width;
this.height = height;
+ this.buttonRenderer = buttonRenderer;
initButtons();
}
* @param jsonFile A {@link FileHandle} to json file
*/
void loadButtonsFromJson(FileHandle jsonFile) {
- if (buttons == null) buttons = new ArrayMap<>();
+ if (buttons == null) {
+ buttons = new ArrayMap<>();
+ }
HashMap<String, ButtonEventListener> eventListeners = getButtonEventListeners();
JsonValue json = Assets.jsonReader.parse(jsonFile);
int y = (int) height / 4;
buttons.put(key.name(),
new Button(Assets.getStringFromJson(key, "label", ""),
(int) width / 2 - Button.WIDTH / 2,
- Assets.getIntFromJson(key, "y", y), Assets.getIntFromJson(key, "type", Button.NORMAL),
+ Assets.getIntFromJson(key, "y", y),
+ Assets.getIntFromJson(key, "type", Button.NORMAL),
eventListeners.containsKey(key.name()) ? eventListeners.get(key.name()) : () -> {
}));
}
*
* @param spriter {@link SpriteBatch} that will draw it. Should be already started.
*/
- public void draw(SpriteBatch spriter, ButtonDrawer buttonDrawer, float width, float height) {
+ public void draw(SpriteBatch spriter) {
TextureRegion background = Assets.textureRegions.get("background");
TextureRegion gamelogo = Assets.textureRegions.get("gamelogo");
button.setType(1);
}
}
- button.draw(buttonDrawer);
+ button.draw(buttonRenderer);
}
}