Save file drop support for desktop
This commit is contained in:
@@ -9,19 +9,25 @@ import arc.graphics.*;
|
||||
import arc.graphics.g2d.*;
|
||||
import arc.math.*;
|
||||
import arc.util.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.ai.*;
|
||||
import mindustry.audio.*;
|
||||
import mindustry.core.*;
|
||||
import mindustry.ctype.*;
|
||||
import mindustry.game.EventType.*;
|
||||
import mindustry.game.*;
|
||||
import mindustry.game.Saves.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.io.*;
|
||||
import mindustry.maps.*;
|
||||
import mindustry.mod.*;
|
||||
import mindustry.net.*;
|
||||
import mindustry.ui.*;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.zip.*;
|
||||
|
||||
import static arc.Core.*;
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
@@ -303,4 +309,34 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
||||
super.pause();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fileDropped(Fi file){
|
||||
if(!OS.isIos){
|
||||
if(file.extension().equalsIgnoreCase(saveExtension)){ //open save
|
||||
try{
|
||||
if(SaveIO.isSaveValid(file)){
|
||||
SaveMeta meta = SaveIO.getMeta(new DataInputStream(new InflaterInputStream(file.read(Streams.defaultBufferSize))));
|
||||
if(meta.tags.containsKey("name")){
|
||||
//is map
|
||||
if(!ui.editor.isShown()){
|
||||
ui.editor.show();
|
||||
}
|
||||
|
||||
ui.editor.beginEditMap(file);
|
||||
}else if(meta.rules.sector == null){ //don't allow importing campaign saves, they are broken
|
||||
SaveSlot slot = control.saves.importSave(file);
|
||||
ui.load.runLoadSave(slot);
|
||||
}else{
|
||||
ui.showErrorMessage("@save.nocampaign");
|
||||
}
|
||||
}else{
|
||||
ui.showErrorMessage("@save.import.invalid");
|
||||
}
|
||||
}catch(Throwable e){
|
||||
ui.showException("@save.import.fail", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user