Subversion Repositories AndroidProjects

Rev

Blame | Last modification | View Log | RSS feed

package com.gebauz.bauzoid.menu;

import com.gebauz.bauzoid.game.Game;
import com.gebauz.bauzoid.math.Rect;
import com.gebauz.bauzoid.parser.ScanException;
import com.gebauz.bauzoid.parser.Tokenizer;

public class Frame extends ImageBase
{
        // Constants========================================================================================
       
        // Embedded=========================================================================================

        // Fields===========================================================================================

        private boolean mShowCenter = false;
        private boolean mIsOuterFrame = false;
        private Rect mInnerOffset = null;

        private FrameElement mFrame = null;

        // Methods==========================================================================================
        public Frame(Game game, Menu parent, String name)
        {
                super(game, parent, name);
        }

        @Override
        public void init()
        {
                mFrame = new FrameElement(getParent().getGame());
                if (mIsOuterFrame)
                {
                        if (mInnerOffset == null)
                        {
                                mFrame.setInnerOffset(new Rect(FrameElement.LEFT_OFFSET_, FrameElement.TOP_OFFSET_,
                                                FrameElement.RIGHT_OFFSET_, FrameElement.BOTTOM_OFFSET_));
                        }
                        else
                        {
                                mFrame.setInnerOffset(mInnerOffset);
                        }
                }
                else
                {
                        mFrame.setInnerOffset(new Rect(FrameElement.CELL_SIZE, FrameElement.CELL_SIZE, FrameElement.CELL_SIZE, FrameElement.CELL_SIZE));
                }

                //mFrame.init(new Texture(Gdx.files.internal(getTextureName())), mShowCenter);
                mFrame.init(getTextureName(), mShowCenter);
                setFrameProperties(mFrame, this);
        }

        @Override
        public void exit()
        {
                if (mFrame != null)
                {
                        mFrame.exit();
                        mFrame = null;
                }
        }

        @Override
        public void update(float deltaTime)
        {
                setFrameProperties(mFrame, this);
                mFrame.update(deltaTime);
        }

        @Override
        public void render()
        {
                mFrame.render();
        }

        @Override
        public boolean parseLine(String identifier, Tokenizer tokenizer)
                        throws ScanException
        {
                if (identifier.equalsIgnoreCase("showCenter"))
                {
                        mShowCenter = MenuUtil.parseBool(tokenizer);
                }
                else if (identifier.equalsIgnoreCase("outerFrame"))
                {
                        mIsOuterFrame = MenuUtil.parseBool(tokenizer);
                }
                else if (identifier.equalsIgnoreCase("innerOffset"))
                {
                        mInnerOffset = new Rect(MenuUtil.parseVector4(tokenizer));
                }
                else
                {
                        return super.parseLine(identifier, tokenizer);
                }
                return true;
        }

        public static void setFrameProperties(FrameElement frame, MenuItem item)
        {
                frame.x = item.getLeft();
                frame.y = item.getTop();
                frame.w = item.getWidth();
                frame.h = item.getHeight();
                //frame.alpha = item.getColor().w;
                frame.color = item.getColor();
        }
        // Getters/Setters==================================================================================

}