39 lines
871 B
C
39 lines
871 B
C
|
|
||
|
#pragma once
|
||
|
|
||
|
/*
|
||
|
https://minecraft.gamepedia.com/End_spike
|
||
|
https://minecraft.gamepedia.com/End_Crystal
|
||
|
https://minecraft.gamepedia.com/Ender_Dragon
|
||
|
*/
|
||
|
|
||
|
#include "FinishGen.h"
|
||
|
|
||
|
class cEnderDragonFightStructuresGen :
|
||
|
public cFinishGen
|
||
|
{
|
||
|
public:
|
||
|
cEnderDragonFightStructuresGen(int a_Seed);
|
||
|
void Init(const AString & a_TowerProperties, int a_Radius);
|
||
|
|
||
|
protected:
|
||
|
struct sTowerProperties
|
||
|
{
|
||
|
Vector3i m_Pos;
|
||
|
int m_Height;
|
||
|
int m_Radius;
|
||
|
bool m_HasCage;
|
||
|
};
|
||
|
|
||
|
cNoise m_Noise;
|
||
|
std::map<cChunkCoords, std::vector<sTowerProperties>> m_TowerPos;
|
||
|
static const std::array<Vector3i, 48> m_CagePos;
|
||
|
static const std::array<Vector3i, 26> m_CageAir;
|
||
|
cBlockArea m_Fountain;
|
||
|
|
||
|
int m_MinX = -1, m_MaxX = 1, m_MinZ = -1, m_MaxZ = 1;
|
||
|
|
||
|
void GenFinish(cChunkDesc &a_ChunkDesc) override;
|
||
|
void PlaceTower(cChunkDesc & a_ChunkDesc, const sTowerProperties & a_TowerProperties);
|
||
|
};
|