mirror of
https://github.com/luanti-org/luanti.git
synced 2025-07-27 17:28:41 +00:00
Redefine NodeResolver interface and replace with callback mechanism
This commit is contained in:
parent
3ea5ed4ffe
commit
b67f37f27e
16 changed files with 278 additions and 364 deletions
|
@ -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();
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue