diff --git a/engine/src/desktop/jme3tools/savegame/SaveGame.java b/engine/src/desktop/jme3tools/savegame/SaveGame.java deleted file mode 100644 index 5eac8bfd7..000000000 --- a/engine/src/desktop/jme3tools/savegame/SaveGame.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package jme3tools.savegame; - -import com.jme3.asset.AssetManager; -import com.jme3.export.Savable; -import com.jme3.export.binary.BinaryExporter; -import com.jme3.export.binary.BinaryImporter; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.prefs.Preferences; -import java.util.zip.GZIPInputStream; -import java.util.zip.GZIPOutputStream; -import sun.misc.UUDecoder; -import sun.misc.UUEncoder; - -/** - * Tool for saving Savables as SaveGame entries in a system-dependent way. - * @author normenhansen - */ -public class SaveGame { - - /** - * Saves a savable in a system-dependent way. Note that only small amounts of data can be saved. - * @param gamePath A unique path for this game, e.g. com/mycompany/mygame - * @param dataName A unique name for this savegame, e.g. "save_001" - * @param data The Savable to save - */ - public static void saveGame(String gamePath, String dataName, Savable data) { - Preferences prefs = Preferences.userRoot().node(gamePath); - BinaryExporter ex = BinaryExporter.getInstance(); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - try { - GZIPOutputStream zos = new GZIPOutputStream(out); - ex.save(data, zos); - zos.close(); - } catch (IOException ex1) { - Logger.getLogger(SaveGame.class.getName()).log(Level.SEVERE, "Error saving data: {0}", ex1); - ex1.printStackTrace(); - } - UUEncoder enc = new UUEncoder(); - String dataString = enc.encodeBuffer(out.toByteArray()); -// System.out.println(dataString); - if (dataString.length() > Preferences.MAX_VALUE_LENGTH) { - throw new IllegalStateException("SaveGame dataset too large"); - } - prefs.put(dataName, dataString); - } - - /** - * Loads a savable that has been saved on this system with saveGame() before. - * @param gamePath A unique path for this game, e.g. com/mycompany/mygame - * @param dataName A unique name for this savegame, e.g. "save_001" - * @return The savable that was saved - */ - public static Savable loadGame(String gamePath, String dataName) { - return loadGame(gamePath, dataName, null); - } - - /** - * Loads a savable that has been saved on this system with saveGame() before. - * @param gamePath A unique path for this game, e.g. com/mycompany/mygame - * @param dataName A unique name for this savegame, e.g. "save_001" - * @param assetManager Link to an AssetManager if required for loading the data (e.g. models with textures) - * @return The savable that was saved - */ - public static Savable loadGame(String gamePath, String dataName, AssetManager manager) { - Preferences prefs = Preferences.userRoot().node(gamePath); - String data = prefs.get(dataName, ""); - InputStream is = null; - Savable sav = null; - UUDecoder dec = new UUDecoder(); - try { - is = new GZIPInputStream(new ByteArrayInputStream(dec.decodeBuffer(data))); - BinaryImporter imp = BinaryImporter.getInstance(); - if (manager != null) { - imp.setAssetManager(manager); - } - sav = imp.load(is); - } catch (IOException ex) { - Logger.getLogger(SaveGame.class.getName()).log(Level.SEVERE, "Error loading data: {0}", ex); - ex.printStackTrace(); - } finally { - if (is != null) { - try { - is.close(); - } catch (IOException ex) { - Logger.getLogger(SaveGame.class.getName()).log(Level.SEVERE, "Error loading data: {0}", ex); - ex.printStackTrace(); - } - } - } - return sav; - } -}