public OCBlockData GetBlock(int x, int y, int z) { OCChunk chunk = null; if (_lastRequestedChunk != null) { Vector3i requestedChunkPosition = OCChunk.ToChunkPosition(x, y, z); if (requestedChunkPosition.x == _lastRequestedChunk.GetPosition().x) { if (requestedChunkPosition.y == _lastRequestedChunk.GetPosition().y) { if (requestedChunkPosition.z == _lastRequestedChunk.GetPosition().z) { chunk = _lastRequestedChunk; } } } } if (chunk == null) { chunk = GetChunk(OCChunk.ToChunkPosition(x, y, z)); _lastRequestedChunk = chunk; } if (chunk == null) { return(OCBlockData.CreateInstance <OCBlockData>()); } return(chunk.GetBlock(OCChunk.ToLocalPosition(x, y, z))); }
public OCChunk(OCMap map, Vector3i position) { this.map = map; this.position = position; for (int x = blocks.GetMinX(); x < blocks.GetMaxX(); ++x) { for (int y = blocks.GetMinY(); y < blocks.GetMaxY(); ++y) { for (int z = blocks.GetMinZ(); z < blocks.GetMaxZ(); ++z) { Vector3i pos = new Vector3i(x, y, z); blocks.Set(OCBlockData.CreateInstance <OCBlockData>().Init(null, pos), pos); } } } }
public void SetBlock(OpenCog.BlockSet.BaseBlockSet.OCBlock block, int x, int y, int z) { SetBlock(OCBlockData.CreateInstance <OCBlockData>().Init(block, new Vector3i(x, y, z)), x, y, z); }
public void SetBlock(OpenCog.BlockSet.BaseBlockSet.OCBlock block, Vector3i pos) { SetBlock(OCBlockData.CreateInstance <OCBlockData>().Init(block, pos), pos); }