private void Start()
    {
        InitializeDecoratorPrefabs();
        m_ChunkProcessor = new ChunkProcessor();
        m_WorldData      = new WorldData(m_ChunkProcessor);
        m_ChunksParent   = transform.FindChild("Chunks");
        m_ChunkMover     = new ChunkMover(m_WorldData, m_ChunkProcessor);

        // Only the dual layer terrain w/ medium valleys and standard terrain medium caves
        // currently work, I haven't updated the others to return sunlit blocks.
        BatchPoolProcessor <Chunk> batchProcessor = new BatchPoolProcessor <Chunk>();
        WorldDecorator             worldDecorator = new WorldDecorator(WorldData, batchProcessor,
                                                                       m_ChunkProcessor);

        m_World = new World(WorldData,
                            new TerrainGenerator(WorldData, m_ChunkProcessor, batchProcessor,
                                                 new DualLayerTerrainWithMediumValleys()),
                            new LightProcessor(batchProcessor, WorldData, m_ChunkProcessor),
                            new MeshDataGenerator(batchProcessor, WorldData, m_ChunkProcessor),
                            worldDecorator, m_ChunkProcessor);


        m_World.InitializeGridChunks();

        InitializeTextures();
        Player.transform.position = new Vector3(WorldData.WidthInBlocks / 2, 120, WorldData.HeightInBlocks / 2);
        CreateWorldChunkPrefabs();
        m_World.StartProcessingThread();
        m_PlayerChunkPosition = CurrentPlayerChunkPosition();
    }
    private void Start()
    {
        m_PrefabsByName = new Dictionary<string, Transform>();
        InitializeDecoratorPrefabs();
        m_ChunkProcessor = new ChunkProcessor();
        m_WorldData = new WorldData(m_ChunkProcessor);
        m_ChunksParent = transform.FindChild("Chunks");
        m_ChunkMover = new ChunkMover(m_WorldData, m_ChunkProcessor);

        // Only the dual layer terrain w/ medium valleys and standard terrain medium caves
        // currently work, I haven't updated the others to return sunlit blocks.
        BatchPoolProcessor<Chunk> batchProcessor = new BatchPoolProcessor<Chunk>();
        WorldDecorator worldDecorator = new WorldDecorator(WorldData, batchProcessor);
        m_MeshDataGenerator = new MeshDataGenerator(batchProcessor, WorldData, m_ChunkProcessor);
        m_World = new World(WorldData,
                            new TerrainGenerator(WorldData, m_ChunkProcessor, batchProcessor,
                                                 new DualLayerTerrainWithMediumValleys()),
                            new LightProcessor(batchProcessor, WorldData, m_ChunkProcessor),
                            m_MeshDataGenerator,
                            worldDecorator, m_ChunkProcessor);

        m_World.InitializeGridChunks();

        InitializeTextures();
        Player.transform.position = new Vector3(WorldData.WidthInBlocks / 2, 120, WorldData.HeightInBlocks / 2);
        CreateWorldChunkPrefabs();
        m_World.StartProcessingThread();
        m_PlayerChunkPosition = CurrentPlayerChunkPosition();
        m_LastPlayerLocation = Player.position;
    }