diff --git a/core/assets/common/screen/createuser/form/gfx/avatar/film_inside.png b/core/assets/common/screen/createuser/form/gfx/avatar/film_inside.png index 536586a17af034e44c34c079f25a26eeab2e684b..f9b8702977168618df9f05a03f081e1716a8941b 100644 Binary files a/core/assets/common/screen/createuser/form/gfx/avatar/film_inside.png and b/core/assets/common/screen/createuser/form/gfx/avatar/film_inside.png differ diff --git a/core/assets/common/screen/createuser/form/gfx/avatar/film_outerline.png b/core/assets/common/screen/createuser/form/gfx/avatar/film_outerline.png index 2f9645aa6bd8a1092f1148c83bfdec602b11cdac..59c1eeb589275f299c5c44fc03102503206d284c 100644 Binary files a/core/assets/common/screen/createuser/form/gfx/avatar/film_outerline.png and b/core/assets/common/screen/createuser/form/gfx/avatar/film_outerline.png differ diff --git a/core/src/cz/nic/tablexia/TablexiaSettings.java b/core/src/cz/nic/tablexia/TablexiaSettings.java index e18d2198b04e2a371077f0825e9a49537e67a8bd..9313cf7a2580745a527badff9bcebb19ebfb8309 100644 --- a/core/src/cz/nic/tablexia/TablexiaSettings.java +++ b/core/src/cz/nic/tablexia/TablexiaSettings.java @@ -24,7 +24,7 @@ public class TablexiaSettings { private static final int MIN_SCREEN_HEIGHT = (int) (DEFAULT_SCREEN_WIDTH * MAXIMUM_RATIO); private static final boolean DEBUG_SHOW_BOUNDING_BOXES = true; - public static final Class<? extends AbstractTablexiaScreen<?>> INITIAL_SCREEN = GameMenuScreen.class; + public static final Class<? extends AbstractTablexiaScreen<?>> INITIAL_SCREEN = FormScreen.class; public static final int AVATAR_COUNT = 8; private static final String PREFERENCES_KEY = "cz.nic.tablexia."; diff --git a/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java b/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java index e843a262f8fe1dd0a0724ac9c69c6d200caa303f..664db791ae56ea52b4aa57fbba0336ee33f98cbe 100644 --- a/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java +++ b/core/src/cz/nic/tablexia/screen/createuser/FormScreen.java @@ -2,6 +2,8 @@ package cz.nic.tablexia.screen.createuser; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Group; import com.badlogic.gdx.scenes.scene2d.InputEvent; @@ -11,21 +13,27 @@ import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; import com.badlogic.gdx.scenes.scene2d.ui.Stack; +import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; +import com.badlogic.gdx.scenes.scene2d.utils.Drawable; +import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.loader.application.ApplicationFontManager; import cz.nic.tablexia.model.User; import cz.nic.tablexia.screen.AbstractAutoloadTablexiaScreen; import cz.nic.tablexia.screen.createuser.form.FormInputListener; +import cz.nic.tablexia.util.Log; import cz.nic.tablexia.util.ScaleUtil; import cz.nic.tablexia.util.listener.DragActorListener; import cz.nic.tablexia.util.listener.DragSwitchListener; public class FormScreen extends AbstractAutoloadTablexiaScreen<Void> { public static final String BASET_ASSET_PATH = "screen/createuser/form"; + private static final int MUGSHOT_HEIGHT = 250; private Actor stamp, pen, mugshotFrame; + private Image mugshotImage; private Actor buttonPlus, buttonMinus; private Label ageLabel, nameLabel; private int age; @@ -50,7 +58,7 @@ public class FormScreen extends AbstractAutoloadTablexiaScreen<Void> { group.addActor(ScaleUtil.createImageWidthPosition(getTexture("inkpad"), getStage().getWidth() * 0.3f, getStage().getWidth() * -0.1f, getStage().getWidth() * 0.3f)); group.addActor(ScaleUtil.createImageSizePosition(getTexture("background"), getStage().getWidth() * 0.75f, TablexiaSettings.getMinScreenHeight() * 0.98f, getStage().getWidth() * 0.13f, 0)); group.addActor(ScaleUtil.createImageWidthPosition(getTexture("badge"), getStage().getWidth() * 0.3f, getStage().getWidth() * 0.18f, getStage().getWidth() * 0.15f)); - group.addActor(ScaleUtil.createImageWidthPosition(getTexture("avatar/0"), getStage().getWidth() * 0.13f, getStage().getWidth() * 0.6f, getStage().getWidth() * 0.34f)); // size for all mugshots + group.addActor(mugshotImage = ScaleUtil.createImageWidthPosition(getTexture("avatar/0"), getStage().getWidth() * 0.13f, getStage().getWidth() * 0.6f, getStage().getWidth() * 0.34f)); // size for all mugshots group.addActor(mugshotFrame = ScaleUtil.createImageWidthPosition(getTexture("mugshotframe"), getStage().getWidth() * 0.17f, getStage().getWidth() * 0.58f, getStage().getWidth() * 0.32f)); group.addActor(ScaleUtil.createImageWidthPosition(getTexture("textfield_covername"), getStage().getWidth() * 0.2f, getStage().getWidth() * 0.57f, getStage().getWidth() * 0.27f)); group.addActor(ScaleUtil.createImageWidthPosition(getTexture("stampplaceholder"), getStage().getWidth() * 0.1f, getStage().getWidth() * 0.73f, getStage().getWidth() * 0.04f)); @@ -152,6 +160,8 @@ public class FormScreen extends AbstractAutoloadTablexiaScreen<Void> { private void showMugshotDialog() { final Group mugshots = new Group(); + + // grey translucent overlay Image overlay = new Image(getTexture("avatar/overlay")); overlay.getColor().a = 0.5f; mugshots.addActor(ScaleUtil.setFullScreen(overlay, getStage())); @@ -164,15 +174,70 @@ public class FormScreen extends AbstractAutoloadTablexiaScreen<Void> { } }); + + // avatar pictures HorizontalGroup hg = new HorizontalGroup(); + for (int i = 0; i < TablexiaSettings.AVATAR_COUNT; i++) { + final Actor avatar = prepareAvatarPicture(i + 1); + avatar.setName(String.valueOf(i+1)); + avatar.addListener(new ClickListener() { + @Override + public void clicked(InputEvent event, float x, float y) { + event.stop(); + mugshots.remove(); + Drawable d = new TextureRegionDrawable(new TextureRegion(getTexture("avatar/" + avatar.getName()))); + mugshotImage.setDrawable(d); + // TODO set avatar! + } + }); + hg.addActor(avatar); + hg.setHeight(avatar.getHeight()); + } ScrollPane sp = new ScrollPane(hg); + sp.setScrollingDisabled(false, true); + sp.setSize(1000, hg.getHeight()); + sp.setPosition(0, 156); mugshots.addActor(sp); - // TODO film strip with pictures + getStage().addActor(mugshots); + } + private Actor prepareAvatarPicture(int num) { + Texture texture = getTexture("avatar/" + num); + float mugshotWidth = ScaleUtil.getWidth(texture.getWidth(), texture.getHeight(), MUGSHOT_HEIGHT); + + Image avatar = ScaleUtil.createImageToHeight(getTexture("avatar/" + num), MUGSHOT_HEIGHT); + avatar.getDrawable().setMinHeight(MUGSHOT_HEIGHT); + avatar.getDrawable().setMinWidth(mugshotWidth); + Image film = ScaleUtil.createImageToHeight(getTexture("avatar/film_inside"), MUGSHOT_HEIGHT); + film.getDrawable().setMinHeight(MUGSHOT_HEIGHT); + film.getDrawable().setMinWidth(mugshotWidth); + + VerticalGroup vg = new VerticalGroup(); + Image frameTop = ScaleUtil.createImageToWidth(getTexture("avatar/film_outerline"), mugshotWidth); + frameTop.getDrawable().setMinWidth(mugshotWidth); + frameTop.getDrawable().setMinHeight(frameTop.getHeight()); + Image frameBottom = ScaleUtil.createImageToWidth(getTexture("avatar/film_outerline"), mugshotWidth); + frameBottom.getDrawable().setMinWidth(mugshotWidth); + frameBottom.getDrawable().setMinHeight(frameTop.getHeight()); + + Stack stack = new Stack(); + stack.setSize(mugshotWidth, MUGSHOT_HEIGHT); + stack.addActor(avatar); + stack.addActor(film); + + vg.addActor(frameTop); + vg.addActor(stack); + vg.addActor(frameBottom); + + vg.setHeight(MUGSHOT_HEIGHT + frameBottom.getHeight() + frameTop.getHeight()); + vg.setWidth(mugshotWidth); + + Log.info(((Object) this).getClass().getName(), "Vertical size " + vg.getWidth() + "x" + vg.getHeight()); + + return vg; - getStage().addActor(mugshots); }