From e8a99d62a94bbc4c03a5d00f9449dcdad9ee2a1f Mon Sep 17 00:00:00 2001 From: Justin Aquadro Date: Fri, 8 Apr 2011 06:48:27 +0000 Subject: [PATCH] Numerous fixes to get the library to actually run with software. Rebuilt Ionic.Zlib to incorporate critical patch to Addler32. --- .../SubstrateCS/Assemblies/Ionic.Zlib.dll | Bin 98304 -> 78848 bytes Substrate/SubstrateCS/Source/ChunkRef.cs | 6 +-- Substrate/SubstrateCS/Source/Level.cs | 50 ++++++++++-------- .../SubstrateCS/Source/NBT/JSONSerializer.cs | 2 +- Substrate/SubstrateCS/Source/NBT/NBTSchema.cs | 4 ++ Substrate/SubstrateCS/Source/Region.cs | 5 +- Substrate/SubstrateCS/Source/RegionFile.cs | 16 ++++-- Substrate/SubstrateCS/Source/World.cs | 5 +- Substrate/SubstrateCS/Substrate.csproj | 3 +- Substrate/SubstrateCS/Substrate.sln | 12 +++++ 10 files changed, 71 insertions(+), 32 deletions(-) diff --git a/Substrate/SubstrateCS/Assemblies/Ionic.Zlib.dll b/Substrate/SubstrateCS/Assemblies/Ionic.Zlib.dll index 7c29e8cc75d79eea60a087075068543d8600e641..23bbfdfac8ba0898dc5a420e50b2ee1568e53b6d 100644 GIT binary patch literal 78848 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 literal 98304 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, ICopyable { - public static NBTCompoundNode LevelSchema = new NBTCompoundNode() - { - new NBTCompoundNode("Data") - { - new NBTScalerNode("Time", NBT_Type.TAG_LONG), - new NBTScalerNode("LastPlayed", NBT_Type.TAG_LONG), - new NBTCompoundNode("Player", Player.PlayerSchema), - new NBTScalerNode("SpawnX", NBT_Type.TAG_INT), - new NBTScalerNode("SpawnY", NBT_Type.TAG_INT), - new NBTScalerNode("SpawnZ", NBT_Type.TAG_INT), - new NBTScalerNode("SizeOnDisk", NBT_Type.TAG_LONG), - new NBTScalerNode("RandomSeed", NBT_Type.TAG_LONG), - new NBTScalerNode("Version", NBT_Type.TAG_INT, NBTOptions.OPTIONAL), - new NBTScalerNode("LevelName", NBT_Type.TAG_STRING, NBTOptions.OPTIONAL), - }, - }; + public static NBTCompoundNode LevelSchema; private World _world; @@ -103,6 +88,23 @@ namespace Substrate public Level (World world) { _world = world; + + LevelSchema = new NBTCompoundNode() + { + new NBTCompoundNode("Data") + { + new NBTScalerNode("Time", NBT_Type.TAG_LONG), + new NBTScalerNode("LastPlayed", NBT_Type.TAG_LONG), + new NBTCompoundNode("Player", Player.PlayerSchema, NBTOptions.OPTIONAL), + new NBTScalerNode("SpawnX", NBT_Type.TAG_INT), + new NBTScalerNode("SpawnY", NBT_Type.TAG_INT), + new NBTScalerNode("SpawnZ", NBT_Type.TAG_INT), + new NBTScalerNode("SizeOnDisk", NBT_Type.TAG_LONG), + new NBTScalerNode("RandomSeed", NBT_Type.TAG_LONG), + new NBTScalerNode("version", NBT_Type.TAG_INT, NBTOptions.OPTIONAL), + new NBTScalerNode("LevelName", NBT_Type.TAG_STRING, NBTOptions.OPTIONAL), + }, + }; } public Level (Level p) @@ -157,7 +159,9 @@ namespace Substrate _time = ctree["Time"].ToNBTLong(); _lastPlayed = ctree["LastPlayed"].ToNBTLong(); - _player = new Player().LoadTree(ctree["Player"]); + if (ctree.ContainsKey("Player")) { + _player = new Player().LoadTree(ctree["Player"]); + } _spawnX = ctree["SpawnX"].ToNBTInt(); _spawnY = ctree["SpawnY"].ToNBTInt(); @@ -166,8 +170,8 @@ namespace Substrate _sizeOnDisk = ctree["SizeOnDisk"].ToNBTLong(); _randomSeed = ctree["RandomSeed"].ToNBTLong(); - if (ctree.ContainsKey("Version")) { - _version = ctree["Version"].ToNBTInt(); + if (ctree.ContainsKey("version")) { + _version = ctree["version"].ToNBTInt(); } if (ctree.ContainsKey("LevelName")) { @@ -191,7 +195,11 @@ namespace Substrate NBT_Compound data = new NBT_Compound(); data["Time"] = new NBT_Long(_time); data["LastPlayed"] = new NBT_Long(_lastPlayed); - data["Player"] = _player.BuildTree(); + + if (_player != null) { + data["Player"] = _player.BuildTree(); + } + data["SpawnX"] = new NBT_Int(_spawnX); data["SpawnY"] = new NBT_Int(_spawnY); data["SpawnZ"] = new NBT_Int(_spawnZ); @@ -199,7 +207,7 @@ namespace Substrate data["RandomSeed"] = new NBT_Long(_randomSeed); if (_version != null) { - data["Version"] = new NBT_Int(_version ?? 0); + data["version"] = new NBT_Int(_version ?? 0); } if (_name != null) { diff --git a/Substrate/SubstrateCS/Source/NBT/JSONSerializer.cs b/Substrate/SubstrateCS/Source/NBT/JSONSerializer.cs index ce3e1de..f1f7b45 100644 --- a/Substrate/SubstrateCS/Source/NBT/JSONSerializer.cs +++ b/Substrate/SubstrateCS/Source/NBT/JSONSerializer.cs @@ -4,7 +4,7 @@ using System.Text; namespace Substrate.NBT { - class JSONSerializer + public class JSONSerializer { public static string Serialize (NBT_Value tag) { diff --git a/Substrate/SubstrateCS/Source/NBT/NBTSchema.cs b/Substrate/SubstrateCS/Source/NBT/NBTSchema.cs index 5f0903a..a627ca2 100644 --- a/Substrate/SubstrateCS/Source/NBT/NBTSchema.cs +++ b/Substrate/SubstrateCS/Source/NBT/NBTSchema.cs @@ -354,6 +354,8 @@ namespace Substrate.NBT public NBTCompoundNode (string name, NBTSchemaNode subschema) : base(name) { + _subnodes = new List(); + NBTCompoundNode schema = subschema as NBTCompoundNode; if (schema == null) { return; @@ -368,6 +370,8 @@ namespace Substrate.NBT public NBTCompoundNode (string name, NBTSchemaNode subschema, NBTOptions options) : base(name, options) { + _subnodes = new List(); + NBTCompoundNode schema = subschema as NBTCompoundNode; if (schema == null) { return; diff --git a/Substrate/SubstrateCS/Source/Region.cs b/Substrate/SubstrateCS/Source/Region.cs index f3e6a8b..3a14891 100644 --- a/Substrate/SubstrateCS/Source/Region.cs +++ b/Substrate/SubstrateCS/Source/Region.cs @@ -143,7 +143,10 @@ namespace Substrate return null; } - return new NBT_Tree(nbtstr); + NBT_Tree tree = new NBT_Tree(nbtstr); + + nbtstr.Close(); + return tree; } public bool SaveChunkTree (int lcx, int lcz, NBT_Tree tree) diff --git a/Substrate/SubstrateCS/Source/RegionFile.cs b/Substrate/SubstrateCS/Source/RegionFile.cs index 4b81735..24d7d76 100644 --- a/Substrate/SubstrateCS/Source/RegionFile.cs +++ b/Substrate/SubstrateCS/Source/RegionFile.cs @@ -237,14 +237,24 @@ namespace Substrate byte[] data = new byte[length - 1]; file.Read(data, 0, data.Length); Stream ret = new GZipStream(new MemoryStream(data), CompressionMode.Decompress); - // Debug("READ", x, z, " = found"); + return ret; - } else if (version == VERSION_DEFLATE) { + } + else if (version == VERSION_DEFLATE) { byte[] data = new byte[length - 1]; file.Read(data, 0, data.Length); + Stream ret = new ZlibStream(new MemoryStream(data), CompressionMode.Decompress, true); - // Debug("READ", x, z, " = found"); return ret; + + /*MemoryStream sinkZ = new MemoryStream(); + ZlibStream zOut = new ZlibStream(sinkZ, CompressionMode.Decompress, true); + zOut.Write(data, 0, data.Length); + zOut.Flush(); + zOut.Close(); + + sinkZ.Seek(0, SeekOrigin.Begin); + return sinkZ;*/ } Debugln("READ", x, z, "unknown version " + version); diff --git a/Substrate/SubstrateCS/Source/World.cs b/Substrate/SubstrateCS/Source/World.cs index 6400d0a..d77bc6b 100644 --- a/Substrate/SubstrateCS/Source/World.cs +++ b/Substrate/SubstrateCS/Source/World.cs @@ -61,7 +61,10 @@ namespace Substrate return false; } - _level = new Level(this).LoadTreeSafe(new NBT_Tree(nbtstr).Root); + NBT_Tree tree = new NBT_Tree(nbtstr); + + _level = new Level(this); + _level = _level.LoadTreeSafe(tree.Root); return _level != null; } diff --git a/Substrate/SubstrateCS/Substrate.csproj b/Substrate/SubstrateCS/Substrate.csproj index f9358d5..deef722 100644 --- a/Substrate/SubstrateCS/Substrate.csproj +++ b/Substrate/SubstrateCS/Substrate.csproj @@ -54,13 +54,12 @@ - + False Assemblies\Ionic.Zlib.dll - diff --git a/Substrate/SubstrateCS/Substrate.sln b/Substrate/SubstrateCS/Substrate.sln index 5c12077..73b0b82 100644 --- a/Substrate/SubstrateCS/Substrate.sln +++ b/Substrate/SubstrateCS/Substrate.sln @@ -3,6 +3,10 @@ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual C# Express 2008 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Substrate", "Substrate.csproj", "{AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NBToolkit", "..\..\NBToolkit\NBToolkit.csproj", "{68207314-C080-4823-97F1-A6623145AA00}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ionic.Zlib", "..\..\Ionic.Zlib\Ionic.Zlib.csproj", "{5A137E43-7E7B-4696-8BFC-844CACAB144B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -13,6 +17,14 @@ Global {AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Debug|Any CPU.Build.0 = Debug|Any CPU {AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Release|Any CPU.ActiveCfg = Release|Any CPU {AFE30E14-3F2F-4461-9F7D-147AB4DCA4C3}.Release|Any CPU.Build.0 = Release|Any CPU + {68207314-C080-4823-97F1-A6623145AA00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68207314-C080-4823-97F1-A6623145AA00}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68207314-C080-4823-97F1-A6623145AA00}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68207314-C080-4823-97F1-A6623145AA00}.Release|Any CPU.Build.0 = Release|Any CPU + {5A137E43-7E7B-4696-8BFC-844CACAB144B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A137E43-7E7B-4696-8BFC-844CACAB144B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A137E43-7E7B-4696-8BFC-844CACAB144B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A137E43-7E7B-4696-8BFC-844CACAB144B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE