summaryrefslogtreecommitdiffstats
path: root/src/Generating/EnderDragonFightStructuresGen.h
diff options
context:
space:
mode:
author12xx12 <44411062+12xx12@users.noreply.github.com>2021-04-08 12:18:18 +0200
committerGitHub <noreply@github.com>2021-04-08 12:18:18 +0200
commitd78bcac15035ddd096df6187a36e630071cba5c4 (patch)
treee7100a5f13c94b36cccdcaeb149e72ca8c6f41b9 /src/Generating/EnderDragonFightStructuresGen.h
parentTeleport off of mount when throwing enderpearl (#5179) (diff)
downloadcuberite-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 '')
-rw-r--r--src/Generating/EnderDragonFightStructuresGen.h38
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);
+};