public Chunk(ChunkRegion region, Vector3i position) { _region = region; _position = position; _blocks = new Block[ChunkLength, ChunkLength, ChunkLength]; _taskManager = new WorldTaskManager(); _modified = true; _natural = false; }
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(); }