minecraft2D/World.pde

45 lines
1.1 KiB
Plaintext

class World {
private ArrayList<ArrayList<Chunk>> chunks;
private Generator gen;
World(long seed, float noiseScale) {
this.gen = new Generator(seed, noiseScale);
this.chunks = new ArrayList<ArrayList<Chunk>>();
}
public void setChunk(Chunk chunk, int x, int y) {
try {
chunks.get(x).add(y, chunk);
}
catch(IndexOutOfBoundsException e) {
chunks.add(x, new ArrayList<Chunk>());
if (y != 0) {
for (int i = 0; i < y; i++) {
chunks.get(x).add(i, null);
}
}
chunks.get(x).add(y, chunk);
}
}
public Chunk getChunk(int x, int y) {
if (x < 0 || y < 0) {
return null;
}
try {
chunks.get(x).get(y);
}
catch(IndexOutOfBoundsException e) {
Chunk newChunk = gen.generateChunk(x, y);
setChunk(newChunk, x, y);
}
if (chunks.get(x).get(y) == null) {
Chunk newChunk = gen.generateChunk(x, y);
setChunk(newChunk, x, y);
}
return chunks.get(x).get(y);
}
public int getXSize() { return chunks.size(); }
}