protected override void Draw()
        {
            base.Draw();
            //camera matrix moves translates world space in relation to camera position
            Matrix cameraMatrix = Matrix.CreateTranslation(CameraLocation);
            //zoom matrix scales up everything in world space
            Matrix zoomMatrix = Matrix.CreateScale(ZoomLevel);
            //center matrix repositions camera within zoomed space
            Matrix centerMatrix    = Matrix.CreateTranslation(new Vector3(centerPoint, 0));
            Matrix transformMatrix = cameraMatrix * zoomMatrix * centerMatrix;

            Editor.graphics.Clear(background);

            Editor.spriteBatch.Begin();
            DrawGrid();
            Editor.spriteBatch.End();

            if (ZoomLevel >= 1)
            {
                Editor.spriteBatch.Begin(samplerState: SamplerState.PointClamp, transformMatrix: transformMatrix);
            }
            else
            {
                Editor.spriteBatch.Begin(transformMatrix: transformMatrix);
            }
            PreviewSprite?.Draw(Editor.spriteBatch, SpriteSheet, Vector2.Zero, Color.White);

            Editor.spriteBatch.End();
        }
        protected override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
            MouseControl();

            if (Playing && PreviewSprite != null)
            {
                if (!PreviewSprite.CurrentAnimation.IsLooping && PreviewSprite.CurrentFrameIndex == PreviewSprite.CurrentAnimation.Frames.Count() - 1)
                {
                    OnAnimationEnded(new EventArgs());
                }
                else
                {
                    PreviewSprite.Update(gameTime);
                    OnFrameChanged(new EventArgs());
                }
            }
        }