Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 835 | chris | 1 | package com.gebauz.bauzoid.menu; |
| 2 | |||
| 3 | import com.gebauz.bauzoid.game.Game; |
||
| 4 | import com.gebauz.bauzoid.math.Rect; |
||
| 5 | import com.gebauz.bauzoid.parser.ScanException; |
||
| 6 | import com.gebauz.bauzoid.parser.Tokenizer; |
||
| 7 | |||
| 8 | public class Frame extends ImageBase |
||
| 9 | { |
||
| 10 | // Constants======================================================================================== |
||
| 11 | |||
| 12 | // Embedded========================================================================================= |
||
| 13 | |||
| 14 | // Fields=========================================================================================== |
||
| 15 | |||
| 16 | private boolean mShowCenter = false; |
||
| 17 | private boolean mIsOuterFrame = false; |
||
| 18 | private Rect mInnerOffset = null; |
||
| 19 | |||
| 20 | private FrameElement mFrame = null; |
||
| 21 | |||
| 22 | // Methods========================================================================================== |
||
| 23 | public Frame(Game game, Menu parent, String name) |
||
| 24 | { |
||
| 25 | super(game, parent, name); |
||
| 26 | } |
||
| 27 | |||
| 28 | @Override |
||
| 29 | public void init() |
||
| 30 | { |
||
| 31 | mFrame = new FrameElement(getParent().getGame()); |
||
| 32 | if (mIsOuterFrame) |
||
| 33 | { |
||
| 34 | if (mInnerOffset == null) |
||
| 35 | { |
||
| 36 | mFrame.setInnerOffset(new Rect(FrameElement.LEFT_OFFSET_, FrameElement.TOP_OFFSET_, |
||
| 37 | FrameElement.RIGHT_OFFSET_, FrameElement.BOTTOM_OFFSET_)); |
||
| 38 | } |
||
| 39 | else |
||
| 40 | { |
||
| 41 | mFrame.setInnerOffset(mInnerOffset); |
||
| 42 | } |
||
| 43 | } |
||
| 44 | else |
||
| 45 | { |
||
| 46 | mFrame.setInnerOffset(new Rect(FrameElement.CELL_SIZE, FrameElement.CELL_SIZE, FrameElement.CELL_SIZE, FrameElement.CELL_SIZE)); |
||
| 47 | } |
||
| 48 | |||
| 49 | //mFrame.init(new Texture(Gdx.files.internal(getTextureName())), mShowCenter); |
||
| 50 | mFrame.init(getTextureName(), mShowCenter); |
||
| 51 | setFrameProperties(mFrame, this); |
||
| 52 | } |
||
| 53 | |||
| 54 | @Override |
||
| 55 | public void exit() |
||
| 56 | { |
||
| 57 | if (mFrame != null) |
||
| 58 | { |
||
| 59 | mFrame.exit(); |
||
| 60 | mFrame = null; |
||
| 61 | } |
||
| 62 | } |
||
| 63 | |||
| 64 | @Override |
||
| 65 | public void update(float deltaTime) |
||
| 66 | { |
||
| 67 | setFrameProperties(mFrame, this); |
||
| 68 | mFrame.update(deltaTime); |
||
| 69 | } |
||
| 70 | |||
| 71 | @Override |
||
| 72 | public void render() |
||
| 73 | { |
||
| 74 | mFrame.render(); |
||
| 75 | } |
||
| 76 | |||
| 77 | @Override |
||
| 78 | public boolean parseLine(String identifier, Tokenizer tokenizer) |
||
| 79 | throws ScanException |
||
| 80 | { |
||
| 81 | if (identifier.equalsIgnoreCase("showCenter")) |
||
| 82 | { |
||
| 83 | mShowCenter = MenuUtil.parseBool(tokenizer); |
||
| 84 | } |
||
| 85 | else if (identifier.equalsIgnoreCase("outerFrame")) |
||
| 86 | { |
||
| 87 | mIsOuterFrame = MenuUtil.parseBool(tokenizer); |
||
| 88 | } |
||
| 89 | else if (identifier.equalsIgnoreCase("innerOffset")) |
||
| 90 | { |
||
| 91 | mInnerOffset = new Rect(MenuUtil.parseVector4(tokenizer)); |
||
| 92 | } |
||
| 93 | else |
||
| 94 | { |
||
| 95 | return super.parseLine(identifier, tokenizer); |
||
| 96 | } |
||
| 97 | return true; |
||
| 98 | } |
||
| 99 | |||
| 100 | public static void setFrameProperties(FrameElement frame, MenuItem item) |
||
| 101 | { |
||
| 102 | frame.x = item.getLeft(); |
||
| 103 | frame.y = item.getTop(); |
||
| 104 | frame.w = item.getWidth(); |
||
| 105 | frame.h = item.getHeight(); |
||
| 106 | //frame.alpha = item.getColor().w; |
||
| 107 | frame.color = item.getColor(); |
||
| 108 | } |
||
| 109 | // Getters/Setters================================================================================== |
||
| 110 | |||
| 111 | } |