4jcraft/Minecraft.World/WorldGen/Features/LargeFeature.cpp

32 lines
938 B
C++

#include "../../Platform/stdafx.h"
#include "../../Headers/net.minecraft.world.level.h"
#include "LargeFeature.h"
const std::wstring LargeFeature::STRONGHOLD = L"StrongHold";
LargeFeature::LargeFeature() {
radius = 8;
random = new Random();
}
LargeFeature::~LargeFeature() { delete random; }
void LargeFeature::apply(ChunkSource* ChunkSource, Level* level, int xOffs,
int zOffs, byteArray blocks) {
int r = radius;
this->level = level;
random->setSeed(level->getSeed());
int64_t xScale = random->nextLong();
int64_t zScale = random->nextLong();
for (int x = xOffs - r; x <= xOffs + r; x++) {
for (int z = zOffs - r; z <= zOffs + r; z++) {
int64_t xx = (uint64_t)x * xScale;
int64_t zz = (uint64_t)z * zScale;
random->setSeed(xx ^ zz ^ level->getSeed());
addFeature(level, x, z, xOffs, zOffs, blocks);
}
}
}