public List <Point> GetPoints() { var jeBlocknames = BlockNameLoopup.BlockNames(); var beBlocknames = BlockNameLoopup.BlockNamesBE(); var blocknames = BlockNameLoopup.Lookup(); var output = new List <Point>(); for (var x = 0; x < Width; x++) { for (var y = 0; y < Height; y++) { for (var z = 0; z < Length; z++) { var index = x + (y * Length + z) * Width; var blockID = Blocks[index]; //& 0xFF; var meta = Data[index] & 0xFF; var blockLookup = BlockLookup(blocknames, beBlocknames, blockID); //var blockName = jeBlocknames.Length>blockID? jeBlocknames[blockID]:"stone"; output.Add(new Point { BlockName = blockLookup.Name, BlockId = blockID, Data = blockLookup.BeData > 0 ? blockLookup.BeData : meta, X = x, Y = y, Z = z, SortOrder = blockLookup.SortOrder }); } } } return(output); }
public List <Point> GetPoints() { var jeBlocknames = BlockNameLoopup.BlockNames(); var beBlocknames = BlockNameLoopup.BlockNamesBE(); var blocknames = BlockNameLoopup.Lookup(); var output = new List <Point>(); //foreach (var x1 in Blocks.GroupBy(a => a & 0xFF).Select(a => new {BlockId = a.Key, Count = a.Count()}) // .OrderByDescending(a => a.Count)) // Console.WriteLine($"{x1.BlockId} {x1.Count}"); for (var x = 0; x < Width; x++) { for (var y = 0; y < Height; y++) { for (var z = 0; z < Length; z++) { var index = x + (y * Length + z) * Width; var blockID = Blocks[index];//& 0xFF; var meta = Data[index] & 0xFF; var blockName = blocknames.Where(a => a.Id == blockID).DefaultIfEmpty(new BlockLookup() { Name = "air" }).FirstOrDefault(); //var blockName = jeBlocknames.Length>blockID? jeBlocknames[blockID]:"stone"; output.Add(new Point { BlockName = blockName.Name, BlockId = blockID, Data = blockName.BeData > 0? blockName.BeData: meta, X = x, Y = y, Z = z }); } } } return(output); }