u8 liquid_viscosity;
// Is liquid renewable (new liquid source will be created between 2 existing)
bool liquid_renewable;
- // Ice for water, water for ice
- std::string freezemelt;
// Number of flowing liquids surrounding source
u8 liquid_range;
u8 drowning;
class NodeResolver;
class INodeDefManager;
+struct NodeListInfo {
+ NodeListInfo(u32 len)
+ {
+ length = len;
+ all_required = false;
+ c_fallback = CONTENT_IGNORE;
+ }
+
+ NodeListInfo(u32 len, content_t fallback)
+ {
+ length = len;
+ all_required = true;
+ c_fallback = fallback;
+ }
+
+ u32 length;
+ bool all_required;
+ content_t c_fallback;
+};
+
struct NodeResolveInfo {
NodeResolveInfo(NodeResolver *nr)
{
}
std::list<std::string> nodenames;
- std::list<size_t> nodename_sizes;
+ std::list<NodeListInfo> nodelistinfo;
NodeResolver *resolver;
};
virtual void serialize(std::ostream &os, u16 protocol_version)=0;
+ virtual bool getNodeRegistrationStatus() const=0;
+ virtual void setNodeRegistrationStatus(bool completed)=0;
+
virtual void pendNodeResolve(NodeResolveInfo *nri)=0;
virtual void cancelNodeResolve(NodeResolver *resolver)=0;
virtual void runNodeResolverCallbacks()=0;
virtual void serialize(std::ostream &os, u16 protocol_version)=0;
virtual void deSerialize(std::istream &is)=0;
+ virtual bool getNodeRegistrationStatus() const=0;
+ virtual void setNodeRegistrationStatus(bool completed)=0;
+
virtual void pendNodeResolve(NodeResolveInfo *nri)=0;
virtual void cancelNodeResolve(NodeResolver *resolver)=0;
virtual void runNodeResolverCallbacks()=0;
m_ndef = NULL;
}
- ~NodeResolver()
+ virtual ~NodeResolver()
{
- if (!m_lookup_done)
+ if (!m_lookup_done && m_ndef)
m_ndef->cancelNodeResolve(this);
}