save file handling
parent
8469a5c0ab
commit
bd18284c40
|
@ -1,6 +1,10 @@
|
|||
package com.github.halotroop.litecraft.save;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.*;
|
||||
|
||||
import com.github.halotroop.litecraft.world.Chunk;
|
||||
|
||||
import tk.valoeghese.sod.BinaryData;
|
||||
|
||||
public final class LitecraftSave
|
||||
{
|
||||
|
@ -19,9 +23,51 @@ public final class LitecraftSave
|
|||
}
|
||||
|
||||
this.file = saveFile;
|
||||
this.file.mkdirs();
|
||||
}
|
||||
|
||||
|
||||
private final File file;
|
||||
|
||||
public void saveChunk(Chunk chunk)
|
||||
{
|
||||
StringBuilder fileLocBuilder = new StringBuilder(this.file.getPath())
|
||||
.append('/').append(chunk.chunkX)
|
||||
.append('/').append(chunk.chunkZ);
|
||||
File chunkDir = new File(fileLocBuilder.toString());
|
||||
chunkDir.mkdirs();
|
||||
File chunkFile = new File(fileLocBuilder.append('/').append(chunk.chunkY).append(".sod").toString());
|
||||
|
||||
try
|
||||
{
|
||||
chunkFile.createNewFile();
|
||||
|
||||
BinaryData data = new BinaryData();
|
||||
chunk.write(data);
|
||||
data.write(chunkFile);
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public Chunk readChunk(int chunkX, int chunkY, int chunkZ)
|
||||
{
|
||||
File chunkFile = new File(new StringBuilder(this.file.getPath())
|
||||
.append('/').append(chunkX)
|
||||
.append('/').append(chunkZ)
|
||||
.append('/').append(chunkY).append(".sod").toString());
|
||||
|
||||
if (chunkFile.isFile())
|
||||
{
|
||||
BinaryData data = BinaryData.read(chunkFile);
|
||||
|
||||
Chunk result = new Chunk(chunkX, chunkY, chunkZ);
|
||||
result.read(data);
|
||||
return result;
|
||||
}
|
||||
else return null;
|
||||
}
|
||||
|
||||
private static final String SAVE_DIR = "./saves/";
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue