private GetBlockGenerator ( IBlockGenerator generators, byte seed ) : IBlockGenerator | ||
generators | IBlockGenerator | |
seed | byte | |
리턴 | IBlockGenerator |
private IBlockGenerator GetBlockGenerator(IBlockGenerator[] generators, byte seed)
{
var totalweight = generators.Sum(w => w.Weight);
var f = ((double)totalweight / 256);
//Determine which generator to use
var r = seed * f; //Determine "random" number from hash from 0 .. totalweight
int g = -1;
while (r >= 0)
r -= generators[++g].Weight;
return generators[g];
}