#include <iostream>
#include <map>
#include <list>
+#include "util/numeric.h"
#include "mapnode.h"
#ifndef SERVER
#include "client/tile.h"
CPT2_WALLMOUNTED,
// Block level like FLOWINGLIQUID
CPT2_LEVELED,
+ // 2D rotation for things like plants
+ CPT2_DEGROTATE,
};
enum LiquidType
{
std::string name;
bool backface_culling; // Takes effect only in special cases
+ bool tileable_horizontal;
+ bool tileable_vertical;
struct{
enum TileAnimationType type;
int aspect_w; // width for aspect ratio
{
name = "";
backface_culling = true;
+ tileable_horizontal = true;
+ tileable_vertical = true;
animation.type = TAT_NONE;
animation.aspect_w = 1;
animation.aspect_h = 1;
std::string mesh;
#ifndef SERVER
scene::IMesh *mesh_ptr[24];
+ video::SColor minimap_color;
#endif
float visual_scale; // Misc. scale parameter
TileDef tiledef[6];
// Post effect color, drawn when the camera is inside the node.
video::SColor post_effect_color;
+
// Type of MapNode::param1
ContentParamType param_type;
// Type of MapNode::param2
}
};
-enum NodeResolveMethod {
- NODE_RESOLVE_NONE,
- NODE_RESOLVE_DIRECT,
- NODE_RESOLVE_DEFERRED,
-};
-
class INodeDefManager {
public:
INodeDefManager(){}
virtual bool getNodeRegistrationStatus() const=0;
- virtual void pendNodeResolve(NodeResolver *nr, NodeResolveMethod how)=0;
+ virtual void pendNodeResolve(NodeResolver *nr)=0;
virtual bool cancelNodeResolveCallback(NodeResolver *nr)=0;
};
*/
virtual void updateAliases(IItemDefManager *idef)=0;
+ /*
+ Override textures from servers with ones specified in texturepack/override.txt
+ */
+ virtual void applyTextureOverrides(const std::string &override_filepath)=0;
+
/*
Update tile textures to latest return values of TextueSource.
*/
virtual bool getNodeRegistrationStatus() const=0;
virtual void setNodeRegistrationStatus(bool completed)=0;
- virtual void pendNodeResolve(NodeResolver *nr, NodeResolveMethod how)=0;
+ virtual void pendNodeResolve(NodeResolver *nr)=0;
virtual bool cancelNodeResolveCallback(NodeResolver *nr)=0;
virtual void runNodeResolveCallbacks()=0;
virtual void resetNodeResolveState()=0;
const std::string &node_alt, content_t c_fallback);
bool getIdsFromNrBacklog(std::vector<content_t> *result_out,
bool all_required=false, content_t c_fallback=CONTENT_IGNORE);
- const std::string &getNodeName(content_t c) const;
void nodeResolveInternal();
};
#endif
-