From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.World/ScatteredFeaturePieces.h | 67 ++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Minecraft.World/ScatteredFeaturePieces.h (limited to 'Minecraft.World/ScatteredFeaturePieces.h') 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 -- cgit v1.2.3