From 0119e329c14b4bb66b27cd1b6e93513dd9c907eb Mon Sep 17 00:00:00 2001 From: drdev Date: Fri, 7 Mar 2014 22:41:27 +0000 Subject: [PATCH] Add basic field layout --- .gitattributes | 1 + .../src/forge/screens/match/views/VField.java | 41 +++++++++++++++---- .../src/forge/screens/match/views/VStack.java | 3 +- .../src/forge/toolbox/FCardPanel.java | 20 +++++++++ forge-m-base/src/forge/utils/Utils.java | 2 - 5 files changed, 57 insertions(+), 10 deletions(-) create mode 100644 forge-m-base/src/forge/toolbox/FCardPanel.java diff --git a/.gitattributes b/.gitattributes index 9587e1e4023..fd9dceeb008 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16038,6 +16038,7 @@ 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 forge-m-base/src/forge/toolbox/FButton.java -text +forge-m-base/src/forge/toolbox/FCardPanel.java -text forge-m-base/src/forge/toolbox/FContainer.java -text forge-m-base/src/forge/toolbox/FDisplayObject.java -text forge-m-base/src/forge/toolbox/FGestureAdapter.java -text diff --git a/forge-m-base/src/forge/screens/match/views/VField.java b/forge-m-base/src/forge/screens/match/views/VField.java index 61e8ef22767..beb33a83a76 100644 --- a/forge-m-base/src/forge/screens/match/views/VField.java +++ b/forge-m-base/src/forge/screens/match/views/VField.java @@ -1,14 +1,27 @@ package forge.screens.match.views; +import java.util.ArrayList; +import java.util.List; + import forge.Forge.Graphics; import forge.assets.FSkinTexture; +import forge.toolbox.FCardPanel; import forge.toolbox.FContainer; +import forge.toolbox.FScrollPane; -public class VField extends FContainer { - +public class VField extends FScrollPane { private boolean flipped; + private final List creatures = new ArrayList(); + private final List lands = new ArrayList(); + private final List otherPermanents = new ArrayList(); + public VField() { + for (int i = 0; i < 7; i++) { + creatures.add(add(new FCardPanel())); + lands.add(add(new FCardPanel())); + otherPermanents.add(add(new FCardPanel())); + } } public boolean isFlipped() { @@ -20,11 +33,25 @@ public class VField extends FContainer { @Override protected void doLayout(float width, float height) { - // TODO Auto-generated method stub - - } + float x = 0; + float y = 0; + float cardSize = height / 3; - @Override - protected void drawBackground(Graphics g) { + for (FCardPanel cardPanel : creatures) { + cardPanel.setBounds(x, y, cardSize, cardSize); + x += cardSize; + } + x = 0; + y += cardSize; + for (FCardPanel cardPanel : lands) { + cardPanel.setBounds(x, y, cardSize, cardSize); + x += cardSize; + } + x = 0; + y += cardSize; + for (FCardPanel cardPanel : otherPermanents) { //TODO: Move to right of lands right-aligned if enough room + cardPanel.setBounds(x, y, cardSize, cardSize); + x += cardSize; + } } } diff --git a/forge-m-base/src/forge/screens/match/views/VStack.java b/forge-m-base/src/forge/screens/match/views/VStack.java index 6dad38fe2af..45de9fbf67f 100644 --- a/forge-m-base/src/forge/screens/match/views/VStack.java +++ b/forge-m-base/src/forge/screens/match/views/VStack.java @@ -1,12 +1,13 @@ package forge.screens.match.views; import forge.Forge.Graphics; +import forge.toolbox.FCardPanel; import forge.toolbox.FContainer; import forge.utils.Utils; public class VStack extends FContainer { public static final float WIDTH = Utils.AVG_FINGER_WIDTH; - public static final float HEIGHT = WIDTH * Utils.CARD_ASPECT_RATIO; + public static final float HEIGHT = WIDTH * FCardPanel.ASPECT_RATIO; public VStack() { setSize(WIDTH, HEIGHT); diff --git a/forge-m-base/src/forge/toolbox/FCardPanel.java b/forge-m-base/src/forge/toolbox/FCardPanel.java new file mode 100644 index 00000000000..36484feb408 --- /dev/null +++ b/forge-m-base/src/forge/toolbox/FCardPanel.java @@ -0,0 +1,20 @@ +package forge.toolbox; + +import com.badlogic.gdx.graphics.Color; + +import forge.Forge.Graphics; + +public class FCardPanel extends FDisplayObject { + public final static float ASPECT_RATIO = 3.5f / 2.5f; + private static final float PADDING = 3; //scale to leave vertical space between + + @Override + public void draw(Graphics g) { + float y = PADDING; + float h = getHeight() - 2 * y; + float w = h / ASPECT_RATIO; + float x = (getWidth() - w) / 2; + + g.fillRect(Color.BLUE, x, y, w, h); + } +} diff --git a/forge-m-base/src/forge/utils/Utils.java b/forge-m-base/src/forge/utils/Utils.java index 9f657acbb3e..40732719f19 100644 --- a/forge-m-base/src/forge/utils/Utils.java +++ b/forge-m-base/src/forge/utils/Utils.java @@ -19,8 +19,6 @@ public class Utils { public final static float AVG_FINGER_WIDTH = Math.round(cmToPixelsX(AVG_FINGER_SIZE_CM)); //round to nearest int to reduce floating point display issues public final static float AVG_FINGER_HEIGHT = Math.round(cmToPixelsY(AVG_FINGER_SIZE_CM)); - public final static float CARD_ASPECT_RATIO = 3.5f / 2.5f; - public static float cmToPixelsX(float cm) { return ppcX * cm; }