mirror of
https://github.com/Minecraft-Community-Edition/client.git
synced 2026-05-23 17:44:34 +00:00
29 lines
959 B
C++
29 lines
959 B
C++
#pragma once
|
|
#include "Feature.h"
|
|
|
|
class AerCloudFeature : public Feature
|
|
{
|
|
public:
|
|
// tileId: which aercloud tile to place (aercloud, gold, blue)
|
|
// minRadius/maxRadius: horizontal radius range for the cloud blob
|
|
// minHeight/maxHeight: vertical thickness range
|
|
// islandBottom: if true, generates large clouds at island undersides; if false, generates floating sky clouds
|
|
AerCloudFeature(int tileId, int minRadius, int maxRadius, int minHeight, int maxHeight, bool islandBottom);
|
|
|
|
virtual bool place(Level *level, Random *random, int x, int y, int z);
|
|
|
|
private:
|
|
int tileId;
|
|
int minRadius;
|
|
int maxRadius;
|
|
int minHeight;
|
|
int maxHeight;
|
|
bool islandBottom;
|
|
|
|
// Generate an ellipsoidal cloud blob centered at (cx, cy, cz)
|
|
void generateCloudBlob(Level *level, Random *random, int cx, int cy, int cz, int rx, int rz, int ry);
|
|
|
|
// Find the bottom of an island by scanning down from y
|
|
int findIslandBottom(Level *level, int x, int startY, int z);
|
|
};
|