X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fmenu%2Fsubmenus%2FMenu.java;h=dcb06d3d937877a2cf3aa8ea4dd8daf05ad119f9;hb=59d48c1b28c570755327a8fb0827fa57e7fd3914;hp=f9d648a37c6996fbc295d8026baf268ebd020f19;hpb=0ed259db50b9cab761cd5dca5cb229e69886854b;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/menu/submenus/Menu.java b/core/src/ru/deadsoftware/cavedroid/menu/submenus/Menu.java index f9d648a..dcb06d3 100644 --- a/core/src/ru/deadsoftware/cavedroid/menu/submenus/Menu.java +++ b/core/src/ru/deadsoftware/cavedroid/menu/submenus/Menu.java @@ -9,14 +9,16 @@ import com.badlogic.gdx.utils.JsonValue; 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; @@ -26,12 +28,14 @@ public abstract class Menu { private ArrayMap 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(); } @@ -52,7 +56,9 @@ public abstract class Menu { * @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 eventListeners = getButtonEventListeners(); JsonValue json = Assets.jsonReader.parse(jsonFile); int y = (int) height / 4; @@ -60,7 +66,8 @@ public abstract class Menu { 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()) : () -> { })); } @@ -71,7 +78,7 @@ public abstract class Menu { * * @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"); @@ -92,7 +99,7 @@ public abstract class Menu { button.setType(1); } } - button.draw(buttonDrawer); + button.draw(buttonRenderer); } }