From fa65bb10a69e396dd66c175715f18ea81c81d67b Mon Sep 17 00:00:00 2001 From: drdev Date: Sun, 23 Feb 2014 22:27:18 +0000 Subject: [PATCH] Add StartButton to other screens Add references to core projects --- .gitattributes | 1 + forge-m-base/.classpath | 4 ++++ .../screens/constructed/ConstructedScreen.java | 5 +++-- .../src/forge/screens/draft/DraftScreen.java | 10 ++++++++++ .../forge/screens/guantlet/GuantletScreen.java | 10 ++++++++++ .../src/forge/screens/match/MatchScreen.java | 17 +++++++++++++++++ .../src/forge/screens/quest/QuestScreen.java | 10 ++++++++++ .../src/forge/screens/sealed/SealedScreen.java | 10 ++++++++++ forge-m-base/src/forge/toolbox/StartButton.java | 14 +++++++++++--- 9 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 forge-m-base/src/forge/screens/match/MatchScreen.java diff --git a/.gitattributes b/.gitattributes index 4619f04077a..7294b3ad93a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15996,6 +15996,7 @@ forge-m-base/src/forge/screens/constructed/ConstructedScreen.java -text forge-m-base/src/forge/screens/draft/DraftScreen.java -text forge-m-base/src/forge/screens/guantlet/GuantletScreen.java -text forge-m-base/src/forge/screens/home/HomeScreen.java -text +forge-m-base/src/forge/screens/match/MatchScreen.java -text forge-m-base/src/forge/screens/quest/QuestScreen.java -text forge-m-base/src/forge/screens/sealed/SealedScreen.java -text forge-m-base/src/forge/screens/settings/SettingsScreen.java -text diff --git a/forge-m-base/.classpath b/forge-m-base/.classpath index c8b2ef50879..5fdb56bd67d 100644 --- a/forge-m-base/.classpath +++ b/forge-m-base/.classpath @@ -4,5 +4,9 @@ + + + + diff --git a/forge-m-base/src/forge/screens/constructed/ConstructedScreen.java b/forge-m-base/src/forge/screens/constructed/ConstructedScreen.java index 788f5500e93..6ad34f0f5db 100644 --- a/forge-m-base/src/forge/screens/constructed/ConstructedScreen.java +++ b/forge-m-base/src/forge/screens/constructed/ConstructedScreen.java @@ -1,6 +1,7 @@ package forge.screens.constructed; import forge.FScreen; +import forge.game.Match; import forge.toolbox.StartButton; public class ConstructedScreen extends FScreen { @@ -10,8 +11,8 @@ public class ConstructedScreen extends FScreen { super(true, "Constructed", true); btnStart = add(new StartButton() { @Override - public void start() { - //TODO: Start match + public Match createMatch() { + return null; //TODO: Start match } }); } diff --git a/forge-m-base/src/forge/screens/draft/DraftScreen.java b/forge-m-base/src/forge/screens/draft/DraftScreen.java index f3fba57de91..f78660d2d67 100644 --- a/forge-m-base/src/forge/screens/draft/DraftScreen.java +++ b/forge-m-base/src/forge/screens/draft/DraftScreen.java @@ -1,14 +1,24 @@ package forge.screens.draft; import forge.FScreen; +import forge.game.Match; +import forge.toolbox.StartButton; public class DraftScreen extends FScreen { + private final StartButton btnStart; public DraftScreen() { super(true, "Draft", true); + btnStart = add(new StartButton() { + @Override + public Match createMatch() { + return null; //TODO: Start match + } + }); } @Override protected void doLayout(float startY, float width, float height) { + height = btnStart.updateLayout(width, height); //update height to exclude area taken up by StartButton } } diff --git a/forge-m-base/src/forge/screens/guantlet/GuantletScreen.java b/forge-m-base/src/forge/screens/guantlet/GuantletScreen.java index 7a480d030b3..b8b19f9fe83 100644 --- a/forge-m-base/src/forge/screens/guantlet/GuantletScreen.java +++ b/forge-m-base/src/forge/screens/guantlet/GuantletScreen.java @@ -1,14 +1,24 @@ package forge.screens.guantlet; import forge.FScreen; +import forge.game.Match; +import forge.toolbox.StartButton; public class GuantletScreen extends FScreen { + private final StartButton btnStart; public GuantletScreen() { super(true, "Guantlet", true); + btnStart = add(new StartButton() { + @Override + public Match createMatch() { + return null; //TODO: Start match + } + }); } @Override protected void doLayout(float startY, float width, float height) { + height = btnStart.updateLayout(width, height); //update height to exclude area taken up by StartButton } } diff --git a/forge-m-base/src/forge/screens/match/MatchScreen.java b/forge-m-base/src/forge/screens/match/MatchScreen.java new file mode 100644 index 00000000000..26c480f2c23 --- /dev/null +++ b/forge-m-base/src/forge/screens/match/MatchScreen.java @@ -0,0 +1,17 @@ +package forge.screens.match; + +import forge.FScreen; +import forge.game.Match; + +public class MatchScreen extends FScreen { + private final Match match; + + public MatchScreen(Match match0) { + super(false, null, true); + this.match = match0; + } + + @Override + protected void doLayout(float startY, float width, float height) { + } +} diff --git a/forge-m-base/src/forge/screens/quest/QuestScreen.java b/forge-m-base/src/forge/screens/quest/QuestScreen.java index 311104707ab..1e2da8374cc 100644 --- a/forge-m-base/src/forge/screens/quest/QuestScreen.java +++ b/forge-m-base/src/forge/screens/quest/QuestScreen.java @@ -1,14 +1,24 @@ package forge.screens.quest; import forge.FScreen; +import forge.game.Match; +import forge.toolbox.StartButton; public class QuestScreen extends FScreen { + private final StartButton btnStart; public QuestScreen() { super(true, "Quest", true); + btnStart = add(new StartButton() { + @Override + public Match createMatch() { + return null; //TODO: Start match + } + }); } @Override protected void doLayout(float startY, float width, float height) { + height = btnStart.updateLayout(width, height); //update height to exclude area taken up by StartButton } } diff --git a/forge-m-base/src/forge/screens/sealed/SealedScreen.java b/forge-m-base/src/forge/screens/sealed/SealedScreen.java index e61a78d1607..7babbadcde2 100644 --- a/forge-m-base/src/forge/screens/sealed/SealedScreen.java +++ b/forge-m-base/src/forge/screens/sealed/SealedScreen.java @@ -1,14 +1,24 @@ package forge.screens.sealed; import forge.FScreen; +import forge.game.Match; +import forge.toolbox.StartButton; public class SealedScreen extends FScreen { + private final StartButton btnStart; public SealedScreen() { super(true, "Sealed", true); + btnStart = add(new StartButton() { + @Override + public Match createMatch() { + return null; //TODO: Start match + } + }); } @Override protected void doLayout(float startY, float width, float height) { + height = btnStart.updateLayout(width, height); //update height to exclude area taken up by StartButton } } diff --git a/forge-m-base/src/forge/toolbox/StartButton.java b/forge-m-base/src/forge/toolbox/StartButton.java index dbf1673ba5a..d23f8f58c07 100644 --- a/forge-m-base/src/forge/toolbox/StartButton.java +++ b/forge-m-base/src/forge/toolbox/StartButton.java @@ -1,10 +1,14 @@ package forge.toolbox; +import forge.Forge; import forge.Forge.Graphics; import forge.assets.FSkinImage; +import forge.game.Match; +import forge.screens.match.MatchScreen; public abstract class StartButton extends FDisplayObject { private boolean pressed; + private boolean creatingMatch; /** * Instantiates a new FButton. @@ -12,7 +16,7 @@ public abstract class StartButton extends FDisplayObject { public StartButton() { } - public abstract void start(); + public abstract Match createMatch(); @Override public final boolean touchDown(float x, float y) { @@ -28,8 +32,12 @@ public abstract class StartButton extends FDisplayObject { @Override public final boolean tap(float x, float y, int count) { - if (count == 1) { - start(); + if (count == 1 && !creatingMatch) { + creatingMatch = true; //ensure user doesn't create multiple matches by tapping multiple times + Match match = createMatch(); + if (match != null) { + Forge.openScreen(new MatchScreen(match)); + } } return true; }