remove SOP.AttachPoint, redundant( and incoerent) with SOG.AttachmentPoint
parent
2fc7993d69
commit
ed365f6220
|
@ -481,14 +481,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
|||
// "[ATTACHMENTS MODULE]: Attaching object {0} {1} to {2} point {3} from ground (silent = {4})",
|
||||
// group.Name, group.LocalId, sp.Name, attachmentPt, silent);
|
||||
|
||||
if (sp.GetAttachments().Contains(group))
|
||||
{
|
||||
// m_log.WarnFormat(
|
||||
// "[ATTACHMENTS MODULE]: Ignoring request to attach {0} {1} to {2} on {3} since it's already attached",
|
||||
// group.Name, group.LocalId, sp.Name, AttachmentPt);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (group.GetSittingAvatarsCount() != 0)
|
||||
{
|
||||
|
@ -500,6 +492,17 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
|||
return false;
|
||||
}
|
||||
|
||||
List<SceneObjectGroup> attachments = sp.GetAttachments(attachmentPt);
|
||||
if (attachments.Contains(group))
|
||||
{
|
||||
// if (DebugLevel > 0)
|
||||
// m_log.WarnFormat(
|
||||
// "[ATTACHMENTS MODULE]: Ignoring request to attach {0} {1} to {2} on {3} since it's already attached",
|
||||
// group.Name, group.LocalId, sp.Name, attachmentPt);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Vector3 attachPos = group.AbsolutePosition;
|
||||
|
||||
// TODO: this short circuits multiple attachments functionality in LL viewer 2.1+ and should
|
||||
|
@ -533,7 +536,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
|||
{
|
||||
attachmentPt = (uint)group.RootPart.Shape.LastAttachPoint;
|
||||
attachPos = group.RootPart.AttachedPos;
|
||||
group.HasGroupChanged = true;
|
||||
}
|
||||
|
||||
// if we still didn't find a suitable attachment point.......
|
||||
|
@ -544,18 +546,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
|||
attachPos = Vector3.Zero;
|
||||
}
|
||||
|
||||
List<SceneObjectGroup> attachments = sp.GetAttachments(attachmentPt);
|
||||
|
||||
if (attachments.Contains(group))
|
||||
{
|
||||
if (DebugLevel > 0)
|
||||
m_log.WarnFormat(
|
||||
"[ATTACHMENTS MODULE]: Ignoring request to attach {0} {1} to {2} on {3} since it's already attached",
|
||||
group.Name, group.LocalId, sp.Name, attachmentPt);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// If we already have 5, remove the oldest until only 4 are left. Skip over temp ones
|
||||
while (attachments.Count >= 5)
|
||||
{
|
||||
|
@ -579,7 +569,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
|||
lock (sp.AttachmentsSyncLock)
|
||||
{
|
||||
group.AttachmentPoint = attachmentPt;
|
||||
group.AbsolutePosition = attachPos;
|
||||
group.RootPart.AttachedPos = attachPos;
|
||||
|
||||
if (addToInventory && sp.PresenceType != PresenceType.Npc)
|
||||
UpdateUserInventoryWithAttachment(sp, group, attachmentPt, append);
|
||||
|
@ -956,7 +946,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
|||
m_scene.DeleteFromStorage(so.UUID);
|
||||
m_scene.EventManager.TriggerParcelPrimCountTainted();
|
||||
|
||||
so.AttachedAvatar = sp.UUID;
|
||||
|
||||
foreach (SceneObjectPart part in so.Parts)
|
||||
{
|
||||
|
@ -969,11 +958,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
|||
}
|
||||
}
|
||||
|
||||
so.AbsolutePosition = attachOffset;
|
||||
so.RootPart.AttachedPos = attachOffset;
|
||||
so.IsAttachment = true;
|
||||
so.RootPart.SetParentLocalId(sp.LocalId);
|
||||
so.AttachedAvatar = sp.UUID;
|
||||
so.AttachmentPoint = attachmentpoint;
|
||||
so.RootPart.AttachedPos = attachOffset;
|
||||
so.AbsolutePosition = attachOffset;
|
||||
so.IsAttachment = true;
|
||||
|
||||
sp.AddAttachment(so);
|
||||
|
||||
|
|
|
@ -427,20 +427,14 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
|||
originalRotations[objectGroup.UUID] = inventoryStoredRotation;
|
||||
|
||||
// Restore attachment data after trip through the sim
|
||||
if (objectGroup.RootPart.AttachPoint > 0)
|
||||
if (objectGroup.AttachmentPoint > 0)
|
||||
{
|
||||
inventoryStoredPosition = objectGroup.RootPart.AttachedPos;
|
||||
inventoryStoredRotation = objectGroup.RootPart.AttachRotation;
|
||||
}
|
||||
|
||||
// Trees could be attached and it's been done, but it makes
|
||||
// no sense. State must be preserved because it's the tree type
|
||||
if (objectGroup.RootPart.Shape.PCode != (byte) PCode.Tree &&
|
||||
objectGroup.RootPart.Shape.PCode != (byte) PCode.NewTree)
|
||||
{
|
||||
objectGroup.RootPart.Shape.State = objectGroup.RootPart.AttachPoint;
|
||||
if (objectGroup.RootPart.AttachPoint > 0)
|
||||
objectGroup.RootPart.Shape.LastAttachPoint = objectGroup.RootPart.AttachPoint;
|
||||
objectGroup.RootPart.Shape.LastAttachPoint = (byte)objectGroup.AttachmentPoint;
|
||||
|
||||
}
|
||||
|
||||
objectGroup.AbsolutePosition = inventoryStoredPosition;
|
||||
|
|
|
@ -244,11 +244,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
public uint TimeStampTerse;
|
||||
|
||||
// The following two are to hold the attachment data
|
||||
// while an object is inworld
|
||||
[XmlIgnore]
|
||||
public byte AttachPoint = 0;
|
||||
|
||||
[XmlIgnore]
|
||||
public Quaternion AttachRotation = Quaternion.Identity;
|
||||
|
||||
|
@ -277,7 +272,11 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
public scriptEvents AggregateScriptEvents;
|
||||
|
||||
public Vector3 AttachedPos;
|
||||
public Vector3 AttachedPos
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
// rotation locks on local X,Y and or Z axis bit flags
|
||||
// bits are as in llSetStatus defined in SceneObjectGroup.axisSelect enum
|
||||
|
|
|
@ -7972,7 +7972,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void llDialog(string avatar, string message, LSL_List buttons, int chat_channel)
|
||||
|
@ -15867,7 +15866,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
return;
|
||||
}
|
||||
|
||||
group.RootPart.AttachPoint = group.RootPart.Shape.State;
|
||||
group.RootPart.AttachedPos = group.AbsolutePosition;
|
||||
|
||||
group.ResetIDs();
|
||||
|
|
Loading…
Reference in New Issue