* Force ClickAction persistence even if other object properties are not edited * Thanks nlin!0.6.0-stable
parent
2d7aca6d9d
commit
62d1eba3b2
|
@ -422,6 +422,7 @@ namespace OpenSim.Framework
|
||||||
event ObjectDeselect OnObjectDeselect;
|
event ObjectDeselect OnObjectDeselect;
|
||||||
event GenericCall7 OnObjectDescription;
|
event GenericCall7 OnObjectDescription;
|
||||||
event GenericCall7 OnObjectName;
|
event GenericCall7 OnObjectName;
|
||||||
|
event GenericCall7 OnObjectClickAction;
|
||||||
event RequestObjectPropertiesFamily OnRequestObjectPropertiesFamily;
|
event RequestObjectPropertiesFamily OnRequestObjectPropertiesFamily;
|
||||||
event UpdatePrimFlags OnUpdatePrimFlags;
|
event UpdatePrimFlags OnUpdatePrimFlags;
|
||||||
event UpdatePrimTexture OnUpdatePrimTexture;
|
event UpdatePrimTexture OnUpdatePrimTexture;
|
||||||
|
|
|
@ -170,6 +170,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
private ObjectSelect handlerDeGrabObject = null; //OnDeGrabObject;
|
private ObjectSelect handlerDeGrabObject = null; //OnDeGrabObject;
|
||||||
private GenericCall7 handlerObjectDescription = null;
|
private GenericCall7 handlerObjectDescription = null;
|
||||||
private GenericCall7 handlerObjectName = null;
|
private GenericCall7 handlerObjectName = null;
|
||||||
|
private GenericCall7 handlerObjectClickAction = null;
|
||||||
private ObjectPermissions handlerObjectPermissions = null;
|
private ObjectPermissions handlerObjectPermissions = null;
|
||||||
private RequestObjectPropertiesFamily handlerRequestObjectPropertiesFamily = null; //OnRequestObjectPropertiesFamily;
|
private RequestObjectPropertiesFamily handlerRequestObjectPropertiesFamily = null; //OnRequestObjectPropertiesFamily;
|
||||||
private TextureRequest handlerTextureRequest = null;
|
private TextureRequest handlerTextureRequest = null;
|
||||||
|
@ -864,6 +865,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
public event ObjectDeselect OnObjectDeselect;
|
public event ObjectDeselect OnObjectDeselect;
|
||||||
public event GenericCall7 OnObjectDescription;
|
public event GenericCall7 OnObjectDescription;
|
||||||
public event GenericCall7 OnObjectName;
|
public event GenericCall7 OnObjectName;
|
||||||
|
public event GenericCall7 OnObjectClickAction;
|
||||||
public event ObjectIncludeInSearch OnObjectIncludeInSearch;
|
public event ObjectIncludeInSearch OnObjectIncludeInSearch;
|
||||||
public event RequestObjectPropertiesFamily OnRequestObjectPropertiesFamily;
|
public event RequestObjectPropertiesFamily OnRequestObjectPropertiesFamily;
|
||||||
public event UpdatePrimFlags OnUpdatePrimFlags;
|
public event UpdatePrimFlags OnUpdatePrimFlags;
|
||||||
|
@ -4774,16 +4776,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
case PacketType.ObjectClickAction:
|
case PacketType.ObjectClickAction:
|
||||||
ObjectClickActionPacket ocpacket = (ObjectClickActionPacket)Pack;
|
ObjectClickActionPacket ocpacket = (ObjectClickActionPacket)Pack;
|
||||||
Scene tScene = (Scene)m_scene;
|
|
||||||
|
|
||||||
|
handlerObjectClickAction = OnObjectClickAction;
|
||||||
|
if(handlerObjectClickAction != null)
|
||||||
|
{
|
||||||
foreach (ObjectClickActionPacket.ObjectDataBlock odata in ocpacket.ObjectData)
|
foreach (ObjectClickActionPacket.ObjectDataBlock odata in ocpacket.ObjectData)
|
||||||
{
|
{
|
||||||
byte action = odata.ClickAction;
|
byte action = odata.ClickAction;
|
||||||
uint localId = odata.ObjectLocalID;
|
uint localID = odata.ObjectLocalID;
|
||||||
SceneObjectPart part = tScene.GetSceneObjectPart(localId);
|
handlerObjectClickAction(this, localID, action.ToString());
|
||||||
part.ClickAction = action;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -211,6 +211,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC
|
||||||
public event ObjectSelect OnObjectSelect;
|
public event ObjectSelect OnObjectSelect;
|
||||||
public event GenericCall7 OnObjectDescription;
|
public event GenericCall7 OnObjectDescription;
|
||||||
public event GenericCall7 OnObjectName;
|
public event GenericCall7 OnObjectName;
|
||||||
|
public event GenericCall7 OnObjectClickAction;
|
||||||
public event UpdatePrimFlags OnUpdatePrimFlags;
|
public event UpdatePrimFlags OnUpdatePrimFlags;
|
||||||
public event UpdatePrimTexture OnUpdatePrimTexture;
|
public event UpdatePrimTexture OnUpdatePrimTexture;
|
||||||
public event UpdateVector OnUpdatePrimGroupPosition;
|
public event UpdateVector OnUpdatePrimGroupPosition;
|
||||||
|
|
|
@ -1218,6 +1218,22 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected internal void PrimClickAction(IClientAPI remoteClient, uint primLocalID, string clickAction)
|
||||||
|
{
|
||||||
|
SceneObjectGroup group = GetGroupByPrim(primLocalID);
|
||||||
|
if (group != null)
|
||||||
|
{
|
||||||
|
if (m_parentScene.ExternalChecks.ExternalChecksCanEditObject(group.UUID, remoteClient.AgentId))
|
||||||
|
{
|
||||||
|
SceneObjectPart part = m_parentScene.GetSceneObjectPart(primLocalID);
|
||||||
|
part.ClickAction = Convert.ToByte(clickAction);
|
||||||
|
group.HasGroupChanged = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected internal void UpdateExtraParam(UUID agentID, uint primLocalID, ushort type, bool inUse, byte[] data)
|
protected internal void UpdateExtraParam(UUID agentID, uint primLocalID, ushort type, bool inUse, byte[] data)
|
||||||
{
|
{
|
||||||
SceneObjectGroup group = GetGroupByPrim(primLocalID);
|
SceneObjectGroup group = GetGroupByPrim(primLocalID);
|
||||||
|
|
|
@ -2144,6 +2144,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
client.OnNameFromUUIDRequest += CommsManager.HandleUUIDNameRequest;
|
client.OnNameFromUUIDRequest += CommsManager.HandleUUIDNameRequest;
|
||||||
client.OnObjectDescription += m_innerScene.PrimDescription;
|
client.OnObjectDescription += m_innerScene.PrimDescription;
|
||||||
client.OnObjectName += m_innerScene.PrimName;
|
client.OnObjectName += m_innerScene.PrimName;
|
||||||
|
client.OnObjectClickAction += m_innerScene.PrimClickAction;
|
||||||
client.OnLinkObjects += m_innerScene.LinkObjects;
|
client.OnLinkObjects += m_innerScene.LinkObjects;
|
||||||
client.OnDelinkObjects += m_innerScene.DelinkObjects;
|
client.OnDelinkObjects += m_innerScene.DelinkObjects;
|
||||||
client.OnObjectDuplicate += m_innerScene.DuplicateObject;
|
client.OnObjectDuplicate += m_innerScene.DuplicateObject;
|
||||||
|
|
|
@ -106,6 +106,7 @@ namespace OpenSim.Region.Examples.SimpleModule
|
||||||
public event ObjectSelect OnObjectSelect;
|
public event ObjectSelect OnObjectSelect;
|
||||||
public event GenericCall7 OnObjectDescription;
|
public event GenericCall7 OnObjectDescription;
|
||||||
public event GenericCall7 OnObjectName;
|
public event GenericCall7 OnObjectName;
|
||||||
|
public event GenericCall7 OnObjectClickAction;
|
||||||
public event UpdatePrimFlags OnUpdatePrimFlags;
|
public event UpdatePrimFlags OnUpdatePrimFlags;
|
||||||
public event UpdatePrimTexture OnUpdatePrimTexture;
|
public event UpdatePrimTexture OnUpdatePrimTexture;
|
||||||
public event UpdateVector OnUpdatePrimGroupPosition;
|
public event UpdateVector OnUpdatePrimGroupPosition;
|
||||||
|
|
Loading…
Reference in New Issue