Files
2026-05-14 19:16:33 -04:00

47 lines
1.0 KiB
C++

#pragma once
class StructurePiece;
class BoundingBox;
#include "StructureFeatureIO.h"
class StructureStart
{
public:
list<StructurePiece *> pieces;
protected:
BoundingBox *boundingBox;
private:
int chunkX, chunkZ;
bool dirty;
public:
StructureStart();
StructureStart(int x, int z);
~StructureStart();
BoundingBox *getBoundingBox();
list<StructurePiece *> *getPieces();
void postProcess(Level *level, Random *random, BoundingBox *chunkBB);
protected:
void calculateBoundingBox();
public:
virtual byteArray createTag(int chunkX, int chunkZ);
virtual void addAdditionalSaveData(DataOutputStream *dos);
virtual void load(Level *level, DataInputStream *dis);
virtual void readAdditonalSaveData(DataInputStream *dis);
protected:
void moveBelowSeaLevel(Level *level, Random *random, int offset);
void moveInsideHeights(Level *level, Random *random, int lowestAllowed, int highestAllowed);
public:
bool isValid();
int getChunkX();
int getChunkZ();
void clearDirty();
bool isDirty();
virtual EStructureStart GetType() = 0;
};