2026-03-01 12:16:08 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
class Level;
|
|
|
|
|
|
|
|
|
|
class Feature
|
|
|
|
|
{
|
|
|
|
|
private:
|
|
|
|
|
bool doUpdate;
|
|
|
|
|
public:
|
|
|
|
|
Feature();
|
|
|
|
|
Feature(bool doUpdate);
|
|
|
|
|
virtual ~Feature() {};
|
|
|
|
|
|
|
|
|
|
virtual bool place(Level *level, Random *random, int x, int y, int z) = 0;
|
|
|
|
|
virtual bool placeWithIndex(Level *level, Random *random, int x, int y, int z,int iIndex, int iRadius) { return false;}
|
|
|
|
|
virtual void init(double V1, double V2, double V3) {};
|
2026-03-03 03:04:10 +08:00
|
|
|
virtual void applyFeature(Level *level, Random *random, int xChunk, int zChunk);
|
|
|
|
|
|
2026-03-01 12:16:08 +08:00
|
|
|
protected:
|
|
|
|
|
virtual void placeBlock(Level *level, int x, int y, int z, int tile);
|
|
|
|
|
virtual void placeBlock(Level *level, int x, int y, int z, int tile, int data);
|
|
|
|
|
};
|