Browse Source

- use JmeSystem.getStorageFolder() for SaveGame util
- move SaveGame util to core plugins
- fix BinaryImporter accessing assetManager if null

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8871 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

nor..67 14 years ago
parent
commit
e441f95d5e
1 changed files with 0 additions and 101 deletions
  1. 0 101
      engine/src/desktop/jme3tools/savegame/SaveGame.java

+ 0 - 101
engine/src/desktop/jme3tools/savegame/SaveGame.java

@@ -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;
-    }
-}