Files
MinecraftCommunityEdition-c…/Minecraft.World/AerCloudFeature.h
2026-03-04 16:29:35 -06:00

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);
};