Example #1
0
File: Chunk.cs Project: gaeqs/CMine
 public Chunk(ChunkRegion region, Vector3i position)
 {
     _region      = region;
     _position    = position;
     _blocks      = new Block[ChunkLength, ChunkLength, ChunkLength];
     _taskManager = new WorldTaskManager();
     _modified    = true;
     _natural     = false;
 }
Example #2
0
File: World.cs Project: gaeqs/CMine
        public World(string name, TrueTypeFont ttf) : base(name)
        {
            _folder = CMine.MainFolder + Path.DirectorySeparatorChar + name;
            Directory.CreateDirectory(_folder);
            Background = Color4.Aqua;

            _renderData = new WorldRenderData();

            _chunkRegions = new ConcurrentDictionary <Vector3i, ChunkRegion>();
            _regions2d    = new ConcurrentDictionary <Vector2i, World2dRegion>();

            _staticTexts = new Collection <StaticText>();
            _delayViewer = new DelayViewer(ttf);
            _staticTexts.Add(_delayViewer);

            _worldTaskManager = new WorldTaskManager();

            _worldGenerator = Load(out var seed)
                ? new DefaultWorldGenerator(this, seed)
                : new DefaultWorldGenerator(this, new Random().Next());

            _entities = new HashSet <Entity>();

            _player                        = new Player(Guid.NewGuid(), this, new Vector3(20, 100, 20), null);
            _player.Controller             = new LocalPlayerController(_player, _renderData.Camera);
            _player.Inventory.Hotbar[0, 0] = new BlockSnapshotBricks();
            _player.Inventory.Hotbar[1, 0] = new BlockSnapshotOakLeaves(new Rgba32I(0, 255, 0, 1));
            _player.Inventory.Hotbar[2, 0] = new BlockSnapshotBricksSlab(false);
            _player.Inventory.Hotbar[3, 0] = new BlockSnapshotBricksSlab(true);
            _player.Inventory.Hotbar[4, 0] = new BlockSnapshotTorch();
            _entities.Add(_player);

            _gui = new WorldGui(this);
            _gui.GenerateDefault();

            _unloadedChunkGenerationManager = new UnloadedChunkGenerationManager(this);
            _unloadedChunkGenerationManager.Load();
            _asyncChunkGenerator = new AsyncChunkGenerator(this);
            _asyncChunkGenerator.StartThread();

            _asyncChunkGenerator.GenerateChunkArea = true;

            _worldThread = new WorldThread(this);
            _worldThread.StartThread();
        }