mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
Merge pull request #506 from kevlahnota/master
update transition screen
This commit is contained in:
@@ -391,11 +391,17 @@ public class Forge implements ApplicationListener {
|
||||
FThreads.invokeInEdtLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
//selection
|
||||
//selection transition
|
||||
setTransitionScreen(new TransitionScreen(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
splashScreen.setShowModeSelector(true);
|
||||
//start background music
|
||||
SoundSystem.instance.setBackgroundMusic(MusicPlaylist.MENUS);
|
||||
safeToClose = true;
|
||||
clearTransitionScreen();
|
||||
}
|
||||
}, Forge.takeScreenshot(), false, false, true, false));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -747,7 +753,7 @@ public class Forge implements ApplicationListener {
|
||||
openHomeDefault();
|
||||
exited = false;
|
||||
}
|
||||
}, ScreenUtils.getFrameBufferTexture(), false, false));
|
||||
}, Forge.takeScreenshot(), false, false));
|
||||
}
|
||||
|
||||
public static void switchToAdventure() {
|
||||
@@ -773,6 +779,10 @@ public class Forge implements ApplicationListener {
|
||||
public static void clearSplashScreen() {
|
||||
splashScreen = null;
|
||||
}
|
||||
public static TextureRegion takeScreenshot() {
|
||||
TextureRegion screenShot = ScreenUtils.getFrameBufferTexture();
|
||||
return screenShot;
|
||||
}
|
||||
|
||||
private static void setCurrentScreen(FScreen screen0) {
|
||||
String toNewScreen = screen0 != null ? screen0.toString() : "";
|
||||
@@ -989,7 +999,7 @@ public class Forge implements ApplicationListener {
|
||||
if (!(currentScene instanceof ForgeScene)) {
|
||||
if (lastScreenTexture != null)
|
||||
lastScreenTexture.getTexture().dispose();
|
||||
lastScreenTexture = ScreenUtils.getFrameBufferTexture();
|
||||
lastScreenTexture = Forge.takeScreenshot();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Scaling;
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import forge.Forge;
|
||||
import forge.adventure.character.*;
|
||||
import forge.adventure.data.*;
|
||||
@@ -678,7 +677,7 @@ public class MapStage extends GameStage {
|
||||
if(isInMap && effect != null) duelScene.setDungeonEffect(effect);
|
||||
Forge.switchScene(SceneType.DuelScene.instance);
|
||||
});
|
||||
}, ScreenUtils.getFrameBufferTexture(), true, false));
|
||||
}, Forge.takeScreenshot(), true, false));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.math.Rectangle;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import com.badlogic.gdx.utils.viewport.Viewport;
|
||||
import forge.Forge;
|
||||
import forge.adventure.character.CharacterSprite;
|
||||
@@ -95,7 +94,7 @@ public class WorldStage extends GameStage implements SaveFileContent {
|
||||
duelScene.initDuels(player, mob);
|
||||
Forge.clearTransitionScreen();
|
||||
startPause(0.3f, () -> Forge.switchScene(SceneType.DuelScene.instance));
|
||||
}, ScreenUtils.getFrameBufferTexture(), true, false));
|
||||
}, Forge.takeScreenshot(), true, false));
|
||||
currentMob = mob;
|
||||
WorldSave.getCurrentSave().autoSave();
|
||||
});
|
||||
|
||||
@@ -8,20 +8,26 @@ import forge.animation.ForgeAnimation;
|
||||
import forge.assets.FSkin;
|
||||
import forge.assets.FSkinImage;
|
||||
import forge.assets.FSkinTexture;
|
||||
import forge.sound.SoundSystem;
|
||||
import forge.toolbox.FContainer;
|
||||
|
||||
public class TransitionScreen extends FContainer {
|
||||
private BGAnimation bgAnimation;
|
||||
Runnable runnable;
|
||||
TextureRegion textureRegion;
|
||||
boolean matchTransition, isloading;
|
||||
boolean matchTransition, isloading, isIntro, isFadeMusic;
|
||||
|
||||
public TransitionScreen(Runnable proc, TextureRegion screen, boolean enterMatch, boolean loading) {
|
||||
this(proc, screen, enterMatch, loading, false, false);
|
||||
}
|
||||
public TransitionScreen(Runnable proc, TextureRegion screen, boolean enterMatch, boolean loading, boolean intro, boolean fadeMusic) {
|
||||
bgAnimation = new BGAnimation();
|
||||
runnable = proc;
|
||||
textureRegion = screen;
|
||||
matchTransition = enterMatch;
|
||||
isloading = loading;
|
||||
isIntro = intro;
|
||||
isFadeMusic = fadeMusic;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -41,6 +47,14 @@ public class TransitionScreen extends FContainer {
|
||||
} else if (percentage > 1) {
|
||||
percentage = 1;
|
||||
}
|
||||
if (isFadeMusic) {
|
||||
try {
|
||||
//fade out volume
|
||||
SoundSystem.instance.fadeModifier(1-percentage);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (isloading) {
|
||||
g.fillRect(Color.BLACK, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight());
|
||||
if (FSkinTexture.BG_TEXTURE != null) {
|
||||
@@ -58,6 +72,13 @@ public class TransitionScreen extends FContainer {
|
||||
} else if (matchTransition) {
|
||||
if (textureRegion != null)
|
||||
g.drawWarpImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), percentage);
|
||||
} else if (isIntro) {
|
||||
if (textureRegion != null) {
|
||||
g.drawImage(FSkinTexture.BG_TEXTURE, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight());
|
||||
g.setAlphaComposite(1-percentage);
|
||||
g.drawImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight());
|
||||
g.setAlphaComposite(oldAlpha);
|
||||
}
|
||||
} else {
|
||||
if (textureRegion != null)
|
||||
g.drawGrayTransitionImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), false, percentage);
|
||||
|
||||
@@ -6,7 +6,6 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import forge.adventure.scene.DuelScene;
|
||||
import forge.adventure.scene.SceneType;
|
||||
import forge.ai.GameState;
|
||||
@@ -320,7 +319,7 @@ public class MatchController extends AbstractGuiGame {
|
||||
Forge.setTransitionScreen(new TransitionScreen(() -> {
|
||||
Forge.clearTransitionScreen();
|
||||
Forge.clearCurrentScreen();
|
||||
}, ScreenUtils.getFrameBufferTexture(), false, false));
|
||||
}, Forge.takeScreenshot(), false, false));
|
||||
return;
|
||||
}
|
||||
if (hasLocalPlayers() || getGameView().isMatchOver()) {
|
||||
|
||||
Reference in New Issue
Block a user