@@ -9,7 +9,7 @@
|
||||
#include "net.minecraft.world.level.storage.h"
|
||||
#include "TheEndLevelRandomLevelSource.h"
|
||||
|
||||
TheEndLevelRandomLevelSource::TheEndLevelRandomLevelSource(Level *level, int64_t seed)
|
||||
TheEndLevelRandomLevelSource::TheEndLevelRandomLevelSource(Level *level, __int64 seed)
|
||||
{
|
||||
m_XZSize = END_LEVEL_MIN_WIDTH;
|
||||
|
||||
@@ -370,17 +370,17 @@ void TheEndLevelRandomLevelSource::postProcess(ChunkSource *parent, int xt, int
|
||||
|
||||
// 4J - added. The original java didn't do any setting of the random seed here, and passes the level random to the biome decorator.
|
||||
// We'll be running our postProcess in parallel with getChunk etc. so we need to use a separate random - have used the same initialisation code as
|
||||
// used in RandomLevelSource::postProcess to make sure this random value is consistent for each world generation.
|
||||
// used in RandomLevelSource::postProcess to make sure this random value is consistent for each world generation.
|
||||
pprandom->setSeed(level->getSeed());
|
||||
int64_t xScale = pprandom->nextLong() / 2 * 2 + 1;
|
||||
int64_t zScale = pprandom->nextLong() / 2 * 2 + 1;
|
||||
__int64 xScale = pprandom->nextLong() / 2 * 2 + 1;
|
||||
__int64 zScale = pprandom->nextLong() / 2 * 2 + 1;
|
||||
pprandom->setSeed(((xt * xScale) + (zt * zScale)) ^ level->getSeed());
|
||||
|
||||
Biome *biome = level->getBiome(xo + 16, zo + 16);
|
||||
biome->decorate(level, pprandom, xo, zo); // 4J - passing pprandom rather than level->random here to make this consistent with our parallel world generation
|
||||
|
||||
HeavyTile::instaFall = false;
|
||||
|
||||
|
||||
app.processSchematics(parent->getChunk(xt,zt));
|
||||
}
|
||||
|
||||
@@ -418,4 +418,4 @@ TilePos *TheEndLevelRandomLevelSource::findNearestMapFeature(Level *level, const
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user