#pragma once #include "cCell.h" #include "olcPixelGameEngine.h" #include "olcPGEX_Graphics3D.h" #include <map> enum CELL_PLANE { PLANE_GRASS, PLANE_ASPHALT }; class cCell_Plane : public cCell { public: cCell_Plane(cCityMap* map, int x, int y, CELL_PLANE type); ~cCell_Plane(); protected: CELL_PLANE nType = PLANE_GRASS; private: olc::GFX3D::mesh* meshUnitQuad = nullptr; olc::Sprite* sprGrass = nullptr; olc::Sprite* sprPavement = nullptr; public: virtual bool LinkAssets(std::map<std::string, olc::Sprite*> &mapTextures, std::map<std::string, olc::GFX3D::mesh*> &mapMesh, std::map<std::string, olc::GFX3D::mat4x4> &mapTransforms); virtual bool Update(float fElapsedTime); virtual bool DrawBase(olc::PixelGameEngine *pge, olc::GFX3D::PipeLine &pipe); virtual bool DrawAlpha(olc::PixelGameEngine *pge, olc::GFX3D::PipeLine &pipe); };