working on saving
This commit is contained in:
@@ -5,6 +5,7 @@ import java.io.FileFilter;
|
|||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.minecraftforge.common.DimensionManager;
|
import net.minecraftforge.common.DimensionManager;
|
||||||
@@ -59,24 +60,22 @@ public class DDSaveHandler
|
|||||||
|
|
||||||
// List any dimension data files and read each dimension
|
// List any dimension data files and read each dimension
|
||||||
DimDataProcessor reader = new DimDataProcessor();
|
DimDataProcessor reader = new DimDataProcessor();
|
||||||
List<PackedDimData> packedDims = new ArrayList<PackedDimData>();
|
HashMap<Integer,PackedDimData> packedDims = new HashMap<Integer,PackedDimData>();
|
||||||
FileFilter dataFileFilter = new FileFilters.RegexFileFilter("dim_-?\\d+\\.txt");
|
FileFilter dataFileFilter = new FileFilters.RegexFileFilter("dim_-?\\d+\\.txt");
|
||||||
|
|
||||||
File[] dataFiles = dataDirectory.listFiles(dataFileFilter);
|
File[] dataFiles = dataDirectory.listFiles(dataFileFilter);
|
||||||
for (File dataFile : dataFiles)
|
for (File dataFile : dataFiles)
|
||||||
{
|
{
|
||||||
PackedDimData packedDim = readDimension(dataFile, reader);
|
PackedDimData packedDim = readDimension(dataFile, reader);
|
||||||
packedDims.add(packedDim);
|
packedDims.put(packedDim.ID,packedDim);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<PackedLinkData> linksToUnpack = new ArrayList<PackedLinkData>();
|
List<PackedLinkData> linksToUnpack = new ArrayList<PackedLinkData>();
|
||||||
//get the grand list of all links to unpack
|
//get the grand list of all links to unpack
|
||||||
for(PackedDimData packedDim : packedDims)
|
for(PackedDimData packedDim : packedDims.values())
|
||||||
{
|
{
|
||||||
linksToUnpack.addAll(packedDim.Links);
|
linksToUnpack.addAll(packedDim.Links);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return unpackDimData(packedDims)&&unpackLinkData(linksToUnpack);
|
return unpackDimData(packedDims)&&unpackLinkData(linksToUnpack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,47 +84,36 @@ public class DDSaveHandler
|
|||||||
* @param packedDims
|
* @param packedDims
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static boolean unpackDimData(List<PackedDimData> packedDims)
|
public static boolean unpackDimData(HashMap<Integer,PackedDimData> packedDims)
|
||||||
{
|
{
|
||||||
List<PackedDimData> unpackedDims = new ArrayList<PackedDimData>();
|
ArrayList<PackedDimData> roots = new ArrayList<PackedDimData>();
|
||||||
for(PackedDimData data : packedDims)
|
|
||||||
{
|
|
||||||
System.out.println(data.ID);
|
|
||||||
}
|
|
||||||
//Load roots
|
//Load roots
|
||||||
for(PackedDimData packedDim : packedDims)
|
for(PackedDimData packedDim : packedDims.values())
|
||||||
{
|
{
|
||||||
if(packedDim.ParentID==packedDim.ID)
|
if(packedDim.ParentID==packedDim.ID)
|
||||||
{
|
{
|
||||||
PocketManager.registerPackedDimData(packedDim);
|
PocketManager.registerPackedDimData(packedDim);
|
||||||
unpackedDims.add(packedDim);
|
roots.add(packedDim);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
packedDims.removeAll(unpackedDims);
|
//load the children for each root
|
||||||
unpackedDims.clear();
|
for(PackedDimData packedDim : roots)
|
||||||
|
|
||||||
//Load the pockets
|
|
||||||
while(!packedDims.isEmpty())
|
|
||||||
{
|
{
|
||||||
for(PackedDimData packedDim : packedDims)
|
registerChildren(packedDim, packedDims);
|
||||||
{
|
|
||||||
if(PocketManager.isRegisteredInternally(packedDim.ParentID))
|
|
||||||
{
|
|
||||||
PocketManager.registerPackedDimData(packedDim);
|
|
||||||
unpackedDims.add(packedDim);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//break here gracefully
|
|
||||||
}
|
|
||||||
}
|
|
||||||
packedDims.removeAll(unpackedDims);
|
|
||||||
unpackedDims.clear();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void registerChildren(PackedDimData data, HashMap<Integer, PackedDimData> packedDims)
|
||||||
|
{
|
||||||
|
PocketManager.registerPackedDimData(data);
|
||||||
|
for(Integer child : data.ChildIDs)
|
||||||
|
{
|
||||||
|
registerChildren(packedDims.get(child),packedDims);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean unpackLinkData(List<PackedLinkData> linksToUnpack)
|
public static boolean unpackLinkData(List<PackedLinkData> linksToUnpack)
|
||||||
{
|
{
|
||||||
Point3D fakePoint = new Point3D(-1,-1,-1);
|
Point3D fakePoint = new Point3D(-1,-1,-1);
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public class OldSaveImporter
|
|||||||
save.close();
|
save.close();
|
||||||
|
|
||||||
List<PackedLinkData> allPackedLinks = new ArrayList<PackedLinkData>();
|
List<PackedLinkData> allPackedLinks = new ArrayList<PackedLinkData>();
|
||||||
List<PackedDimData> newPackedDimData = new ArrayList<PackedDimData>();
|
HashMap<Integer,PackedDimData> newPackedDimData = new HashMap<Integer,PackedDimData>();
|
||||||
|
|
||||||
HashMap<Integer, DimData> dimMap;
|
HashMap<Integer, DimData> dimMap;
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ public class OldSaveImporter
|
|||||||
}
|
}
|
||||||
|
|
||||||
PackedDimData dim = new PackedDimData(data.dimID, data.depth, data.depth, data.exitDimLink.locDimID, data.exitDimLink.locDimID, 0, data.dungeonGenerator!=null, data.hasBeenFilled, null, new Point3D(0,64,0), childDims, newPackedLinkData, null);
|
PackedDimData dim = new PackedDimData(data.dimID, data.depth, data.depth, data.exitDimLink.locDimID, data.exitDimLink.locDimID, 0, data.dungeonGenerator!=null, data.hasBeenFilled, null, new Point3D(0,64,0), childDims, newPackedLinkData, null);
|
||||||
newPackedDimData.add(dim);
|
newPackedDimData.put(dim.ID,dim);
|
||||||
|
|
||||||
DDSaveHandler.unpackDimData(newPackedDimData);
|
DDSaveHandler.unpackDimData(newPackedDimData);
|
||||||
DDSaveHandler.unpackLinkData(allPackedLinks);
|
DDSaveHandler.unpackLinkData(allPackedLinks);
|
||||||
|
|||||||
Reference in New Issue
Block a user