* Fix a bug in the archiver where I didn't realize a shape still needs its default texture as well as its face textures

0.6.0-stable
Justin Clarke Casey 2008-06-16 22:43:30 +00:00
parent 53c9ce46b3
commit cb70299092
2 changed files with 13 additions and 3 deletions

View File

@ -296,6 +296,7 @@ namespace OpenSim.Framework
ProfileBegin = LLObject.PackBeginCut(profileRange.X);
ProfileEnd = LLObject.PackEndCut(profileRange.Y);
}
public byte[] ExtraParams
{
get
@ -528,6 +529,7 @@ namespace OpenSim.Framework
return data;
}
public void ReadFlexiData(byte[] data, int pos)
{
if (data.Length-pos >= 5)
@ -558,6 +560,7 @@ namespace OpenSim.Framework
FlexiForceZ = 0f;
}
}
public byte[] GetFlexiBytes()
{
byte[] data = new byte[16];
@ -576,6 +579,7 @@ namespace OpenSim.Framework
return data;
}
public void ReadLightData(byte[] data, int pos)
{
if (data.Length - pos >= 16)
@ -605,6 +609,7 @@ namespace OpenSim.Framework
LightIntensity = 0f;
}
}
public byte[] GetLightBytes()
{
byte[] data = new byte[16];

View File

@ -99,17 +99,22 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
m_log.DebugFormat(
"[ARCHIVER]: Getting part {0}, {1} for object {2}", part.Name, part.UUID, sceneObject.UUID);
LLObject.TextureEntry textureEntry = part.Shape.Textures;
// Get the prim's default texture. This will be used for faces which don't have their own texture
assetUuids[textureEntry.DefaultTexture.TextureID] = 1;
// XXX: Not a great way to iterate through face textures, but there's no
// other way to tell how many faces there actually are
// other method available to tell how many faces there actually are
int i = 0;
foreach (LLObject.TextureEntryFace texture in part.Shape.Textures.FaceTextures)
foreach (LLObject.TextureEntryFace texture in textureEntry.FaceTextures)
{
if (texture != null)
{
m_log.DebugFormat("[ARCHIVER]: Got face {0}", i++);
assetUuids[texture.TextureID] = 1;
}
}
}
foreach (TaskInventoryItem tii in part.TaskInventory.Values)
{