本文整理汇总了C#中IChunk.GetMetadata方法的典型用法代码示例。如果您正苦于以下问题:C# IChunk.GetMetadata方法的具体用法?C# IChunk.GetMetadata怎么用?C# IChunk.GetMetadata使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IChunk
的用法示例。
在下文中一共展示了IChunk.GetMetadata方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: NeighboursBlock
public static bool NeighboursBlock(IChunk chunk, Coordinates3D location, byte block, byte meta = 0x0)
{
var surrounding = new[] {
location + Coordinates3D.Left,
location + Coordinates3D.Right,
location + Coordinates3D.Forwards,
location + Coordinates3D.Backwards,
};
for (int i = 0; i < surrounding.Length; i++)
{
var toCheck = surrounding[i];
if (toCheck.X < 0 || toCheck.X >= Chunk.Width || toCheck.Z < 0 || toCheck.Z >= Chunk.Depth || toCheck.Y < 0 || toCheck.Y >= Chunk.Height)
return false;
if (chunk.GetBlockID(toCheck).Equals(block))
{
if (meta != 0x0 && chunk.GetMetadata(toCheck) != meta)
return false;
return true;
}
}
return false;
}
示例2: ApplyChunkAsync
private async Task ApplyChunkAsync(IChunk chunk, Point index)
{
// TODO: It would be better to directly replace the chunk via ChunkLoader
for (var y = 0; y < Chunk.Size; y++)
{
for (var x = 0; x < Chunk.Size; x++)
{
var position = index * Chunk.Size + new Point(x, y);
await Map.SetAsync(position, chunk[x, y]);
await Map.SetMetadataAsync(position, chunk.GetMetadata(new Point(x, y)));
}
}
}
示例3: GetBlockDataFromChunk
private BlockDescriptor GetBlockDataFromChunk(Coordinates3D adjustedCoordinates, IChunk chunk, Coordinates3D coordinates)
{
return new BlockDescriptor
{
ID = chunk.GetBlockID(adjustedCoordinates),
Metadata = chunk.GetMetadata(adjustedCoordinates),
BlockLight = chunk.GetBlockLight(adjustedCoordinates),
SkyLight = chunk.GetSkyLight(adjustedCoordinates),
Coordinates = coordinates
};
}