/** GDevelop - Tile Map Extension Copyright (c) 2014-2016 Victor Levasseur (victorlevasseur52@gmail.com) This project is released under the MIT License. */ #ifndef TILEMAPOBJECT_H #define TILEMAPOBJECT_H #include "GDCpp/Runtime/Project/Object.h" #include "GDCpp/Runtime/RuntimeObject.h" #include "GDCpp/Runtime/Polygon2d.h" #include #include #include "TileMapProxies.h" class SFMLTextureWrapper; class RuntimeScene; namespace gd { class ImageManager; } namespace gd { class InitialInstance; } #if defined(GD_IDE_ONLY) namespace gd { class Project; } namespace gd { class MainFrameWrapper; } class wxBitmap; class wxWindow; #endif /** * TileMap Object */ class GD_EXTENSION_API TileMapObject : public gd::Object { public : TileMapObject(gd::String name_); virtual ~TileMapObject() {}; virtual std::unique_ptr Clone() const { return gd::make_unique(*this); } #if defined(GD_IDE_ONLY) virtual bool GenerateThumbnail(const gd::Project & project, wxBitmap & thumbnail) const; virtual void ExposeResources(gd::ArbitraryResourceWorker & worker); virtual void EditObject( wxWindow* parent, gd::Project & game_, gd::MainFrameWrapper & mainFrameWrapper_ ); virtual void LoadResources(gd::Project & project, gd::Layout & layout); virtual void DrawInitialInstance(gd::InitialInstance & instance, sf::RenderTarget & renderTarget, gd::Project & project, gd::Layout & layout); virtual sf::Vector2f GetInitialInstanceDefaultSize(gd::InitialInstance & instance, gd::Project & project, gd::Layout & layout) const; #endif virtual float GetWidth() const; virtual float GetHeight() const; virtual void SetWidth(float newWidth) {}; virtual void SetHeight(float newHeight) {}; TileSetProxy tileSet; TileMapProxy tileMap; gd::String textureName; private: virtual void DoUnserializeFrom(gd::Project & project, const gd::SerializerElement & element); #if defined(GD_IDE_ONLY) virtual void DoSerializeTo(gd::SerializerElement & element) const; #endif sf::VertexArray vertexArray; }; #endif // TILEDSPRITEOBJECT_H