为地图创建预览图
1.使用
2.原理
原版mindustry.maps.Maps
的createNewPreview方法。
private void createNewPreview(Map map, Cons<Exception> failed){
try{
//if it's here, then the preview failed to load or doesn't exist, make it
//this has to be done synchronously!
Pixmap pix = MapIO.generatePreview(map);
map.texture = new Texture(pix);
mainExecutor.submit(() -> {
try{
map.previewFile().writePng(pix);
writeCache(map);
}catch(Exception e){
e.printStackTrace();
}finally{
pix.dispose();
}
});
}catch(Exception e){
failed.get(e);
Log.err("Failed to generate preview!", e);
}
}
*.msav
的二进制数据进行解析,具体原理不进行解释,可以查看generatePreview
方法。
关于原版区块可以看看这个为区块创建预览图.md