Started packing save data. At least it writes

This commit is contained in:
StevenRS11
2013-10-17 04:00:32 -04:00
parent 3376c1d772
commit 9418ed59df
10 changed files with 144 additions and 8 deletions

View File

@@ -75,6 +75,7 @@ public class DDSaveHandler
String basePath = DimensionManager.getCurrentSaveRootDirectory() + "/DimensionalDoors/data/";
File basePathFile = new File(basePath);
Files.createParentDirs(basePathFile);
basePathFile.mkdir();
basePathFile = null;
basePath += "dim_";
@@ -101,7 +102,7 @@ public class DDSaveHandler
catch (Exception e)
{
System.err.println("Could not save data for dimension #" + dimension.name() + ". The following error occurred:");
printException(e, false);
printException(e, true);
return false;
}
}

View File

@@ -1,19 +1,47 @@
package StevenDimDoors.mod_pocketDim.saving;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import scala.Char;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import StevenDimDoors.mod_pocketDim.Point3D;
import StevenDimDoors.mod_pocketDim.util.BaseConfigurationProcessor;
import StevenDimDoors.mod_pocketDim.util.ConfigurationProcessingException;
import StevenDimDoors.mod_pocketDim.util.Point4D;
public class DimDataProcessor extends BaseConfigurationProcessor<PackedDimData>
{
private static final String dimID = "DIM_ID";
private static final String depth = "DEPTH";
private static final String children = "CHILDREN_DIM_IDS";
private static final String linkTails = "LINK_TAILS";
private static final String filled = "IS_FILLED";
private static final String isDungeon = "IS_DUNGEON";
private static final String orientation = "ORIENTATION";
private static final String parentID = "PARENT_DIM_ID";
private static final String rootID = "ROOT_DIM_ID";
private static final String packDepth = "PACK_DEPTH";
private static final String links = "LINKS";
private static final String origin = "ORIGIN_POINT";
@Override
public PackedDimData readFromStream(InputStream inputStream)
throws ConfigurationProcessingException
{
// TODO Auto-generated method stub
{
return null;
}
@@ -21,8 +49,20 @@ public class DimDataProcessor extends BaseConfigurationProcessor<PackedDimData>
public void writeToStream(OutputStream outputStream, PackedDimData data)
throws ConfigurationProcessingException
{
GsonBuilder gsonBuilder = new GsonBuilder();
Gson gson = gsonBuilder.setPrettyPrinting().create();
try
{
outputStream.write(gson.toJson(data).getBytes("UTF-8"));
outputStream.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
throw new ConfigurationProcessingException();
}
// TODO Auto-generated method stub
}
}

View File

@@ -0,0 +1,5 @@
package StevenDimDoors.mod_pocketDim.saving;
public class PackedDungeonData {
}

View File

@@ -1,6 +1,25 @@
package StevenDimDoors.mod_pocketDim.saving;
import java.util.List;
import StevenDimDoors.mod_pocketDim.Point3D;
import StevenDimDoors.mod_pocketDim.core.DimLink;
import StevenDimDoors.mod_pocketDim.util.Point4D;
public class PackedLinkData
{
public final Point4D source;
public final Point3D parent;
public final PackedLinkTail tail;
public final int orientation;
public final List<Point3D> children;
public PackedLinkData(Point4D source, Point3D parent, PackedLinkTail tail, int orientation, List<Point3D> children)
{
this.source=source;
this.parent=parent;
this.tail=tail;
this.orientation=orientation;
this.children=children;
}
}

View File

@@ -1,6 +1,16 @@
package StevenDimDoors.mod_pocketDim.saving;
import StevenDimDoors.mod_pocketDim.util.Point4D;
public class PackedLinkTail
{
public final Point4D destination;
public final int linkType;
public PackedLinkTail(Point4D destination, int linkType)
{
this.destination=destination;
this.linkType=linkType;
}
}