Can change the name and description of a prim.
parent
9800c05c1b
commit
54ef77f0fd
|
@ -51,6 +51,7 @@ namespace OpenSim.Framework.Interfaces
|
||||||
public delegate void GenericCall4(Packet packet, IClientAPI remoteClient);
|
public delegate void GenericCall4(Packet packet, IClientAPI remoteClient);
|
||||||
public delegate void GenericCall5(IClientAPI remoteClient, bool status);
|
public delegate void GenericCall5(IClientAPI remoteClient, bool status);
|
||||||
public delegate void GenericCall6(LLUUID uid);
|
public delegate void GenericCall6(LLUUID uid);
|
||||||
|
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 ObjectSelect(uint localID, IClientAPI remoteClient);
|
public delegate void ObjectSelect(uint localID, IClientAPI remoteClient);
|
||||||
|
@ -96,6 +97,8 @@ namespace OpenSim.Framework.Interfaces
|
||||||
|
|
||||||
event UpdateShape OnUpdatePrimShape;
|
event UpdateShape OnUpdatePrimShape;
|
||||||
event ObjectSelect OnObjectSelect;
|
event ObjectSelect OnObjectSelect;
|
||||||
|
event GenericCall7 OnObjectDescription;
|
||||||
|
event GenericCall7 OnObjectName;
|
||||||
event UpdatePrimFlags OnUpdatePrimFlags;
|
event UpdatePrimFlags OnUpdatePrimFlags;
|
||||||
event UpdatePrimTexture OnUpdatePrimTexture;
|
event UpdatePrimTexture OnUpdatePrimTexture;
|
||||||
event UpdateVector OnUpdatePrimPosition;
|
event UpdateVector OnUpdatePrimPosition;
|
||||||
|
|
|
@ -58,6 +58,8 @@ namespace OpenSim.Region.ClientStack
|
||||||
public event GenericCall4 OnAddPrim;
|
public event GenericCall4 OnAddPrim;
|
||||||
public event UpdateShape OnUpdatePrimShape;
|
public event UpdateShape OnUpdatePrimShape;
|
||||||
public event ObjectSelect OnObjectSelect;
|
public event ObjectSelect OnObjectSelect;
|
||||||
|
public event GenericCall7 OnObjectDescription;
|
||||||
|
public event GenericCall7 OnObjectName;
|
||||||
public event UpdatePrimFlags OnUpdatePrimFlags;
|
public event UpdatePrimFlags OnUpdatePrimFlags;
|
||||||
public event UpdatePrimTexture OnUpdatePrimTexture;
|
public event UpdatePrimTexture OnUpdatePrimTexture;
|
||||||
public event UpdateVector OnUpdatePrimPosition;
|
public event UpdateVector OnUpdatePrimPosition;
|
||||||
|
|
|
@ -130,7 +130,7 @@ namespace OpenSim.Region.ClientStack
|
||||||
{
|
{
|
||||||
if (OnModifyTerrain != null)
|
if (OnModifyTerrain != null)
|
||||||
{
|
{
|
||||||
OnModifyTerrain(modify.ModifyBlock.Height, modify.ModifyBlock.Seconds, modify.ModifyBlock.BrushSize,
|
OnModifyTerrain(modify.ModifyBlock.Height, modify.ModifyBlock.Seconds, modify.ModifyBlock.BrushSize,
|
||||||
modify.ModifyBlock.Action, modify.ParcelData[0].North, modify.ParcelData[0].West);
|
modify.ModifyBlock.Action, modify.ParcelData[0].North, modify.ParcelData[0].West);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -167,8 +167,8 @@ namespace OpenSim.Region.ClientStack
|
||||||
case PacketType.AgentUpdate:
|
case PacketType.AgentUpdate:
|
||||||
if (OnAgentUpdate != null)
|
if (OnAgentUpdate != null)
|
||||||
{
|
{
|
||||||
AgentUpdatePacket agenUpdate = (AgentUpdatePacket) Pack;
|
AgentUpdatePacket agenUpdate = (AgentUpdatePacket)Pack;
|
||||||
OnAgentUpdate(this, agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotation );
|
OnAgentUpdate(this, agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotation);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PacketType.AgentAnimation:
|
case PacketType.AgentAnimation:
|
||||||
|
@ -274,6 +274,29 @@ namespace OpenSim.Region.ClientStack
|
||||||
OnDeGrapObject(deGrap.ObjectData.LocalID, this);
|
OnDeGrapObject(deGrap.ObjectData.LocalID, this);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case PacketType.ObjectDescription:
|
||||||
|
ObjectDescriptionPacket objDes = (ObjectDescriptionPacket)Pack;
|
||||||
|
for (int i = 0; i < objDes.ObjectData.Length; i++)
|
||||||
|
{
|
||||||
|
if (OnObjectDescription != null)
|
||||||
|
{
|
||||||
|
OnObjectDescription(objDes.ObjectData[i].LocalID, enc.GetString(objDes.ObjectData[i].Description));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PacketType.ObjectName:
|
||||||
|
ObjectNamePacket objName = (ObjectNamePacket)Pack;
|
||||||
|
for (int i = 0; i < objName.ObjectData.Length; i++)
|
||||||
|
{
|
||||||
|
if (OnObjectName != null)
|
||||||
|
{
|
||||||
|
OnObjectName(objName.ObjectData[i].LocalID, enc.GetString(objName.ObjectData[i].Name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PacketType.ObjectPermissions:
|
||||||
|
//Console.WriteLine("permissions set " + Pack.ToString());
|
||||||
|
break;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Inventory/Asset/Other related packets
|
#region Inventory/Asset/Other related packets
|
||||||
|
|
|
@ -79,6 +79,7 @@ namespace OpenSim.Region.ClientStack
|
||||||
private int cachedtextureserial = 0;
|
private int cachedtextureserial = 0;
|
||||||
private RegionInfo m_regionData;
|
private RegionInfo m_regionData;
|
||||||
protected AuthenticateSessionsBase m_authenticateSessionsHandler;
|
protected AuthenticateSessionsBase m_authenticateSessionsHandler;
|
||||||
|
private System.Text.Encoding enc = System.Text.Encoding.ASCII;
|
||||||
|
|
||||||
public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, Dictionary<uint, ClientView> clientThreads, IWorld world, AssetCache assetCache, PacketServer packServer, InventoryCache inventoryCache, AuthenticateSessionsBase authenSessions )
|
public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, Dictionary<uint, ClientView> clientThreads, IWorld world, AssetCache assetCache, PacketServer packServer, InventoryCache inventoryCache, AuthenticateSessionsBase authenSessions )
|
||||||
{
|
{
|
||||||
|
|
|
@ -34,7 +34,7 @@ using libsecondlife;
|
||||||
|
|
||||||
namespace OpenSim.Region.Environment.Scenes
|
namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
public abstract class Entity :EntityBase //will be phased out
|
public abstract class Entity :EntityBase //this class (Entity) will be phased out
|
||||||
{
|
{
|
||||||
protected PhysicsActor _physActor;
|
protected PhysicsActor _physActor;
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
public virtual string Name
|
public virtual string Name
|
||||||
{
|
{
|
||||||
get { return m_name; }
|
get { return m_name; }
|
||||||
|
set { m_name = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
protected LLVector3 m_pos;
|
protected LLVector3 m_pos;
|
||||||
|
|
|
@ -21,6 +21,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
private Dictionary<LLUUID, InventoryItem> inventoryItems;
|
private Dictionary<LLUUID, InventoryItem> inventoryItems;
|
||||||
|
|
||||||
|
private string description = "";
|
||||||
public LLUUID OwnerID;
|
public LLUUID OwnerID;
|
||||||
public Int32 CreationDate;
|
public Int32 CreationDate;
|
||||||
public uint OwnerMask = FULL_MASK_PERMISSIONS;
|
public uint OwnerMask = FULL_MASK_PERMISSIONS;
|
||||||
|
@ -55,6 +56,18 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string Description
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.description;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.description = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Primitive(ulong regionHandle, Scene world, ObjectAddPacket addPacket, LLUUID ownerID, uint localID, bool isRoot, EntityBase parent , SceneObject rootObject)
|
public Primitive(ulong regionHandle, Scene world, ObjectAddPacket addPacket, LLUUID ownerID, uint localID, bool isRoot, EntityBase parent , SceneObject rootObject)
|
||||||
{
|
{
|
||||||
m_regionHandle = regionHandle;
|
m_regionHandle = regionHandle;
|
||||||
|
|
|
@ -214,7 +214,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// <param name="remoteClient"></param>
|
/// <param name="remoteClient"></param>
|
||||||
public void SelectPrim(uint primLocalID, IClientAPI remoteClient)
|
public void SelectPrim(uint primLocalID, IClientAPI remoteClient)
|
||||||
{
|
{
|
||||||
Console.WriteLine("prim selected :" + primLocalID);
|
|
||||||
foreach (EntityBase ent in Entities.Values)
|
foreach (EntityBase ent in Entities.Values)
|
||||||
{
|
{
|
||||||
if (ent is SceneObject)
|
if (ent is SceneObject)
|
||||||
|
@ -228,6 +227,50 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="primLocalID"></param>
|
||||||
|
/// <param name="description"></param>
|
||||||
|
public void PrimDescription(uint primLocalID, string description)
|
||||||
|
{
|
||||||
|
Primitive prim = null;
|
||||||
|
foreach (EntityBase ent in Entities.Values)
|
||||||
|
{
|
||||||
|
if (ent is SceneObject)
|
||||||
|
{
|
||||||
|
prim = ((SceneObject)ent).HasChildPrim(primLocalID);
|
||||||
|
if (prim != null)
|
||||||
|
{
|
||||||
|
prim.Description = description;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="primLocalID"></param>
|
||||||
|
/// <param name="description"></param>
|
||||||
|
public void PrimName(uint primLocalID, string name)
|
||||||
|
{
|
||||||
|
Primitive prim = null;
|
||||||
|
foreach (EntityBase ent in Entities.Values)
|
||||||
|
{
|
||||||
|
if (ent is SceneObject)
|
||||||
|
{
|
||||||
|
prim = ((SceneObject)ent).HasChildPrim(primLocalID);
|
||||||
|
if (prim != null)
|
||||||
|
{
|
||||||
|
prim.Name = name;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 pos, IClientAPI remoteClient)
|
public void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 pos, IClientAPI remoteClient)
|
||||||
{
|
{
|
||||||
if (this.Entities.ContainsKey(objectID))
|
if (this.Entities.ContainsKey(objectID))
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
protected System.Timers.Timer m_heartbeatTimer = new System.Timers.Timer();
|
protected System.Timers.Timer m_heartbeatTimer = new System.Timers.Timer();
|
||||||
protected Dictionary<libsecondlife.LLUUID, ScenePresence> Avatars;
|
protected Dictionary<libsecondlife.LLUUID, ScenePresence> Avatars;
|
||||||
protected Dictionary<libsecondlife.LLUUID, Primitive> Prims;
|
protected Dictionary<libsecondlife.LLUUID, SceneObject> Prims;
|
||||||
private PhysicsScene phyScene;
|
private PhysicsScene phyScene;
|
||||||
private float timeStep = 0.1f;
|
private float timeStep = 0.1f;
|
||||||
private Random Rand = new Random();
|
private Random Rand = new Random();
|
||||||
|
@ -124,7 +124,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
OpenSim.Framework.Console.MainLog.Instance.Verbose("World.cs - creating new entitities instance");
|
OpenSim.Framework.Console.MainLog.Instance.Verbose("World.cs - creating new entitities instance");
|
||||||
Entities = new Dictionary<libsecondlife.LLUUID, EntityBase>();
|
Entities = new Dictionary<libsecondlife.LLUUID, EntityBase>();
|
||||||
Avatars = new Dictionary<LLUUID, ScenePresence>();
|
Avatars = new Dictionary<LLUUID, ScenePresence>();
|
||||||
Prims = new Dictionary<LLUUID, Primitive>();
|
Prims = new Dictionary<LLUUID, SceneObject>();
|
||||||
|
|
||||||
OpenSim.Framework.Console.MainLog.Instance.Verbose("World.cs - creating LandMap");
|
OpenSim.Framework.Console.MainLog.Instance.Verbose("World.cs - creating LandMap");
|
||||||
Terrain = new TerrainEngine();
|
Terrain = new TerrainEngine();
|
||||||
|
@ -463,6 +463,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
client.OnObjectSelect += this.SelectPrim;
|
client.OnObjectSelect += this.SelectPrim;
|
||||||
// client.OnGrapUpdate += this.MoveObject;
|
// client.OnGrapUpdate += this.MoveObject;
|
||||||
client.OnNameFromUUIDRequest += this.commsManager.HandleUUIDNameRequest;
|
client.OnNameFromUUIDRequest += this.commsManager.HandleUUIDNameRequest;
|
||||||
|
client.OnObjectDescription += this.PrimDescription;
|
||||||
|
client.OnObjectName += this.PrimName;
|
||||||
|
|
||||||
/* remoteClient.OnParcelPropertiesRequest += new ParcelPropertiesRequest(parcelManager.handleParcelPropertiesRequest);
|
/* remoteClient.OnParcelPropertiesRequest += new ParcelPropertiesRequest(parcelManager.handleParcelPropertiesRequest);
|
||||||
remoteClient.OnParcelDivideRequest += new ParcelDivideRequest(parcelManager.handleParcelDivideRequest);
|
remoteClient.OnParcelDivideRequest += new ParcelDivideRequest(parcelManager.handleParcelDivideRequest);
|
||||||
|
|
|
@ -39,7 +39,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
public class SceneObject : EntityBase
|
public class SceneObject : EntityBase
|
||||||
{
|
{
|
||||||
|
private System.Text.Encoding enc = System.Text.Encoding.ASCII;
|
||||||
private Dictionary<LLUUID, Primitive> ChildPrimitives = new Dictionary<LLUUID, Primitive>(); //list of all primitive id's that are part of this group
|
private Dictionary<LLUUID, Primitive> ChildPrimitives = new Dictionary<LLUUID, Primitive>(); //list of all primitive id's that are part of this group
|
||||||
protected Primitive rootPrimitive;
|
protected Primitive rootPrimitive;
|
||||||
private Scene m_world;
|
private Scene m_world;
|
||||||
|
@ -114,6 +114,19 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Primitive HasChildPrim(uint localID)
|
||||||
|
{
|
||||||
|
Primitive returnPrim = null;
|
||||||
|
foreach (Primitive prim in this.children)
|
||||||
|
{
|
||||||
|
if (prim.LocalId == localID)
|
||||||
|
{
|
||||||
|
returnPrim = prim;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return returnPrim;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
|
@ -141,6 +154,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// <param name="client"></param>
|
/// <param name="client"></param>
|
||||||
public void GetProperites(IClientAPI client)
|
public void GetProperites(IClientAPI client)
|
||||||
{
|
{
|
||||||
|
|
||||||
//needs changing
|
//needs changing
|
||||||
ObjectPropertiesPacket proper = new ObjectPropertiesPacket();
|
ObjectPropertiesPacket proper = new ObjectPropertiesPacket();
|
||||||
proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1];
|
proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1];
|
||||||
|
@ -158,8 +172,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
proper.ObjectData[0].TouchName = new byte[0];
|
proper.ObjectData[0].TouchName = new byte[0];
|
||||||
proper.ObjectData[0].TextureID = new byte[0];
|
proper.ObjectData[0].TextureID = new byte[0];
|
||||||
proper.ObjectData[0].SitName = new byte[0];
|
proper.ObjectData[0].SitName = new byte[0];
|
||||||
proper.ObjectData[0].Name = new byte[0];
|
proper.ObjectData[0].Name = enc.GetBytes(this.rootPrimitive.Name +"\0");
|
||||||
proper.ObjectData[0].Description = new byte[0];
|
proper.ObjectData[0].Description = enc.GetBytes(this.rootPrimitive.Description +"\0");
|
||||||
proper.ObjectData[0].OwnerMask = this.rootPrimitive.OwnerMask;
|
proper.ObjectData[0].OwnerMask = this.rootPrimitive.OwnerMask;
|
||||||
proper.ObjectData[0].NextOwnerMask = this.rootPrimitive.NextOwnerMask;
|
proper.ObjectData[0].NextOwnerMask = this.rootPrimitive.NextOwnerMask;
|
||||||
proper.ObjectData[0].GroupMask = this.rootPrimitive.GroupMask;
|
proper.ObjectData[0].GroupMask = this.rootPrimitive.GroupMask;
|
||||||
|
|
Loading…
Reference in New Issue