Sculpted Prims should now work.
parent
643a02ec60
commit
d2b459b8e5
|
@ -53,6 +53,7 @@ namespace OpenSim.Framework.Interfaces
|
||||||
public delegate void GenericCall7(uint localID, string message);
|
public delegate void GenericCall7(uint localID, string message);
|
||||||
|
|
||||||
public delegate void UpdateShape(uint localID, ObjectShapePacket.ObjectDataBlock shapeBlock);
|
public delegate void UpdateShape(uint localID, ObjectShapePacket.ObjectDataBlock shapeBlock);
|
||||||
|
public delegate void ObjectExtraParams(uint localID, ushort type, bool inUse, byte[] data);
|
||||||
public delegate void ObjectSelect(uint localID, IClientAPI remoteClient);
|
public delegate void ObjectSelect(uint localID, IClientAPI remoteClient);
|
||||||
public delegate void ObjectDeselect(uint localID, IClientAPI remoteClient);
|
public delegate void ObjectDeselect(uint localID, IClientAPI remoteClient);
|
||||||
public delegate void UpdatePrimFlags(uint localID, Packet packet, IClientAPI remoteClient);
|
public delegate void UpdatePrimFlags(uint localID, Packet packet, IClientAPI remoteClient);
|
||||||
|
@ -106,6 +107,7 @@ namespace OpenSim.Framework.Interfaces
|
||||||
event MoveObject OnGrapUpdate;
|
event MoveObject OnGrapUpdate;
|
||||||
|
|
||||||
event UpdateShape OnUpdatePrimShape;
|
event UpdateShape OnUpdatePrimShape;
|
||||||
|
event ObjectExtraParams OnUpdateExtraParams;
|
||||||
event ObjectSelect OnObjectSelect;
|
event ObjectSelect OnObjectSelect;
|
||||||
event ObjectDeselect OnObjectDeselect;
|
event ObjectDeselect OnObjectDeselect;
|
||||||
event GenericCall7 OnObjectDescription;
|
event GenericCall7 OnObjectDescription;
|
||||||
|
|
|
@ -35,6 +35,7 @@ namespace OpenSim.Framework
|
||||||
public event MoveObject OnGrapUpdate;
|
public event MoveObject OnGrapUpdate;
|
||||||
|
|
||||||
public event UpdateShape OnUpdatePrimShape;
|
public event UpdateShape OnUpdatePrimShape;
|
||||||
|
public event ObjectExtraParams OnUpdateExtraParams;
|
||||||
public event ObjectSelect OnObjectSelect;
|
public event ObjectSelect OnObjectSelect;
|
||||||
public event GenericCall7 OnObjectDescription;
|
public event GenericCall7 OnObjectDescription;
|
||||||
public event GenericCall7 OnObjectName;
|
public event GenericCall7 OnObjectName;
|
||||||
|
|
|
@ -42,6 +42,7 @@ namespace OpenSim.Framework.Types
|
||||||
public sbyte PathTwist;
|
public sbyte PathTwist;
|
||||||
public sbyte PathTwistBegin;
|
public sbyte PathTwistBegin;
|
||||||
public byte[] TextureEntry; // a LL textureEntry in byte[] format
|
public byte[] TextureEntry; // a LL textureEntry in byte[] format
|
||||||
|
public byte[] ExtraParams;
|
||||||
|
|
||||||
public ShapeType PrimType
|
public ShapeType PrimType
|
||||||
{
|
{
|
||||||
|
@ -61,7 +62,7 @@ namespace OpenSim.Framework.Types
|
||||||
|
|
||||||
public PrimitiveBaseShape()
|
public PrimitiveBaseShape()
|
||||||
{
|
{
|
||||||
|
ExtraParams = new byte[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
//void returns need to change of course
|
//void returns need to change of course
|
||||||
|
@ -81,6 +82,7 @@ namespace OpenSim.Framework.Types
|
||||||
public BoxShape()
|
public BoxShape()
|
||||||
{
|
{
|
||||||
type = ShapeType.Box;
|
type = ShapeType.Box;
|
||||||
|
ExtraParams = new byte[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BoxShape Default
|
public static BoxShape Default
|
||||||
|
@ -111,6 +113,7 @@ namespace OpenSim.Framework.Types
|
||||||
primShape.PathTwistBegin = 0;
|
primShape.PathTwistBegin = 0;
|
||||||
LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-9999-000000000005"));
|
LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-9999-000000000005"));
|
||||||
primShape.TextureEntry = ntex.ToBytes();
|
primShape.TextureEntry = ntex.ToBytes();
|
||||||
|
primShape.ExtraParams = new byte[1];
|
||||||
|
|
||||||
return primShape;
|
return primShape;
|
||||||
}
|
}
|
||||||
|
@ -122,6 +125,7 @@ namespace OpenSim.Framework.Types
|
||||||
public SphereShape()
|
public SphereShape()
|
||||||
{
|
{
|
||||||
type = ShapeType.Sphere;
|
type = ShapeType.Sphere;
|
||||||
|
ExtraParams = new byte[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,7 @@ namespace OpenSim.Region.ClientStack
|
||||||
public event ObjectDuplicate OnObjectDuplicate;
|
public event ObjectDuplicate OnObjectDuplicate;
|
||||||
public event MoveObject OnGrapUpdate;
|
public event MoveObject OnGrapUpdate;
|
||||||
public event AddNewPrim OnAddPrim;
|
public event AddNewPrim OnAddPrim;
|
||||||
|
public event ObjectExtraParams OnUpdateExtraParams;
|
||||||
public event UpdateShape OnUpdatePrimShape;
|
public event UpdateShape OnUpdatePrimShape;
|
||||||
public event ObjectSelect OnObjectSelect;
|
public event ObjectSelect OnObjectSelect;
|
||||||
public event ObjectDeselect OnObjectDeselect;
|
public event ObjectDeselect OnObjectDeselect;
|
||||||
|
@ -968,6 +969,7 @@ namespace OpenSim.Region.ClientStack
|
||||||
objectData.PathTaperY = primData.PathTaperY;
|
objectData.PathTaperY = primData.PathTaperY;
|
||||||
objectData.PathTwist = primData.PathTwist;
|
objectData.PathTwist = primData.PathTwist;
|
||||||
objectData.PathTwistBegin = primData.PathTwistBegin;
|
objectData.PathTwistBegin = primData.PathTwistBegin;
|
||||||
|
objectData.ExtraParams = primData.ExtraParams;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -218,8 +218,6 @@ namespace OpenSim.Region.ClientStack
|
||||||
if (OnAddPrim != null)
|
if (OnAddPrim != null)
|
||||||
{
|
{
|
||||||
ObjectAddPacket addPacket = (ObjectAddPacket) Pack ;
|
ObjectAddPacket addPacket = (ObjectAddPacket) Pack ;
|
||||||
Console.WriteLine(addPacket.ToString());
|
|
||||||
|
|
||||||
PrimitiveBaseShape shape = new PrimitiveBaseShape();
|
PrimitiveBaseShape shape = new PrimitiveBaseShape();
|
||||||
|
|
||||||
shape.PCode = addPacket.ObjectData.PCode;
|
shape.PCode = addPacket.ObjectData.PCode;
|
||||||
|
@ -258,6 +256,13 @@ namespace OpenSim.Region.ClientStack
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case PacketType.ObjectExtraParams:
|
||||||
|
ObjectExtraParamsPacket extraPar = (ObjectExtraParamsPacket)Pack;
|
||||||
|
if (OnUpdateExtraParams != null)
|
||||||
|
{
|
||||||
|
OnUpdateExtraParams(extraPar.ObjectData[0].ObjectLocalID, extraPar.ObjectData[0].ParamType, extraPar.ObjectData[0].ParamInUse, extraPar.ObjectData[0].ParamData);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case PacketType.ObjectDuplicate:
|
case PacketType.ObjectDuplicate:
|
||||||
ObjectDuplicatePacket dupe = (ObjectDuplicatePacket)Pack;
|
ObjectDuplicatePacket dupe = (ObjectDuplicatePacket)Pack;
|
||||||
for (int i = 0; i < dupe.ObjectData.Length; i++)
|
for (int i = 0; i < dupe.ObjectData.Length; i++)
|
||||||
|
|
|
@ -588,6 +588,24 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
public void UpdateExtraParam(ushort type, bool inUse, byte[] data)
|
||||||
|
{
|
||||||
|
this.m_Shape.ExtraParams = new byte[data.Length + 7];
|
||||||
|
int i =0;
|
||||||
|
uint length = (uint) data.Length;
|
||||||
|
this.m_Shape.ExtraParams[i++] = 1;
|
||||||
|
this.m_Shape.ExtraParams[i++] = (byte)(type % 256);
|
||||||
|
this.m_Shape.ExtraParams[i++] = (byte)((type >> 8) % 256);
|
||||||
|
|
||||||
|
this.m_Shape.ExtraParams[i++] = (byte)(length % 256);
|
||||||
|
this.m_Shape.ExtraParams[i++] = (byte)((length >> 8) % 256);
|
||||||
|
this.m_Shape.ExtraParams[i++] = (byte)((length >> 16) % 256);
|
||||||
|
this.m_Shape.ExtraParams[i++] = (byte)((length >> 24) % 256);
|
||||||
|
Array.Copy(data, 0, this.m_Shape.ExtraParams, i, data.Length);
|
||||||
|
|
||||||
|
this.ScheduleFullUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
#region Texture
|
#region Texture
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -327,6 +327,22 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UpdateExtraParam(uint primLocalID, ushort type, bool inUse, byte[] data)
|
||||||
|
{
|
||||||
|
Primitive prim = null;
|
||||||
|
foreach (EntityBase ent in Entities.Values)
|
||||||
|
{
|
||||||
|
if (ent is SceneObject)
|
||||||
|
{
|
||||||
|
prim = ((SceneObject)ent).HasChildPrim(primLocalID);
|
||||||
|
if (prim != null)
|
||||||
|
{
|
||||||
|
prim.UpdateExtraParam(type, inUse, data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -548,6 +548,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
client.OnUpdatePrimGroupMouseRotation += UpdatePrimRotation;
|
client.OnUpdatePrimGroupMouseRotation += UpdatePrimRotation;
|
||||||
client.OnUpdatePrimSingleRotation += UpdatePrimSingleRotation;
|
client.OnUpdatePrimSingleRotation += UpdatePrimSingleRotation;
|
||||||
client.OnUpdatePrimScale += UpdatePrimScale;
|
client.OnUpdatePrimScale += UpdatePrimScale;
|
||||||
|
client.OnUpdateExtraParams += UpdateExtraParam;
|
||||||
client.OnUpdatePrimShape += UpdatePrimShape;
|
client.OnUpdatePrimShape += UpdatePrimShape;
|
||||||
client.OnRequestMapBlocks += RequestMapBlocks;
|
client.OnRequestMapBlocks += RequestMapBlocks;
|
||||||
client.OnUpdatePrimTexture += UpdatePrimTexture;
|
client.OnUpdatePrimTexture += UpdatePrimTexture;
|
||||||
|
|
|
@ -47,7 +47,9 @@ namespace SimpleApp
|
||||||
public event ObjectSelect OnDeGrapObject;
|
public event ObjectSelect OnDeGrapObject;
|
||||||
public event MoveObject OnGrapUpdate;
|
public event MoveObject OnGrapUpdate;
|
||||||
|
|
||||||
|
|
||||||
public event UpdateShape OnUpdatePrimShape;
|
public event UpdateShape OnUpdatePrimShape;
|
||||||
|
public event ObjectExtraParams OnUpdateExtraParams;
|
||||||
public event ObjectSelect OnObjectSelect;
|
public event ObjectSelect OnObjectSelect;
|
||||||
public event GenericCall7 OnObjectDescription;
|
public event GenericCall7 OnObjectDescription;
|
||||||
public event GenericCall7 OnObjectName;
|
public event GenericCall7 OnObjectName;
|
||||||
|
|
Loading…
Reference in New Issue