public Form1() { InitializeComponent(); currentChunk = new Sean.Shared.ChunkCoords(64, 28); textBox1.Text = "Keys: W,A,S,D"; WorldInstance = new World(); }
private void OnKeyPress(object sender, KeyPressEventArgs e) { bool update = false; switch (e.KeyChar) { case 'w': currentChunk = new Sean.Shared.ChunkCoords(currentChunk.X, currentChunk.Z - 1); update = true; break; case 's': currentChunk = new Sean.Shared.ChunkCoords(currentChunk.X, currentChunk.Z + 1); update = true; break; case 'a': currentChunk = new Sean.Shared.ChunkCoords(currentChunk.X - 1, currentChunk.Z); update = true; break; case 'd': currentChunk = new Sean.Shared.ChunkCoords(currentChunk.X + 1, currentChunk.Z); update = true; break; } if (update) { DrawMaps(); } }
public Bitmap DrawAllChunks(int width, int height) { var bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb); var graphics = Graphics.FromImage(bitmap); graphics.SmoothingMode = SmoothingMode.AntiAlias; int xOri = 0; for (int x = WorldInstance.MinXChunk; x <= WorldInstance.MaxXChunk; x++) { int zOri = 0; for (int z = WorldInstance.MinZChunk; z <= WorldInstance.MaxZChunk; z++) { var coords = new Sean.Shared.ChunkCoords(x, z); if (WorldInstance.IsChunkLoaded(coords)) { var chunk = WorldInstance.GetChunk(coords); DrawChunk(graphics, chunk, xOri, zOri); } if (coords == currentChunk) { graphics.DrawRectangle(new Pen(Color.FromArgb(255, 255, 0, 0)), xOri, zOri, Global.CHUNK_SIZE - 1, Global.CHUNK_SIZE - 1); } zOri = zOri + Global.CHUNK_SIZE; } xOri = xOri + Global.CHUNK_SIZE; } return(bitmap); }
private void OnGlobalMapMouseDoubleClick(object sender, MouseEventArgs e) { var map = WorldInstance.GlobalMap; currentChunk = new Sean.Shared.ChunkCoords( Settings.globalChunkCount * e.X / this.pictureBox1.Width, Settings.globalChunkCount * e.Y / this.pictureBox1.Height); DrawMaps(); }
public Chunk(ChunkCoords chunkCoords) { ChunkCoords = chunkCoords; Blocks = new Blocks(); //HeightMap = new Array<int>(CHUNK_SIZE, CHUNK_SIZE); //Clutters = new HashSet<Clutter>(); //LightSources = new ConcurrentDictionary<int, LightSource>(); //Mobs = new HashSet<Mob>(); //GameItems = new ConcurrentDictionary<int, GameItemDynamic>(); }
private Chunk GetOrCreate(ChunkCoords chunkCoords) { long chunkHash = ((long)chunkCoords.X << 32) + (long)chunkCoords.Z; Chunk chunk = _chunks [chunkHash]; if (chunk == null) { chunk = new Chunk (chunkCoords); _chunks[chunkHash] = chunk; } return chunk; }
public void Add(ChunkCoords chunkCoords, Chunk chunk) { long chunkHash = ((long)chunkCoords.X << 32) + (long)chunkCoords.Z; _chunks [chunkHash] = chunk; }