diff options
| author | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
|---|---|---|
| committer | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
| commit | b691c43c44ff180d10e7d4a9afc83b98551ff586 (patch) | |
| tree | 3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.World/ScatteredFeaturePieces.h | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.World/ScatteredFeaturePieces.h')
| -rw-r--r-- | Minecraft.World/ScatteredFeaturePieces.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/Minecraft.World/ScatteredFeaturePieces.h b/Minecraft.World/ScatteredFeaturePieces.h new file mode 100644 index 00000000..08ab92ba --- /dev/null +++ b/Minecraft.World/ScatteredFeaturePieces.h @@ -0,0 +1,67 @@ +#pragma once + +#include "StructurePiece.h" + +class ScatteredFeaturePieces +{ +private: + class ScatteredFeaturePiece : public StructurePiece + { + protected: + int width; + int height; + int depth; + + int heightPosition; + + ScatteredFeaturePiece(Random *random, int west, int floor, int north, int width, int height, int depth); + + bool updateAverageGroundHeight(Level *level, BoundingBox *chunkBB, int offset); + }; + +public: + class DesertPyramidPiece : public ScatteredFeaturePiece + { + public: + static const int TREASURE_ITEMS_COUNT = 6; + private: + bool hasPlacedChest[4]; + static WeighedTreasure *treasureItems[TREASURE_ITEMS_COUNT]; + + public: + DesertPyramidPiece(Random *random, int west, int north); + + bool postProcess(Level *level, Random *random, BoundingBox *chunkBB); + + }; + + class JunglePyramidPiece : public ScatteredFeaturePiece + { + public: + static const int TREASURE_ITEMS_COUNT = 6; + static const int DISPENSER_ITEMS_COUNT = 1; + private: + bool placedMainChest; + bool placedHiddenChest; + bool placedTrap1; + bool placedTrap2; + + static WeighedTreasure *treasureItems[TREASURE_ITEMS_COUNT]; + static WeighedTreasure *dispenserItems[DISPENSER_ITEMS_COUNT]; + + public: + JunglePyramidPiece(Random *random, int west, int north); + + bool postProcess(Level *level, Random *random, BoundingBox *chunkBB); + + private: + class MossStoneSelector : public BlockSelector + { + public: + void next(Random *random, int worldX, int worldY, int worldZ, bool isEdge); + }; + + static MossStoneSelector stoneSelector; + + }; +};
\ No newline at end of file |
