72 lines
1.8 KiB
C#
72 lines
1.8 KiB
C#
class World
|
|
{
|
|
public Dictionary<string, Chunk> Chunks { get; set; } = new Dictionary<string, Chunk>();
|
|
|
|
public void AddChunk(Chunk chunk)
|
|
{
|
|
this.Chunks.Add(chunk.X + "," + chunk.Y, chunk);
|
|
}
|
|
|
|
public Chunk GetChunk(Vector2 pos)
|
|
{
|
|
return this.GetChunk((int)pos.X, (int)pos.Y);
|
|
}
|
|
|
|
public Chunk GetChunk(int x, int y)
|
|
{
|
|
return this.Chunks[x + "," + y];
|
|
}
|
|
|
|
public bool HasChunk(Vector2 pos)
|
|
{
|
|
return this.HasChunk((int)pos.X, (int)pos.Y);
|
|
}
|
|
|
|
public bool HasChunk(int x, int y)
|
|
{
|
|
return this.Chunks.ContainsKey(x + "," + y);
|
|
}
|
|
|
|
public Chunk GetChunkAt(Vector2 pos)
|
|
{
|
|
return this.GetChunkAt((int)pos.X, (int)pos.Y);
|
|
}
|
|
|
|
public Chunk GetChunkAt(int x, int y)
|
|
{
|
|
var chunkPos = ToChunkPos(new Vector2(x, y));
|
|
return this.Chunks[chunkPos.X + "," + chunkPos.Y];
|
|
}
|
|
|
|
public bool HasChunkAt(Vector2 pos)
|
|
{
|
|
return this.HasChunkAt((int)pos.X, (int)pos.Y);
|
|
}
|
|
|
|
public bool HasChunkAt(int x, int y)
|
|
{
|
|
var chunkX = Math.Floor(x / (float)(Constants.ChunkSize * Constants.TileSize));
|
|
var chunkY = Math.Floor(y / (float)(Constants.ChunkSize * Constants.TileSize));
|
|
|
|
return this.Chunks.ContainsKey(chunkX + "," + chunkY);
|
|
}
|
|
|
|
public bool ChunkExists(int x, int y)
|
|
{
|
|
return this.Chunks.ContainsKey(x + "," + y);
|
|
}
|
|
|
|
public static Vector2 ToChunkPos(Vector2 pos)
|
|
{
|
|
var chunkX = Math.Floor(pos.X / (Constants.ChunkSize * Constants.TileSize));
|
|
var chunkY = Math.Floor(pos.Y / (Constants.ChunkSize * Constants.TileSize));
|
|
return new Vector2((float)chunkX, (float)chunkY);
|
|
}
|
|
|
|
public int GetTileAt(int x, int y)
|
|
{
|
|
var chunk = this.GetChunkAt(x, y);
|
|
return 0;
|
|
}
|
|
}
|