public VoxelWorld(string name, int maxLights) : base(name, maxLights)
        {
            Initializer = () =>
            {
                var           green         = new Vector3(0x7e, 0xc8, 0x50) / 255.0f;
                ChunkStreamer chunkStreamer = new ChunkStreamer(1 << 16, this.Renderer);
                var           mat_id        = chunkStreamer.MaterialMap.Register(green, green * 0.25f, 0.9f, 0.0f);
                ChunkObject   obj           = new ChunkObject(chunkStreamer);

                //Engine.CurrentPlayer.Position += Vector3.UnitY * 110;

                Random rng = new Random(0);
                ulong  cnt = 0;
                Perlin p   = new Perlin();
                for (int x = ChunkConstants.Side * -10; x < ChunkConstants.Side * 10; x++)
                {
                    //for (int y = ChunkConstants.Side * -1; y < ChunkConstants.Side * 1; y++)
                    for (int z = ChunkConstants.Side * -10; z < ChunkConstants.Side * 10; z++)
                    {
                        //if (x * x + y * y + z * z <= 200 * 200)
                        //if(y > -32 && y < 32)
                        {
                            int y = (x == -300) ? 400 : (int)((p.GetValue(x * 0.005f, z * 0.005f, 0) * 0.5f + 0.5f) * 128);
                            if (y >= 0)
                            {
                                for (int y0 = y; y0 >= 0; y0--)
                                {
                                    obj.Set(x, y0, z, mat_id);
                                }
                            }
                            //else
                            //if (rng.NextDouble() > 0.5f)
                            //    obj.Set(x, y, z, mat_id);
                            cnt++;
                        }
                    }
                }
                obj.RebuildAll();

                Console.WriteLine(cnt);


                //AddRenderable(new StaticRenderable(Kokoro.Graphics.Prefabs.SphereFactory.Create(grp)));
                AddRenderable(chunkStreamer);
                AddRenderable(obj);

                AddRenderable(chunkStreamer.Ender);
                //w.AddInterpreter(new Input.DefaultControlInterpreter("/actions/vrworld/in/hand_left", "/actions/vrworld/in/hand_right", grp));
            };
        }
 internal ChunkStreamerEnd(ChunkStreamer p)
 {
     parent = p;
 }