diff options
author | 12xx12 <44411062+12xx12@users.noreply.github.com> | 2021-04-08 12:18:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-08 12:18:18 +0200 |
commit | d78bcac15035ddd096df6187a36e630071cba5c4 (patch) | |
tree | e7100a5f13c94b36cccdcaeb149e72ca8c6f41b9 /src/Generating/EnderDragonFightStructuresGen.h | |
parent | Teleport off of mount when throwing enderpearl (#5179) (diff) | |
download | cuberite-d78bcac15035ddd096df6187a36e630071cba5c4.tar cuberite-d78bcac15035ddd096df6187a36e630071cba5c4.tar.gz cuberite-d78bcac15035ddd096df6187a36e630071cba5c4.tar.bz2 cuberite-d78bcac15035ddd096df6187a36e630071cba5c4.tar.lz cuberite-d78bcac15035ddd096df6187a36e630071cba5c4.tar.xz cuberite-d78bcac15035ddd096df6187a36e630071cba5c4.tar.zst cuberite-d78bcac15035ddd096df6187a36e630071cba5c4.zip |
Diffstat (limited to 'src/Generating/EnderDragonFightStructuresGen.h')
-rw-r--r-- | src/Generating/EnderDragonFightStructuresGen.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Generating/EnderDragonFightStructuresGen.h b/src/Generating/EnderDragonFightStructuresGen.h new file mode 100644 index 000000000..be6b2506e --- /dev/null +++ b/src/Generating/EnderDragonFightStructuresGen.h @@ -0,0 +1,38 @@ + +#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); +}; |