mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Fix mouse touchup controls and added loading transition
This commit is contained in:
@@ -78,7 +78,7 @@ public abstract class ForgeScene extends Scene implements IUpdateable {
|
|||||||
Gdx.input.setInputProcessor(Forge.getInputProcessor());
|
Gdx.input.setInputProcessor(Forge.getInputProcessor());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Forge.setTransitionScreen(new TransitionScreen(runnable, ScreenUtils.getFrameBufferTexture(), true));
|
Forge.setTransitionScreen(new TransitionScreen(runnable, ScreenUtils.getFrameBufferTexture(), true, false));
|
||||||
} else {
|
} else {
|
||||||
Forge.openScreen(getScreen());
|
Forge.openScreen(getScreen());
|
||||||
Gdx.input.setInputProcessor(Forge.getInputProcessor());
|
Gdx.input.setInputProcessor(Forge.getInputProcessor());
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import forge.Forge;
|
|||||||
import forge.adventure.util.Controls;
|
import forge.adventure.util.Controls;
|
||||||
import forge.adventure.world.WorldSave;
|
import forge.adventure.world.WorldSave;
|
||||||
import forge.adventure.world.WorldSaveHeader;
|
import forge.adventure.world.WorldSaveHeader;
|
||||||
|
import forge.screens.TransitionScreen;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@@ -105,10 +106,18 @@ public class SaveLoadScene extends UIScene {
|
|||||||
dialog.show(stage);
|
dialog.show(stage);
|
||||||
stage.setKeyboardFocus(textInput);
|
stage.setKeyboardFocus(textInput);
|
||||||
} else {
|
} else {
|
||||||
if(WorldSave.load(currentSlot))
|
Runnable runnable = new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if(WorldSave.load(currentSlot)) {
|
||||||
|
Forge.clearTransitionScreen();
|
||||||
Forge.switchScene(SceneType.GameScene.instance);
|
Forge.switchScene(SceneType.GameScene.instance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
Forge.setTransitionScreen(new TransitionScreen(runnable, null, false, true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public boolean saveAbort() {
|
public boolean saveAbort() {
|
||||||
|
|
||||||
|
|||||||
@@ -262,6 +262,8 @@ public abstract class GameStage extends Stage {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
|
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
|
||||||
|
WorldStage.getInstance().GetPlayer().setMovementDirection(Vector2.Zero);
|
||||||
|
MapStage.getInstance().GetPlayer().setMovementDirection(Vector2.Zero);
|
||||||
stop();
|
stop();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package forge.adventure.world;
|
package forge.adventure.world;
|
||||||
|
|
||||||
|
import forge.Forge;
|
||||||
import forge.adventure.data.DifficultyData;
|
import forge.adventure.data.DifficultyData;
|
||||||
import forge.adventure.player.AdventurePlayer;
|
import forge.adventure.player.AdventurePlayer;
|
||||||
import forge.adventure.pointofintrest.PointOfInterestChanges;
|
import forge.adventure.pointofintrest.PointOfInterestChanges;
|
||||||
@@ -77,6 +78,7 @@ public class WorldSave {
|
|||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
Forge.clearTransitionScreen();
|
||||||
return false;
|
return false;
|
||||||
} finally {
|
} finally {
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,29 @@
|
|||||||
package forge.screens;
|
package forge.screens;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.Graphics;
|
import forge.Graphics;
|
||||||
import forge.animation.ForgeAnimation;
|
import forge.animation.ForgeAnimation;
|
||||||
|
import forge.assets.FSkin;
|
||||||
|
import forge.assets.FSkinImage;
|
||||||
|
import forge.gui.GuiBase;
|
||||||
import forge.toolbox.FContainer;
|
import forge.toolbox.FContainer;
|
||||||
|
|
||||||
public class TransitionScreen extends FContainer {
|
public class TransitionScreen extends FContainer {
|
||||||
private BGAnimation bgAnimation;
|
private BGAnimation bgAnimation;
|
||||||
Runnable runnable;
|
Runnable runnable;
|
||||||
TextureRegion textureRegion;
|
TextureRegion textureRegion;
|
||||||
boolean matchTransition;
|
boolean matchTransition, isloading;
|
||||||
|
|
||||||
public TransitionScreen(Runnable proc, TextureRegion screen, boolean enterMatch) {
|
public TransitionScreen(Runnable proc, TextureRegion screen, boolean enterMatch, boolean loading) {
|
||||||
bgAnimation = new BGAnimation();
|
bgAnimation = new BGAnimation();
|
||||||
runnable = proc;
|
runnable = proc;
|
||||||
textureRegion = screen;
|
textureRegion = screen;
|
||||||
matchTransition = enterMatch;
|
matchTransition = enterMatch;
|
||||||
|
isloading = loading;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -27,6 +34,7 @@ public class TransitionScreen extends FContainer {
|
|||||||
private class BGAnimation extends ForgeAnimation {
|
private class BGAnimation extends ForgeAnimation {
|
||||||
float DURATION = 0.6f;
|
float DURATION = 0.6f;
|
||||||
private float progress = 0;
|
private float progress = 0;
|
||||||
|
Texture transition_bg = new Texture(GuiBase.isAndroid() ? Gdx.files.internal("fallback_skin").child("title_bg_lq.png") : Gdx.files.classpath("fallback_skin").child("title_bg_lq.png"));
|
||||||
|
|
||||||
public void drawBackground(Graphics g) {
|
public void drawBackground(Graphics g) {
|
||||||
float percentage = progress / DURATION;
|
float percentage = progress / DURATION;
|
||||||
@@ -36,9 +44,25 @@ public class TransitionScreen extends FContainer {
|
|||||||
} else if (percentage > 1) {
|
} else if (percentage > 1) {
|
||||||
percentage = 1;
|
percentage = 1;
|
||||||
}
|
}
|
||||||
if (matchTransition) {
|
if (isloading) {
|
||||||
|
g.fillRect(Color.BLACK, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight());
|
||||||
|
if (transition_bg != null) {
|
||||||
|
g.setAlphaComposite(percentage);
|
||||||
|
g.drawImage(transition_bg, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight());
|
||||||
|
g.setAlphaComposite(oldAlpha);
|
||||||
|
}
|
||||||
|
float xmod = Forge.getScreenHeight() > 2000 ? 1.5f : 1f;
|
||||||
|
xmod *= percentage;
|
||||||
|
if (FSkin.hdLogo != null) {
|
||||||
|
g.drawImage(FSkin.hdLogo, Forge.getScreenWidth()/2 - (FSkin.hdLogo.getWidth()*xmod)/2, Forge.getScreenHeight()/2 - (FSkin.hdLogo.getHeight()*xmod)/2, FSkin.hdLogo.getWidth()*xmod, FSkin.hdLogo.getHeight()*xmod);
|
||||||
|
} else {
|
||||||
|
g.drawImage(FSkinImage.LOGO,Forge.getScreenWidth()/2 - (FSkinImage.LOGO.getWidth()*xmod)/2, Forge.getScreenHeight()/2 - (FSkinImage.LOGO.getHeight()*xmod)/1.5f, FSkinImage.LOGO.getWidth()*xmod, FSkinImage.LOGO.getHeight()*xmod);
|
||||||
|
}
|
||||||
|
} else if (matchTransition) {
|
||||||
|
if (textureRegion != null)
|
||||||
g.drawWarpImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), percentage);
|
g.drawWarpImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), percentage);
|
||||||
} else {
|
} else {
|
||||||
|
if (textureRegion != null)
|
||||||
g.drawGrayTransitionImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), false, percentage);
|
g.drawGrayTransitionImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), false, percentage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ public class MatchController extends AbstractGuiGame {
|
|||||||
Forge.setCursor(null, "0");
|
Forge.setCursor(null, "0");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Forge.setTransitionScreen(new TransitionScreen(runnable, ScreenUtils.getFrameBufferTexture(), false));
|
Forge.setTransitionScreen(new TransitionScreen(runnable, ScreenUtils.getFrameBufferTexture(), false, false));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (hasLocalPlayers() || getGameView().isMatchOver()) {
|
if (hasLocalPlayers() || getGameView().isMatchOver()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user