Changed overall style
Now one can change directly between Screens from TopBar Fixed bugs
This commit is contained in:
@ -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() {
|
||||
|
@ -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();
|
||||
|
@ -67,6 +67,7 @@ public class PlayerShapeShopScreen extends Screen<RelativeLayout> implements Pla
|
||||
|
||||
createViews();
|
||||
topBar.update();
|
||||
topBar.setCustomCallerForScreenSwitch(super.caller);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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)) {
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -150,4 +150,8 @@ public class ViewManager implements View.OnClickListener {
|
||||
return ((int) (value * 20)) / 10f;
|
||||
}
|
||||
|
||||
public boolean isShortMenuVisible(){
|
||||
return shortMenu.isVisible();
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user