#include <IrrlichtDevice.h>
#include "threads.h"
#include <string>
+#include <map>
class IGameDef;
virtual bool isKnownSourceImage(const std::string &name)=0;
virtual video::ITexture* generateTextureFromMesh(
const TextureFromMeshParams ¶ms)=0;
+ virtual video::ITexture* getNormalTexture(const std::string &name)=0;
};
class IWritableTextureSource : public ITextureSource
virtual void processQueue()=0;
virtual void insertSourceImage(const std::string &name, video::IImage *img)=0;
virtual void rebuildImagesAndTextures()=0;
+ virtual video::ITexture* getNormalTexture(const std::string &name)=0;
};
IWritableTextureSource* createTextureSource(IrrlichtDevice *device);
This fully defines the looks of a tile.
The SMaterial of a tile is constructed according to this.
*/
+struct FrameSpec
+{
+ FrameSpec():
+ texture_id(0),
+ texture(NULL),
+ normal_texture(NULL)
+ {
+ }
+ u32 texture_id;
+ video::ITexture *texture;
+ video::ITexture *normal_texture;
+};
+
struct TileSpec
{
TileSpec():
texture_id(0),
texture(NULL),
+ normal_texture(NULL),
alpha(255),
material_type(TILE_MATERIAL_BASIC),
material_flags(
u32 texture_id;
video::ITexture *texture;
+ video::ITexture *normal_texture;
+
// Vertex alpha (when MATERIAL_ALPHA_VERTEX is used)
u8 alpha;
// Material parameters
// Animation parameters
u8 animation_frame_count;
u16 animation_frame_length_ms;
+ std::map<u32, FrameSpec> frames;
+
u8 rotation;
};