Cleaning up some of the CAPS functions, Asset uploads now use the new LLSDStreamhandler system.
parent
17ddb8b493
commit
27c595c007
|
@ -174,8 +174,8 @@ namespace OpenSim.Framework.Interfaces
|
||||||
void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint);
|
void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint);
|
||||||
void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLQuaternion rotation, LLUUID textureID , uint flags);
|
void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLQuaternion rotation, LLUUID textureID , uint flags);
|
||||||
void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLUUID textureID, uint flags);
|
void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLUUID textureID, uint flags);
|
||||||
void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLQuaternion rotation, LLUUID textureID, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID);
|
void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLQuaternion rotation, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID);
|
||||||
void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLUUID textureID, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID);
|
void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID);
|
||||||
void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLQuaternion rotation);
|
void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLQuaternion rotation);
|
||||||
|
|
||||||
void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items);
|
void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items);
|
||||||
|
|
|
@ -48,8 +48,8 @@ namespace OpenSim.Region.Capabilities
|
||||||
private string m_requestPath = "0000/";
|
private string m_requestPath = "0000/";
|
||||||
private string m_mapLayerPath = "0001/";
|
private string m_mapLayerPath = "0001/";
|
||||||
private string m_newInventory = "0002/";
|
private string m_newInventory = "0002/";
|
||||||
private string m_requestTexture = "0003/";
|
// private string m_requestTexture = "0003/";
|
||||||
private string eventQueue = "0100/";
|
//private string eventQueue = "0100/";
|
||||||
private BaseHttpServer httpListener;
|
private BaseHttpServer httpListener;
|
||||||
private LLUUID agentID;
|
private LLUUID agentID;
|
||||||
private AssetCache assetCache;
|
private AssetCache assetCache;
|
||||||
|
@ -74,17 +74,12 @@ namespace OpenSim.Region.Capabilities
|
||||||
Console.WriteLine("registering CAPS handlers");
|
Console.WriteLine("registering CAPS handlers");
|
||||||
string capsBase = "/CAPS/" + m_capsObjectPath;
|
string capsBase = "/CAPS/" + m_capsObjectPath;
|
||||||
|
|
||||||
|
httpListener.AddStreamHandler(new LLSDStreamhandler<LLSDMapRequest, LLSDMapLayerResponse>("POST", capsBase + m_mapLayerPath, this.GetMapLayer ));
|
||||||
AddLegacyCapsHandler( httpListener, m_mapLayerPath, MapLayer);
|
httpListener.AddStreamHandler( new LLSDStreamhandler<LLSDAssetUploadRequest, LLSDAssetUploadResponse>("POST", capsBase + m_newInventory, this.NewAgentInventoryRequest));
|
||||||
|
|
||||||
// httpListener.AddStreamHandler(
|
|
||||||
// new LLSDStreamhandler<LLSDMapRequest, LLSDMapLayerResponse>("POST", capsBase + m_mapLayerPath, this.GetMapLayer ));
|
|
||||||
|
|
||||||
AddLegacyCapsHandler(httpListener, m_requestPath, CapsRequest);
|
AddLegacyCapsHandler(httpListener, m_requestPath, CapsRequest);
|
||||||
AddLegacyCapsHandler(httpListener, m_newInventory, NewAgentInventory);
|
// AddLegacyCapsHandler( httpListener, eventQueue, ProcessEventQueue);
|
||||||
AddLegacyCapsHandler( httpListener, eventQueue, ProcessEventQueue);
|
// AddLegacyCapsHandler( httpListener, m_requestTexture, RequestTexture);
|
||||||
AddLegacyCapsHandler( httpListener, m_requestTexture, RequestTexture);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Obsolete("Use BaseHttpServer.AddStreamHandler(new LLSDStreamHandler( LLSDMethod delegate )) instead.")]
|
[Obsolete("Use BaseHttpServer.AddStreamHandler(new LLSDStreamHandler( LLSDMethod delegate )) instead.")]
|
||||||
|
@ -103,9 +98,7 @@ namespace OpenSim.Region.Capabilities
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string CapsRequest(string request, string path, string param)
|
public string CapsRequest(string request, string path, string param)
|
||||||
{
|
{
|
||||||
// Console.WriteLine("Caps Request " + request);
|
string result = LLSDHelpers.SerialiseLLSDReply(this.GetCapabilities());
|
||||||
string result = "";
|
|
||||||
result = LLSDHelpers.SerialiseLLSDReply(this.GetCapabilities());
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,55 +110,33 @@ namespace OpenSim.Region.Capabilities
|
||||||
{
|
{
|
||||||
LLSDCapsDetails caps = new LLSDCapsDetails();
|
LLSDCapsDetails caps = new LLSDCapsDetails();
|
||||||
string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + m_capsObjectPath;
|
string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + m_capsObjectPath;
|
||||||
|
|
||||||
caps.MapLayer = capsBaseUrl + m_mapLayerPath;
|
caps.MapLayer = capsBaseUrl + m_mapLayerPath;
|
||||||
caps.NewFileAgentInventory = capsBaseUrl + m_newInventory;
|
caps.NewFileAgentInventory = capsBaseUrl + m_newInventory;
|
||||||
|
|
||||||
return caps;
|
return caps;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="request"></param>
|
/// <param name="mapReq"></param>
|
||||||
/// <param name="path"></param>
|
|
||||||
/// <param name="param"></param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string MapLayer(string request, string path, string param)
|
|
||||||
{
|
|
||||||
Console.WriteLine("map request: " + request);
|
|
||||||
Encoding _enc = Encoding.UTF8;
|
|
||||||
Hashtable hash = (Hashtable)LLSD.LLSDDeserialize(_enc.GetBytes(request));
|
|
||||||
LLSDMapRequest mapReq = new LLSDMapRequest();
|
|
||||||
LLSDHelpers.DeserialiseLLSDMap(hash, mapReq);
|
|
||||||
|
|
||||||
LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse();
|
|
||||||
mapResponse.LayerData.Array.Add(this.BuildLLSDMapLayerResponse());
|
|
||||||
string res = LLSDHelpers.SerialiseLLSDReply(mapResponse);
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LLSDMapLayerResponse GetMapLayer(LLSDMapRequest mapReq)
|
public LLSDMapLayerResponse GetMapLayer(LLSDMapRequest mapReq)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Map request " + mapReq.Flags);
|
|
||||||
LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse();
|
LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse();
|
||||||
mapResponse.LayerData.Array.Add(this.BuildLLSDMapLayerResponse());
|
mapResponse.LayerData.Array.Add(this.GetLLSDMapLayerResponse());
|
||||||
return mapResponse;
|
return mapResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
protected LLSDMapLayer BuildLLSDMapLayerResponse()
|
protected LLSDMapLayer GetLLSDMapLayerResponse()
|
||||||
{
|
{
|
||||||
LLSDMapLayer mapLayer = new LLSDMapLayer();
|
LLSDMapLayer mapLayer = new LLSDMapLayer();
|
||||||
mapLayer.Right = 5000;
|
mapLayer.Right = 5000;
|
||||||
mapLayer.Top = 5000;
|
mapLayer.Top = 5000;
|
||||||
mapLayer.ImageID = new LLUUID("00000000-0000-0000-9999-000000000006");
|
mapLayer.ImageID = new LLUUID("00000000-0000-0000-9999-000000000006");
|
||||||
|
|
||||||
return mapLayer;
|
return mapLayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,6 +153,7 @@ namespace OpenSim.Region.Capabilities
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#region EventQueue (Currently not enabled)
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -240,36 +212,29 @@ namespace OpenSim.Region.Capabilities
|
||||||
eventQueueCount++;
|
eventQueueCount++;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="request"></param>
|
/// <param name="llsdRequest"></param>
|
||||||
/// <param name="path"></param>
|
|
||||||
/// <param name="param"></param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string NewAgentInventory(string request, string path, string param)
|
public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest)
|
||||||
{
|
{
|
||||||
//Console.WriteLine("received upload request:"+ request);
|
string capsBase = "/CAPS/" + m_capsObjectPath;
|
||||||
string res = "";
|
|
||||||
LLUUID newAsset = LLUUID.Random();
|
LLUUID newAsset = LLUUID.Random();
|
||||||
LLUUID newInvItem = LLUUID.Random();
|
LLUUID newInvItem = LLUUID.Random();
|
||||||
string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000");
|
string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000");
|
||||||
AssetUploader uploader = new AssetUploader(newAsset, newInvItem, uploaderPath, this.httpListener);
|
|
||||||
|
|
||||||
string capsBase = "/CAPS/" + m_capsObjectPath;
|
AssetUploader uploader = new AssetUploader(newAsset, newInvItem, capsBase + uploaderPath, this.httpListener);
|
||||||
httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps));
|
httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps));
|
||||||
|
string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath;
|
||||||
|
|
||||||
string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + m_capsObjectPath +uploaderPath;
|
LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse();
|
||||||
//Console.WriteLine("uploader url is " + uploaderURL);
|
uploadResponse.uploader = uploaderURL;
|
||||||
res += "<llsd><map>";
|
uploadResponse.state = "upload";
|
||||||
res += "<key>uploader</key><string>" + uploaderURL + "</string>";
|
uploader.OnUpLoad += this.UploadCompleteHandler;
|
||||||
//res += "<key>success</key><boolean>true</boolean>";
|
return uploadResponse;
|
||||||
res += "<key>state</key><string>upload</string>";
|
|
||||||
res += "</map></llsd>";
|
|
||||||
uploader.OnUpLoad += this.UploadHandler;
|
|
||||||
return res;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -278,9 +243,8 @@ namespace OpenSim.Region.Capabilities
|
||||||
/// <param name="assetID"></param>
|
/// <param name="assetID"></param>
|
||||||
/// <param name="inventoryItem"></param>
|
/// <param name="inventoryItem"></param>
|
||||||
/// <param name="data"></param>
|
/// <param name="data"></param>
|
||||||
public void UploadHandler(LLUUID assetID, LLUUID inventoryItem, byte[] data)
|
public void UploadCompleteHandler(LLUUID assetID, LLUUID inventoryItem, byte[] data)
|
||||||
{
|
{
|
||||||
// Console.WriteLine("upload handler called");
|
|
||||||
AssetBase asset;
|
AssetBase asset;
|
||||||
asset = new AssetBase();
|
asset = new AssetBase();
|
||||||
asset.FullID = assetID;
|
asset.FullID = assetID;
|
||||||
|
@ -299,42 +263,45 @@ namespace OpenSim.Region.Capabilities
|
||||||
private LLUUID newAssetID;
|
private LLUUID newAssetID;
|
||||||
private LLUUID inventoryItemID;
|
private LLUUID inventoryItemID;
|
||||||
private BaseHttpServer httpListener;
|
private BaseHttpServer httpListener;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="assetID"></param>
|
||||||
|
/// <param name="inventoryItem"></param>
|
||||||
|
/// <param name="path"></param>
|
||||||
|
/// <param name="httpServer"></param>
|
||||||
public AssetUploader(LLUUID assetID, LLUUID inventoryItem, string path, BaseHttpServer httpServer)
|
public AssetUploader(LLUUID assetID, LLUUID inventoryItem, string path, BaseHttpServer httpServer)
|
||||||
{
|
{
|
||||||
newAssetID = assetID;
|
newAssetID = assetID;
|
||||||
inventoryItemID = inventoryItem;
|
inventoryItemID = inventoryItem;
|
||||||
uploaderPath = path;
|
uploaderPath = path;
|
||||||
httpListener = httpServer;
|
httpListener = httpServer;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data"></param>
|
||||||
|
/// <param name="path"></param>
|
||||||
|
/// <param name="param"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public string uploaderCaps(byte[] data, string path, string param)
|
public string uploaderCaps(byte[] data, string path, string param)
|
||||||
{
|
{
|
||||||
//Encoding _enc = Encoding.UTF8;
|
|
||||||
//byte[] data = _enc.GetBytes(request);
|
|
||||||
//Console.WriteLine("recieved upload " + Util.FieldToString(data));
|
|
||||||
LLUUID inv = this.inventoryItemID;
|
LLUUID inv = this.inventoryItemID;
|
||||||
string res = "";
|
string res = "";
|
||||||
res += "<llsd><map>";
|
LLSDAssetUploadComplete uploadComplete = new LLSDAssetUploadComplete();
|
||||||
res += "<key>new_asset</key><string>" + newAssetID.ToStringHyphenated() + "</string>";
|
uploadComplete.new_asset = newAssetID.ToStringHyphenated();
|
||||||
res += "<key>new_inventory_item</key><uuid>" + inv.ToStringHyphenated() + "</uuid>";
|
uploadComplete.new_inventory_item = inv;
|
||||||
res += "<key>state</key><string>complete</string>";
|
uploadComplete.state = "complete";
|
||||||
res += "</map></llsd>";
|
res = LLSDHelpers.SerialiseLLSDReply(uploadComplete);
|
||||||
|
|
||||||
// Console.WriteLine("asset " + newAssetID.ToStringHyphenated() + " , inventory item " + inv.ToStringHyphenated());
|
httpListener.RemoveStreamHandler("POST", uploaderPath);
|
||||||
httpListener.RemoveStreamHandler("POST", "/CAPS/" + uploaderPath);
|
|
||||||
|
|
||||||
if (OnUpLoad != null)
|
if (OnUpLoad != null)
|
||||||
{
|
{
|
||||||
OnUpLoad(newAssetID, inv, data);
|
OnUpLoad(newAssetID, inv, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
FileStream fs = File.Create("upload.jp2");
|
|
||||||
BinaryWriter bw = new BinaryWriter(fs);
|
|
||||||
bw.Write(data);
|
|
||||||
bw.Close();
|
|
||||||
fs.Close();*/
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,13 +30,13 @@ using libsecondlife;
|
||||||
namespace OpenSim.Region.Capabilities
|
namespace OpenSim.Region.Capabilities
|
||||||
{
|
{
|
||||||
[LLSDType("MAP")]
|
[LLSDType("MAP")]
|
||||||
public class LLSDUploadReply
|
public class LLSDAssetUploadComplete
|
||||||
{
|
{
|
||||||
public string new_asset = "";
|
public string new_asset = "";
|
||||||
public LLUUID new_inventory_item = LLUUID.Zero;
|
public LLUUID new_inventory_item = LLUUID.Zero;
|
||||||
public string state = "";
|
public string state = "";
|
||||||
|
|
||||||
public LLSDUploadReply()
|
public LLSDAssetUploadComplete()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using libsecondlife;
|
||||||
|
|
||||||
|
namespace OpenSim.Region.Capabilities
|
||||||
|
{
|
||||||
|
[LLSDMap]
|
||||||
|
public class LLSDAssetUploadRequest
|
||||||
|
{
|
||||||
|
public string asset_type = "";
|
||||||
|
public string description = "";
|
||||||
|
public LLUUID folder_id = LLUUID.Zero;
|
||||||
|
public string inventory_type = "";
|
||||||
|
public string name = "";
|
||||||
|
|
||||||
|
public LLSDAssetUploadRequest()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace OpenSim.Region.Capabilities
|
||||||
|
{
|
||||||
|
[LLSDMap]
|
||||||
|
public class LLSDAssetUploadResponse
|
||||||
|
{
|
||||||
|
public string uploader = "";
|
||||||
|
public string state = "";
|
||||||
|
|
||||||
|
public LLSDAssetUploadResponse()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -766,13 +766,13 @@ namespace OpenSim.Region.ClientStack
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLQuaternion rotation, LLUUID textureID, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID)
|
public void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLQuaternion rotation, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID)
|
||||||
{
|
{
|
||||||
ObjectUpdatePacket outPacket = new ObjectUpdatePacket();
|
ObjectUpdatePacket outPacket = new ObjectUpdatePacket();
|
||||||
outPacket.RegionData.RegionHandle = regionHandle;
|
outPacket.RegionData.RegionHandle = regionHandle;
|
||||||
outPacket.RegionData.TimeDilation = timeDilation;
|
outPacket.RegionData.TimeDilation = timeDilation;
|
||||||
outPacket.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1];
|
outPacket.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1];
|
||||||
outPacket.ObjectData[0] = this.CreatePrimUpdateBlock(primShape, textureID, flags);
|
outPacket.ObjectData[0] = this.CreatePrimUpdateBlock(primShape, flags);
|
||||||
outPacket.ObjectData[0].ID = localID;
|
outPacket.ObjectData[0].ID = localID;
|
||||||
outPacket.ObjectData[0].FullID = objectID;
|
outPacket.ObjectData[0].FullID = objectID;
|
||||||
outPacket.ObjectData[0].OwnerID = ownerID;
|
outPacket.ObjectData[0].OwnerID = ownerID;
|
||||||
|
@ -785,13 +785,13 @@ namespace OpenSim.Region.ClientStack
|
||||||
OutPacket(outPacket);
|
OutPacket(outPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLUUID textureID, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID)
|
public void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID)
|
||||||
{
|
{
|
||||||
ObjectUpdatePacket outPacket = new ObjectUpdatePacket();
|
ObjectUpdatePacket outPacket = new ObjectUpdatePacket();
|
||||||
outPacket.RegionData.RegionHandle = regionHandle;
|
outPacket.RegionData.RegionHandle = regionHandle;
|
||||||
outPacket.RegionData.TimeDilation = timeDilation;
|
outPacket.RegionData.TimeDilation = timeDilation;
|
||||||
outPacket.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1];
|
outPacket.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1];
|
||||||
outPacket.ObjectData[0] = this.CreatePrimUpdateBlock(primShape, textureID, flags);
|
outPacket.ObjectData[0] = this.CreatePrimUpdateBlock(primShape, flags);
|
||||||
outPacket.ObjectData[0].ID = localID;
|
outPacket.ObjectData[0].ID = localID;
|
||||||
outPacket.ObjectData[0].FullID = objectID;
|
outPacket.ObjectData[0].FullID = objectID;
|
||||||
outPacket.ObjectData[0].OwnerID = ownerID;
|
outPacket.ObjectData[0].OwnerID = ownerID;
|
||||||
|
@ -996,12 +996,12 @@ namespace OpenSim.Region.ClientStack
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="primData"></param>
|
/// <param name="primData"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
protected ObjectUpdatePacket.ObjectDataBlock CreatePrimUpdateBlock(PrimitiveBaseShape primShape, LLUUID textureID, uint flags)
|
protected ObjectUpdatePacket.ObjectDataBlock CreatePrimUpdateBlock(PrimitiveBaseShape primShape, uint flags)
|
||||||
{
|
{
|
||||||
ObjectUpdatePacket.ObjectDataBlock objupdate = new ObjectUpdatePacket.ObjectDataBlock();
|
ObjectUpdatePacket.ObjectDataBlock objupdate = new ObjectUpdatePacket.ObjectDataBlock();
|
||||||
this.SetDefaultPrimPacketValues(objupdate);
|
this.SetDefaultPrimPacketValues(objupdate);
|
||||||
objupdate.UpdateFlags = flags;
|
objupdate.UpdateFlags = flags;
|
||||||
this.SetPrimPacketShapeData(objupdate, primShape, textureID);
|
this.SetPrimPacketShapeData(objupdate, primShape);
|
||||||
|
|
||||||
return objupdate;
|
return objupdate;
|
||||||
}
|
}
|
||||||
|
@ -1040,7 +1040,7 @@ namespace OpenSim.Region.ClientStack
|
||||||
objectData.PathTwistBegin = primData.PathTwistBegin;
|
objectData.PathTwistBegin = primData.PathTwistBegin;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void SetPrimPacketShapeData(ObjectUpdatePacket.ObjectDataBlock objectData, PrimitiveBaseShape primData, LLUUID textureID)
|
protected void SetPrimPacketShapeData(ObjectUpdatePacket.ObjectDataBlock objectData, PrimitiveBaseShape primData)
|
||||||
{
|
{
|
||||||
|
|
||||||
objectData.TextureEntry = primData.TextureEntry;
|
objectData.TextureEntry = primData.TextureEntry;
|
||||||
|
|
|
@ -542,7 +542,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
LLQuaternion lRot;
|
LLQuaternion lRot;
|
||||||
lRot = new LLQuaternion(this.Rotation.x, this.Rotation.y, this.Rotation.z, this.Rotation.w);
|
lRot = new LLQuaternion(this.Rotation.x, this.Rotation.y, this.Rotation.z, this.Rotation.w);
|
||||||
|
|
||||||
remoteClient.SendPrimitiveToClient(this.m_regionHandle, 64096, this.LocalId, this.m_Shape, lPos, lRot, new LLUUID("00000000-0000-0000-9999-000000000005"), this.m_flags, this.uuid, this.OwnerID, this.Text, this.ParentID);
|
remoteClient.SendPrimitiveToClient(this.m_regionHandle, 64096, this.LocalId, this.m_Shape, lPos, lRot, this.m_flags, this.uuid, this.OwnerID, this.Text, this.ParentID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in New Issue