package tk.amberide.engine.data.map.codec;
import tk.amberide.engine.data.map.LevelMap;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author Tudor
*/
public abstract class Codec {
public static final byte CURRENT_VERSION = 0x01;
public static Map<Byte, Codec> CODECS = new HashMap<Byte, Codec>();
static {
CODECS.put((byte) 0x01, new V1());
}
public static Codec getLatestCodec() {
return getCodec(CURRENT_VERSION);
}
public static Codec getCodec(byte version) {
return CODECS.get(version);
}
public abstract void compileMap(LevelMap map, DataOutputStream out) throws IOException;
public abstract LevelMap loadMap(DataInputStream in) throws IOException;
}