Changed overall style

Now one can change directly between Screens from TopBar
Fixed bugs
This commit is contained in:
=
2018-01-21 17:40:25 +01:00
parent 2c19e3dcb5
commit 5302ac0d00
19 changed files with 181 additions and 154 deletions

View File

@ -138,6 +138,21 @@ public class GameActivity extends Activity implements ExceptionHandler, User.LvU
super.finish();
}
public boolean isShortMenuInGameActive() {
return gameScreen.getGameViewManager().isShortMenuVisible();
}
public void flipToScreen(final Screen.ScreenType screen, final Screen.ScreenType caller) {
if (screen != Screen.ScreenType.NONE && flipper.getCurrentScreen().getType() != screen) {
runOnUiThread(new Runnable() {
@Override
public void run() {
flipper.showScreen(screen, caller);
}
});
}
}
public void flipToScreen(final Screen.ScreenType screen) {
if (screen != Screen.ScreenType.NONE && flipper.getCurrentScreen().getType() != screen) {
runOnUiThread(new Runnable() {

View File

@ -13,6 +13,7 @@ import de.frajul.endlessroll.main.MyGlSurfaceView;
import de.frajul.endlessroll.main.game.Game;
import de.frajul.endlessroll.main.game.GameState;
import de.frajul.endlessroll.main.tutorial.BreakPoint;
import de.frajul.endlessroll.views.ViewManager;
/**
* Created by Julian on 08.02.2016.
@ -51,6 +52,10 @@ public class GameScreen extends GLScreen<RelativeLayout> {
return game.getGameState() == GameState.LEVEL_FINISHED;
}
public ViewManager getGameViewManager(){
return game.getViewManager();
}
@Override
public void onBackKeyDown() {
game.tryToPause();

View File

@ -67,6 +67,7 @@ public class PlayerShapeShopScreen extends Screen<RelativeLayout> implements Pla
createViews();
topBar.update();
topBar.setCustomCallerForScreenSwitch(super.caller);
}
@Override

View File

@ -22,7 +22,6 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
private ToggleButton musicToggle;
private ToggleButton soundToggle;
private Button resetButton;
private boolean resetPressed = false;
private ConfirmDialog resetConfirmDialog;
@ -44,10 +43,12 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
gameActivity.getSoundManager().menuMusic.start();
topBar.update();
topBar.setCustomCallerForScreenSwitch(super.caller);
topBar.setShopsEnabled(!gameActivity.isShortMenuInGameActive());
musicToggle.setChecked(!gameActivity.getSoundManager().isMusicMuted());
soundToggle.setChecked(!gameActivity.getSoundManager().isSoundsMuted());
resetButton.setEnabled(super.caller != ScreenType.GAME);
resetPressed = false;
}
@Override
@ -56,10 +57,7 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
.writeSoundsMuted(gameActivity.getSoundManager().isSoundsMuted());
gameActivity.getDataStorageHandler()
.writeMusicMuted(gameActivity.getSoundManager().isMusicMuted());
//ResetButton is disabled if caller is GAME, because shortMenu or GoalMessage would still be visible on next level start
if (resetPressed && (super.caller == ScreenType.LEVELS || super.caller == ScreenType.GAME)) {
super.caller = ScreenType.WORLDS;
}
flipToCaller();
}
@ -79,7 +77,11 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
if (callId == CALL_ID_CONFIRM_RESET) {
gameActivity.resetData();
prepareToBeShown();
resetPressed = true;
//ResetButton is disabled if caller is GAME, because shortMenu or GoalMessage would still be visible on next level start
if (super.caller == ScreenType.LEVELS || super.caller == ScreenType.GAME) {
super.caller = ScreenType.WORLDS;
topBar.setCustomCallerForScreenSwitch(super.caller);
}
}
}
}

View File

@ -29,7 +29,6 @@ public class StartScreen extends GLScreen<RelativeLayout> implements View.OnClic
private Button gain90EP;
private Button finishFirstWorld;
private Button toGlTestScreen;
private Button settings;
private ConfirmDialog confirmDialog;
@ -43,8 +42,6 @@ public class StartScreen extends GLScreen<RelativeLayout> implements View.OnClic
gain90EP = createButton(R.id.startscreen_gain_90_ep, typeface);
finishFirstWorld = createButton(R.id.startscreen_finish_world_1, typeface);
toGlTestScreen = createButton(R.id.startscreen_to_gl_test_screen, typeface);
settings = (Button) layout.findViewById(R.id.startscreen_settings);
settings.setOnClickListener(this);
confirmDialog = new ConfirmDialog(gameActivity, this);
@ -63,9 +60,9 @@ public class StartScreen extends GLScreen<RelativeLayout> implements View.OnClic
public void prepareToBeShown() {
gameActivity.getSoundManager().menuMusic.start();
glView.setCurrentRendering(rendering);
((StartScene) rendering.getScene()).randomizeWorld();
((StartScene) rendering.getScene()).loadTexturesForCurrentWorld();
glView.setCurrentRendering(rendering);
}
@Override
@ -78,9 +75,6 @@ public class StartScreen extends GLScreen<RelativeLayout> implements View.OnClic
if (v.equals(play)) {
gameActivity.flipToScreen(ScreenType.WORLDS);
glView.setCurrentRendering(null);
} else if (v.equals(settings)) {
gameActivity.flipToScreen(ScreenType.SETTINGS);
glView.setCurrentRendering(null);
} else if (v.equals(gain90EP)) {
gameActivity.getUser().gainEp(90, true);
} else if (v.equals(unlockLevels)) {

View File

@ -90,6 +90,7 @@ public class ToolShopScreen extends Screen<RelativeLayout> implements View.OnCli
gameActivity.getSoundManager().menuMusic.start();
topBar.update();
topBar.setCustomCallerForScreenSwitch(super.caller);
slotSettings.unlockSlotsIfLevelReached(gameActivity.getUser().getLevelUpBounties());
onToolOfferSlotSelected(toolOfferSlots.get(0));

View File

@ -21,6 +21,7 @@ public class TopBar implements View.OnClickListener {
private GameActivity gameActivity;
private View layout;
private Screen.ScreenType parent;
private Screen.ScreenType customCallerForScreenSwitch = Screen.ScreenType.NONE;
private Animation starDecreaseAnimation;
private Animation energyDecreaseAnimation;
@ -59,11 +60,12 @@ public class TopBar implements View.OnClickListener {
toolshopButton.setOnClickListener(this);
shapeshopButton = (Button) layout.findViewById(R.id.topbar_shapeshop);
shapeshopButton.setOnClickListener(this);
if (parent == Screen.ScreenType.TOOL_SHOP || parent == Screen.ScreenType.SHAPE_SHOP || parent == Screen.ScreenType.SETTINGS) {
toolshopButton.setEnabled(false);
shapeshopButton.setEnabled(false);
if(parent == Screen.ScreenType.SETTINGS)
settingsButton.setEnabled(false);
}
if(parent == Screen.ScreenType.TOOL_SHOP)
toolshopButton.setEnabled(false);
if(parent == Screen.ScreenType.SHAPE_SHOP)
shapeshopButton.setEnabled(false);
if (parent == Screen.ScreenType.GAME) {
toolshopButton.setEnabled(false);
shapeshopButton.setEnabled(false);
@ -96,7 +98,7 @@ public class TopBar implements View.OnClickListener {
gameActivity.getTutorialManager().onTopBarUpdate(this);
}
public void startToolShopButtonPulse(){
public void startToolShopButtonPulse() {
toolshopButton.startAnimation(toolShopPulse);
}
@ -110,22 +112,32 @@ public class TopBar implements View.OnClickListener {
energyCountDecrease.startAnimation(energyDecreaseAnimation);
}
public void setCustomCallerForScreenSwitch(Screen.ScreenType customCallerForScreenSwitch) {
this.customCallerForScreenSwitch = customCallerForScreenSwitch;
}
@Override
public void onClick(View v) {
if (v.equals(toolshopButton)) {
gameActivity.flipToScreen(Screen.ScreenType.TOOL_SHOP);
flipToScreen(Screen.ScreenType.TOOL_SHOP);
} else if (v.equals(shapeshopButton)) {
gameActivity.flipToScreen(Screen.ScreenType.SHAPE_SHOP);
flipToScreen(Screen.ScreenType.SHAPE_SHOP);
} else if (v.equals(settingsButton)) {
gameActivity.flipToScreen(Screen.ScreenType.SETTINGS);
flipToScreen(Screen.ScreenType.SETTINGS);
}
}
private void flipToScreen(Screen.ScreenType screenType) {
if (customCallerForScreenSwitch != Screen.ScreenType.NONE)
gameActivity.flipToScreen(screenType, customCallerForScreenSwitch);
gameActivity.flipToScreen(screenType);
}
public Screen.ScreenType getParent() {
return parent;
}
public boolean isToolShopButtonEnabled(){
public boolean isToolShopButtonEnabled() {
return toolshopButton.isEnabled();
}
}

View File

@ -150,4 +150,8 @@ public class ViewManager implements View.OnClickListener {
return ((int) (value * 20)) / 10f;
}
public boolean isShortMenuVisible(){
return shortMenu.isVisible();
}
}