예제 #1
0
    public GameObject GetChunkNeighbour(int x, int y, int z, direction dir)
    {
        Vector3         pos            = new Vector3(x, y, z);
        DataCoordinates offsetToCheck  = offsets[(int)dir];
        DataCoordinates neighbourCoord = new DataCoordinates((int)pos.x + offsetToCheck.x, (int)pos.y + offsetToCheck.y, (int)pos.z + offsetToCheck.z);

        if (neighbourCoord.x != chunkColumnIndex.x || neighbourCoord.z != chunkColumnIndex.z)
        {
            return(WorldRef.GetChunkNeighbour(neighbourCoord.x, neighbourCoord.y, neighbourCoord.z));
        }
        else
        {
            return(GetChunk(neighbourCoord.y));
        }
    }
예제 #2
0
    public GameObject getNeighbour(int x, int y, int z, direction dir)
    {
        Vector3         pos            = new Vector3(x, y, z);
        DataCoordinates offsetToCheck  = offsets[(int)dir];
        DataCoordinates neighbourCoord = new DataCoordinates((int)pos.x + offsetToCheck.x, (int)pos.y + offsetToCheck.y, (int)pos.z + offsetToCheck.z);

        if (neighbourCoord.x < 0 || neighbourCoord.x >= Width || neighbourCoord.y < 0 || neighbourCoord.y >= Height || neighbourCoord.z < 0 || neighbourCoord.z >= Depth)
        {
            return(checkChunkNeighbours(x, y, z, dir));
        }
        else
        {
            //if(y == chunkSize.y) { Debug.Log("Returning Block at: X: " + neighbourCoord.x + " Y: " + neighbourCoord.y + " Z: " + neighbourCoord.z); }
            return(GetBlock(neighbourCoord.x, neighbourCoord.y, neighbourCoord.z));
        }
    }