Cleanup; splash story on first run.

v5stable
Ondřej Hruška 10 years ago
parent 2b8055d1d2
commit 62701c7856
  1. 1
      src/mightypork/gamecore/gui/screens/Overlay.java
  2. 2
      src/mightypork/gamecore/gui/screens/impl/LayerColor.java
  3. 9
      src/mightypork/rogue/RogueApp.java
  4. 2
      src/mightypork/rogue/RogueConfig.java
  5. 10
      src/mightypork/rogue/RogueStateManager.java
  6. 11
      src/mightypork/rogue/events/RogueStateRequest.java
  7. 40
      src/mightypork/rogue/screens/story/ScreenStory.java

@ -3,7 +3,6 @@ package mightypork.gamecore.gui.screens;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedHashSet;
import mightypork.gamecore.core.AppAccess; import mightypork.gamecore.core.AppAccess;
import mightypork.gamecore.core.AppSubModule; import mightypork.gamecore.core.AppSubModule;

@ -16,7 +16,7 @@ public class LayerColor extends ScreenLayer {
{ {
super(screen); super(screen);
QuadPainter qp = new QuadPainter(color); final QuadPainter qp = new QuadPainter(color);
qp.setRect(root); qp.setRect(root);
root.add(qp); root.add(qp);
this.zIndex = zIndex; this.zIndex = zIndex;

@ -9,7 +9,6 @@ import mightypork.gamecore.core.events.MainLoopRequest;
import mightypork.gamecore.core.events.UserQuitRequest; import mightypork.gamecore.core.events.UserQuitRequest;
import mightypork.gamecore.eventbus.BusEvent; import mightypork.gamecore.eventbus.BusEvent;
import mightypork.gamecore.gui.screens.ScreenRegistry; import mightypork.gamecore.gui.screens.ScreenRegistry;
import mightypork.gamecore.gui.screens.impl.CrossfadeRequest;
import mightypork.gamecore.input.InputSystem; import mightypork.gamecore.input.InputSystem;
import mightypork.gamecore.input.KeyStroke.Edge; import mightypork.gamecore.input.KeyStroke.Edge;
import mightypork.gamecore.render.DisplaySystem; import mightypork.gamecore.render.DisplaySystem;
@ -129,8 +128,12 @@ public final class RogueApp extends BaseApp implements ViewportChangeListener, S
@Override @Override
public void run() public void run()
{ {
//getEventBus().send(new RogueStateRequest(RogueState.MAIN_MENU)); if (Config.getValue("opt.show_story")) {
getEventBus().send(new CrossfadeRequest("story", true)); Config.setValue("opt.show_story", false);
getEventBus().send(new RogueStateRequest(RogueState.STORY, true));
} else {
getEventBus().send(new RogueStateRequest(RogueState.MAIN_MENU, true));
}
} }
})); }));
} }

@ -13,6 +13,8 @@ public class RogueConfig implements ConfigSetup {
prop.putBoolean("display.fullscreen", false, "Start in fullscreen (remembers state at exit)"); prop.putBoolean("display.fullscreen", false, "Start in fullscreen (remembers state at exit)");
prop.putInteger("display.width", 1024, "Initial width (remembers from last time)"); prop.putInteger("display.width", 1024, "Initial width (remembers from last time)");
prop.putInteger("display.height", 768, "Initial height (remembers from last time)"); prop.putInteger("display.height", 768, "Initial height (remembers from last time)");
prop.putBoolean("opt.show_story", true, "Show story on start-up.");
} }
} }

