本文整理汇总了C#中IChunk.GetHeight方法的典型用法代码示例。如果您正苦于以下问题:C# IChunk.GetHeight方法的具体用法?C# IChunk.GetHeight怎么用?C# IChunk.GetHeight使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IChunk
的用法示例。
在下文中一共展示了IChunk.GetHeight方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GenerateHeightMap
private void GenerateHeightMap(IChunk chunk)
{
Coordinates3D coords;
var map = new byte[Chunk.Width, Chunk.Depth];
for (byte x = 0; x < Chunk.Width; x++)
{
for (byte z = 0; z < Chunk.Depth; z++)
{
for (byte y = (byte)(chunk.GetHeight(x, z) + 2); y > 0; y--)
{
if (y >= Chunk.Height)
continue;
coords.X = x; coords.Y = y - 1; coords.Z = z;
var id = chunk.GetBlockID(coords);
if (id == 0)
continue;
var provider = BlockRepository.GetBlockProvider(id);
if (provider.LightOpacity != 0)
{
map[x, z] = y;
break;
}
}
}
}
HeightMaps[chunk.Coordinates] = map;
}
示例2: ScheduleUpdatesForChunk
void ScheduleUpdatesForChunk(IWorld world, IChunk chunk)
{
chunk.UpdateHeightMap();
int _x = chunk.Coordinates.X * Chunk.Width;
int _z = chunk.Coordinates.Z * Chunk.Depth;
Coordinates3D coords, _coords;
for (byte x = 0; x < Chunk.Width; x++)
{
for (byte z = 0; z < Chunk.Depth; z++)
{
for (int y = 0; y < chunk.GetHeight(x, z); y++)
{
_coords.X = x; _coords.Y = y; _coords.Z = z;
var id = chunk.GetBlockID(_coords);
if (id == 0)
continue;
coords.X = _x + x; coords.Y = y; coords.Z = _z + z;
var provider = BlockRepository.GetBlockProvider(id);
provider.BlockLoadedFromChunk(coords, this, world);
}
}
}
}
示例3: ScheduleUpdatesForChunk
void ScheduleUpdatesForChunk(IWorld world, IChunk chunk)
{
int _x = chunk.Coordinates.X * Chunk.Width;
int _z = chunk.Coordinates.Z * Chunk.Depth;
for (byte x = 0; x < Chunk.Width; x++)
{
for (byte z = 0; z < Chunk.Depth; z++)
{
for (int y = 0; y < chunk.GetHeight(x, z); y++)
{
var coords = new Coordinates3D(_x + x, y, _z + z);
var id = world.GetBlockID(coords);
if (id == 0)
continue;
var provider = BlockRepository.GetBlockProvider(id);
provider.BlockLoadedFromChunk(coords, this, world);
}
}
}
}