diff --git a/StevenDimDoors/mod_pocketDim/core/PocketManager.java b/StevenDimDoors/mod_pocketDim/core/PocketManager.java index 9a27143..373902b 100644 --- a/StevenDimDoors/mod_pocketDim/core/PocketManager.java +++ b/StevenDimDoors/mod_pocketDim/core/PocketManager.java @@ -97,7 +97,14 @@ public class PocketManager ArrayList ChildIDs = new ArrayList(); ArrayList Links = new ArrayList(); ArrayList Tails = new ArrayList(); - PackedDungeonData packedDungeon = new PackedDungeonData(); //TODO pack dungeon Data + PackedDungeonData packedDungeon=null; + + if(this.dungeon!=null) + { + packedDungeon= new PackedDungeonData(dungeon.weight(), dungeon.isOpen(), dungeon.isInternal(), + dungeon.schematicPath(), dungeon.schematicName(), dungeon.dungeonType().Name, + dungeon.dungeonType().Owner.getName()); + } //Make a list of children for(NewDimData data : this.children) { diff --git a/StevenDimDoors/mod_pocketDim/dungeon/DungeonData.java b/StevenDimDoors/mod_pocketDim/dungeon/DungeonData.java index aa4bfa3..92c72c5 100644 --- a/StevenDimDoors/mod_pocketDim/dungeon/DungeonData.java +++ b/StevenDimDoors/mod_pocketDim/dungeon/DungeonData.java @@ -44,6 +44,11 @@ public class DungeonData return isOpen; } + public boolean isInternal() + { + return isInternal; + } + public String schematicPath() { return schematicPath; diff --git a/StevenDimDoors/mod_pocketDim/saving/DimDataProcessor.java b/StevenDimDoors/mod_pocketDim/saving/DimDataProcessor.java index d48e49e..7be35fa 100644 --- a/StevenDimDoors/mod_pocketDim/saving/DimDataProcessor.java +++ b/StevenDimDoors/mod_pocketDim/saving/DimDataProcessor.java @@ -86,7 +86,7 @@ public class DimDataProcessor extends BaseConfigurationProcessor int PackDepth; int ParentID; int RootID; - PackedDungeonData Dungeon; + PackedDungeonData Dungeon = null; Point3D Origin; int Orientation; List ChildIDs; @@ -122,9 +122,12 @@ public class DimDataProcessor extends BaseConfigurationProcessor reader.nextName(); RootID= reader.nextInt(); - reader.nextName(); - Dungeon = createDungeonDataFromJson(reader); - reader.nextName(); + if(reader.nextName().equals("DungeonData")) + { + Dungeon = createDungeonDataFromJson(reader); + reader.nextName(); + } + Origin = createPointFromJson(reader); reader.nextName(); @@ -242,10 +245,45 @@ public class DimDataProcessor extends BaseConfigurationProcessor } private PackedDungeonData createDungeonDataFromJson(JsonReader reader) throws IOException { + int Weight; + boolean IsOpen; + boolean IsInternal; + String SchematicPath; + String SchematicName; + String DungeonTypeName; + String DungeonPackName; + reader.beginObject(); - //TODO read in dungeon Data + JsonToken test = reader.peek(); + + if(reader.peek() == JsonToken.END_OBJECT) + { + return null; + } + + reader.nextName(); + Weight=reader.nextInt(); + + reader.nextName(); + IsOpen=reader.nextBoolean(); + + reader.nextName(); + IsInternal=reader.nextBoolean(); + + reader.nextName(); + SchematicPath=reader.nextString(); + + reader.nextName(); + SchematicName=reader.nextString(); + + reader.nextName(); + DungeonTypeName=reader.nextString(); + + reader.nextName(); + DungeonPackName=reader.nextString(); + reader.endObject(); - return null; + return new PackedDungeonData(Weight, IsOpen, IsInternal, SchematicPath, SchematicName, DungeonTypeName, DungeonPackName); } private PackedLinkTail createLinkTailFromJson(JsonReader reader) throws IOException { diff --git a/StevenDimDoors/mod_pocketDim/saving/PackedDungeonData.java b/StevenDimDoors/mod_pocketDim/saving/PackedDungeonData.java index f997e85..caa5c00 100644 --- a/StevenDimDoors/mod_pocketDim/saving/PackedDungeonData.java +++ b/StevenDimDoors/mod_pocketDim/saving/PackedDungeonData.java @@ -1,5 +1,29 @@ package StevenDimDoors.mod_pocketDim.saving; -public class PackedDungeonData { +import StevenDimDoors.mod_pocketDim.dungeon.pack.DungeonType; +public class PackedDungeonData +{ + + public final int Weight; + public final boolean IsOpen; + public final boolean IsInternal; + public final String SchematicPath; + public final String SchematicName; + public final String DungeonTypeName; + public final String DungeonPackName; + + public PackedDungeonData(int weight, boolean isOpen, boolean isInternal, String schematicPath, String schematicName, String dungeonTypeName, String dungeonPackName) + { + this.Weight= weight; + this.IsOpen=isOpen; + this.IsInternal=isInternal; + this.SchematicName=schematicName; + this.SchematicPath=schematicPath; + this.DungeonTypeName=dungeonTypeName; + this.DungeonPackName=dungeonPackName; + } + + + }