@ -20,23 +20,23 @@ public class RogueStateManager extends AppModule {
} }
public void triggerAction(RogueState state) public void triggerAction(RogueState state, boolean fromDark)
{ {
switch (state) { switch (state) {
case MAIN_MENU: case MAIN_MENU:
getEventBus().send(new CrossfadeRequest("main_menu")); getEventBus().send(new CrossfadeRequest("main_menu", fromDark));
break; break;
case SELECT_WORLD: case SELECT_WORLD:
getEventBus().send(new CrossfadeRequest("select_world")); getEventBus().send(new CrossfadeRequest("select_world", fromDark));
break; break;
case PLAY_WORLD: case PLAY_WORLD:
getEventBus().send(new CrossfadeRequest("game")); getEventBus().send(new CrossfadeRequest("game", fromDark));
break; break;
case STORY: case STORY:
getEventBus().send(new CrossfadeRequest("story")); getEventBus().send(new CrossfadeRequest("story", fromDark));
break; break;
case EXIT: case EXIT:

@ -14,17 +14,26 @@ import mightypork.rogue.RogueStateManager.RogueState;
public class RogueStateRequest extends BusEvent<RogueStateManager> { public class RogueStateRequest extends BusEvent<RogueStateManager> {
final private RogueState requested; final private RogueState requested;
private final boolean fromDark;
public RogueStateRequest(RogueState requested) public RogueStateRequest(RogueState requested)
{ {
this.requested = requested; this.requested = requested;
this.fromDark = false;
}
public RogueStateRequest(RogueState requested, boolean fromDark)
{
this.requested = requested;
this.fromDark = fromDark;
} }
@Override @Override
protected void handleBy(RogueStateManager handler) protected void handleBy(RogueStateManager handler)
{ {
handler.triggerAction(requested); handler.triggerAction(requested, fromDark);
} }
} }

@ -8,21 +8,18 @@ import mightypork.gamecore.gui.AlignX;
import mightypork.gamecore.gui.components.layout.RowLayout; import mightypork.gamecore.gui.components.layout.RowLayout;
import mightypork.gamecore.gui.components.layout.linear.LinearLayout; import mightypork.gamecore.gui.components.layout.linear.LinearLayout;
import mightypork.gamecore.gui.components.painters.ImagePainter; import mightypork.gamecore.gui.components.painters.ImagePainter;
import mightypork.gamecore.gui.components.painters.QuadPainter;
import mightypork.gamecore.gui.components.painters.TextPainter; import mightypork.gamecore.gui.components.painters.TextPainter;
import mightypork.gamecore.gui.screens.Screen; import mightypork.gamecore.gui.screens.Screen;
import mightypork.gamecore.gui.screens.ScreenLayer; import mightypork.gamecore.gui.screens.ScreenLayer;
import mightypork.gamecore.gui.screens.impl.FadingLayer;
import mightypork.gamecore.gui.screens.impl.LayerColor; import mightypork.gamecore.gui.screens.impl.LayerColor;
import mightypork.gamecore.input.KeyStroke; import mightypork.gamecore.input.KeyStroke;
import mightypork.gamecore.input.Keys;
import mightypork.gamecore.input.KeyStroke.Edge; import mightypork.gamecore.input.KeyStroke.Edge;
import mightypork.gamecore.input.Keys;
import mightypork.gamecore.input.events.MouseButtonEvent; import mightypork.gamecore.input.events.MouseButtonEvent;
import mightypork.gamecore.input.events.MouseButtonHandler; import mightypork.gamecore.input.events.MouseButtonHandler;
import mightypork.gamecore.resources.Res; import mightypork.gamecore.resources.Res;
import mightypork.gamecore.util.math.Easing; import mightypork.gamecore.util.math.Easing;
import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.Color;
import mightypork.gamecore.util.math.color.pal.RGB;
import mightypork.gamecore.util.math.constraints.num.Num; import mightypork.gamecore.util.math.constraints.num.Num;
import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated;
import mightypork.gamecore.util.math.constraints.rect.Rect; import mightypork.gamecore.util.math.constraints.rect.Rect;
@ -36,16 +33,16 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler {
private class LayerSlide extends ScreenLayer { private class LayerSlide extends ScreenLayer {
private TextPainter tp1; private final TextPainter tp1;
private TextPainter tp2; private final TextPainter tp2;
private ImagePainter img; private final ImagePainter img;
private NumAnimated layerAlpha = new NumAnimated(0, Easing.LINEAR, 0.8); private final NumAnimated layerAlpha = new NumAnimated(0, Easing.LINEAR, 0.8);
private NumAnimated tx1alpha = new NumAnimated(0, Easing.LINEAR, 1); private final NumAnimated tx1alpha = new NumAnimated(0, Easing.LINEAR, 1);
private NumAnimated tx2alpha = new NumAnimated(0, Easing.LINEAR, 1); private final NumAnimated tx2alpha = new NumAnimated(0, Easing.LINEAR, 1);
private String nextImg, nextT1, nextT2; private String nextImg, nextT1, nextT2;
private TimedTask ttNextSlide = new TimedTask() { private final TimedTask ttNextSlide = new TimedTask() {
@Override @Override
public void run() public void run()
@ -63,7 +60,7 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler {
} }
}; };
private TimedTask ttText1 = new TimedTask() { private final TimedTask ttText1 = new TimedTask() {
@Override @Override
public void run() public void run()
@ -77,7 +74,7 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler {
} }
}; };
private TimedTask ttText2 = new TimedTask() { private final TimedTask ttText2 = new TimedTask() {
@Override @Override
public void run() public void run()
@ -91,7 +88,7 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler {
} }
}; };
private TimedTask ttFinish = new TimedTask() { private final TimedTask ttFinish = new TimedTask() {
@Override @Override
public void run() public void run()
@ -107,12 +104,12 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler {
{ {
super(screen); super(screen);
Rect contentRect = root.shrink(Num.ZERO, root.height().perc(3)); final Rect contentRect = root.shrink(Num.ZERO, root.height().perc(3));
RowLayout rl = new RowLayout(root, 9); final RowLayout rl = new RowLayout(root, 9);
rl.setRect(contentRect); rl.setRect(contentRect);
root.add(rl); root.add(rl);
LinearLayout ll = new LinearLayout(root, AlignX.CENTER); final LinearLayout ll = new LinearLayout(root, AlignX.CENTER);
rl.add(ll, 7); rl.add(ll, 7);
img = new ImagePainter(Res.getTxQuad("story_1")); img = new ImagePainter(Res.getTxQuad("story_1"));
ll.add(img); ll.add(img);
@ -158,7 +155,8 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler {
layerAlpha.fadeOut(); layerAlpha.fadeOut();
ttNextSlide.start(1); ttNextSlide.start(1);
} }
public void reset() public void reset()
{ {
ttFinish.stop(); ttFinish.stop();
@ -172,7 +170,7 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler {
private LayerSlide slideLayer; private LayerSlide slideLayer;
private Action next = new Action() { private final Action next = new Action() {
@Override @Override
protected void execute() protected void execute()
@ -181,7 +179,7 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler {
} }
}; };
private Action prev = new Action() { private final Action prev = new Action() {
@Override @Override
protected void execute() protected void execute()
@ -191,7 +189,7 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler {
} }
}; };
private Action close = new Action() { private final Action close = new Action() {
@Override @Override
protected void execute() protected void execute()

Loading…
Cancel
Save