using System.Text.Json.Serialization; using KumiScript.Loader; using SDL2; namespace KumiScript.Renderer { public class Sprite : IDrawable { readonly SDLRenderer _renderer; readonly Image _image; SDL.SDL_Rect _drawCoords; readonly int _height; readonly int _width; readonly int _xOffset; readonly int _yOffset; public Sprite(string path, SDLRenderer renderer) { _renderer = renderer; _image = new Image(path, renderer); KSMetaParser parser = new KSMetaParser(string.Concat(path, ".ksmeta")); _height = parser.GetAttribute("height"); _width = parser.GetAttribute("width"); _xOffset = parser.GetAttribute("xOffset"); _yOffset = parser.GetAttribute("yOffset"); _drawCoords.w = _width; _drawCoords.h = _height; } public void Draw(int x, int y) { _drawCoords.x = x + _xOffset; _drawCoords.y = y + _yOffset; SDL.SDL_RenderCopy(_renderer.id, _image.GetTexture().id, 0, ref _drawCoords); } public int GetBitmapHeight() { return _height; } public int GetBitmapWidth() { return _width; } public int GetXOffset() { return _xOffset; } public int GetYOffset() { return _yOffset; } } }