private void fillTable() { StyleHelper helper = StyleHelper.getInstance(); Table scrollTable = new Table(); ImageButton newProfile = new ImageButton( helper.getImageButtonStyle("widgets/icon-plus")); newProfile.addListener(new NewProfileClickListener()); scrollTable.defaults().width(500).height(100).space(10); scrollTable.padTop(30); for (Profile profile : profileController.getAllProfiles()) { TextButton profileButton = new TextButton(profile.getName(), helper.getTextButtonStyle()); scrollTable.add(profileButton); scrollTable.row(); profileButton.addListener(new ChangeProfileClickListener()); } scrollTable.add(newProfile); scrollTable.padBottom(15); ScrollPane scrollPane = new ScrollPane(scrollTable); table.add(scrollPane).expand().fill(); }
private void buildTutorialDialog(String animationPath) { AssetManager manager = AssetManager.getInstance(); StyleHelper helper = StyleHelper.getInstance(); final Dialog tutorial = new Dialog("", StyleHelper.getInstance() .getDialogStyle()); tutorial.clear(); tutorial.fadeDuration = 0f; Table buttonTable = new Table(); Drawable drawable = new TextureRegionDrawable(new TextureRegion( manager.get(animationPath, Texture.class))); // used image button here because it keeps the ratio of the texture ImageButton tutorialImage = new ImageButton(drawable); ImageButton okay = new ImageButton( helper.getImageButtonStyleRound("widgets/icon-check")); okay.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { tutorial.hide(); } }); buttonTable.add(okay).size(100).bottom().right().expand().pad(30); tutorial.stack(tutorialImage, buttonTable).height(500).width(800); tutorial.show(stage); }
/** * Creates the screen of a level within the placement mode. This is the * screen which is presented to the user upon entering a recoloring or * termedit level. * * @param game * the backreference to the central game * @param controller * the game controller, which is responsible for the played level */ public PlacementModeScreen(AlligatorApp game, GameController controller) { super(game); gameController = controller; AssetManager assetManager = AssetManager.getInstance(); assetManager.load(getAssetDirPath() + "textures/pack.atlas", TextureAtlas.class); goalDialog = new Dialog("", StyleHelper.getInstance().getDialogStyle()); fillTable(); final int packageIndex = gameController.getLevel().getPackageIndex(); final LevelPackagesController packagesController = game .getLevelPackagesController(); final LevelPackage pack = packagesController.getLevelPackages().get( packageIndex); setBackground(pack.getDesign()); game.getSettingController().addSettingChangeListener(this); // load graphics for animation/tutorial if (gameController.getLevel().hasAnimation()) { List<String> animations = gameController.getLevel().getAnimation(); for (String animation : animations) { assetManager.load(animation, Texture.class); } } }
/** * Is called by the application lifecycle when the game is shut down. Should dispose everything * that was allocated. */ @Override public void dispose() { batch.dispose(); StyleHelper.getInstance().dispose(); // release catching of back key (no idea if necessary) Gdx.input.setCatchBackKey(false); }
/** * Is called by the application lifecycle on creation. Does all the initialization that hasn't * been done by the constructor. */ @Override public void create() { de.croggle.data.AssetManager.initialize(); StyleHelper.initialize(); SoundHelper.initialize(); if (!HEADLESS) { this.batch = new SpriteBatch(); } // catch android back key Gdx.input.setCatchBackKey(true); // initialize Controllers persistenceManager = new PersistenceManager(this); statisticController = new StatisticController(this); settingController = new SettingController(this); profileController = new ProfileController(this); soundController = new SoundController(); levelPackagesController = new LevelPackagesController(this); // Not sure how to initialize those. achievementController = new AchievementController(this); levelPackagesController = new LevelPackagesController(this); if (!HEADLESS) { // / initialize screens mainMenuScreen = new MainMenuScreen(this); levelPackagesScreen = new LevelPackagesScreen(this); // levelsOverviewScreen = new LevelsOverviewScreen(this, null); // placementModeScreen = new PlacementModeScreen(this, null); // simulationModeScreen = new SimulationModeScreen(this, null); achievementScreen = new AchievementScreen(this); settingsScreen = new SettingsScreen(this); statisticScreen = new StatisticScreen(this); selectProfileScreen = new SelectProfileScreen(this); profileSetNameScreen = new ProfileSetNameScreen(this); profileSetAvatarScreen = new ProfileSetAvatarScreen(this); creditsScreen = new CreditsScreen(this); // add onProfileChangeListener settingController.addSettingChangeListener(soundController); profileController.addProfileChangeListener(settingsScreen); profileController.addProfileChangeListener(selectProfileScreen); profileController.addProfileChangeListener(mainMenuScreen); profileController.addProfileChangeListener(statisticScreen); if (profileController.getAllProfiles().isEmpty()) { profileSetNameScreen.showBackButton(false); setScreen(new LoadingScreen(this, profileSetNameScreen)); } else { setScreen(new LoadingScreen(this, mainMenuScreen)); } } }
private void fillTable() { int i = 0; final int colorsPerRow = 2; for (Color c : cctrl.getUsableColors()) { Button bt = new Button(StyleHelper.getInstance().getDrawable("widgets/button")); ColorButton btn = new ColorButton(c); btn.addListener(new ColorButtonListener()); bt.add(btn).size(60, 60).center(); this.add(bt).size(76, 76).pad(6); i++; if (i % colorsPerRow == 0) { this.row(); } } }
/** * Creates a new popup to offer the possibility to recolor a certain ColoredBoardObect. * * @param editing * @param c * @throws IllegalArgumentException if the given {@link ColoredBoardObject} does not allow * recoloring */ public ColorSelectorPopup(BoardActorLayoutEditing editing, ColoredBoardObject c) { if (!c.isRecolorable()) { throw new IllegalArgumentException( "ColorSelectPopup can only work on ColoredBoardObjects which allow recoloring."); } boardObject = c; messenger = editing.getMessenger(); ActorLayoutConfiguration config = editing.getLayout().getLayoutConfiguration(); cctrl = config.getColorController(); colorBlindEnabled = config.isColorBlindEnabled(); this.setBackground(StyleHelper.getInstance().getDrawable("widgets/button")); setSize(width, height); setTouchable(Touchable.enabled); fillTable(); }
private void fillTable() { StyleHelper helper = StyleHelper.getInstance(); Table leftTable = new Table(); ImageButton menu = new ImageButton( helper.getImageButtonStyleRound("widgets/icon-menu")); ImageButton hint = new ImageButton( helper.getImageButtonStyleRound("widgets/icon-hint")); zoomIn = new ImageButton( helper.getImageButtonStyleRound("widgets/icon-plus")); zoomOut = new ImageButton( helper.getImageButtonStyleRound("widgets/icon-minus")); Button goal = new ImageButton( helper.getImageButtonStyleRound("widgets/icon-goal")); ImageButton startSimulation = new ImageButton(StyleHelper.getInstance() .getImageButtonStyleRound("widgets/icon-next")); startSimulation.addListener(new StartSimulationListener()); // add listeners menu.addListener(new MenuClickListener()); hint.addListener(new HintClickListener()); leftTable.pad(30); leftTable.defaults().space(30); leftTable.add(menu).size(100).top().left(); leftTable.row(); // TODO only activated after some time leftTable.add(hint).expand().size(100).top().left(); leftTable.row(); leftTable.add(goal).expand().size(100).top().left(); leftTable.row(); leftTable.add(zoomIn).size(70).left(); leftTable.row(); leftTable.add(zoomOut).size(70).left(); final ColorController colorController = gameController .getColorController(); final ActorLayoutConfiguration config = new ActorLayoutConfiguration(); config.setColorController(colorController); boardActor = new BoardActor(gameController.getShownBoard(), config); boardActor.setColorBlindEnabled(game.getSettingController() .getCurrentSetting().isColorblindEnabled()); game.getSettingController().addSettingChangeListener(boardActor); // used to make resetting the board via game controller possible gameController.registerPlacementBoardEventListener(boardActor .getBoardEventListener()); final Table boardTable = new Table(); boardTable.add(boardActor).fill().expand(); final Table controlTable = new Table(); controlTable.add(leftTable).expand().fill(); if (gameController.getLevel().getShowObjectBar()) { boardActor.enableLayoutEditing( gameController.getPlacmentBoardEventListener(), true); ObjectBar objectBar = boardActor.getObjectBar(); objectBar.add(startSimulation).size(200); controlTable.add(objectBar).padLeft(30); } else { boardActor.enableLayoutEditing( gameController.getPlacmentBoardEventListener(), false); controlTable.add(startSimulation).bottom().right().size(200) .pad(30); } table.stack(boardTable, controlTable).fill().expand(); onSettingChange(game.getSettingController().getCurrentSetting()); BoardActor goalBoard = new BoardActor(gameController.getLevel() .getGoalBoard(), config); goalBoard.setZoomAndPanEnabled(false); goalBoard.setColorBlindEnabled(game.getSettingController() .getCurrentSetting().isColorblindEnabled()); game.getSettingController().addSettingChangeListener(goalBoard); Table goalTable = new Table(); goalTable.add(goalBoard).size(getViewportHeight()); goal.addListener(new GoalClickListener()); goalDialog.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { goalDialog.hide(); } }); goalDialog.add(goalTable).width(getViewportWidth() - 250) .height(getViewportHeight()); }
private void fillTable() { StyleHelper helper = StyleHelper.getInstance(); ImageButton back = new ImageButton( helper.getImageButtonStyleRound("widgets/icon-back")); Table scrollTable = new Table(); // ScrollPane scroll = new ScrollPane(scrollTable); Label gameplay = new Label(_("settings_title_gameplay"), helper.getLabelStyle(40)); Label zoom = new Label(_("settings_title_zoom"), helper.getLabelStyle()); Label colorBlindness = new Label(_("settings_title_color_blindness"), helper.getLabelStyle()); Label sound = new Label(_("settings_title_sound"), helper.getLabelStyle(40)); Label music = new Label(_("settings_title_music"), helper.getLabelStyle()); Label effects = new Label(_("settings_title_effects"), helper.getLabelStyle()); Label profile = new Label(_("settings_title_profile"), helper.getLabelStyle(40)); zoomCheckBox = new CheckBox("", helper.getCheckBoxStyle()); colorBlindnessCheckBox = new CheckBox("", helper.getCheckBoxStyle()); musicSlider = new Slider(0, 100, 1, false, helper.getSliderStyle()); effectsSlider = new Slider(0, 100, 1, false, helper.getSliderStyle()); musicSlider.setValue(50); effectsSlider.setValue(50); TextButton editProfile = new TextButton( _("settings_button_edit_profile"), helper.getTextButtonStyle()); // add listeners back.addListener(new LogicalPredecessorListener()); SettingListener settingListener = new SettingListener(); zoomCheckBox.addListener(settingListener); colorBlindnessCheckBox.addListener(settingListener); musicSlider.addListener(settingListener); effectsSlider.addListener(settingListener); editProfile.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { if (game.getProfileController().getCurrentProfile() != null) { Dialog dialog = new EditProfileDialog(); dialog.show(stage); } else { Dialog dialog = new NotificationDialog( _("warning_no_profile_selected")); dialog.show(stage); } } }); scrollTable.defaults().left().space(10); scrollTable.add(gameplay).row(); scrollTable.add(zoom).expandX().padLeft(30); scrollTable.add(zoomCheckBox).size(50).center().row(); scrollTable.add(colorBlindness).expandX().padLeft(30); scrollTable.add(colorBlindnessCheckBox).size(50).center().row(); scrollTable.add(sound).row(); scrollTable.add(music).padLeft(30); scrollTable.add(musicSlider).width(300).height(50).row(); scrollTable.add(effects).padLeft(30); scrollTable.add(effectsSlider).width(300).height(50).row(); scrollTable.add(profile).row(); scrollTable.add(editProfile).width(300).height(75); scrollTable.pad(50).padRight(150); table.add(back).size(100).top().left(); table.add(scrollTable).expand().fill(); table.pad(30); onProfileChange(null); }
public EditProfileDialog() { super("", StyleHelper.getInstance().getDialogStyle()); StyleHelper helper = StyleHelper.getInstance(); Label message = new Label(_("title_edit_profile"), helper.getBlackLabelStyle()); TextButton name = new TextButton(_("edit_profile_button_rename"), helper.getTextButtonStyle()); TextButton avatar = new TextButton( _("edit_profile_button_change_avatar"), helper.getTextButtonStyle()); TextButton delete = new TextButton(_("edit_profile_button_delete"), helper.getTextButtonStyle()); TextButton nothing = new TextButton( _("edit_profile_button_nothing"), helper.getTextButtonStyle()); name.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { game.getProfileSetNameScreen().setIsInEditMode(true); EditProfileDialog.this.hide(); game.showProfileSetNameScreen(false); } }); avatar.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { game.getProfileSetAvatarScreen().setInEditMode(true); EditProfileDialog.this.hide(); game.showProfileSetAvatarScreen("", false); }; }); delete.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { Dialog dialog = new YesNoDialog(String.format( _("edit_profile_delete_confirmation"), game .getProfileController() .getCurrentProfileName()), new ConfirmInterface() { @Override public void yes() { game.getProfileController() .deleteCurrentProfile(); game.showSelectProfileScreen(); } @Override public void no() { // TODO Auto-generated method stub } }); dialog.show(stage); EditProfileDialog.this.hide(); } }); nothing.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { EditProfileDialog.this.hide(); }; }); clear(); add(message).center().pad(100).colspan(4).row(); add(name).minWidth(150).height(70).pad(10); add(avatar).minWidth(150).height(70).pad(10); add(delete).minWidth(150).height(70).pad(10); add(nothing).minWidth(150).height(70).pad(10); }