mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-18 10:45:27 +02:00
Redefine NodeResolver interface and replace with callback mechanism
This commit is contained in:
@@ -58,7 +58,7 @@ struct CutoffData {
|
||||
};
|
||||
#endif
|
||||
|
||||
class Decoration : public GenElement {
|
||||
class Decoration : public GenElement, public NodeResolver {
|
||||
public:
|
||||
INodeDefManager *ndef;
|
||||
|
||||
@@ -76,12 +76,13 @@ public:
|
||||
Decoration();
|
||||
virtual ~Decoration();
|
||||
|
||||
virtual void resolveNodeNames(NodeResolveInfo *nri);
|
||||
|
||||
size_t placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
|
||||
size_t placeCutoffs(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
|
||||
|
||||
virtual size_t generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, v3s16 p) = 0;
|
||||
virtual int getHeight() = 0;
|
||||
virtual void dropResolverEntries(NodeResolver *resolver) {}
|
||||
};
|
||||
|
||||
class DecoSimple : public Decoration {
|
||||
@@ -92,12 +93,11 @@ public:
|
||||
s16 deco_height_max;
|
||||
s16 nspawnby;
|
||||
|
||||
~DecoSimple() {}
|
||||
virtual void resolveNodeNames(NodeResolveInfo *nri);
|
||||
|
||||
bool canPlaceDecoration(ManualMapVoxelManipulator *vm, v3s16 p);
|
||||
virtual size_t generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, v3s16 p);
|
||||
virtual int getHeight();
|
||||
virtual void dropResolverEntries(NodeResolver *resolver);
|
||||
};
|
||||
|
||||
class DecoSchematic : public Decoration {
|
||||
@@ -106,8 +106,6 @@ public:
|
||||
Schematic *schematic;
|
||||
std::string filename;
|
||||
|
||||
~DecoSchematic() {}
|
||||
|
||||
virtual size_t generate(Mapgen *mg, PseudoRandom *pr, s16 max_y, v3s16 p);
|
||||
virtual int getHeight();
|
||||
};
|
||||
|
Reference in New Issue
Block a user