1
0
Fork 0
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:
kwolekr 2014-12-17 03:20:17 -05:00
parent 3ea5ed4ffe
commit b67f37f27e
16 changed files with 278 additions and 364 deletions

View file

@ -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();
};