public void PresentChunk(Island island, int chunkCoordinateX, int chunkCoordinateY)
        {
            VisualChunkData chunkRenderData = ClearRenderDataForNewChunk();

            FillRenderDataForOneChunk(island, chunkCoordinateX, chunkCoordinateY);

            if (intBuffersOfOpaqueBlocksInChunk.Count > 0)
            {
                RenderChunk(chunkRenderData, chunkCoordinateX, chunkCoordinateY);
            }
        }
        private void RenderChunk(VisualChunkData chunkToRender, int chunkPositionX, int chunkPositionY)
        {
            ChunkRenderer chunkRenderer = TechnicalsFactory.GetInstance().GetChunkRendererInstance();

            chunkToRender.SetUpWithNumberOfBlocksInChunk(intBuffersOfOpaqueBlocksInChunk.Count);
            chunkToRender.SetWorldPosition(chunkPositionX, chunkPositionY);

            for (int k = 0; k < floatBuffersOfOpaqueBlocksInChunk.Count; k += 3)
            {
                chunkToRender.AddVerticesToTemporaryBuffer(floatBuffersOfOpaqueBlocksInChunk[k]);
                chunkToRender.AddNormalsToTemporaryBuffer(floatBuffersOfOpaqueBlocksInChunk[k + 1]);
                chunkToRender.AddUvCoordinatesToTemporaryBuffer(floatBuffersOfOpaqueBlocksInChunk[k + 2]);
            }

            for (int k = 0; k < intBuffersOfOpaqueBlocksInChunk.Count; k++)
            {
                chunkToRender.AddIndicesToTemporaryBuffer(intBuffersOfOpaqueBlocksInChunk[k]);
            }

            chunkToRender.BuildChunkData();
            chunkRenderer.RenderChunk(chunkToRender);
        }