{
}
- bool operator==(const AtlasPointer &other)
+ bool operator==(const AtlasPointer &other) const
{
return (
id == other.id
);*/
}
+ bool operator!=(const AtlasPointer &other) const
+ {
+ return !(*this == other);
+ }
+
float x0(){ return pos.X; }
float x1(){ return pos.X + size.X; }
float y0(){ return pos.Y; }
float y1(){ return pos.Y + size.Y; }
};
-/*
- An internal variant of the former with more data.
-*/
-struct SourceAtlasPointer
-{
- std::string name;
- AtlasPointer a;
- video::IImage *atlas_img; // The source image of the atlas
- // Integer variants of position and size
- v2s32 intpos;
- v2u32 intsize;
-
- SourceAtlasPointer(
- const std::string &name_,
- AtlasPointer a_=AtlasPointer(0, NULL),
- video::IImage *atlas_img_=NULL,
- v2s32 intpos_=v2s32(0,0),
- v2u32 intsize_=v2u32(0,0)
- ):
- name(name_),
- a(a_),
- atlas_img(atlas_img_),
- intpos(intpos_),
- intsize(intsize_)
- {
- }
-};
-
/*
TextureSource creates and caches textures.
*/
{return AtlasPointer(0);}
virtual video::ITexture* getTextureRaw(const std::string &name)
{return NULL;}
+ virtual AtlasPointer getTextureRawAP(const AtlasPointer &ap)
+ {return AtlasPointer(0);}
+ virtual IrrlichtDevice* getDevice()
+ {return NULL;}
+ virtual void updateAP(AtlasPointer &ap){};
};
class IWritableTextureSource : public ITextureSource
{return AtlasPointer(0);}
virtual video::ITexture* getTextureRaw(const std::string &name)
{return NULL;}
+ virtual IrrlichtDevice* getDevice()
+ {return NULL;}
+ virtual void updateAP(AtlasPointer &ap){};
- virtual void updateAP(AtlasPointer &ap)=0;
- virtual void buildMainAtlas(class IGameDef *gamedef)=0;
virtual void processQueue()=0;
+ virtual void insertSourceImage(const std::string &name, video::IImage *img)=0;
+ virtual void rebuildImagesAndTextures()=0;
+ virtual void buildMainAtlas(class IGameDef *gamedef)=0;
};
IWritableTextureSource* createTextureSource(IrrlichtDevice *device);
};
// Material flags
+// Should backface culling be enabled?
#define MATERIAL_FLAG_BACKFACE_CULLING 0x01
+// Should a crack be drawn?
+#define MATERIAL_FLAG_CRACK 0x02
+// Should the crack be drawn on transparent pixels (unset) or not (set)?
+// Ignored if MATERIAL_FLAG_CRACK is not set.
+#define MATERIAL_FLAG_CRACK_OVERLAY 0x04
/*
This fully defines the looks of a tile.
{
}
- bool operator==(TileSpec &other)
+ bool operator==(const TileSpec &other) const
{
return (
texture == other.texture &&
material_flags == other.material_flags
);
}
+
+ bool operator!=(const TileSpec &other) const
+ {
+ return !(*this == other);
+ }
// Sets everything else except the texture in the material
void applyMaterialOptions(video::SMaterial &material) const