diff options
Diffstat (limited to 'OpenSim/Region')
3 files changed, 69 insertions, 32 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveConstants.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveConstants.cs index 843dd0c..0766c95 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveConstants.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveConstants.cs | |||
@@ -59,50 +59,50 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
59 | static ArchiveConstants() | 59 | static ArchiveConstants() |
60 | { | 60 | { |
61 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Animation] = ".bvh"; | 61 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Animation] = ".bvh"; |
62 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Bodypart] = ".bpt.txt"; | 62 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Bodypart] = ".bpt"; |
63 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.CallingCard] = ".ccd.txt"; | 63 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.CallingCard] = ".ccd"; |
64 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Clothing] = ".clo.txt"; | 64 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Clothing] = ".clo"; |
65 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Folder] = ".fld.txt"; // Not sure if we'll ever see this | 65 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Folder] = ".fld"; // Not sure if we'll ever see this |
66 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Gesture] = ".gst.txt"; | 66 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Gesture] = ".gst"; |
67 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.ImageJPEG] = ".jpg"; | 67 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.ImageJPEG] = ".jpg"; |
68 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.ImageTGA] = ".img.tga"; | 68 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.ImageTGA] = ".imgtga"; |
69 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LostAndFoundFolder] = ".lff.txt"; // Not sure if we'll ever see this | 69 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LostAndFoundFolder] = ".lfd"; // Not sure if we'll ever see this |
70 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LSLBytecode] = ".lso"; | 70 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LSLBytecode] = ".lso"; |
71 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LSLText] = ".lsl"; | 71 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LSLText] = ".lsl"; |
72 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Notecard] = ".ncd.txt"; | 72 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Notecard] = ".ncd"; |
73 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Object] = ".obj.xml"; | 73 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Object] = ".oob"; |
74 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.RootFolder] = ".rof.txt"; // Not sure if we'll ever see this | 74 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.RootFolder] = ".rfd"; // Not sure if we'll ever see this |
75 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Script] = ".spt"; // Not sure if we'll ever see this | 75 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Script] = ".spt"; // Not sure if we'll ever see this |
76 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Simstate] = ".sst"; // Not sure if we'll ever see this | 76 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Simstate] = ".sst"; // Not sure if we'll ever see this |
77 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.SnapshotFolder] = ".ssf.txt"; // Not sure if we'll ever see this | 77 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.SnapshotFolder] = ".sfd"; // Not sure if we'll ever see this |
78 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Sound] = ".ogg"; | 78 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Sound] = ".ogg"; |
79 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.SoundWAV] = ".wav"; | 79 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.SoundWAV] = ".wav"; |
80 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Texture] = ".jp2"; | 80 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Texture] = ".jp2"; |
81 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.TextureTGA] = ".tga"; | 81 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.TextureTGA] = ".tga"; |
82 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.TrashFolder] = ".trf.txt"; // Not sure if we'll ever see this | 82 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.TrashFolder] = ".tfd"; // Not sure if we'll ever see this |
83 | 83 | ||
84 | EXTENSION_TO_ASSET_TYPE[".bvh"] = (sbyte)AssetType.Animation; | 84 | EXTENSION_TO_ASSET_TYPE[".bvh"] = (sbyte)AssetType.Animation; |
85 | EXTENSION_TO_ASSET_TYPE[".bpt.txt"] = (sbyte)AssetType.Bodypart; | 85 | EXTENSION_TO_ASSET_TYPE[".bpt"] = (sbyte)AssetType.Bodypart; |
86 | EXTENSION_TO_ASSET_TYPE[".ccd.txt"] = (sbyte)AssetType.CallingCard; | 86 | EXTENSION_TO_ASSET_TYPE[".ccd"] = (sbyte)AssetType.CallingCard; |
87 | EXTENSION_TO_ASSET_TYPE[".clo.txt"] = (sbyte)AssetType.Clothing; | 87 | EXTENSION_TO_ASSET_TYPE[".clo"] = (sbyte)AssetType.Clothing; |
88 | EXTENSION_TO_ASSET_TYPE[".fld.txt"] = (sbyte)AssetType.Folder; | 88 | EXTENSION_TO_ASSET_TYPE[".fld"] = (sbyte)AssetType.Folder; |
89 | EXTENSION_TO_ASSET_TYPE[".gst.txt"] = (sbyte)AssetType.Gesture; | 89 | EXTENSION_TO_ASSET_TYPE[".gst"] = (sbyte)AssetType.Gesture; |
90 | EXTENSION_TO_ASSET_TYPE[".jpg"] = (sbyte)AssetType.ImageJPEG; | 90 | EXTENSION_TO_ASSET_TYPE[".jpg"] = (sbyte)AssetType.ImageJPEG; |
91 | EXTENSION_TO_ASSET_TYPE[".img.tga"] = (sbyte)AssetType.ImageTGA; | 91 | EXTENSION_TO_ASSET_TYPE[".imgtga"] = (sbyte)AssetType.ImageTGA; |
92 | EXTENSION_TO_ASSET_TYPE[".lff.txt"] = (sbyte)AssetType.LostAndFoundFolder; | 92 | EXTENSION_TO_ASSET_TYPE[".lfd"] = (sbyte)AssetType.LostAndFoundFolder; |
93 | EXTENSION_TO_ASSET_TYPE[".lso"] = (sbyte)AssetType.LSLBytecode; | 93 | EXTENSION_TO_ASSET_TYPE[".lso"] = (sbyte)AssetType.LSLBytecode; |
94 | EXTENSION_TO_ASSET_TYPE[".lsl"] = (sbyte)AssetType.LSLText; | 94 | EXTENSION_TO_ASSET_TYPE[".lsl"] = (sbyte)AssetType.LSLText; |
95 | EXTENSION_TO_ASSET_TYPE[".ncd.txt"] = (sbyte)AssetType.Notecard; | 95 | EXTENSION_TO_ASSET_TYPE[".ncd"] = (sbyte)AssetType.Notecard; |
96 | EXTENSION_TO_ASSET_TYPE[".obj.xml"] = (sbyte)AssetType.Object; | 96 | EXTENSION_TO_ASSET_TYPE[".oob"] = (sbyte)AssetType.Object; |
97 | EXTENSION_TO_ASSET_TYPE[".rof.txt"] = (sbyte)AssetType.RootFolder; | 97 | EXTENSION_TO_ASSET_TYPE[".rfd"] = (sbyte)AssetType.RootFolder; |
98 | EXTENSION_TO_ASSET_TYPE[".spt"] = (sbyte)AssetType.Script; | 98 | EXTENSION_TO_ASSET_TYPE[".spt"] = (sbyte)AssetType.Script; |
99 | EXTENSION_TO_ASSET_TYPE[".sst"] = (sbyte)AssetType.Simstate; | 99 | EXTENSION_TO_ASSET_TYPE[".sst"] = (sbyte)AssetType.Simstate; |
100 | EXTENSION_TO_ASSET_TYPE[".ssf.txt"] = (sbyte)AssetType.SnapshotFolder; | 100 | EXTENSION_TO_ASSET_TYPE[".sfd"] = (sbyte)AssetType.SnapshotFolder; |
101 | EXTENSION_TO_ASSET_TYPE[".ogg"] = (sbyte)AssetType.Sound; | 101 | EXTENSION_TO_ASSET_TYPE[".ogg"] = (sbyte)AssetType.Sound; |
102 | EXTENSION_TO_ASSET_TYPE[".wav"] = (sbyte)AssetType.SoundWAV; | 102 | EXTENSION_TO_ASSET_TYPE[".wav"] = (sbyte)AssetType.SoundWAV; |
103 | EXTENSION_TO_ASSET_TYPE[".jp2"] = (sbyte)AssetType.Texture; | 103 | EXTENSION_TO_ASSET_TYPE[".jp2"] = (sbyte)AssetType.Texture; |
104 | EXTENSION_TO_ASSET_TYPE[".tga"] = (sbyte)AssetType.TextureTGA; | 104 | EXTENSION_TO_ASSET_TYPE[".tga"] = (sbyte)AssetType.TextureTGA; |
105 | EXTENSION_TO_ASSET_TYPE[".trf.txt"] = (sbyte)AssetType.TrashFolder; | 105 | EXTENSION_TO_ASSET_TYPE[".tfd"] = (sbyte)AssetType.TrashFolder; |
106 | } | 106 | } |
107 | } | 107 | } |
108 | } | 108 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs index 8d882ea..8f73c2c 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -61,7 +61,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
61 | protected void DearchiveRegion() | 61 | protected void DearchiveRegion() |
62 | { | 62 | { |
63 | TarArchiveReader archive = new TarArchiveReader(m_loadPath); | 63 | TarArchiveReader archive = new TarArchiveReader(m_loadPath); |
64 | AssetsDearchiver dearchiver = new AssetsDearchiver(m_scene.AssetCache); | 64 | //AssetsDearchiver dearchiver = new AssetsDearchiver(m_scene.AssetCache); |
65 | 65 | ||
66 | List<string> serialisedSceneObjects = new List<string>(); | 66 | List<string> serialisedSceneObjects = new List<string>(); |
67 | string filePath = "ERROR"; | 67 | string filePath = "ERROR"; |
@@ -76,14 +76,14 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
76 | { | 76 | { |
77 | serialisedSceneObjects.Add(m_asciiEncoding.GetString(data)); | 77 | serialisedSceneObjects.Add(m_asciiEncoding.GetString(data)); |
78 | } | 78 | } |
79 | else if (filePath.Equals(ArchiveConstants.ASSETS_METADATA_PATH)) | 79 | // else if (filePath.Equals(ArchiveConstants.ASSETS_METADATA_PATH)) |
80 | { | 80 | // { |
81 | string xml = m_asciiEncoding.GetString(data); | 81 | // string xml = m_asciiEncoding.GetString(data); |
82 | dearchiver.AddAssetMetadata(xml); | 82 | // dearchiver.AddAssetMetadata(xml); |
83 | } | 83 | // } |
84 | else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH)) | 84 | else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH)) |
85 | { | 85 | { |
86 | dearchiver.AddAssetData(filePath, data); | 86 | ResolveAssetData(filePath, data); |
87 | } | 87 | } |
88 | } | 88 | } |
89 | 89 | ||
@@ -103,5 +103,42 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
103 | 103 | ||
104 | m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive"); | 104 | m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive"); |
105 | } | 105 | } |
106 | |||
107 | /// <summary> | ||
108 | /// Resolve a new piece of asset data against stored metadata | ||
109 | /// </summary> | ||
110 | /// <param name="assetFilename"></param> | ||
111 | /// <param name="data"></param> | ||
112 | /// <returns>true if asset was successfully loaded, false otherwise</returns> | ||
113 | protected bool ResolveAssetData(string assetPath, byte[] data) | ||
114 | { | ||
115 | // Right now we're nastily obtaining the lluuid from the filename | ||
116 | string filename = assetPath.Remove(0, ArchiveConstants.ASSETS_PATH.Length); | ||
117 | string extension = filename.Substring(filename.LastIndexOf(".")); | ||
118 | string uuid = filename.Remove(filename.Length - extension.Length); | ||
119 | |||
120 | if (ArchiveConstants.EXTENSION_TO_ASSET_TYPE.ContainsKey(extension)) | ||
121 | { | ||
122 | sbyte assetType = ArchiveConstants.EXTENSION_TO_ASSET_TYPE[extension]; | ||
123 | |||
124 | m_log.DebugFormat("[ARCHIVER]: Importing asset {0}", filename); | ||
125 | |||
126 | AssetBase asset = new AssetBase(new LLUUID(uuid), String.Empty); | ||
127 | asset.Type = assetType; | ||
128 | asset.Data = data; | ||
129 | |||
130 | m_scene.AssetCache.AddAsset(asset); | ||
131 | |||
132 | return true; | ||
133 | } | ||
134 | else | ||
135 | { | ||
136 | m_log.ErrorFormat( | ||
137 | "[DEARCHIVER]: Tried to dearchive data with path {0} with an unknown type extension {1}", | ||
138 | assetPath, extension); | ||
139 | |||
140 | return false; | ||
141 | } | ||
142 | } | ||
106 | } | 143 | } |
107 | } | 144 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs index 4922362..ed07c9f 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs | |||
@@ -58,7 +58,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
58 | /// <param name="archive"></param> | 58 | /// <param name="archive"></param> |
59 | public void Archive(TarArchiveWriter archive) | 59 | public void Archive(TarArchiveWriter archive) |
60 | { | 60 | { |
61 | WriteMetadata(archive); | 61 | //WriteMetadata(archive); |
62 | WriteData(archive); | 62 | WriteData(archive); |
63 | } | 63 | } |
64 | 64 | ||