Subversion Repositories AndroidProjects

Rev

Rev 1397 | Rev 1402 | 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 System.IO;

using BauzoidNET.graphics;
using BauzoidNET.graphics.sprite;

namespace ShapeEditor.file
{
    public class Document
    {
        private MainForm mOwner = null;

        private bool mIsDirty = false;
        private string mFilename = null;

        //private List<LevelElement> mLevelElements = new List<LevelElement>();

        private Sprite mSprite = null;

        private SpriteInstance mSpriteInstance = null;

        public Document(MainForm owner)
        {
            mOwner = owner;
        }

        public void Destroy()
        {
            DestroySprite();
        }

        public void DestroySprite()
        {
            if (mSprite != null)
            {
                mSprite.dispose();
                mSprite = null;
            }

            mSpriteInstance = null;
        }

        public bool NewDocument()
        {  
            Destroy();

            mIsDirty = false;

            ChangeSprite("data/textures/test.png");
           
            return true;
        }

        public bool LoadDocument(String filename)
        {
            Destroy();

            mIsDirty = false;
            mFilename = filename;

            // fill mLevelElements from file
            //return LevelUtil.LoadLevel(mFilename, mLevelElements);
            return false;
        }

        public bool SaveDocument()
        {
            // save mLevelElements
            return false;
            //return LevelUtil.SaveLevel(mFilename, mLevelElements);
        }

        public bool SaveDocument(string filename)
        {
            mFilename = filename;
            return SaveDocument();
        }

        public void ChangeSprite(string filename)
        {
            DestroySprite();

            string atlasFile = Path.ChangeExtension(filename, "txt");
            if (File.Exists(atlasFile))
            {
                mSprite = new Sprite(MainForm.App.getGraphics(), filename, atlasFile);
            }
            else
            {
                mSprite = new Sprite(MainForm.App.getGraphics(), filename);
            }
            mSprite.init();

            mSpriteInstance = mSprite.createSpriteInstanceForAll();
        }

        public void Render()
        {
            Graphics g = MainForm.App.getGraphics();

            if (mSpriteInstance != null)
            {
                mSpriteInstance.transform.x = MainForm.App.getGraphics().getWidth()/2;
                mSpriteInstance.transform.y = MainForm.App.getGraphics().getHeight()/2;
                mSpriteInstance.transform.w = 200;
                mSpriteInstance.transform.h = 200;
                mSpriteInstance.transform.centerPivot();
                mSpriteInstance.render();
            }
        }

        public void SetDirty(bool dirty)
        {
            mIsDirty = dirty;
        }

        public bool IsDirty()
        {
            return mIsDirty;
        }

        public String GetFilename()
        {
            return mFilename;
        }

        public void SetFilename(String filename)
        {
            mFilename = filename;
        }

        public bool IsFilenameSet()
        {
            return (mFilename != null);
        }

        public SpriteInstance GetSpriteInstance()
        {
            return mSpriteInstance;
        }
    }
}