Subversion Repositories AndroidProjects

Rev

Rev 1310 | Rev 1436 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using BauzoidNET.parser;
using BauzoidNET.graphics.sprite;
using BauzoidNET.math;

namespace BurutaruEditor.file.elements
{
    public abstract class LevelElement
    {
        private float mSpawnAt = 0.0f;
        private int mLayer = 0;

        public LevelElement()
        {
        }

        public virtual bool ReadParameter(Tokenizer t, String id)
        {
            if (id.Equals("spawnAt", StringComparison.OrdinalIgnoreCase))
            {
                mSpawnAt = t.readNumber();
            }
            else
            {
                return false;
            }

            t.readToken(";");
            return true;
        }
               
        /** Parse sprite transform parameters (position, size, etc.), returns true if id is a sprite transform parameter. */
        public bool parseSpriteTransform(Tokenizer t, String id, SpriteTransform transform)
            {
                    if (id.Equals("position", StringComparison.OrdinalIgnoreCase))
                    {
                            Vector2 position = ParseUtil.readVector2(t);
                            transform.x = position.x;
                            transform.y = position.y;
                    }
                    // scale
                    else if (id.Equals("size", StringComparison.OrdinalIgnoreCase))
                    {
                            Vector2 size = ParseUtil.readVector2(t);
                            transform.w = size.x;
                            transform.h = size.y;
                    }
                    // angle
                    else if (id.Equals("angle", StringComparison.OrdinalIgnoreCase))
                    {
                            transform.angle = t.readNumber();
                    }
                    // pivot
                    else if (id.Equals("pivot", StringComparison.OrdinalIgnoreCase))
                    {
                            Vector2 pivot = ParseUtil.readVector2(t);
                            transform.pivotX = pivot.x;
                            transform.pivotY = pivot.y;
                    }
                    // layer
                    else if (id.Equals("layer", StringComparison.OrdinalIgnoreCase))
                    {
                mLayer = (int)t.readNumber();
                    }
                    else
                    {
                            // unknown id
                            return false;
                    }
       
                    return true;
            }
    }
}